From a9fe2c3dd30071ccb48baf3291b65d46960b14a6 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 15:28:00 -0500 Subject: [PATCH 001/402] KLSadd insertion first attempt --- KLSadd_insertion/FileChangerLatex.py | 64 + KLSadd_insertion/KLSadd.pdf | Bin 0 -> 414643 bytes KLSadd_insertion/KLSadd.tex | 2637 ++++++++++ KLSadd_insertion/KoLeSw.pdf | Bin 0 -> 4597173 bytes KLSadd_insertion/chap01.tex | 1542 ++++++ KLSadd_insertion/chap09.tex | 3037 ++++++++++++ KLSadd_insertion/chap14.tex | 5734 ++++++++++++++++++++++ KLSadd_insertion/linetest.py | 165 + KLSadd_insertion/newtempchap09.pdf | Bin 0 -> 319561 bytes KLSadd_insertion/newtempchap09.tex | 3934 +++++++++++++++ KLSadd_insertion/newtempchap14.tex | 6695 ++++++++++++++++++++++++++ KLSadd_insertion/svmono.cls | 1690 +++++++ KLSadd_insertion/tempchap09.tex | 3926 +++++++++++++++ KLSadd_insertion/tempchap14.tex | 5734 ++++++++++++++++++++++ KLSadd_insertion/updateChapters.py | 117 + KLSadd_insertion/updated14.tex | 4162 ++++++++++++++++ KLSadd_insertion/updated9.tex | 4162 ++++++++++++++++ 17 files changed, 43599 insertions(+) create mode 100644 KLSadd_insertion/FileChangerLatex.py create mode 100644 KLSadd_insertion/KLSadd.pdf create mode 100644 KLSadd_insertion/KLSadd.tex create mode 100644 KLSadd_insertion/KoLeSw.pdf create mode 100644 KLSadd_insertion/chap01.tex create mode 100644 KLSadd_insertion/chap09.tex create mode 100644 KLSadd_insertion/chap14.tex create mode 100644 KLSadd_insertion/linetest.py create mode 100644 KLSadd_insertion/newtempchap09.pdf create mode 100644 KLSadd_insertion/newtempchap09.tex create mode 100644 KLSadd_insertion/newtempchap14.tex create mode 100644 KLSadd_insertion/svmono.cls create mode 100644 KLSadd_insertion/tempchap09.tex create mode 100644 KLSadd_insertion/tempchap14.tex create mode 100644 KLSadd_insertion/updateChapters.py create mode 100644 KLSadd_insertion/updated14.tex create mode 100644 KLSadd_insertion/updated9.tex diff --git a/KLSadd_insertion/FileChangerLatex.py b/KLSadd_insertion/FileChangerLatex.py new file mode 100644 index 0000000..1ef75ff --- /dev/null +++ b/KLSadd_insertion/FileChangerLatex.py @@ -0,0 +1,64 @@ +""" +Rahul Shah +11/20/15 +FileChangerLatex.py +Reads in from KLSadd.tex, finds places to be changed and adds +to end of section +""" + +#Open the document to be read +#Figure out which chapter to read + +subsection = "" +a = -1 +chapter ="" +list = [] +with open("KLSadd.tex", "rb") as file: + for line in file: + #finds all mentions of subsections in KLSadd + #used to determine chapter number + #tests every subsection to find if it has a number + #eliminates Introduction, etc + chapter = "" + subsection = "" + toCopy = False + if("\\subsection*{" in line): + #finds the subsection and subsubsections + for word in line: + try: + chapter+= str(int(word)) + except: + a = -1 + + if(word =="."): + chapter += "." + + if(chapter is not ""): + list.append(chapter) + #END OF LOOP why can't I have nice brackets like java :( + """ + list contains all of the subsections. Begin chapter file searching + """ + words = "" + for line2 in file: + words += line2 + + print(words) + numFile = "" + fileList = [] + for s in list: + numFile = "" + if("." in s[0:2]): + numFile = s[0] + else: + numFile = s[0:2] + fileList.append(int(numFile)) + + #numFile now contains the right number of the file to access + #stored in fileList + + + + + file.close() +#end of FileChangerLatex.py diff --git a/KLSadd_insertion/KLSadd.pdf b/KLSadd_insertion/KLSadd.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c0562e08dde4eec14d3e67b54f20dbaa5f694ed5 GIT binary patch literal 414643 zcma&NW6Urxx32lvwr$(CZQHhO+t&Nowr$(CjrsODGntd@NoF@qm8Snzd);@sNEJlH zXc_5Pp-AVKN7kVj83`B&?2W9TczB@bWlZhNT`UNgnAw>K{#Svb7qhf+F?AxK7qc;R zF%>a2wl^__;^TvIc5yN_w1x86jMb1%K4OFGovU-Wk*u|95{>dQl~2BQOOkADWL?^j zCIjCnvn?~N5SF}nZ|vg*0K7bKyOUE@j|LGy0^#F1_i)u2sj}Z2vG?io^Kt(pXiA+9 zO{&o2#Zwcdn-r>JQjHKnts48eOh5nev-jR&+wn>srn=Pr&4Yo3tKqIwMT2z>1;Jdo zijA>Zb7yIRo$yVI{Jnkb-VLaB6kp1dy`!1Dm8f_9so-suRju>){jQ%BNvdI!ic)GM zYi_Nfm-TK{oqArFexH#j#F<{JK6o<9?s+iNm_Sl1b7)1g%$tY94;!6l z(%fC(qe`Qk>;oGA30A98O39q;#zY3pSU=Z5p%gaWda2!fv9G2xi)Lq1CK8UH6gswS zpPMK`pJH(W>(M5FNJtPB{~E(O4f{Y<)CJXZlX2399_xZ`aHH_Ex|v1j;zh{4*CgQU zN)#f>KVmW4n#!!DS}KZYqVAry5B_!$fwm!*_ZSYnWhnF(2PbM=1GqQtdWZugbdZFq zB@AEUgYc=Zjao-y&LMsQZ41C1FeWd0M;I1lo&Sw1Gv9K>P&bQrhNQNgN#c$;D!jFI zF8N^pciF)n7f<2YWhM_?aS=_}&EX&&LCl-~oqKp{Vkw1_B)R`yHL}8#VQ%7r-#s|U+N4H`Bc&rFMKu9x=wW|F zi3CULagI~~K*5;zbE>UI2{6YYg-RU{7J(myAV60Ub(^rfP&5ytvfzNONm4h^z6=Q} zRkD5t<^C}OW&tc1c#=L*osfip<4oF} z7)6#24XSZWSJY2j%)C4#Y-96juv>RHr>=pI(K9Pt5{O)sg|%K7U|_A7*<0E5&}y)u zGN-sNF8)2$9?sU;EISleN0-`f=X;^1G-pbfx?SNybdgnU-?$KVeNB|V zx;e#YKJ(q3yyA^@ z!@X;VZU7@E{SIE*Y_HR*)v+lf7mT#(&(I(RjI5uRh1RanB+VOO?$Y^dpFts`IXrz& zFj9a%OB2ssC5xf+v>H!YWRmZ*HaCZ3ADuf3{?nDRqgcY%Ia>M)9&v%d;Vcz0R$SK@H++_CkKCdSmzJVXc`* zjWoy6zYgrmPP{1up?{E?v@_|H$r8V<_oPGN$I;ExTSyvBIB`LG{22A~szzX=aMjDS z?q}|s8A#nuk_@;IE<+C%JP=BQsEgMdhs>|4t8(JfGeFAJYOr8u7pn}=r@@8lGw(+& zr|d~&^8!$U^T)^*0SnE%4OG#y0qRupo`w__umd_(5C6b$jO{9{y(BGXvF~%6bt~aV zI|IQj9E3NAIr<(A(43tF%2!C9bku)wdnHvTXUG(CGxJ;tdfpLfk4~w)RapWK9pkV= z^pEeWAJ97jnt48BgD~2?<+u_`N1x73{e3y*EL7S}S?Yc^9xt*J(*;trVjO@nfd z7JaCISW36kziu9hF29Y3pN|$eM{s@eaQSQD`67jyUxy21^5oNleFsm@jVa;JOjzE9 z=ysJ4@0Gnw8^$TG+pMp${6LC$?T1`5snA_zDQS&rF2oCh{AUuOGyVB`zo1d8o!OyG z?M(h}ochn`zfg>s<-ao-BOA;An8|WAq@B0e5PHAV9lR)6kqL)`>&ntuYPNXbBh8&0 zn2;laNLEn}5>#-`*4)vdl}cpD<>-k5KwlpW9}EjA*1;6--!zZ={B?48`P4o8Ij4>^ zK+v-ZP-)~A2?FWmpZ1M#b;9OsdJ=fPgZRO+h_0oy+oI#q>GAT-0pm6BPH@!42b4r; zW>IOo*E2_yPKmw|Mi$iFpz-B^JN4vAqGdv_w-k42MbLKj=+o{WxHg9>SwXeR{9={i zyuWo9y32fNr z72UFg`ge68NGzvES(dM9eCZbkF~PAF=WT$kx_`c4V0wIBW+A_PLkr_$)H-PU!-9hd z9JKB}*#h_f?OeH)qTjO8+C-Oi-;TCZ_uOgxKCN6mahF-9MvF+H+D*}86jWIHoU~?&)PT28xQY^YT2u!=x$QA=&E~|< zG0SVvC0Bgeo6Yj7(?l}gPs}((0_YT0VXM^c#Jw6n7Y;YsZg~1zw!7@Qm|0^5u%v3f zyU2-e;Q^du`h(WXBaQSBzvNWqKo)TE51l}k>%f8^oEzI-ZQ8u73p2hZm~DV*62=WV zF~=K>dJKDe!vn!Pn^mX`g5(SN?_{hd0LNQ^FZgesFYLpt%y}>s3pL2Vvb_VV(0C?=^&OBG%5VDT&F^P-Xp|W7$a~Xn;g1B3DO2tb zj^ed)d!PG!D&uiZn+=_`vx;-~9eqp;&eaD=pYOC#aV8tB+ss-}i%x2S?aI79`Xow9 z;4PJE89_A3zgvdpC-bWF!eU>M!9?2Bn->E|VLk z0dmm*CfvqyfjMHukR7PG1y;=a%)xNDn1CT@65#av2e$c1KW6`K4z~`$`tGb( zHd1sDM#4u90lIX(j;siY*kcepz#urLL{n1m5i{jCt+%hng4O8~3AIsa^8-`Qat5gf ziHbvi zSJlM6$ww9!AmRi#B!P$aQ?)Z+qDP}qy%_TKDunK$IxBc81gP&{0j*Ri9BKycaTsjK`1rpzh(tXfNdHSDb8Q$tC*E!1&>H z>HsU^hTP$=Df4gM*C*vvc~4T|p}pTrt=c?1D`UE<+4%a?^84nWvi5R3sx@3`bY{?P z>5UGJl^FD=u_Nj!%VLe?ZR(0LL!4%4UWyBy@{$e$0%G#}^fLjK8zu=A*w#YYfQ{N# zI13;3XJ1boAuO?*F-nS|Tk`kt0Aoddic%ug0MiyR~^Bp&0x~Pk8`U7z4ulo7# zFBb>re}B0+nOOg~nLzOW?(O~j1ll1e+PkW@UQUqg@oHiDPROOy0VR1R61mmnH0s! z0E>!tghR&1pM3Xvq!tG=eBTZr6m5Calrgojzc$+)fv$Z-wo5uH8!PAI%~EAvR>U#4 znvAje4FIROReteffNZ_jZ=-F)k*reWsXjmx-{>x%Cl*!Y{Ns5JE5WS=3IXL$Sh}Ry zG=+af{N{ttnJzSDT&eaZq)t9}YxR1|OzEQU8YYt|Ir1@iM3d>-K5;Z#{WkPwupv1qFhfo9Y z4})%kADu>;9;41C^c%)YQD1sjxKk>3+`}D$RH|;OOFV<2GR;@9y;ZbCc}kARiO)DQ z0t^tJn!qv>gj5>%_N|>X$uU@#b+4_9!ho(9DOJAEeJ&bcHdl5`LI*>^6BvI^Y_Vpn zK}iyLSlx;(ogO+CAU^Qr)=H9^W>yl4Z6_rf8U(AqH)Fk*CV4&Ap$V4^A}q|a$Ddho zql?{aBRiBmfFG{KrF*kyfJ_O-gJOJmNINlD3shv@Lv!SGXw=!UM-ZRg%|f#i^dJKC zxfb#M`?Ye_iv@8u&9ck(Pl17I5RlREm~E%>#Sf)9Z?Y)%fE=4?{w{;c=oWCDq$R6s z6~-kSVNpLRI1-KlY07li^lSv=+n_m^#~k1Dlqz;VQ~fhGn6)!~?4dbvB74dNn_TIc zTyd(j`D4Q9!(bD5^K6}$^zwD{^R$k9?TG10-ldM|Tq#T;oEE^Mz&Q_@fBoI;!YAYQ z2Pi#81^(~B&dB`#5$((@9E|@{@9;)P)A?u=(QmCzKo6(VEppm-U9oZ%yAJoPT&lXV z#Ht4#0hIRQUL&|feX>q|4hF!ee^fA1Yb&)If`H-r;^OHluTbKVk8olQy`tEYuP+CRmb^>0-H&~5x=FYFk4C4K9yZ^k zs`~xS=;j>ginN0Aq#`A7cZ#ynE4hRiQQCbXg7va%hj zcs0UdKh2527lU<5h@`6t0iQ!g10#inCz@VMyWLd50B)@qbudt)i|Mv%!Z4cY*)!VIw|D^z@BmZ5C>Ha_7e~>K|d9s4mD9z zg!w{+Is!IUQN5hNatVmis`R%N>ygt;U#kS`*+B!naOE%n6l_un?AcCvbW-5OssohX zBuBR~ zxqh?$ma%LAhXpy%ns=1&xn3B@OoXB$#SxQpI7M1*!%7CmsinYpDFzQyUr&L@z{x7# zIuHi!9Z0@pS8#Gbp9nex5KC2FM&k1=R#A75saU1P-%PSwtUdhQ?1e+JoH40?M$9F1 z<}CzaxEaO7dL^oiEG_BudxHlYNC2HToiWlgMWoo0_BfU7@5%>koP!!|D!jiRv6AZ^ zt(fzTgjyK81ftLtXOk-83;_k`0mr9;Fb^BJ{z}7g`CKJ{;2##iBtigUF#rrF=AZ)3 z6_yw=2=gQg7|Xv=k4CGbcnK3jE^wUVf|{$e8gUyyLcQQ1>JT9o1AyW2GjK+ll~EQ! zm?41}DO6h2*U=RdZwA@%g=`{llL1@EKiPWCa%d`(1H9B;!12Kzi2cDn3(qj>m(|-S zH1=CY6chzdjw^7f6LlaL2YdTLp05{MKkPi4H~cbFPheGI4S{1TQvH!zQwLIwh0acG zo2g1O>^zp8#!)-F{;Ln8JWjX9`wv@osbZlP!>lngOZ8McfQK}-uNC>)`PXkrtY~tS z{aZ(OK)KYWPN^yXPT`wKf$HkOQQSQBVZi%5kUx?eTH4)W0!4f)fjV%ao|J<|-}T!^ z)pqw>NPk-Zt+x*Yx0acKrA3|n+VM6+3BIjRas{GrJmA0p^%o2(>j|l?@d3S;l13C3 zkteeVwB&f_{_T4^z10x_)wVrks>j9A{#&Z1s)o8hoBxgN_kvT4=A*=@x9GZB zdOw;cXju%D_jI3wWgJkEq9WR(DXer1rDIdc)xQhM1-aCA)u+_uIRpSGpDM> z>Ih3fVaq?EoAS`8RiS({Dx2zxSD6h<~Vf-^)bNDB@OVX06}aa!H-j!K5P(Rt|A$BK?eR5 zNJhGBC_6y%jv~lPGF7a>DtG`=906@Qf9;?xYzh!mf=#2u8>w=xH;oz`&F(q&Dj)TB zzZ`GRHvPHIB<^6&((>X_?B#0+6yO;yH3RBYz9d#L-8t$AZNc5G?ZD)gvHAOVvVN=( zYKS}ph7xKRR+NO(ifP_j=>%Uu*1*Mn@=hHy>mI+rC8i>_CQV7}u$5&7YM;^tEwXhv zbdSCmtofm)-Sj5Df-*=@W_~dFe0@S1r+Z6cWPzHNE8dFhbjrYv;zs`$(69snw$=I9 zQ_*gO`C5k=nb{M{O;O|$wNDT3LR>wNXd1iF&C;#&iUeFCvZ(qqYn0uB)jF834z(2_ zRH#Kl3<&TUYuc~JFs6zmrdjL;VU=bb+EO{i9~gMVm^cKav5;k}MhyUKV$?Bho)#|g zIC8j&M7Yt=(eecrdxSg$vH;l;g@$yzWN(L*|6mvtkG9UeT*I-tO zG9Au;OS^_za$}`6xp0GRHij)0oxqf7P-R}+v70S0N_wVu=(xFsV%UxfV(=bQ;?e)2 zBm{zp%@Y-5FEj+2T@eDm;C=*!`tG=_94togbh=tlAy0&{V~00F1_rYv10uwjTfy>% z#ZCFku7w|adym-H>?s=guj}zFMrMqrXpO|neMr8i?<(om44j|h{Xed-U6SVMT}OcB zfoGnbs6qgaGu3e$p@LR(>xueyz*%&1DK$H4xBN0)Sz}p1;K+J(p9d9CRmp&Y#V2uT zitOquPzJbSg4;!i3-L_Mfs0%6cb*r3+zYEkrCTpsmOuNaW&KsHc`R&3+t#njLB7FL zGMofeUy1+`aIXM?St%hwgDp_5n~&O|ZOy*oig=*pioFDOn5iPNznd}f9YUz$6ektw zaaoqev)j=G!P0UoN5Dar1m{Z(YR%`3WG~aJMIUsuVvI%SiAoTi`&(mNhu}4oytCZwCVLnW+F-(oV-I&uXaZ0s zX^{3lu?XQa2zDIJ1Gr`9INvq2lj5|FO)^LTr4;Kf0x&#~r4%19C`4KJ$u2i%MbGQ$lc7$jXrKPA;fv}55nsJ`j-;bhS z#4f^3*|2X7lq68KE(PTa;~i3qm8u%X(FZ&&VY@~E$IX9Z&H+m9M7D@ROfrGC7Qtn> zJl`5O&1)TAhluod?H=-K-M&O7^Z62Te(+`TF=e17RAk7Pg{lvqB@H@>Obh5tp4DN> zE&zb`U(>Isyo2J%sOQQHnJ5QrE9>*KH`uL=^RDQH$!R_WEy0ZbJK zHTe`UM7GL~+&HR^UFqUGnlBmv^)2uw{t?jvQP$lE{uN{uoDqkY>c>YGy&_G zyhKh!e%K_qGX)zT!l&Ujq+#$Dy2YK+0qjZA;vF3Z0+aE;>m*rmd4}ul$j$Al0$Ovo z2~hVOH{|2E&|+a(!~UU6#USUF9UgB!I5)eY3=3+d2icTH4iQFaa*%nc#QV^ob?LfV zum~5jhbR;O*mV)U;+RvePi$qM@kl!|9o`Dw#d8umqWV3oW-586(8x<2-T)~|e%a*G zEv%JT<3tDSHS_ODRJ?TFBDRNgP~1&;vC<-$rarChM zWvT*+F7Rv%lQe$JZ0p%u68UdkU+T-5bfv%i5%wopyF?Jnk<*3(cFpL!GIO>c$WJ!+ z_KL=fiTqXU<8gi!Jdaewi|^OdbHunp!b}Bv} zAK}m#k3(}0x|Dn#k3fH7@qK^Y>$B5;se#`aXrW

Ydkpq2 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 DIZQjI literal 0 HcmV?d00001 diff --git a/KLSadd_insertion/KLSadd.tex b/KLSadd_insertion/KLSadd.tex new file mode 100644 index 0000000..e8de6df --- /dev/null +++ b/KLSadd_insertion/KLSadd.tex @@ -0,0 +1,2637 @@ +%until 185 +\documentclass[twoside,11pt]{article} +\usepackage[pdftex]{hyperref} +\hypersetup{ + colorlinks = true, + allcolors = {red}, +} +\usepackage{color} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{xparse} +\usepackage{cite} +\renewcommand\citeform[1]{K#1} +\setlength{\textwidth}{16cm} +\setlength{\textheight}{21cm} +\setlength{\topmargin}{0cm} +\setlength{\oddsidemargin}{0.2mm} +\setlength{\evensidemargin}{0.2mm} + +\newcommand\sa{\smallskipamount} +\newcommand\sLP{\\[\sa]} +\newcommand\sPP{\\[\sa]\indent} +\newcommand\ba{\bigskipamount} +\newcommand\bLP{\\[\ba]} +\newcommand\CC{\mathbb{C}} +\newcommand\RR{\mathbb{R}} +\newcommand\ZZ{\mathbb{Z}} +\newcommand\al\alpha +\newcommand\be\beta +\newcommand\ga\gamma +\newcommand\de\delta +\newcommand\tha\theta +\newcommand\la\lambda +\newcommand\om\omega +\newcommand\Ga{\Gamma} +\newcommand\half{\frac12} +\newcommand\thalf{\tfrac12} +\newcommand\iy\infty +\newcommand\wt{\widetilde} +\newcommand\const{{\rm const.}\,} +\newcommand\Zpos{\ZZ_{>0}} +\newcommand\Znonneg{\ZZ_{\ge0}} +\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} +\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} +\newcommand\LHS{left-hand side} +\newcommand\RHS{right-hand side} +\renewcommand\Re{{\rm Re}\,} +\renewcommand\Im{{\rm Im}\,} + +\NewDocumentCommand\mycite{m g}{% + \IfNoValueTF{#2} + {[\hyperlink{#1}{#1}]} + {[\hyperlink{#1}{#1}, #2]}% +} +\newcommand\mybibitem[1]{\bibitem[#1]{#1}\hypertarget{#1}{}} + +%\NewDocumentCommand{\myciteKLS}{m g}{% +% \IfNoValueTF{#2} +% {\hyperlink{KLS#1}{[#1]}} +% {\hyperlink{KLS#1}{[#1, #2]}}% +%} +\NewDocumentCommand{\myciteKLS}{m g}{% + \IfNoValueTF{#2} + {[\hyperlink{KLS#1}{#1}]} + {[\hyperlink{KLS#1}{#1}, #2]}% +} +\newcommand\mybibitemKLS[1]{\bibitem[#1]{#1}\hypertarget{KLS#1}{}} + +\begin{document} + +\title{Additions to the formula lists in +``Hypergeometric orthogonal polynomials and their $q$-analogues'' +by Koekoek, Lesky and Swarttouw} +\author{Tom H. Koornwinder} +\date{June 19, 2015} +\maketitle +\begin{abstract} +This report gives a rather arbitrary choice of formulas for +($q$-)hypergeometric orthogonal polynomials which the author missed +while consulting Chapters 9 and 14 in the book +``Hypergeometric orthogonal polynomials and their $q$-analogues'' +by Koekoek, Lesky and Swarttouw. The systematics of these chapters will be followed +here, in particular for the numbering of subsections and of references. +\end{abstract} +% +\subsection*{Introduction} +\label{sec_intro} +This report contains some formulas about ($q$-)hypergeometric +orthogonal polynomials which I missed but wanted to use +while consulting Chapters 9 and 14 in the book \mycite{KLS}: +\sLP +R. Koekoek, P.~A. Lesky and R.~F. Swarttouw, +{\em Hypergeometric orthogonal polynomials and their $q$-analogues}, +Springer-Verlag, 2010. +\sLP +These chapters form together the (slightly extended) successor of the report +\sLP +R.~Koekoek and R.~F. Swarttouw, +{\em The Askey-scheme of hypergeometric orthogonal +polynomials and its $q$-analogue}, +Report 98-17, Faculty of Technical Mathematics and Informatics, +Delft University of Technology, 1998; +\url{http://aw.twi.tudelft.nl/~koekoek/askey/}. +\sPP +Certainly these chapters give complete lists of formulas of special type, for instance +orthogonality relations and three-term recurrence relations. But outside these narrow +categories there are many other +formulas for ($q$-)orthogonal polynomials which one wants to have available. +Often one can find the desired formula in one of the +\hyperref[sec_ref1]{standard references} listed at the end of this report. +Sometimes it is only available in a journal or a less common monograph. +Just for my own comfort, I have brought together some of these formulas. +This will possibly also be helpful for some other users. + +Usually, any type of formula I give for a special class of polynomials, will suggest +a similar formula for many other classes, but I have not aimed at completeness +by filling in a formula of such type at all places. The resulting choice of formulas is +rather arbitrary, just depending on the formulas which I happened to need or which raised my interest. +For each formula I give a suitable reference or I sketch a +proof. +It is my intention to gradually extend this collection of formulas. +% +\subsection*{Conventions} +\label{sec_conv} +The (x.y) and (x.y.z) type subsection numbers, the +(x.y.z) type formula numbers, and the [x] type citation numbers +refer to \mycite{KLS}. +The (x) type formula numbers refer to this manuscript and the [Kx] type citation numbers refer to citations which are not in \mycite{KLS}. +Some standard references like \mycite{DLMF} +are given by special acronyms. + +$N$ is always a positive integer. Always assume $n$ to be a nonnegative +integer or, if $N$ is present, to be in $\{0,1,\ldots,N\}$. +Throughout assume $00$ and $0\le\frac{4xy}{(1-x-y)^2}<1$. +% +\paragraph{$q$-Hypergeometric series of base $q^{-1}$} +By \mycite{GR}{Exercise 1.4(i)}: +\begin{equation} +\qhyp rs{a_1,\ldots,a_r}{b_1,\ldots b_s}{q^{-1},z} +=\qhyp{s+1}s{a_1^{-1},\ldots a_r^{-1},0,\ldots,0} +{b_1^{-1},\ldots,b_s^{-1}}{q,\frac{qa_1\ldots a_rz}{b_1\ldots b_s}} +\label{154} +\end{equation} +for $r\le s+1$, $a_1,\ldots,a_r,b_1,\ldots,b_s\ne0$. +In the non-terminating case, for $00$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ +Thus, under these assumptions, the continuous Hahn polynomial +$p_n(x;a,b,c,d)$ +is symmetric in $a,b$ and in $c,d$. +This follows from the orthogonality relation (9.4.2) +together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ +As a consequence, it is sufficient to give generating function (9.4.11). Then the generating +function (9.4.12) will follow by symmetry in the parameters. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special cases} +In the following special case there is a reduction to +Meixner-Pollaczek: +\begin{equation} +p_n(x;a,a+\thalf,a,a+\thalf)= +\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). +\end{equation} +See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the +Meixner-Pollaczek polynonmials are defined different from (9.7.1), +without a constant factor in front). + +For $0\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. +\end{split} +\label{122} +\end{equation} + +% +\paragraph{Symmetry} +\begin{equation} +P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). +\label{48} +\end{equation} +Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Special values} +\begin{equation} +P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad +P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad +\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{50} +\end{equation} +Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Generating functions} +Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. +% +\paragraph{Bilateral generating functions} +For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): +\begin{align} +&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac1{(1+r)^{\al+\be+1}} +\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), +\label{58}\sLP +&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} +\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). +\label{59} +\end{align} +Formulas \eqref{58} and \eqref{59} were first +given by Bailey \myciteKLS{91}{(2.1), (2.3)}. +See Stanton \myciteKLS{485} for a shorter proof. +(However, in the second line of +\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ +As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows +from \eqref{58} +by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ +to both sides of \eqref{58}. +In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi +polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. +See also the discussion in Askey \myciteKLS{46}{following (2.32)}. +% +\paragraph{Quadratic transformations} +\begin{align} +\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} +=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} +&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, +\label{51}\\ +\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} +=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} +&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. +\label{52} +\end{align} +See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. +Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\begin{split} +\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= +-(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ +\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= +-(n+\al)\,P_n^{(\al-1,\be+1)}(x). +\end{split} +\label{68} +\end{equation} +% +\begin{equation} +\begin{split} +\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= +(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ +\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= +(n+\be)\,P_n^{(\al+1,\be-1)}(x). +\end{split} +\label{69} +\end{equation} +Formulas \eqref{68} and \eqref{69} follow from +\mycite{DLMF}{(15.5.4), (15.5.6)} +together with (9.8.1). They also follow from each other by \eqref{48}. +% +\paragraph{Generalized Gegenbauer polynomials} +These are defined by +\begin{equation} +S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad +S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{70} +\end{equation} +in the notation of \myciteKLS{146}{p.156} +(see also \cite{K27}), while \cite[Section 1.5.2]{K26} +has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. +For $\al,\be>-1$ we have the orthogonality relation +\begin{equation} +\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx +=0\qquad(m\ne n). +\label{71} +\end{equation} +For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of +continuous $q$-ultraspherical polynomials, see \eqref{176}. + +If we define the {\em Dunkl operator} $T_\mu$ by +\begin{equation} +(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x +\label{72} +\end{equation} +and if we choose the constants in \eqref{70} as +\begin{equation} +S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad +S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, +x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{73} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. +\label{74} +\end{equation} +Formula \eqref{74} with \eqref{73} substituted gives rise to two +differentiation formulas involving Jacobi polynomials which are equivalent to +(9.8.7) and \eqref{69}. + +Composition of \eqref{74} with itself gives +\[ +T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, +\] +which is equivalent to the composition of (9.8.7) and \eqref{69}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) +=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). +\label{75} +\end{equation} +Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. +% +\subsection*{9.8.1 Gegenbauer / Ultraspherical} +\label{sec9.8.1} +% +\paragraph{Notation} +Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\frac{h_n}{h_0}= +\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad +h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad +\frac{h_n}{h_0\,(C_n^\la(1))^2}= +\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. +\label{61} +\end{equation} +% +\paragraph{Hypergeometric representation} +Beside (9.8.19) we have also +\begin{equation} +C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} +{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} +=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, +\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. +\label{57} +\end{equation} +See \mycite{DLMF}{(18.5.10)}. +% +\paragraph{Special value} +\begin{equation} +C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. +\label{49} +\end{equation} +Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Expression in terms of Jacobi} +% +\begin{equation} +\frac{C_n^\la(x)}{C_n^\la(1)}= +\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad +C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). +\label{65} +\end{equation} +% +\paragraph{Re: (9.8.21)} +By iteration of recurrence relation (9.8.21): +\begin{multline} +x^2 C_n^\la(x)= +\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ +\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ ++\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). +\label{6} +\end{multline} +% +\paragraph{Bilateral generating functions} +\begin{multline} +\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ +(r\in(-1,1),\;x,y\in[-1,1]). +\label{66} +\end{multline} +For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. +The Poisson kernel for Gegenbauer polynomials can be derived in a similar way +from \eqref{59}, or alternatively by applying the operator +$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: +\begin{multline} +\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ +\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad +(r\in(-1,1),\;x,y\in[-1,1]). +\label{67} +\end{multline} +Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} +as a limit case of their formula for the Poisson kernel for continuous +$q$-ultraspherical polynomials. +% +\paragraph{Trigonometric expansions} +By \mycite{DLMF}{(18.5.11), (15.8.1)}: +\begin{align} +C_n^{\la}(\cos\tha) +&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} +=e^{in\tha}\frac{(\la)_n}{n!}\, +\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ +&=\frac{(\la)_n}{2^\la n!}\, +e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, +\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ +&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, +\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} +\end{align} +In \eqref{104} and \eqref{105} we require that +$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ +and conditional for $0<\la\le\thalf$. + +By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: +\begin{align} +C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, +\sin\big((2k+n+1)\tha\big) +\label{7}\\ +&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ +&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, +\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, +\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ +&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, +\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, +\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. +\label{106} +\end{align} +We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in +\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for +$0<\la\le\thalf$. +For $\la\in\Zpos$ the above series terminate after the term with +$k=\la-1$. +Formulas \eqref{7} and \eqref{106} are also given in +\mycite{Sz}{(4.9.22), (4.9.25)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, +\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, +e^{ixy}\,dy +=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). +\label{8} +\end{equation} +See \mycite{DLMF}{(18.17.17) and (18.17.18)}. +% +\paragraph{Laplace transforms} +\begin{equation} +\frac2{n!\,\Ga(\la)}\, +\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). +\label{56} +\end{equation} +See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) +or Feldheim \cite[(28)]{K3} (1942). +\begin{equation} +\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, +(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt +=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). +\label{46} +\end{equation} +Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with +\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. +\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) +\begin{multline} +R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) +=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ +\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, +\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), +\label{108} +\end{multline} +where +\[ +R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad +\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} +{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. +\] +% +\subsection*{9.8.2 Chebyshev} +\label{sec9.8.2} +In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) +and $U_n$ of the second kind (9.8.36), +\begin{align} +T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} +=\cos(n\tha),\quad x=\cos\tha,\\ +U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} +=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, +\end{align} +we have Chebyshev polynomials $V_n$ {\em of the third kind} +and $W_n$ {\em of the fourth kind}, +\begin{align} +V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} +=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ +W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} +=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, +\end{align} +see \cite[Section 1.2.3]{K20}. Then there is the symmetry +\begin{equation} +V_n(-x)=(-1)^n W_n(x). +\label{140} +\end{equation} + +The names of Chebyshev polynomials of the third and fourth kind +and the notation $V_n(x)$ are due to Gautschi \cite{K21}. +The notation $W_n(x)$ was first used by Mason \cite{K22}. +Names and notations for Chebyshev polynomials of the third and fourth +kind are interchanged in \mycite{AAR}{Remark 2.5.3} and +\mycite{DLMF}{Table 18.3.1}. +% +\subsection*{9.9 Pseudo Jacobi (or Routh-Romanovski)} +\label{sec9.9} +In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) +is considered +for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take +$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). +\] +Then $P_n$ can be expressed as a Meixner polynomial: +\[ +P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, +M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). +\] + +In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' +which turn out to be special Meixner polynomials: +$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\subsection*{9.11 Krawtchouk} +\label{sec9.11} +% +\paragraph{Special values} +By (9.11.1) and the binomial formula: +\begin{equation} +K_n(0;p,N)=1,\qquad +K_n(N;p,N)=(1-p^{-1})^n. +\label{9} +\end{equation} +The self-duality (p.240, Remarks, first formula) +\begin{equation} +K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) +\label{147} +\end{equation} +combined with \eqref{9} yields: +\begin{equation} +K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). +\label{148} +\end{equation} +% +\paragraph{Symmetry} +By the orthogonality relation (9.11.2): +\begin{equation} +\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). +\label{10} +\end{equation} +By \eqref{10} and \eqref{147} we have also +\begin{equation} +\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) +\qquad(n,x\in\{0,1,\ldots,N\}), +\label{149} +\end{equation} +and, by \eqref{149}, \eqref{10} and \eqref{9}, +\begin{equation} +K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) +\qquad(n,x\in\{0,1,\ldots,N\}). +\label{150} +\end{equation} +A particular case of \eqref{10} is: +\begin{equation} +K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). +\label{11} +\end{equation} +Hence +\begin{equation} +K_{2m+1}(N;\thalf,2N)=0. +\label{12} +\end{equation} +From (9.11.11): +\begin{equation} +K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. +\label{13} +\end{equation} +% +\paragraph{Quadratic transformations} +\begin{align} +K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, +R_m(x^2;-\thalf,-\thalf,N), +\label{31}\\ +K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, +x\,R_m(x^2-1;\thalf,\thalf,N-1), +\label{33}\\ +K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, +R_m(x(x+1);-\thalf,\thalf,N), +\label{32}\\ +K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, +(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), +\label{34} +\end{align} +where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use +(9.6.2), (9.11.2), (9.6.4) and (9.11.4). +% +\paragraph{Generating functions} +\begin{multline} +\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ +=\left(\frac{p-z+pz}p\right)^m +\left(\frac{q-z+qz}q\right)^n +(1+z)^{N-m-n} +K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). +\label{107} +\end{multline} +This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back +to Meixner \cite{K9}. +% +\subsection*{9.12 Laguerre} +\label{sec9.12} +\paragraph{Notation} +Here the Laguerre polynomial is denoted by $L_n^\al$ instead of +$L_n^{(\al)}$. +% +\paragraph{Hypergeometric representation} +\begin{align} +L_n^\al(x)&= +\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x +\label{182}\\ +&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} +\label{183}\\ +&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), +\label{184} +\end{align} +where $C_n$ in \eqref{184} is a +\hyperref[sec9.14]{Charlier polynomial}. +Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal +of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. +It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially +\myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special value} +\begin{equation} +L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. +\label{53} +\end{equation} +Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. +% +\paragraph{Quadratic transformations} +\begin{align} +H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), +\label{54}\\ +H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). +\label{55} +\end{align} +See p.244, Remarks, last two formulas. +Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, +e^{-y}\,y^\al\,e^{ixy}\,dy= +i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, +\label{14} +\end{equation} +see \mycite{DLMF}{(18.17.34)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\frac d{dx}\left(x^\al L_n^\al(x)\right)= +(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad +\left(x\frac d{dx}+\al\right)L_n^\al(x)= +(n+\al)\,L_n^{\al-1}(x). +\label{76} +\end{equation} +% +\begin{equation} +\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= +-e^{-x} L_n^{\al+1}(x),\qquad +\left(\frac d{dx}-1\right)L_n^\al(x)= +-L_n^{\al+1}(x). +\label{77} +\end{equation} +% +Formulas \eqref{76} and \eqref{77} follow from +\mycite{DLMF}{(13.3.18), (13.3.20)} +together with (9.12.1). +% +\paragraph{Generalized Hermite polynomials} +See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. +These are defined by +\begin{equation} +H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). +\label{78} +\end{equation} +Then for $\mu>-\thalf$ we have orthogonality relation +\begin{equation} +\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx +=0\qquad(m\ne n). +\label{79} +\end{equation} +Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. +If we choose the constants in \eqref{78} as +\begin{equation} +H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, + x\,L_m^{\mu+\half}(x^2) + \label{80} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_\mu H_n^\mu=2n\,H_{n-1}^\mu. +\label{81} +\end{equation} +Formula \eqref{81} with \eqref{80} substituted gives rise to two +differentiation formulas involving Laguerre polynomials which are equivalent to +(9.12.6) and \eqref{76}. + +Composition of \eqref{81} with itself gives +\[ +T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, +\] +which is equivalent to the composition of (9.12.6) and \eqref{76}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) +=-4(n+\al)\,L_{n-1}^\al(x^2). +\label{82} +\end{equation} +% +\subsection*{9.14 Charlier} +\label{sec9.14} +% +\paragraph{Hypergeometric representation} +\begin{align} +C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} +\label{179}\\ +&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a +\label{180}\\ +&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), +\label{181} +\end{align} +where $L_n^\al(x)$ is a +\hyperref[sec9.12]{Laguerre polynomial}. +Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal +of the summation. Finally \eqref{181} follows by \eqref{180} and +(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it +was earlier given in \myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\subsection*{9.15 Hermite} +\label{sec9.15} +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Fourier transforms} +\begin{equation} +\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= +i^n\,H_n(x)\,e^{-\half x^2}, +\label{15} +\end{equation} +see \mycite{AAR}{(6.1.15) and Exercise 6.11}. +\begin{equation} +\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= +i^n\,x^n\,e^{-\frac14 x^2}, +\label{16} +\end{equation} +see \mycite{DLMF}{(18.17.35)}. +\begin{equation} +\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= +H_n(x)\,e^{-x^2}, +\label{17} +\end{equation} +see \mycite{AAR}{(6.1.4)}. +% +\subsection*{14.1 Askey-Wilson} +\label{sec14.1} +% +\paragraph{Symmetry} +The Askey-Wilson polynomials $p_n(x;a,b,c,d\,|\,q)$ are \,|\,symmetric +in $a,b,c,d$. +\sLP +This follows from the orthogonality relation (14.1.2) +together with the value of its coefficient of $x^n$ given in (14.1.5b). +Alternatively, combine (14.1.1) with \mycite{GR}{(III.15)}.\\ +As a consequence, it is sufficient to give generating function (14.1.13). Then the generating +functions (14.1.14), (14.1.15) will follow by symmetry in the parameters. +% +\paragraph{Basic hypergeometric representation} +In addition to (14.1.1) we have (in notation \eqref{111}): +\begin{multline} +p_n(\cos\tha;a,b,c,d\,|\, q) +=\frac{(ae^{-i\tha},be^{-i\tha},ce^{-i\tha},de^{-i\tha};q)_n} +{(e^{-2i\tha};q)_n}\,e^{in\tha}\\ +\times {}_8W_7\big(q^{-n}e^{2i\tha};ae^{i\tha},be^{i\tha}, +ce^{i\tha},de^{i\tha},q^{-n};q,q^{2-n}/(abcd)\big). +\label{113} +\end{multline} +This follows from (14.1.1) by combining (III.15) and (III.19) in +\mycite{GR}. +It is also given in \myciteKLS{513}{(4.2)}, but be aware for some slight errors. +The symmetry in $a,b,c,d$ is evident from \eqref{113}. +% +\paragraph{Special value} +\begin{equation} +p_n\big(\thalf(a+a^{-1});a,b,c,d\,|\, q\big)=a^{-n}\,(ab,ac,ad;q)_n\,, +\label{40} +\end{equation} +and similarly for arguments $\thalf(b+b^{-1})$, $\thalf(c+c^{-1})$ and +$\thalf(d+d^{-1})$ by symmetry of $p_n$ in $a,b,c,d$. +% +\paragraph{Trivial symmetry} +\begin{equation} +p_n(-x;a,b,c,d\,|\, q)=(-1)^n p_n(x;-a,-b,-c,-d\,|\, q). +\label{41} +\end{equation} +Both \eqref{40} and \eqref{41} are obtained from (14.1.1). +% +\paragraph{Re: (14.1.5)} +Let +\begin{equation} +p_n(x):=\frac{p_n(x;a,b,c,d\,|\, q)}{2^n(abcdq^{n-1};q)_n}=x^n+\wt k_n x^{n-1} ++\cdots\;. +\label{18} +\end{equation} +Then +\begin{equation} +\wt k_n=-\frac{(1-q^n)(a+b+c+d-(abc+abd+acd+bcd)q^{n-1})} +{2(1-q)(1-abcdq^{2n-2})}\,. +\label{19} +\end{equation} +This follows because $\tilde k_n-\tilde k_{n+1}$ equals the coefficient +$\thalf\bigl(a+a^{-1}-(A_n+C_n)\bigr)$ of $p_n(x)$ in (14.1.5). +% +\paragraph{Generating functions} +Rahman \myciteKLS{449}{(4.1), (4.9)} gives: +\begin{align} +&\sum_{n=0}^\iy \frac{(abcdq^{-1};q)_n a^n}{(ab,ac,ad,q;q)_n}\,t^n\, +p_n(\cos\tha;a,b,c,d\,|\,q) +\nonumber\\ +&=\frac{(abcdtq^{-1};q)_\iy}{(t;q)_\iy}\, +\qhyp65{(abcdq^{-1})^\half,-(abcdq^{-1})^\half,(abcd)^\half, +-(abcd)^\half,a e^{i\tha},a e^{-i\tha}} +{ab,ac,ad,abcdtq^{-1},qt^{-1}}{q,q} +\nonumber\\ +&+\frac{(abcdq^{-1},abt,act,adt,ae^{i\tha},ae^{-i\tha};q)_\iy} +{(ab,ac,ad,t^{-1},ate^{i\tha},ate^{-i\tha};q)_\iy} +\nonumber\\ +&\times\qhyp65{t(abcdq^{-1})^\half,-t(abcdq^{-1})^\half,t(abcd)^\half, +-t(abcd)^\half,at e^{i\tha},at e^{-i\tha}} +{abt,act,adt,abcdt^2q^{-1},qt}{q,q}\quad(|t|<1). +\label{185} +\end{align} +In the limit \eqref{109} the first term on the \RHS\ of \eqref{185} +tends to the \LHS\ of (9.1.15), while the second term tends formally +to 0. The special case $ad=bc$ of \eqref{185} was earlier given in +\myciteKLS{236}{(4.1), (4.6)}. +% +\paragraph{Limit relations}\quad\sLP +{\bf Askey-Wilson $\longrightarrow$ Wilson}\\ +Instead of (14.1.21) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{equation} +\lim_{q\to1}\frac{p_n(1-\thalf x(1-q)^2;q^a,q^b,q^c,q^d\,|\, q)}{(1-q)^{3n}} +=W_n(x;a,b,c,d). +\label{109} +\end{equation} +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.4.4). +\bLP +{\bf Askey-Wilson $\longrightarrow$ Continuous Hahn}\\ +Instead of (14.4.15) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{multline} +\lim_{q\uparrow1} +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, +q^{\overline b} e^{-i\phi}\,|\, q\big)} +{(1-q)^{2n}}\\ +=(-2\sin\phi)^n\,n!\,p_n(x;a,b,\overline a,\overline b)\qquad +(0<\phi<\pi). +\label{177} +\end{multline} +Here the \RHS\ has a continuous Hahn polynomial (9.4.1). +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.1.5). +In fact, define the monic polynomial +\[ +\wt p_n(x):= +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, +q^{\overline b} e^{-i\phi}\,|\, q\big)} +{(-2(1-q)\sin\phi)^n\,(abcdq^{n-1};q)_n}\,. +\] +Then it follows from (14.1.5) that +\begin{equation*} +x\,\wt p_n(x)=\wt p_{n+1}(x) ++\frac{(1-q^a)e^{i\phi}+(1-q^{-a})e^{-i\phi}+\wt A_n+\wt C_n}{2(1-q)\sin\phi}\,\wt p_n(x)\\ ++\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), +\end{equation*} +where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by +$q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi},q^{\overline b} e^{-i\phi}$. +Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to +the recurrence equation (9.4.4) with $c=\overline a$, $d=\overline b$. +\bLP +{\bf Askey-Wilson $\longrightarrow$ Meixner-Pollaczek}\\ +Instead of (14.9.15) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{equation} +\lim_{q\uparrow1} +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; +q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(1-q)^n} +=n!\,P_n^{(\la)}(x;\pi-\phi)\quad +(0<\phi<\pi). +\label{178} +\end{equation} +Here the \RHS\ has a Meixner-Pollaczek polynomial (9.7.1). +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.7.4). +In fact, define the monic polynomial +\[ +\wt p_n(x):= +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; +q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(-2(1-q)\sin\phi)^n}\,. +\] +Then it follows from (14.1.5) that +\begin{equation*} +x\,\wt p_n(x)=\wt p_{n+1}(x) ++\frac{(1-q^\la)e^{i\phi}+(1-q^{-\la})e^{-i\phi}+\wt A_n+\wt C_n} +{2(1-q)\sin\phi}\,\wt p_n(x)\\ ++\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), +\end{equation*} +where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by +$q^\la e^{i\phi},0,q^\la e^{-i\phi},0$. +Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to +the recurrence equation (9.7.4). +% +\paragraph{References} +See also Koornwinder \cite{K7}. +% +\subsection*{14.2 $q$-Racah} +\label{sec14.2} +\paragraph{Symmetry} +\begin{equation} +R_n(x;\al,\be,q^{-N-1},\de\,|\, q) +=\frac{(\be q,\al\de^{-1}q;q)_n}{(\al q,\be\de q;q)_n}\,\de^n\, +R_n(\de^{-1}x;\be,\al,q^{-N-1},\de^{-1}\,|\, q). +\label{84} +\end{equation} +This follows from (14.2.1) combined with \mycite{GR}{(III.15)}. +\sLP +In particular, +\begin{equation} +R_n(x;\al,\be,q^{-N-1},-1\,|\, q) +=\frac{(\be q,-\al q;q)_n}{(\al q,-\be q;q)_n}\,(-1)^n\, +R_n(-x;\be,\al,q^{-N-1},-1\,|\, q), +\label{85} +\end{equation} +and +\begin{equation} +R_n(x;\al,\al,q^{-N-1},-1\,|\, q) +=(-1)^n\,R_n(-x;\al,\al,q^{-N-1},-1\,|\, q), +\label{86} +\end{equation} + +\paragraph{Trivial symmetry} +Clearly from (14.2.1): +\begin{equation} +R_n(x;\al,\be,\ga,\de\,|\, q)=R_n(x;\be\de,\al\de^{-1},\ga,\de\,|\, q) +=R_n(x;\ga,\al\be\ga^{-1},\al,\ga\de\al^{-1}\,|\, q). +\label{83} +\end{equation} +For $\al=q^{-N-1}$ this shows that the three cases +$\al q=q^{-N}$ or $\be\de q=q^{-N}$ or $\ga q=q^{-N}$ of (14.2.1) +are not essentially different. +% +\paragraph{Duality} +It follows from (14.2.1) that +\begin{equation} +R_n(q^{-y}+\ga\de q^{y+1};q^{-N-1},\be,\ga,\de\,|\, q) +=R_y(q^{-n}+\be q^{n-N};\ga,\de,q^{-N-1},\be\,|\, q)\quad +(n,y=0,1,\ldots,N). +\end{equation} +% +\subsection*{14.3 Continuous dual $q$-Hahn} +\label{sec14.3} +The continuous dual $q$-Hahn polynomials are the special case $d=0$ of the +Askey-Wilson polynomials: +\[ +p_n(x;a,b,c\,|\, q):=p_n(x;a,b,c,0\,|\, q). +\] +Hence all formulas in \S14.3 are specializations for $d=0$ of formulas in \S14.1. +% +\subsection*{14.4 Continuous $q$-Hahn} +\label{sec14.4} +The continuous $q$-Hahn polynomials are the special case +of Askey-Wilson polynomials with parameters +$a e^{i\phi},b e^{i\phi},a e^{-i\phi},b e^{-i\phi}$: +\[ +p_n(x;a,b,\phi\,|\, q):= +p_n(x;a e^{i\phi},b e^{i\phi},a e^{-i\phi},b e^{-i\phi}\,|\, q). +\] +In \myciteKLS{72}{(4.29)} and \mycite{GR}{(7.5.43)} +(who write $p_n(x;a,b\,|\,q)$, $x=\cos(\tha+\phi)$) +and in \mycite{KLS}{\S14.4} (who writes $p_n(x;a,b,c,d;q)$, +$x=\cos(\tha+\phi)$) +the parameter +dependence on $\phi$ is incorrectly omitted. + +Since all formulas in \S14.4 are specializations of formulas in \S14.1, +there is no real need to give these specializations explicitly. +In particular, the limit (14.4.15) is in fact a limit from Askey-Wilson to +continuous $q$-Hahn. See also \eqref{177}. +% +\subsection*{14.5 Big $q$-Jacobi} +\label{sec14.5} +% +\paragraph{Different notation} +See p.442, Remarks: +\begin{equation} +P_n(x;a,b,c,d;q):=P_n(qac^{-1}x;a,b,-ac^{-1}d;q) +=\qhyp32{q^{-n},q^{n+1}ab,qac^{-1}x}{qa,-qac^{-1}d}{q,q}. +\label{123} +\end{equation} +Furthermore, +\begin{equation} +P_n(x;a,b,c,d;q)=P_n(\la x;a,b,\la c,\la d;q), +\label{141} +\end{equation} +\begin{equation} +P_n(x;a,b,c;q)=P_n(-q^{-1}c^{-1}x;a,b,-ac^{-1},1;q) +\label{142} +\end{equation} +% +\paragraph{Orthogonality relation} +(equivalent to (14.5.2), see also \cite[(2.42), (2.41), (2.36), (2.35)]{K17}). +Let $c,d>0$ and either $a\in (-c/(qd),1/q)$, $b\in(-d/(cq),1/q)$ or +$a/c=-\overline b/d\notin\RR$. Then +\begin{equation} +\int_{-d}^c P_m(x;a,b,c,d;q) P_n(x;a,b,c,d;q)\, +\frac{(qx/c,-qx/d;q)_\iy}{(qax/c,-qbx/d;q)_\iy}\,d_qx=h_n\,\de_{m,n}\,, +\label{124} +\end{equation} +where +\begin{equation} +\frac{h_n}{h_0}=q^{\half n(n-1)}\left(\frac{q^2a^2d}c\right)^n\, +\frac{1-qab}{1-q^{2n+1}ab}\, +\frac{(q,qb,-qbc/d;q)_n}{(qa,qab,-qad/c;q)_n} +\label{125} +\end{equation} +and +\begin{equation} +h_0=(1-q)c\,\frac{(q,-d/c,-qc/d,q^2ab;q)_\iy} +{(qa,qb,-qbc/d,-qad/c;q)_\iy}\,. +\label{126} +\end{equation} +% +\paragraph{Other hypergeometric representation and asymptotics} +\begin{align} +&P_n(x;a,b,c,d;q) +=\frac{(-qbd^{-1}x;q)_n}{(-q^{-n}a^{-1}cd^{-1};q)_n}\, +\qhyp32{q^{-n},q^{-n}b^{-1},cx^{-1}}{qa,-q^{-n}b^{-1}dx^{-1}}{q,q} +\label{138}\\ +&\qquad=(qac^{-1}x)^n\,\frac{(qb,cx^{-1};q)_n}{(qa,-qac^{-1}d;q)_n}\, +\qhyp32{q^{-n},q^{-n}a^{-1},-qbd^{-1}x}{qb,q^{1-n}c^{-1}x} +{q,-q^{n+1}ac^{-1}d} +\label{132}\\ +&\qquad=(qac^{-1}x)^n\,\frac{(qb,q;q)_n}{(-qac^{-1}d;q)_n}\, +\sum_{k=0}^n\frac{(cx^{-1};q)_{n-k}}{(q,qa;q)_{n-k}}\, +\frac{(-qbd^{-1}x;q)_k}{(qb,q;q)_k}\,(-1)^k q^{\half k(k-1)}(-dx^{-1})^k. +\label{133} +\end{align} +Formula \eqref{138} follows from \eqref{123} by +\mycite{GR}{(III.11)} and next \eqref{132} follows by series inversion +\mycite{GR}{Exercise 1.4(ii)}. +Formulas \eqref{138} and \eqref{133} are also given in +\mycite{Ism}{(18.4.28), (18.4.29)}. +It follows from \eqref{132} or \eqref{133} that +(see \myciteKLS{298}{(1.17)} or \mycite{Ism}{(18.4.31)}) +\begin{equation} +\lim_{n\to\iy}(qac^{-1}x)^{-n} P_n(x;a,b,c,d;q) +=\frac{(cx^{-1},-dx^{-1};q)_\iy}{(-qac^{-1}d,qa;q)_\iy}\,, +\label{134} +\end{equation} +uniformly for $x$ in compact subsets of $\CC\backslash\{0\}$. +(Exclusion of the spectral points $x=cq^m,dq^m$ ($m=0,1,2,\ldots$), +as was done in \myciteKLS{298} and \mycite{Ism}, is not necessary. However, +while \eqref{134} yields 0 at these points, a more refined asymptotics +at these points is given in \myciteKLS{298} and \mycite{Ism}.)$\;$ +For the proof of \eqref{134} use that +\begin{equation} +\lim_{n\to\iy}(qac^{-1}x)^{-n} P_n(x;a,b,c,d;q) +=\frac{(qb,cx^{-1};q)_n}{(qa,-qac^{-1}d;q)_n}\, +\qhyp11{-qbd^{-1}x}{qb}{q,-dx^{-1}}, +\label{135} +\end{equation} +which can be evaluated by \mycite{GR}{(II.5)}. +Formula \eqref{135} follows formally from \eqref{132}, and it follows rigorously, by +dominated convergence, from \eqref{133}. +% +\paragraph{Symmetry} +(see \cite[\S2.5]{K17}). +\begin{equation} +\frac{P_n(-x;a,b,c,d;q)}{P_n(-d/(qb);a,b,c,d;q)} +=P_n(x;b,a,d,c;q). +\end{equation} +% +\paragraph{Special values} +\begin{align} +P_n(c/(qa);a,b,c,d;q)&=1,\\ +P_n(-d/(qb);a,b,c,d;q)&=\left(-\,\frac{ad}{bc}\right)^n\, +\frac{(qb,-qbc/d;q)_n}{(qa,-qad/c;q)_n}\,,\\ +P_n(c;a,b,c,d;q)&= +q^{\half n(n+1)}\left(\frac{ad}c\right)^n +\frac{(-qbc/d;q)_n}{(-qad/c;q)_n}\,,\\ +P_n(-d;a,b,c,d;q)&=q^{\half n(n+1)} (-a)^n\,\frac{(qb;q)_n}{(qa;q)_n}\,. +\end{align} +% +\paragraph{Quadratic transformations} +(see \cite[(2.48), (2.49)]{K17} and \eqref{128}).\\ +These express big $q$-Jacobi polynomials $P_m(x;a,a,1,1;q)$ in terms of little +$q$-Jacobi polynomials (see \S14.12). +\begin{align} +P_{2n}(x;a,a,1,1;q)&=\frac{p_n(x^2;q^{-1},a^2;q^2)}{p_n((qa)^{-2};q^{-1},a^2;q^2)}\,, +\label{130}\\ +P_{2n+1}(x;a,a,1,1;q)&=\frac{qax\,p_n(x^2;q,a^2;q^2)}{p_n((qa)^{-2};q,a^2;q^2)}\,. +\label{131} +\end{align} +Hence, by (14.12.1), \mycite{GR}{Exercise 1.4(ii)} and \eqref{128}, +\begin{align} +P_n(x;a,a,1,1;q)&=\frac{(qa^2;q^2)_n}{(qa^2;q)_n}\,(qax)^n\, +\qhyp21{q^{-n},q^{-n+1}}{q^{-2n+1}a^{-2}}{q^2,(ax)^{-2}} +\label{136}\\ +&=\frac{(q;q)_n}{(qa^2;q)_n}\,(qa)^n\, +\sum_{k=0}^{[\half n]}(-1)^k q^{k(k-1)} +\frac{(qa^2;q^2)_{n-k}}{(q^2;q^2)_k\,(q;q)_{n-2k}}\,x^{n-2k}. +\label{137} +\end{align} +% +\paragraph{$q$-Chebyshev polynomials} +In \eqref{123}, with $c=d=1$, the cases $a=b=q^{-\half}$ and $a=b=q^\half$ can be considered +as $q$-analogues of the Chebyshev polynomials of the first and second kind, respectively +(\S9.8.2) because of the limit (14.5.17). The quadratic relations \eqref{130}, \eqref{131} +can also be specialized to these cases. The definition of the $q$-Chebyshev polynomials +may vary by normalization and by dilation of argument. They were considered in +\cite{K18}. +By \myciteKLS{24}{p.279} and \eqref{130}, \eqref{131}, the {\em Al-Salam-Ismail polynomials} +$U_n(x;a,b)$ ($q$-dependence suppressed) in the case $a=q$ can be expressed as +$q$-Chebyshev polynomials of the second kind: +\begin{equation*} +U_n(x,q,b)=(q^{-3} b)^{\half n}\,\frac{1-q^{n+1}}{1-q}\, +P_n(b^{-\half}x;q^\half,q^\half,1,1;q). +\end{equation*} +Similarly, by \cite[(5.4), (5.1), (5.3)]{K19} and \eqref{130}, \eqref{131}, Cigler's $q$-Chebyshev +polynomials $T_n(x,s,q)$ and $U_n(x,s,q)$ +can be expressed in terms of the $q$-Chebyshev cases of \eqref{123}: +\begin{align*} +T_n(x,s,q)&=(-s)^{\half n}\,P_n((-qs)^{-\half} x;q^{-\half},q^{-\half},1,1;q),\\ +U_n(x,s,q)&=(-q^{-2}s)^{\half n}\,\frac{1-q^{n+1}}{1-q}\, +P_n((-qs)^{-\half} x;q^{\half},q^{\half},1,1;q). +\end{align*} +% +\paragraph{Limit to Discrete $q$-Hermite I} +\begin{equation} +\lim_{a\to0} a^{-n}\,P_n(x;a,a,1,1;q)=q^n\,h_n(x;q). +\label{139} +\end{equation} +Here $h_n(x;q)$ is given by (14.28.1). +For the proof of \eqref{139} use \eqref{138}. +% +\paragraph{Pseudo big $q$-Jacobi polynomials} +Let $a,b,c,d\in\CC$, $z_+>0$, $z_-<0$ such that +$\tfrac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}>0$ for $x\in z_- q^\ZZ\cup z_+ q^\ZZ$. +Then $(ab)/(qcd)>0$. Assume that $(ab)/(qcd)<1$. +Let $N$ be the largest nonnegative integer such that $q^{2N}>(ab)/(qcd)$. +Then +\begin{multline} +\int_{z_- q^\ZZ\cup z_+ q^\ZZ}P_m(cx;c/b,d/a,c/a;q)\,P_n(cx;c/b,d/a,c/a;q)\, +\frac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}\,d_qx=h_n\de_{m,n}\\ +(m,n=0,1,\ldots,N), +\label{114} +\end{multline} +where +\begin{equation} +\frac{h_n}{h_0}=(-1)^n\left(\frac{c^2}{ab}\right)^n q^{\half n(n-1)} q^{2n}\, +\frac{(q,qd/a,qd/b;q)_n}{(qcd/(ab),qc/a,qc/b;q)_n}\, +\frac{1-qcd/(ab)}{1-q^{2n+1}cd/(ab)} +\label{115} +\end{equation} +and +\begin{equation} +h_0=\int_{z_- q^\ZZ\cup z_+ q^\ZZ}\frac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}\,d_qx +=(1-q)z_+\, +\frac{(q,a/c,a/d,b/c,b/d;q)_\iy}{(ab/(qcd);q)_\iy}\, +\frac{\tha(z_-/z_+,cdz_-z_+;q)}{\tha(cz_-,dz_-,cz_+,dz_+;q)}\,. +\label{116} +\end{equation} +See Groenevelt \& Koelink \cite[Prop.~2.2]{K14}. +Formula \eqref{116} was first given by Slater \cite[(5)]{K15} as an evaluation +of a sum of two ${}_2\psi_2$ series. +The same formula is given in Slater \myciteKLS{471}{(7.2.6)} and in +\mycite{GR}{Exercise 5.10}, but in both cases with the same slight error, +see \cite[2nd paragraph after Lemma 2.1]{K14} for correction. +The theta function is given by \eqref{117}. +Note that +\begin{equation} +P_n(cx;c/b,d/a,c/a;q)=P_n(-q^{-1}ax;c/b,d/a,-a/b,1;q). +\label{145} +\end{equation} + +In \cite{K29} the weights of the pseudo big $q$-Jacobi polynomials +occur in certain measures on the space of $N$-point configurations +on the so-called extended Gelfand-Tsetlin graph. +% +\subsubsection*{Limit relations} +\paragraph{Pseudo big $q$-Jacobi $\longrightarrow$ Discrete Hermite II} +\begin{equation} +\lim_{a\to\iy}i^n q^{\half n(n-1)} P_n(q^{-1}a^{-1}ix;a,a,1,1;q)= +\wt h_n(x;q). +\label{144} +\end{equation} +For the proof use \eqref{137} and \eqref{143}. +Note that $P_n(q^{-1}a^{-1}ix;a,a,1,1;q)$ is obtained from the +\RHS\ of \eqref{144} by replacing $a,b,c,d$ by $-ia^{-1},ia^{-1},i,-i$. +% +\paragraph{Pseudo big $q$-Jacobi $\longrightarrow$ Pseudo Jacobi} +\begin{equation} +\lim_{q\uparrow1}P_n(iq^{\half(-N-1+i\nu)}x;-q^{-N-1},-q^{-N-1},q^{-N+i\nu-1};q) +=\frac{P_n(x;\nu,N)}{P_n(-i;\nu,N)}\,. +\label{118} +\end{equation} +Here the big $q$-Jacobi polynomial on the \LHS\ equals +$P_n(cx;c/b,d/a,c/a;q)$ with\\ +$a=iq^{\half(N+1-i\nu)}$, $b=-iq^{\half(N+1+i\nu)}$, +$c=iq^{\half(-N-1+i\nu)}$, $d=-iq^{\half(-N-1-i\nu)}$. +% +\subsection*{14.7 Dual $q$-Hahn} +\label{sec14.7} +\paragraph{Orthogonality relation} +More generally we have (14.7.2) with positive weights in any of the following +cases: +(i) $0<\ga q<1$, $0<\de q<1$;\quad +(ii) $0<\ga q<1$, $\de<0$;\quad +(iii) $\ga<0$, $\de>q^{-N}$;\quad +(iv) $\ga>q^{-N}$, $\de>q^{-N}$;\quad +(v) $01,\;qb1$ +if $p>q^{-1}$. +% +\paragraph{History} +The origin of the name of the quantum $q$-Krawtchouk polynomials +is by their interpretation +as matrix elements of irreducible corepresentations of (the quantized +function algebra of) the quantum group $SU_q(2)$ considered +with respect to its quantum subgroup $U(1)$. The orthogonality +relation and dual orthogonality relation of these polynomials +are an expression of the unitarity of these corepresentations. +See for instance \myciteKLS{343}{Section 6}. +% +\subsection*{14.16 Affine $q$-Krawtchouk} +\label{sec14.16} +% +\paragraph{$q$-Hypergeometric representation} +For $n=0,1,\ldots,N$ +(see (14.16.1)): +\begin{align} +K_n^{\rm Aff}(y;p,N;q) +&=\frac1{(p^{-1}q^{-1};q^{-1})_n}\,\qhyp21{q^{-n},q^{-N}y^{-1}}{q^{-N}}{q,p^{-1}y} +\label{156}\\ +&=\qhyp32{q^{-n},y,0}{q^{-N},pq}{q,q}. +\label{157} +\end{align} +% +\paragraph{Self-duality} +By \eqref{157}: +\begin{equation} +K_n^{\rm Aff}(q^{-x};p,N;q)=K_x^{\rm Aff}(q^{-n};p,N;q)\qquad +(n,x\in\{0,1,\ldots,N\}). +\label{168} +\end{equation} +% +\paragraph{Special values} +By \eqref{156} and \mycite{GR}{(II.4)}: +\begin{equation} +K_n^{\rm Aff}(1;p,N;q)=1,\qquad +K_n^{\rm Aff}(q^{-N};p,N;q)=\frac1{((pq)^{-1};q^{-1})_n}\,. +\label{165} +\end{equation} +By \eqref{165} and \eqref{168} we have also +\begin{equation} +K_N^{\rm Aff}(q^{-x};p,N;q)=\frac1{((pq)^{-1};q^{-1})_x}\,. +\label{170} +\end{equation} +% +\paragraph{Limit for $q\to1$ to Krawtchouk} (see (14.16.14) and Section \hyperref[sec9.11]{9.11}): +\begin{align} +\lim_{q\to1} K_n^{\rm Aff}(1+(1-q)x;p,N;q)&=K_n(x;1-p,N), +\label{162}\\ +\lim_{q\to1} K_n^{\rm Aff}(q^{-x};p,N;q)&=K_n(x;1-p,N). +\label{166} +\end{align} +% +\paragraph{A relation between quantum and affine $q$-Krawtchouk}\quad\\ +By \eqref{152}, \eqref{156}, \eqref{165} and \eqref{168} +we have for $x\in\{0,1,\ldots,N\}$: +\begin{align} +K_{N-n}^{\rm qtm}(q^{-x};p^{-1}q^{-N-1},N;q) +&=\frac{K_x^{\rm Aff}(q^{-n};p,N;q)}{K_x^{\rm Aff}(q^{-N};p,N;q)} +\label{171}\\ +&=\frac{K_n^{\rm Aff}(q^{-x};p,N;q)}{K_N^{\rm Aff}(q^{-x};p,N;q)}\,. +\label{172} +\end{align} +Formula \eqref{171} is given in \cite[formula after (12)]{K24} +and \cite[(59)]{K25}. +In view of \eqref{164} and \eqref{166} +formula \eqref{172} has \eqref{149} as a limit case for +$q\to 1$. +% +\paragraph{Affine $q^{-1}$-Krawtchouk} +By \eqref{156}, \eqref{165}, +\eqref{154} and \eqref{152} (see also p.505, first formula): +\begin{align} +\frac{K_n^{\rm Aff}(y;p,N;q^{-1})}{K_n^{\rm Aff}(q^N;p,N;q^{-1})} +&=\qhyp21{q^{-n},q^{-N}y}{q^{-N}}{q,p^{-1}q^{n+1}} +\label{158}\\ +&=K_n^{\rm qtm}(q^{-N}y;p^{-1},N;q). +\label{159} +\end{align} +Formula \eqref{159} is equivalent to \eqref{160}. +Just as for \eqref{160}, it tends after suitable substitutions to +\eqref{10} as $q\to1$. + +The orthogonality relation (14.16.2) holds with positive weights for $q>1$ +if $0-1) +\label{119} +\end{equation} +with +\begin{equation} +\frac{h_n}{h_0}=\frac{(q^{\al+1};q)_n}{(q;q)_n q^n},\qquad +h_0=-\,\frac{(q^{-\al};q)_\iy}{(q;q)_\iy}\,\frac\pi{\sin(\pi\al)}\,. +\label{120} +\end{equation} +The expression for $h_0$ (which is Askey's $q$-gamma evaluation +\cite[(4.2)]{K16}) +should be interpreted by continuity in $\al$ for +$\al\in\Znonneg$. +Explicitly we can write +\begin{equation} +h_n=q^{-\half\al(\al+1)}\,(q;q)_\al\,\log(q^{-1})\qquad(\al\in\Znonneg). +\label{121} +\end{equation} +% +\subsubsection*{Expansion of $x^n$} +\begin{equation} +x^n=q^{-\half n(n+2\al+1)}\,(q^{\al+1};q)_n\, +\sum_{k=0}^n\frac{(q^{-n};q)_k}{(q^{\al+1};q)_k}\,q^k\,L_k^\al(x;q). +\label{37} +\end{equation} +This follows from \eqref{36} by the equality given in the Remark at the end +of \S14.20. Alternatively, it can be derived in the same way as \eqref{36} +from the generating function (14.21.14). +% +\subsubsection*{Quadratic transformations} +$q$-Laguerre polynomials $L_n^\al(x;q)$ with $\al=\pm\half$ are +related to discrete $q$-Hermite II polynomials $\wt h_n(x;q)$: +\begin{align} +L_n^{-1/2}(x^2;q^2)&= +\frac{(-1)^n q^{2n^2-n}}{(q^2;q^2)_n}\,\wt h_{2n}(x;q), +\label{38}\\ +xL_n^{1/2}(x^2;q^2)&= +\frac{(-1)^n q^{2n^2+n}}{(q^2;q^2)_n}\,\wt h_{2n+1}(x;q). +\label{39} +\end{align} +These follows from \eqref{28} and \eqref{29}, respectively, by applying +the equalities given in the Remarks at the end of \S14.20 and \S14.28. +% +\subsection*{14.27 Stieltjes-Wigert} +\label{sec14.27} +% +\subsubsection*{An alternative weight function} +The formula on top of p.547 should be corrected as +\begin{equation} +w(x)=\frac\ga{\sqrt\pi}\,x^{-\half}\exp(-\ga^2\ln^2 x),\quad x>0,\quad +{\rm with}\quad\ga^2=-\,\frac1{2\ln q}\,. +\label{94} +\end{equation} +For $w$ the weight function given in \mycite{Sz}{\S2.7} the \RHS\ of \eqref{94} +equals $\const w(q^{-\half}x)$. See also +\mycite{DLMF}{\S18.27(vi)}. +% +\subsection*{14.28 Discrete $q$-Hermite I} +\label{sec14.28} +% +\paragraph{History} +Discrete $q$ Hermite I polynomials (not yet with this name) first occurred in +Hahn \myciteKLS{261}, see there p.29, case V and the $q$-weight $\pi(x)$ given by +the second expression on line 4 of p.30. However note that on the line on p.29 dealing with +case V, one should read $k^2=q^{-n}$ instead of $k^2=-q^n$. Then, with the indicated +substitutions, \myciteKLS{261}{(4.11), (4.12)} yield constant multiples of +$h_{2n}(q^{-1}x;q)$ and $h_{2n+1}(q^{-1}x;q)$, respectively, + due to the quadratic transformations \eqref{28}, \eqref{29} together with (4.20.1). +% +\subsection*{14.29 Discrete $q$-Hermite II} +\label{sec14.29} +% +\paragraph{Basic hypergeometric representation}(see (14.29.1)) +\begin{equation} +\wt h_n(x;q)=x^n\,\qhyp21{q^{-n},q^{-n+1}}0{q^2,-q^2 x^{-2}}. +\label{143} +\end{equation} +% +\renewcommand{\refname}{Standard references} +\begin{thebibliography}{999999} +\label{sec_ref1} +% +\mybibitem{AAR} +G. E. Andrews, R. Askey and R. Roy, +{\em Special functions}, +Cambridge University Press, 1999. +% +\mybibitem{DLMF} +{\em NIST Handbook of Mathematical Functions}, +Cambridge University Press, 2010;\\ +{\em DLMF, Digital Library of Mathematical Functions}, +\url{http://dlmf.nist.gov}. +% +\mybibitem{GR} +G.~Gasper and M.~Rahman, +{\em Basic hypergeometric series}, 2nd edn., +Cambridge University Press, 2004. +% +\mybibitem{HTF1} +A. Erd\'elyi, +{\em Higher transcendental functions, Vol. 1}, +McGraw-Hill, 1953. +% +\mybibitem{HTF2} +A. Erd\'elyi, +{\em Higher transcendental functions, Vol. 2}, +McGraw-Hill, 1953. +% +\mybibitem{Ism} +M. E. H. Ismail, +{\em Classical and quantum orthogonal polynomials in one variable}, +Cambridge University Press, 2005; reprinted and corrected, 2009. +% +\mybibitem{KLS} +R. Koekoek, P.~A. Lesky and R.~F. Swarttouw, +{\em Hypergeometric orthogonal polynomials and their $q$-analogues}, +Springer-Verlag, 2010. +% +\mybibitem{Sz} +G. Szeg{\H{o}}, +{\em Orthogonal polynomials}, +Colloquium Publications 23, +American Mathematical Society, Fourth Edition, 1975. +% +\end{thebibliography} +% +\renewcommand{\refname}{References from Koekoek, Lesky \& Swarttouw} +\begin{thebibliography}{999} +\label{sec_ref2} +% +\mybibitemKLS{24} +W. A. Al-Salam and M. E. H. Ismail, +{\em Orthogonal polynomials associated with the Rogers-Ramanujan continued fraction}, +Pacific J. Math. 104 (1983), 269--283. +% +\mybibitemKLS{46} +R. Askey, +{\em Orthogonal polynomials and special functions}, +CBMS Regional Conference Series, Vol.~21, SIAM, 1975. +% +\mybibitemKLS{51} + R. Askey, +{\em Beta integrals and the associated orthogonal polynomials}, +in: {\em Number theory, Madras 1987}, +Lecture Notes in Mathematics 1395, Springer-Verlag, 1989, pp. 84--121. +% +\mybibitemKLS{63} +R. Askey and M. E. H. Ismail, +{\em A generalization of ultraspherical polynomials}, +in: {\em Studies in Pure Mathematics}, +Birkh\"auser, 1983, pp. 55--78. +% +\mybibitemKLS{64} +R. Askey and M. E. H. Ismail, +{\em Recurrence relations, continued fractions, and orthogonal polynomials}, +Mem. Amer. Math. Soc. 49 (1984), no. 300. +% +\mybibitemKLS{72} +R. Askey and J. A. Wilson, +{\em Some basic hypergeometric orthogonal polynomials that generalize Jacobi polynomials}, +Mem. Amer. Math. Soc. 54 (1985), no. 319. +% +\mybibitemKLS{79} +N. M. Atakishiyev and A. U. Klimyk, +{\em On $q$-orthogonal polynomials, dual to little and big +$q$-Jacobi polynomials}, +J. Math. Anal. Appl. 294 (2004), 246--257. +% +\mybibitemKLS{91} +W. N. Bailey, +{\em The generating function of Jacobi polynomials}, +J. London Math. Soc. 13 (1938), 8--12. +% +\mybibitemKLS{109} +F. Brafman, +{\em Generating functions of Jacobi and related polynomials}, +Proc. Amer. Math. Soc. 2 (1951), 942--949. +% +\mybibitemKLS{146} +T. S. Chihara, +{\em An introduction to orthogonal polynomials}, Gordon and Breach, 1978; +reprinted Dover Publications, 2011. +% +\mybibitemKLS{161} +Ph. Delsarte, {\em Association schemes and $t$-designs in regular +semilattices}, J. Combin. Theory Ser. A 20 (1976), 230--243. +% +\mybibitemKLS{186} +C. F. Dunkl, +{\em An addition theorem for some $q$-Hahn polynomials}, +Monatsh. Math. 85 (1977), 5--37. +% +\mybibitemKLS{234} +G. Gasper and M. Rahman, +{\em Positivity of the Poisson kernel for the continuous +$q$-ultraspherical polynomials}, +SIAM J. Math. Anal. 14 (1983), 409--420. +% +\mybibitem{236} + G. Gasper and M. Rahman, +{\em Positivity of the Poisson kernel for the continuous $q$-Jacobi +polynomials and some quadratic transformation formulas for basic +hypergeometric series}, +SIAM J. Math. Anal. 17 (1986), 970--999. +% +\mybibitemKLS{261} +W. Hahn, +{\em \"Uber Orthogonalpolynome, die $q$-Differenzengleichungen gen\"ugen}, +Math. Nachr. 2 (1949), 4--34. +% +\mybibitemKLS{281} +M. E. H. Ismail, J. Letessier, G. Valent and J. Wimp, +{\em Two families of associated Wilson polynomials}, +Canad. J. Math. 42 (1990), 659--695. +% +\mybibitemKLS{298} +M. E. H. Ismail and J. A. Wilson, +{\em Asymptotic and generating relations for the $q$-Jacobi and +${}_4 \phi_3$ polynomials}, +J. Approx. Theory 36 (1982), 43--54. +% +\mybibitemKLS{322} +T. Koornwinder, +{\em Jacobi polynomials III. Analytic proof of the addition formula}, +SIAM J. Math. Anal. 6 (1975) 533--543. +% +\mybibitemKLS{342} +T. H. Koornwinder, +{\em Meixner-Pollaczek polynomials and the Heisenberg algebra}, +J. Math. Phys. 30 (1989), 767--769. +% +\mybibitemKLS{343} +T. H. Koornwinder, +{\em Representations of the twisted $SU(2)$ quantum group and some +$q$-hypergeometric orthogonal polynomials}, Indag. Math. 51 (1989), 97--117. +% +\mybibitemKLS{351} +T. H. Koornwinder, +{\em The structure relation for Askey-Wilson polynomials}, +J.~Comput.\ Appl.\ Math.\ 207 (2007), 214--226; {\tt arXiv:math/0601303v3}. +% +\mybibitemKLS{382} +P. A. Lesky, +{\em Endliche und unendliche Systeme von kontinuierlichen klassischen Orthogonalpolynomen}, +Z. Angew. Math. Mech. 76 (1996), 181--184. +% +\mybibitemKLS{384} + P. A. Lesky, +{\em Einordnung der Polynome von Romanovski-Bessel in das Askey-Tableau}, +Z.~Angew. Math. Mech. 78 (1998), 646--648. +% +\mybibitemKLS{406} +J. Meixner, +{\em Orthogonale Polynomsysteme mit einer besonderen Gestalt der erzeugenden Funktion}, +J. London Math. Soc. 9 (1934), 6--13. +% +\mybibitemKLS{416} +A. F. Nikiforov, S. K. Suslov and V. B. Uvarov, +{\em Classical orthogonal polynomials of a discrete variable}, +Springer-Verlag, 1991. +% +\mybibitemKLS{449} +M. Rahman, +{\em Some generating functions for the associated Askey-Wilson polynomials}, +J.~Comput. Appl. Math. 68 (1996), 287--296. +% +\mybibitemKLS{463} +V. Romanovski, +{\em Sur quelques classes nouvelles de polyn\^omes orthogonaux}, +C. R. Acad. Sci. Paris 188 (1929), 1023--1025. +% +\mybibitemKLS{471} +L. J. Slater, +{\em Generalized hypergeometric functions}, Cambridge University Press, 1966. +% +\mybibitemKLS{485} +D. Stanton, +{\em A short proof of a generating function for Jacobi polynomials}, +Proc. Amer. Math. Soc. 80 (1980), 398--400. +% +\mybibitemKLS{488} +D. Stanton, +{\em Orthogonal polynomials and Chevalley groups}, +in: {\em Special functions: group theoretical aspects and applications}, +Reidel, 1984, pp. 87-128. +% +\mybibitemKLS{513} +J. A. Wilson, +{\em Asymptotics for the ${}_4F_3$ polynomials}, +J. Approx. Theory 66 (1991), 58--71. +% +\end{thebibliography} +% +\makeatletter +\renewcommand\@biblabel[1]{[K#1]} +\makeatother +% +\renewcommand{\refname}{Other references} +\begin{thebibliography}{999} +\label{sec_ref3} +% +% +\bibitem{K16} +R. Askey, +{\em Ramanujan's extensions of the gamma and beta functions}, +Amer. Math. Monthly 87 (1980), 346--359. +% +\bibitem{K2} +R. Askey and J. Fitch, +{\em Integral representations for Jacobi polynomials and some applications}, +J. Math. Anal. Appl. 26 (1969), 411--437. +% +\bibitem{K24} +M. N. Atakishiyev and V. A. Groza, +{\em The quantum algebra $U_q(su_2)$ and $q$-Krawtchouk families of +polynomials}, +J. Phys. A 37 (2004), 2625--2635. +% +\bibitem{K18} +M. Atakishiyeva and N. Atakishiyev, +{\em On discrete $q$-extensions of Chebyshev polynomials}, +Commun. Math. Anal. 14 (2013), 1--12. +% +\bibitem{K27} +S. Belmehdi, +{\em Generalized Gegenbauer orthogonal polynomials}, +J. Comput. Appl. Math. 133 (2001), 195--205. +% +\bibitem{K5} +Y. Ben Cheikh and M. Gaied, +{\em Characterization of the Dunkl-classical symmetric orthogonal polynomials}, +Appl. Math. Comput. 187 (2007), 105--114. +% +\bibitem{K19} +J. Cigler, +{\em A simple approach to $q$-Chebyshev polynomials}, +{\tt arXiv:1201.4703v2 [math.CO]}, 2012. +% +\bibitem{K23} +Ph. Delsarte, +{\em Properties and applications of the recurrence +$F(i+1,k+1,n+1)=q^{k+1}F(i,k+1,n)-q^{k}F(i,k,n)$}, +SIAM J. Appl. Math. 31 (1976), 262--270. +% +\bibitem{K26} +C. F. Dunkl and Y. Xu, +{\em Orthogonal polynomials of several variables}, +Cambridge University Press, 2014, second ed. +% +\bibitem{K3} +E. Feldheim, +{\em Relations entre les polynomes de Jacobi, Laguerre et Hermite}, +Acta Math. 75 (1942), 117--138. +% +\bibitem{K21} +W. Gautschi, +{\em On mean convergence of extended Lagrange interpolation}, +J. Comput. Appl. Math. 43 (1992), 19--35. +% +\bibitem{K25} +V. X. Genest, S. Post, L. Vinet, G.-F. Yu and A. Zhedanov, +{\em $q$-Rotations and Krawtchouk polynomials}, +arXiv:1408.5292v2 [math-ph], 2014. +% +\bibitem{K28} +V. X. Genest, L. Vinet and A. Zhedanov, +{\em A "continuous" limit of the Complementary Bannai-Ito polynomials: +Chihara polynomials}, +SIGMA 10 (2014), 038, 18 pp.; arXiv:1309.7235v3 [math.CA]. +% +\bibitem{K29} +V. Gorin and G. Olshanski, +{\em A quantization of the harmonic analysis on the infinite-dimensional +unitary group}, +\href{http://arxiv.org/abs/1504.06832}{arXiv:1504.06832}v1 [math.RT], 2015. +% +\bibitem{K1} +M. J. Gottlieb, +{\em Concerning some polynomials orthogonal on a finite or enumerable set of points}, +Amer. J. Math. 60 (1938), 453--458. +% +\bibitem{K14} +W. Groenevelt and E. Koelink, +{\em The indeterminate moment problem for the $q$-Meixner polynomials}, +J. Approx. Theory 163 (2011), 836--863. +% +\bibitem{K11} +K. Jordaan and F. To\'okos, +{\em Orthogonality and asymptotics of Pseudo-Jacobi polynomials for + non-classical parameters}, +J. Approx. Theory 178 (2014), 1--12. +% +\bibitem{K7} +T. H. Koornwinder, {\em Askey-Wilson polynomial}, Scholarpedia 7 (2012), no.~7, +7761;\\ + \url{http://www.scholarpedia.org/article/Askey-Wilson_polynomial}. +% +\bibitem{K17} +T. H. Koornwinder, +{$q$-Special functions, a tutorial}, +{\tt arXiv:math/9403216v2 [math.CA]}, 2013. + % + \bibitem{K10} + N. N. Leonenko and N. \v{S}uvak, +{\em Statistical inference for student diffusion process}, +Stoch. Anal. Appl. 28 (2010), 972--1002. +% +\bibitem{K22} +J. C. Mason, +{\em Chebyshev polynomials of the second, third and fourth kinds in +approximation, indefinite integration, and integral transforms}, +J. Comput. Appl. Math. 49 (1993), 169--178. +% +\bibitem{K20} +J. C. Mason and D. Handscomb, +{\em Chebyshev polynomials}, +Chapman \& Hall / CRC, 2002. +% +\bibitem{K9} +J. Meixner, +{\em Umformung gewisser Reihen, deren Glieder Produkte hypergeometrischer +Funktionen sind}, +Deutsche Math. 6 (1942), 341--349. +% +\bibitem{K4} +N. Nielsen, +{\em Recherches sur les polyn\^omes d' Hermite}, +Kgl. Danske Vidensk. Selsk. Math.-Fys. Medd. I.6, K\o benhavn, 1918. +% +\bibitem{K12} +J. Peetre, +{\em Correspondence principle for the quantized annulus, Romanovski polynomials, +and Morse potential}, +J. Funct. Anal. 117 (1993), 377--400. +% +\bibitem{K8} +H. Rosengren, +{\em Multivariable orthogonal polynomials and coupling coefficients for +discrete series representations}, +SIAM J. Math. Anal. 30 (1999), 233--272. +% +\bibitem{K13} +E. J. Routh, +{\em On some properties of certain solutions of a differential equation of the second order}, +Proc. London Math. Soc. 16 (1885), 245--261. +% +\bibitem{K6} +J. A. Shohat and J. D. Tamarkin, +{\em The problem of moments}, +American Mathematical Society, 1943. +% +\bibitem{K15} +L. J. Slater, +{\em General transformations of bilateral series}, +Quart. J. Math., Oxford Ser. (2) 3 (1952), 73--80. +% +%until K29 +\end{thebibliography} +\quad\\ +\begin{footnotesize} +\begin{quote} +{T. H. Koornwinder, Korteweg-de Vries Institute, University of Amsterdam,\\ +P.O.\ Box 94248, 1090 GE Amsterdam, The Netherlands; + +\vspace{\smallskipamount} +email: }{\tt T.H.Koornwinder@uva.nl} +\end{quote} +\end{footnotesize} +\end{document} diff --git a/KLSadd_insertion/KoLeSw.pdf b/KLSadd_insertion/KoLeSw.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac31ef684d42c0ab1dc310c02b1ea9dd16a21937 GIT binary patch literal 4597173 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

f9+(4jpq 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

bu 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�y|2OLbxK{r{YeN6)8v4_A zG5q9zKatYUxre{Z$3GiN1FW?G2FJ$m-&GC&!hZdS4CXI+C_Vjup$m+F;hk)Np4SY3 zJ`7AhMFtE2<^#ZB09gCacR%?1EDq2!;IEGGzff9$7aO3&0Wb!D2l}T^oDqOLel?Q@ zOpc`c8}m&6H(Lb&pntWhKQP4qgaZ6k;!i6KVDN18ztR7H|5QeRYUw|&|KH&NBLG1B z131vD{5cX}=xsj|!Q_YuMH=;pG9&$N$ZFM^N~NO%zO8fSEpQW-6#bJ9WVG$1Xs5f_ zU6F)mLV@VRI+V6FH$Og=w7Yb;JoMM+bKmT3R#}wZ9PX@npd39}+-y1AT*j+~-rQOk z5~X7|MQmg~Nf_kCYZb}~iKpD$HipdKoi|WlbPOn-SC@33bSP1VBNJL3-By;eg>0#8 zr8IP<&aL_rMJUL`u{^s!4O2#5DiqiSJzWR(5=~X3I}I&onH{zl9hS5surf#zq2Q#> zZ93u|tXF)A+!L7GSU6wsyw$}C*0F4{wk8*h1MjQmP)MlHlf`D*AdMh?Zj8qAXtZ8F zOMNP!fp;@QPD|;L|AAAwIU&SWsC)KRqf|FkV!ccRPZiG{%0J*}iDibKs%_)SPG;g{ z>qc0RXq*uibp`o!LXmbTr!oaw=@1qt-KhZ1Y2DIq3#Wf{Mr48h3aQX8&R3qOKz>kZ z&)i;T7|h+ivkkft8Rz49R(s@k?j#xEQTOMjTkqpL0g1@dF`<{nO8DD;5u?qoDP4`V z=TV$Ilw<48!$`o|k5?5nJ&`C!B(7~x@Yy=ZI4&0L6AZV{ZtN1=3O5#RSDei|My&;5 zLf!MN=8x`;vWU`r>!pXbwx?FYJKwjb&s~n_-wy zlQ?6(aN(S1t##55LZtXk0b3_rjaLq4_LfI7JBa=WW&?y*R`q5Ca8hFiwysqJ5x`9^ zx^>xZF*ctF=}KU^+&_18JQshSHxxM#ENiLJ(nU@t%>iSD7$Qz8q;u^u)X#SATV8kk zme_d^MRHC*UY@z1DHTU;vL1DH8NaOnEiNZQ%5kt59s&E`{)&QS=$OT@P!avpks2KB2{ zn+vasPh|v2I4j9_xK&M-0r{_Y^{12u;n-$Y)S|x2Ilg)PV$`8FhL_IYifJhQcMvkt zFKguJy}aH@L(|qlxhFthrB^}Zdwnr|oJfPO08+<=}-U@U}EP*%=(ZO_nDn{0Gx7jPt;9_AdfuD-Gy35XgCGh3FZ@VsK(k- zPT{3kNmj{=aucl-_kQHj1Cpr(O>HO`#U?!uNLc)MWSW4eq1#eLK&P>VI)PsUgwF7l zYEBqAI~2GFlqfud91+WBUUM;6Vv2UU_@U;8x@q7}So&FDvF>x>4O#nEfkt#;z2Pq&^E@?VYAd#35N zTf%{F$6Al@_kT7wUT#_;w7w~nZ8i*^JKpW+2`A)x9iOPm%SYk$nGGbXPs*V?DM{Dl z`mnE)?9`o+QgK*{;80sjdssro2;CfXvE?d*TKYPuDhrB<3O2Wlbp>tp%I0SnqGfvI z#6{&`RzAR+S@h}lHMkQPP7mS~{#yEz?cGK@oiMO8(MwZ{@37kzMTP?E=MOYfxR-h< zTS9TW3>{HSiMK#b!I(ZX-1cp4*l7p%@-HdxLcKOKj6(>c#p}n!CbC}rR+iC8S_N+c z#|4e1>NbNRo+^h8^kme=zw7tbaP=t2pfgvpbd}#|N1D&xIox+~SKu@3;BxHW=f|Yg zk?G&B>G61}jBFHdd0~U1xRDoOAam;=9eMkgL^lTvFqvK~%`MW9oMdQ3YMDF+>x*5V z%tFv@2gkT!J(`GxLEW8&i5A{-mZYyvT6}cFw#!S+d2`??&`Io0*B=#n&OqemBhd`} zb;TTO3?q9`3778i*^EoW@TIPLpgq{a5gI0ivSN`B!XqABR}aCj^D~i@4E#N?)REpN~k{yxgC5PQA_&Na-|71CwQJy#!G#H zE}qje1gwU2eeAH{PWqBOtV-$40@4!eP2GwLvheNpyOJ%DKM3~VI+}bI6u6v;*4Yv+ zS>p*p+W3AWSTWNTOpP8Mj+wWzm|o$u6Rs>g8NE5blCRr3MpG6)&El3JbN}9{Mxw9c zb)b5dpoZ9h3W$813sOrIIFCH@*@M~6rRLt9Yw|p^K5$|+tzNEUh1t|DpZc-$6=FW0 z{ZyAgaevp9qQCfQT}jNyRB|aLeen^S@mo=SO%Ne7Q)Rg}mFZAUtyEWMt`ujGiL7k& zJx2MmB|1LdjE3ln5^0-Z0m)>T0HtD9PI(FA48!ZLu(l3w>LwXdCM_v zIv6&oB4ZRbIp~irkNr7y>)i=K`+k_KI?qG5;eZ7>bYTu|JDE^~=~&+P$y3eQ`0|s$ zi@2}Y;C+7P%1O-n8Plt7y&r}&bC7+Tv9SW>T)Nq~ZDXrk?0mQ%LsXZT;T%!5yQj>-q%9j^&)itKMs#t<^0@Mizg?8Py zaS9uMa*GqeBwNtY59EcDhcSKp>5ISF)&dvG&~Ym+Ipdd+R9Pc=+5**KHsnJPN1Md?nWGW+X9JZ=uPcT7JedD|J+) zth@OhSdmx!n7kG8&F!ye zgs@CxEByRWRTk{mINfXml|yuBstx=ewVL{}BDIF>&`JZ`9($bj+$D|DaJ6Z3SNo@i z!kJS&gf}iBNZVk!3OqSTZ@EdPm$DvQz1?ty4@USe)Cy$@z%24U_R_FOhqnj$PDzyX zb@r0|aB{({Eqx9bXgWaX@gwMen}+-$y!fBc5Qg8yPYgfvDY>6@*54n0ry>9gz;A#5 zor(aGSHSbXOGN;^#sF{mXQ{|<4CD`^2|dGKQ;}bb{!^OG2$1vulH8x3j-QqZfNubh zqW|)A0Lr@mtyuiO$sGS$Tk>lI|FkAHfVSkPp8_BzVFM_!0EO$H>V}^k1_9!Nf9smq zX#T3E{p&FQv?hSGgdL#4VFKVHKyC_9q5wPwKm87X%=@37ANBY1et?waFEVU~|B7w^ z`Tozgct2-b0aQu!0H+Z1&-Q``Pe-*TP*u`IwZ zh~ckJ@V}57dH_aZ0bEu9jUO8Tfc@-0$^xKE09g~D@87@o00HWczi1fu+wJ1F1N^@s zH-Aj~`rpVpe%%~@Tju{KH!O@y|A5?-DUaIxBsbf=fmRn#q(os4nZ;>yQsyizizU?R zimp+%UIe1ODPSf*8mdoF?7P9!KNvwl2!zz7#1&ELk`CTp+cTs?=R4xeWlx_3+BNHE zZ7v?q&K57T)mxjiT3@xO7B3$?bmfbwwT;d(@X)05qdt!cQ8sF7ouMyY>PF|QCJgS_ z16$5VhNf;O*0*X`Q=y4z#g%$$zBMAU7^-nZ*}brKWNy7~+bSxS9<8C%*r$AzL&M80 z3Cm}Q4YPxDu|Q6)m>V%H7O!9>`BbAoCM2ILeQqjg8nc^W*YTR+>M4;zk7Oo#+Idyt z$-m>_~ug;6pK0Ce%APw~xAV2`ll`83~A+EifG4r<~*D0&q!C+04a;qyxETQh6?d z4!n%P$E{iC$WzF=S{b0+6cr4AIChn(JaC~&;e=K$Y(L?}=|QbJxTxCAq?#?F-SFpy z42z|}SzOByq{Hz6Iw~-k-&cuSzXM;Q_x5I4336sCP6Rhz?`|9gn_h>jPsXiF)`@UI zl{T2kdNnxn??lGY87wgENpN4i^@!y#g6!aZ>|V9HtT+s*KkiYl9&M?hY$bvB&Oc!t z6_D?N5vG4XKRWvT^0bovncMIJi7(pD_CTkuM0-|IyT43VD3G?N*<1WDqq%)WHwR6e za2hLRjAWgGP<7@?puIRZi~ydbbvV=wWnSbqf6^nv2AqKZ_M?}Q1+z(xomHotwV#p& zc(WBqdH2ER3Cbyn&qzmj3anZ+A#}s#U;e5bqGSv&up=O2Lc&g*^pLL8lu`uW84KEB z8%VnkoEw>=F7~SMQr_6hlrOo4V1Nm+a?3h_x7gzphctv$Ioz=fn|${ptrOH$px8cQ z+V@#>P%8t$pcm1k-Gj_j0P}r|MyYs!>6~@I`RWR`qVJs!s*!B8VinndxM=G%9G@hX#} zp@#8c6wrc%0afrPLp8rz*L?D-kYT}=&N^Dl&Uq~P#00sNJ?ZA7%T)#nn@N6ePogRZ zeCs^Y{CcGa(;p|_tw#^(?@3U`>Gz~Up`bvPPb9C~h?y9|nGj;F6q)idY$_7dx{&X> z{?J9v7cTJBqTvM`5Q!Ej9p+#_Lt z7cW-qNDl`}1G(y^eud?xCxuHBv@CT*GFEFALDV!!OIu>}I^HyNwd3fM9##@q3R)ev zE~L8CouQW5kY?~VG90%&mFa2*T9%8Z?=1`&LOv`uSG6)E zK{55z5J-XiRzH|cBLgkxZItw!U0`+ZB?K#>ZZQ~#Aa-!%b0Sui%3us)d+bp!7gkSO&p-pLH!FDG0VB%u6*y!)E>mYLnA;^ld zvK&e*WP*&V!mjWPWVAIN3@Pd3EMpx}t_1;k06H=|C#( zo?+{JR?Wo*!R(r_@aj~t_L`}J@``(IB{Kao451k{c=oD|MF(%rWRj}`0vObHL9`x% zactdJ>K+CReb#cW^<;4g$yGk7=>LtcYt|6S(F$Ztw)t_OrfiG)#!-|~1s%JlJgDOw zJDaON_5MqzlRw1DV_zZpZdZpgIki)`QvW#cixuY3T@aUf{J>EdFx9eRo2RURwqzxd z9*5g1F*ZL9T86Oc%eXkn|vMA4}(ePFg6Q0kUfS5PTh*Tp0W~A8?!@|>{ zDaoLH^k(d33R@NkcCEs_C9E1fNeFiU5P%OaOX)v&M>Fw-AY}$^a6=| ztWXM9)rW9n!W^qJV+m>vBg~b>3_=ki6F1)M zm&(0lp|j9V^S8>cLAXUHPV>Gc%u=nL4LU22ne4pubO$;*23nR#boL$T6uwJ63#}US zkI2WEo6#F=SMVQ+@tJtP_$I6#9XVih5#F^ zK1Nr%B$aq~%Rav!vV?li|B|-?JgH*iS|Y;s0(Ytbr3~mca`NcjKI(YX;QS8j>B9_< zRnhGYPu`a}2Oh8cFp;In9#k}oI7UdIss&cTLrAaV!|(dBrSFqXr^3E6=TxQku9y3K z=xFD=-JZ!yZT09xPfzZHOPzVyOIBSZTmJ`|shGrq_-t=Ac z>W}U58TwmR8?w&#*k{})&@ODa%j;a$Hv6uiz0S$Fd=0JlWJD^?6+X4o2~MUfe@q{QSlw$Vi8jCH?5OKZs_gjj_UVJ3n|n;tJC zNq0LD_jmHSW^Re48+AXAb3yCJ5-3N4Mu9}6!1HEv9yA+}tpqg?*^ArJF#ELmx#pPj zB+eQ)(i3ExQd*S`5GG#$lRuz8KNOF;GjiSb6|lRtUf!{y(fY8J^Y+cX=(28ELWw6V zTCUGz#o#MGnk+L-%VmxbZ;&zrRbPK#_s#8`0X?N`xzCISsE$6ywda8FlH+SaE zPv>4Z9)4CFcn{Yre5l=LbjJZl!~{F4Bv#jtX*LlDptJ#(KJbur*tC;Wl4JY*1oVxqreaA}`Fx=xjz)?T%nGTJ zC8fI#s!e?0F6KWeYhN+Q_H<=tJlRK3Nqwnl(- zY4TiBe65~RLL1nsBPRh{5CYfsfO@-++f?giO`M-izSKG*bv=EADfgo&J8B9s7b|^( z$3w82PxN_u7)KFwXX}!2P8d;h=?R%U+3}f|3RYScZW7hSOW7ehZW(SQZ@=kYM!m6i zYPUoVD&&V)z8{QCeYrg??xwiTBfj2#G>9;D6#p*I4l}nCCojSm5;RJA=0L=9i=7t) zb_x+iBxeSHcR=Y@)B#J>=qV8i9P z*HnOj*`3mshW3du%$6vgiiH9JZ&4H+&L8^DkBQ0BpW&iL6T>0OkDcresX`VgiN1ml zANnK6yi6On2bvK~Q|n`DL9nLdT_}QvA}7NPUQINTvW=kaMz#pc(!nuiD4#q(w->S$ zr))&^xzn{vMcoI!?C>#8c++$)mF@Q(cQ-~|Z?&k-wa9eFYFIk+;?S3`o7OG&O^waT z_oi>?c>bW*#dfyECf?$Mq-geZnmq(42qP@8D#5F+=UZf1N^4D5JqBM=RORb<^A>?k z2~2B=a8&jTY*M)#L@eWO-lXmTo`R?mz4A$_KM-3Q0!;OA93ixWlFyCOYjEoi5 zkrYiIes_J#0ev@#5GE=1*`2Fp7d5AkX^QtAypJWCSqr;isPEuX>gI3&8IW z5CZU@{FP_r*WUbTSpa7rz+m^2KmO!v0B;+h*9_}V-Ub-v0dVsClPE;g$kNiz!qU!= z#@5_i`=@zE`*)ONWDe+I^A~XD*Dn6wVUYg~`uKI7{3rAQkZ3Xf1N4!n{MmMy1u^45 zw!=rHO24Z&b~_uAtUNVuFzl#k+V=;jBp>qo5Ia%I2nOyuj2lP?420n84~*8rklvjj zEekKV%Y6fj2mS}*ww%Wy9ET+)4v$B!=;cp~p?$~K8iG`6Wky)>99yy=JUj|%;)EYY z!O^%v(U(<`%Z;!6NX2q;grGA+TNcqCH2O5;BtP|eQm>Bq6@<`pnOt0r42j3J5n-gO z_EBZ~pypTSu#Ym&E9K)u#6#yYM8n!^MSqr`xk&pcCU3Jm_f+sh$w7G6N(G;c>4SOO z`;z(t*$8>zp`5O4FWu#tCps4T*s49-Sp+EtveNq6{SQ^sH$4SRZKFh`gl0 zbdD{zh$|&Nnvv;q%q!?71)S`UEh@4r9{u2YW&1UjTP~=gwNYDFtJ&k-G2oB_iggRS zw-2pd-Y>-GVFl|WmW@>+ug{9r)d^4zt&nQR=6u{J;~*7vZV@@GLW`>kB8v1J+p_LT z{Lwq79tv2wsxh@^P5DAQ{SxEg0Z|e>pwwp)H%;`KBlI($%(x20ZTzjbpylBkFw8YE zb}+7h!=i{l5ml8xNBeT)G2A@6%VI1)3`^EgGR480k% z!!?ZpVv=L}Txgbe2aLIkb6Q}>(NEe$$~ybVk&%VGPoq38)}vgotOObpAVD^>ByR~k z+XMp2hUQFjrhUXrR~D6&yi?GK8&)`(*cLIg8p9F#SmWI}{2?iFu#Z?R7|manu*uD2 z9d}a+CM;#=D~_#PBUNQIC$SGs2n?}N(wdUJA>t~sc(6X_w!oXaJW!;+JS#mN=Hi;q z4i#vKN~*)xfH4?e!I~=95hc3HfeaX`7!r=mn*H$NWuudacW{Ck!lWn&wgS^!lGDb1 zRY0X`K#9}9=v$K6n2-t8y${6dFh$2H*E{`YaDCEtlZ#8u;Ei{^>3w3eez_8|7TxVN z`;wSz>}ZhjoO?~HVS~%fl=;Y^d%cRwa|!yq**;VY7V2d`5NY{R9LTFGwi;lQdw}hl zgaY5Q+clnicN$^HP=6-^Iv#84`YyiEUS^yF_e#hqK0~Xz2pj znKN;9E5@q4sy3)41;1jN{$>LUPV(K+4Luk%*Xt#2Q3$*uULc)5Wv@er%Hyt@4Z@w%@PHQ&Fvynn2aQif@&a zv87pL$A%+xvcOeA5;yogcEFlh6VMX?M{|*ZC(KgTI@nTERClXU7$CIB-wRug|+hf2d`6>lR!s*5*CXy!snLdpift?dRZ_h zNpx-mp68_f9tzu<-c`cgElgYk$LE6}$JmuJUa}vdOh~i$kTLT{DB8^UMk)87snJzh z)wUwPn)ig>h{wM3bx)$zGQNEXns@su(;y$B=2arUY)ul4uQz9c6|5oS1W!{Rd2LOT z^`^IAlk&CVBnAHxM=J0nijIBYWnm#4^xz}w>K(ETWI5vbkk~qEl-wm$@|z4O8KnRmEu5v7iG31$u^$ZLx{d;cs5WL&2$I7%7}ZC$ zsIuN~seN?ioM>h)su4!6}!|H6IRLyu-;_e_qTg@d>-kDu}h;2 z?S|B{G?qR)o9o*&35=t`qs8t0IEg_!2WCQ|Nt|hlfR1x2lWwd`@i3GGN|pMQ^#eWR zEiir99(Gt`ZL)ny%{u4VirhtQlynoZ{2%>1kD6>~(C9-JdaD?_FYoNIWs?yVL@=3= zWY3d&w&sJ@1#_C4!d}x};FTDRNu-mAjqVodkNG$B9ry;*@%7O+prhrQSZPn)2t%Mj z)xjS($8V8Bx;XgIGW(eb)hLVwf_lL@K%b_Gg&q`H#siIN{dx`{Q%>M8pb59z1N1XU zVckQ?Np!@j*MLK+k8yOyfc029!Q`xP_#)Vc-ikx&i%RWL-*?N&J;>F)6c-_JW+LQUaw|ILs3IZ5v;Xmjy{)WQPM=gjai7Z>aZ6maB#9El6D_l zU*BaIWDc1Ks0sLdY*~k~Yp1GMYW+Gr4HXrcZMHfmIoaS7+3dVwzu`h8(N_I_?jas@ zS9{mr|2B!?bV=x`{h?Sqa(Q0|6af`wqceuM^<%dq1S)28(-?38v)c9zrDdv~#R@td zKFpXCWjs$_V8EUVo3wUpPNWNvA&Px^!Lm{t`*vI|vwvz4u;# zftxgj1@+DYEK#hd({((S2zE?xqYa~4z0+nOYp80n*kj!jKCgF6o|VT9yreMwr)$S9 z{**jxDfA<9q#G0dZ*>=?3_LU^CH8_z)yGlNBKfB8_=W2WS8uWC8pT%buXT==UNdq& z@@Pkv!L=KKuE9KYoZi}4v)$mGE$cI$a~)9yf!CV=HD7-64$?D>W@rq1((v(sYLbYf zUYbeBqa!(*c?Z`mPksmEXM>Z4hsq&bJzd&o`klAxAxx z{wOvGJilhyKr(T@{qWjGMSle9`K}4>YbGMTtJmm2$uk*=Xo3a%iwr;0B(PJ|(}gaN zKmh#;9BKe!_ML;zNmg>U`1BKxaD25?ddD{J5RUH#ZZB3pRpT{}jtsYs%<2v3-Am^L zyVqzHp*8$Sh~!V#2|LQFhC5Yfy53+rfJEpbz9Pc%?pV zLbD44xn7FAu6cLTkVkR?M1<~=DqVP%}8VZc6Bjxh1uj^wyC zNR5?N;`_A*fQs|T%3CT#NJ~gUz#!`!7R`v%6gB=m{upXKa|xV*6iokY=8#+6EyQC8 zV=v7hHHl*f(PX=*UCy=?0t6Y#=22aW7LqUlJRRhpX91}*tkP(kyKcC6}> zA#8u*@=X(?BkThgI=w?Gs<+vbg~I*<;5WTHT2cgYxd1}Pm!4+w!Iz3K9w$9KO5EZD zTJ9Ga%yCg!I>%z*m%+N#4bCb5@vh{kPDS*Q5Tg?@=`7{>dCBzAL|)Zap85{K;K?37 z`N+EQD^3uGJOK}W?%Gd;Go-z7C(fTL(?{sA8^$3d4I@d{TDDhNe%-13PT>7j4%sR! zBbTpP=u!q=Q9@tVLhMtOucTI0Z-~mkg19K0VoWY^dUeEM%h?b1&`os09}2#7(?p1f zBPhWhOL^+S?nV$^0Pw60X8uu45=QyEn3c&+LPWktv6-CD@ANwU zd*Q_Ik%6V1uALzP9j&CH!57`X>Y1!yVsEZTz(V&My85%h4$%DRFVWH;PMUuzoS^-a ztLJ|OMgG8Yzw1Hh*%|*)XmPAOY_rUQ`s3&WgIdf<6zOUwLtQ#)@^Rln7;Zg~4^B}HFE}yyFAqM+UT{h^_FWg1UAw96tz=f5wTA85rieaB!Zi(-6!T{3Y8b2_e<*45Wm z->9iL%%Ht53mi#X(pNxHI?M5Dd|5O6&Ieqs6N%=$fVsHBA!5B)Qh)HiZ@xN+x{M$H$!J?SW@}*HmkhUN`ftd!PRWOh_SvmWmW}7 zpI!o2TWiIT;?~B)VL{PVL5cf`^qPeYoH7dXbetHD59*1J!j>GHf=wf~!XqtkJexq7 z5Xo&3vC(_h}Y+-8=nqvO4sGTPC>^fmvdd^Pw1r$2x?8Swebg?rLSCqPcAN zp+Lp8&N|QjP>z;06sMm&wd&kA*$Esx;qX9qosM(gblm&%eJL5LN{And?4 zuOOl$41xpD5Q@W%q*q@}-m*T!J{HX>By@q%dS!}-E>`6H0IN`=!jwNKR2tK?y!n`sAD zz3?@@X1QR2BY-II3p^H?Yc(w?ysy=R`O4{`!6E=k%HCYqaIz+}xwlW7v6O6b)Mj9( z2BSmmNZg9BQeSF>(Zcn*sk`p$T^*-YGAjlxNJ8ui_in2j8lYJ9kJ zEdMdJU?&Q;(b|2A0#vnT-58ZdWakzQ_WsQ9MmZ@_s z`KNoy#-8CG;;2qRKd^e}3ndmNC_z7oA2NPF>S*u0P{e>>UiddNpu|(%rb4ogLkZT9 z_$*=t%xy%q!3?i+Dt*=oNH8EvvsQ@$AEH6Y9F(W9`5Auzi8_A_pyXh+k+J*aKdgaz#ajL3fCx>tMr=zh3 z8!IT#V$uPNrziM$i}w=Sd|Hv7kRc-QvRu_77ow!=4^f-Zup=UvN<6%>O*XRCAK0B3 z28%v4jp11t*}&04J%NDbPpM|_OBxJR;eU{8wmEg{XFSNGdu+RlC+Z%ASvP(9m|*D9 z&038sa1ti2TPd6#I@L>tmBxar4mD+Vb*iYgVSyH8i{(SA(;mE&hwuy%-&pD93Y>Zf zjp!}JU_;yav|n)A3<_;tGN^n6*#gIRDX`r2N=@oe(TNyvjmAfN|B>bEaS{{;s(JA~ ztd^{-qAS|TLPLE_k%KNmEP*!<=yCG(^l3NVMUSks+6)SI&T77ijiPeuLp(-ltYkZR zs=9k>Q@g)iFy!N$4p~dbpzKVBc@n?6rXWVek&7?x{QYCrmYz^n(D)T59bt~+j_E0N z%U4fve9L-b#f??qL5YiYvxu#>KdmcnpO@o@23+}Og8nLccr zGtsa-yCi{>QGB=wY4B@W#BSSQmmbWLX3=7?3c6xLbJHeLcUj_C6@tpU8@W(C290Ek z!)DI>eTPO9#oHk&{8Y7 zB$I*ZZ^BMx9k7N0S#Vw*7+l}&djdkADKXEozZv>4{m*(5{GHGT;Aa2lNy=~4 zx<7|LOuy=Pf0LyAdg(W+@lS?6f7{&rzX^kWecS&;SO9MHe<<0ZOPc(`{~g!`+o0fyM)A)#GnNVzHbbrjS-W^1bTc-UD>_9W{n2Mh&f4BaCRvS|48BMnw=ot0N&07p2kt^ z2CU}M^yTReHe+XXe?ri@F;W3z`#mbMw+OIPml)d88k5VGjp)3&$Bg2a?(E9yX$5J7 zJ3?gCpbI}jt>VkRXZ0I(uzJkoy|p9K?%GA7mhaf#z#TGJ+1YQ4Tid@q8}RUq4~3R# z?bMRys_(CExN-haPECy)Q~_S8{v4P(?e`Ji4>wGAAqtamr9f;s3y+<2#go5hb;efR zk6{9V1tOfPxtcSUj;#NqKqfV`H6>D?1pP`vle=`nsprn_!r`MO;wlc+V}q+cMxXA| zb=mJ}uz&w6L*fvXx+TH1tpIq{dp#p5*; zww*{XFS58AOBuLXd(pi77Sr`B_?0;VQRs_pftOE`PawLU7BDksr~(#=-pi3cT*ap7 z+V}4@mYiGeAHG7TgFi88^hHfLHhe(S_yj{!+2gd;{NpHL-4Z&OzL~iI^4-8OjIjV~ zZ!=l~kBAbw!Gogrl=mVv6Q6gZgt4bVhc5K`#r6j1$AP_SzxfVWr+FJ}f88S^wPsfg zRpR{GOZ^CyDC$yfAw4JhwseZF28Ot5BC&wO?p~!=@h{`KJT4a*LIjAod#V@on#Q+L zWMF`Z#bysr>h++I`bbetlZHXzP016=wC*Z1;@Gmm8T05P*j8WTaPBNr2vtqw{47yu zRGGJ1Ki@1d)bYUug~&Zug2^E<>rwAA$IJHNOxH`IB04*6IcHU-Jyc>i-EbkQ#@R}a9q1OTFlYN)!E};?HsM`e!No2S*&jUc-_wj zm*R_EC1WGxAwDj9-6TbxJxRf8>C`aO7JxT2HjJzuVD>_yn`3BZ)_DI;G4hye+3*7G zRv&7-C=wR!{>MjF0$G9w?;&o-`CV@D4?RD+CMI9&Gu81GB;el5k29+8+2czzejq@f zLp+)N5~^bgI=+v3{Xw3P0fk8ZzB*JQo3{bfhpL+wyP_0vaf+La7-7B)7gC32DtKA< zNpMN}VZN{I45ijg4-f?k(xT%Z2|2Cxsx{DqF5ErMULEDeZHT9j`m)mX2kl~3MC5Pi zg>l5lmZ*)vgr*6Owb&`D=hUYg;4ov* z7#%NVw{HsV4>7KXtt?4`{U>vjO)(Re5)}h#N@SGKI+x?o{JDob8z)23)Z2!dF!`g1 z3M8&XsM9`Il3KF%2nUIAg!?Wp%uBdXxWy5MuG1>mzNA%Z{7#&FZ!48f(7UrceuPc9O3tQI{>{ z=3=g#pW@iwO<+jAI(%NB(!Y`~i8c5E-@6imo)rkM8-eJVUtFAT{ z*{SpM)E^;*tM6lAw4V>UxFbp2g4u9O*k?pgS(rHHVDKbPcKg~*m06H8zZ&Hu;0CJq z+rch{0sAtJgcV|Zxa@$l7mMBuyI>id4XBdX6r|r7@mKGU#SG)M74_roTC#0X=dg^T zeJlX>&+vjo-n;cE53o{iEMRq7Ft?>U)xYXrD;R z1(X&yGKXlPaJ*cG$#KCg~ner@H^TMgT6>B>qR?$sFzc% zr5IdSN_iz!iJEhRu8F81tdKaqiAn_z0`2r^1TP?{|Hs^021m9fS-N6QF*7qWGcz-$ zSSe;^W@b(?Gcz+Yvr^2QlAi9Zs;TNXRnuKPug#vtk7FTInEBZ|B6h6h?w?B*;2Db5 zY8(6V|9s<}=6IUiIpC%;S(Rx`qYW0}#m@Zw;tyNB6fm67JF3K6&_8TWIg?^o{&o}==^Gtu9T&Ij)R4ZB6}ObOUvSE{_u&39RVcE zbjX<+?T=+rIX+)FhM~|nhBL`?9GYnJ4~1-Z>{eJR7?70o}`o8#XKL3K8C{JSuF* zlBn2^e25?Vo6HjlfkC7}W+P$78~>*!sUp;QA5y6d+Q`uHYJ>Wl<_-D7fSN)OPYLf~ zMC@AG@Rgxl80C}s_X5Vrjkm}Qq1+GSrqrSDJBqu#Y)_Zo*a!~9BIjh77I++Ab5Hvj zfR_p=kHQVS(m6S;2$P&)oOr)yFKB~NlqyhlSvA!;n4NOywBalc$i) zE@)WoshI5{Wxam8mQ-_{y)YW8OyNMBEKxdYels-XI?JW16p(V~V%wU*eIr)Kc`Y^9 zzot$Xd`bs0lZ>)Ruj9E=@fEoEVm%955y0+s3KS%P&t23#;42P4Q+Ibvgd^1Hi#KH& zE6iUDn~%S-$k601(aeCvK++LuojXz)6I%m^*IOFD(IC$sqM=kbX?5p9_8vxG^kyo_ z9WV`4r|AP)&*dO?sd52SNt=Nqtobcpz^6^b9#7|pc^IycH#9YNU^VZzG~q<_G`d$4 z8ben4Jsrn2J5wpy<`sOWs4kum!b)(fUDKYV%Cc<=J0R16 z>BgQYFJsPRFq>yZ0X{nmXNOkK)Qi4OK+Fvo4k~eL?u-G)Uc9m7wAUBeIvOvRoO1WP z#j7cb9Yg{vGE?;5-qX>YTBmGQX`%!u- z@Iov|0G!n0J<^2YA$|~Q{}b~uPc!`yN7ZHlpwehOUdZ5(HFWkSeTY-gO=3M;TobW(1SbDpAkhgvDIkg(OHMRBI4wS5Zw-+7;eu@)S!Ee&_&h0i$a$!cI2yN% zQOePp{q=lDO^oK_Jv!D~_dxTFTn^V6T6qc7{gi3~Ism*r{FQsn4b^mDl=f`k2Zuf8 zvS}}-T+o@PRF?9N0xB;?jxk)aTbfGj3L=y%VR}ys_*;{V2SSDoN;R}L#_E7x;b+p@ zXF1BatCLbf!uY$_m0a+u^cF?8wO?S-sl0P>rU;HbiqMo6Hh@lnf5QU?)v*TFM&6W) zg-1`;6@n?l@cx~pW<@}>o&4QEF~_Z1s@!F8>>K-S8UVLp2D->gH1dp-VF$#Hc1jf* zDMAuae#>h-6kJ!U!_$5!r3jbOxA4sHU3AGwD#9EpTWU$X!c9Rmk#YuMP=KEW1iiUr zYlzYe)K^f?yk5}+kp6)`0FaEeco>}~pN$wx(8v?SX@adQu<||io#MXHg2#|~I6rLn zK%9uo4|6&3jK~^zfI6AOTqtPr3`2x+tk!iB^zy3W4yeom!uxiu1O5`Xz=CD=S2V4* zA?KeTZ9(Vf~T0iME)4!R$xjWVHb~{N-MgrBvcg5#NEZOk@8wx(K z$)^>U(U1NWS=l@;)ePw5MDUX3IZuLxRb97^z5~;1+#O0-oV{pT^4r8OS6<`F(OvCX z)9Z+&sDwkt^g?zedVkZI9O&v4heCIjHn*rqr?`;iW*)=T zy3115bc3oGjM)|}$q|AXA6zsyl>-Exjb}!l4xk+y0>(fdhjY48HADbddk@vD@BI>7 z5EwiwE&0N0M!wP>78?vkn=G{p^RYSB;OhD4bjV`fK7Tgy>ehbi7UDV~JehMX@To5Q zds1kl><7H=sym^v=&%|cmmWsOX_<7X;+oC-INhg3T1>W5It!c}*SaNE*zfkAYcTsw zvxWqF^M_~29{QqzvvaCGY{2I3vad=%pqYyp7RzIB-jFLdHXx%JI0dOm17&TIS)6RO zM=v0w#ZQXC#Bf3o#D0RY!%F7i-SSw};N8udPKl`uOd8xF$UVor{NjS&He0*&R7NPD zj(=vr^Lj%*>AXWotc7fCOP#F$5kfEMVOdfu$yxchlJbUpT4UjBif5h4>Wp|osik9T zjIh<}>8ym4eU|%afxmIuoqXz`7@;-G@3-q6tGrPerJzoI*@K6PgmAwQmF@f^6N-)I44F)9F1?=h^YaCcp`pXH`< z6RHH5hr^4 zr?ZUO1=yx0hBrcrT5w47V)faxOylcA@EW60^* zT9ckI+GpnBRSLRyDiZYm-QstKEUyV~2NImzy_{xc_ww|@(hThlX7^W;d+nHs zUGB=36RxO*clP`-w(8g@taA6;i-WMlXywdEwKpT~kyzZtN0jJKCk526Gy*r(Eyf6- zP#lPV){ZFWy?dAtiH43bC>W`4b%t)2k4mm(Ar!UnG7U)Bb6qvob``|If+f}NTe5n$ zUe^begE-DHW*^E3D7-#^A=l-}KbI$eCszD-<;j1CY4f+nn17Hb|C(v@HInLYwU_^v z8~=ahy8pfS;cvwUUqe^_Q@J5wvo4C$#HS)oOARm2-jMOcmDEp~QNO0Cfh%tozkObF*@RwkEM2@Uk$}a`!Bmr^= zY^e-GyP>_U>$sx7s#+YlP_+h?z1-C)qgst?36Y@*&Ad9e(p#si5KvO*h?AuAycr}v zFgpNM($rM+^GY?6ZU;xzQw3{?g@fON+Lp;XCq(Z$s2$kVC@tY-6^F=^D?wM=a&t=aIz445+C3$?D%2Y)a~AT#TEG5 zS6~I1|0J`aY18uP^jujQN7+U1i=&@l3N+|Rbw(FdL-*IYjO_t)OoOMM5iL`f8N^jK zkU40P<4bHSqJDM_MaP&+M{=D^u3zw{QxKwJ?%6+4;K|@Tx;x?I;X@PAKcBN^VKY zUxF057TEDn*(FSJLc&6jjXYZ_NLSUoq|yQwpXPHEuZk8<$ob;mGh}bfInJ1cT}Mdr zaP5P_m>Zy5t?~IncAI!eHDw;nuP=ww1r_CayUzlK0uua>5N1n7^=T;ea(-+?Vd4!?sAk zcm-EoVR+&eKRerHg@l3I%n>u{`keXoq&p&cOC~S!Cr}1I1719ZLAvOj^^Vu~pt&;X zHshD8tHIRm98unDTXyy@Xy_U7+aQhbztZypL! zfXa*X%^MaU6K>Cq0V~;U5t9x1Xf9pMkPal??r;pEn$f9=J92_IP$?+Nzh+a=eum zdG3RI?jWm0KONA6NM*=3ofZhdZjuF%In7K4Od@6m4}`p%!7%$(9qHFE4%cAKieZjJ z99`TEg62O`1nya1)qDW~hM0eM|MTYTfu`+xyyT68|ea%YyV@mi}G3vgRn)pm6?%-p5=?QO~a!1g*R9F z<3(R*i;&hI1LqiY=)~zH=mc%-jg0NT{_^$E`Abgu&o$!Z{bp=!^cCElpj5 zV3__(rThOCnl{}(IB;Jb0rX$i++S1QqF*SuuP1-5_5aOb`R5k@2XBt)tHJX>JuJ0s z_J=S)*YIh669Mr=&n;3P^CCIot%03@ieoi+L)5gx)k$kX5zi(4Vi%3=UfZ6#n~X&c zNv1YkUf1{QgCiYGd$~N$e0f?Ow;8+0?=ZJMJ{xsr;qZ7l_6Zw(xIB+JHl^!EL}K9R z=0pkyzt||~(R;EaUY3-zBxs>!PPUo~AAMM@*bz|}8GQk&K6Wv!Ud>6q%P88AHJyXF zOiS(J`CLzqBdd8_*^*Jz>Y)cEr~UW+xSFVJL>y>B-@(0ggZJV`t#wF7Z-JsdCGzb zbEdQlwOTCAofdmVv6OW&gKsXjIzI|4qKGd{xy`>E~+7OxgwIp&L# z=`JFuGs{}~8FWs`fnlPwo$jWO_x=Nv&y<06k)k!+HXhp+2EH8kyz!0 z;+A;|CvLv_I#RZ~AQ0+XqOhQ8c{!?Ggrn~;AgiCu+pinE{i4i4S~_=8 zoZd^JM5t)+Fs~jkY#~=9=+F*Klyf7});iMjw_SicfO7b0VU0n^X}008O5YSPU7$lK z)BU+g3SA)u9q(5U)#B}G6ua6_<@@F9Dg!?ud6kscCZsuN`B_19NtM!j?a!}S~&IUtzq}>afuVy z%dxrNv8UnDh5}BCIC-3SjD5dDOD|)cvNhB;sM5?)W)Tt9<02NKn1T>dbrE0$Xr4Q> zx)awK$GbsNDBpXF4drykUc5Qo^H5r~JZ$IktI}1RGO9$^_AHQ5lzuzcQ=*X|G=MB$ zgpN1#`wut4mnNt#&XnCnIK2?kFzCOJTYp|U3v`qMtFnx{Az{FW-4V(IbqaUIurBA; z`uK!f1~QUU$T;WrUs^bk@(30@(XH`ez(V!!W< zxbN^;x9Mv3G}O4yr|-V=P!H4B3$7=YryugXj0{$PrXg$Nm-2P;cQ#={=sDr$_pwVaE|HMBTN56=85OekmNG>`V%tdkq=QnUlta@+N=c93 zzUb}sul2{9RT=IfL4h^tUUD_1k6>(vo-Ps6rWjd}$UNv7o1=<>FYFI1__2nET)y=3 zv;3rxXH|<~-Mo27m3hqJmeUS#^WN(|QXU zM^)72_n0eX=1AXnW`U%ac7R;v_$a8iY8do%=xCD`z%PJ)d*=jh^3pTsTfkB7Q#{n$x=~WU zJf#F7KjC~6`Y4G)G+cd&f=Mg4SjS)6s*Zjj%A`Up37PuXITpbWuOn_+PQ)Uq6hY@j zW3MN-XV}jYM-{0n6&FK5wAXpGN-eBLvv>!d3>3#V`p*Dhnt7f+w2>;qpIbi-LYzX9 zG@vlxY}Ui$>x)1Yt-x8s9H|u}XTWbLkuogtClg4gdQGoX;pRkgPHL{J+^iE7`g5ZC zYbVUYW3V&A2ujdGcvA=Rudin)F@vU^224l$OuPMRHlMlO-=~V)#r@59|GWU86h%1V z4G;sq9zEl4i;MdoJ%41qbYg<%s$3SR0gd9Gi+h0`)=Cf?AG_; z)T;u{S`sIM+nL0x#IF4f#az2I+I%CHVkky%pOS7{;t(jM!c2(+>-q!>Ed7wt=^Dls z7fRh18Fnt1VJVx=172qWDHrkla#6W&4qKlo@o9#ibo{mUWyV%yEKsDEPl6TFm5AFQ z4v1{bP*Ou8E5>n~ZRrsd6S(5(oyU4Ys%l24l~}1Ne}yG6gmZL2EiWztxaPn*0L6ZiHBA=0h9ZTD^S*)#93hkqR;|A(J$%W(d7F{yge z+4yq?>8o`2!$!BorB;*}h~b9({x|Dp%EC~~dy4!N)wjVw(C`KwFQw|Ma`*c5>UQh1 zBM}5&ql?G8LIUiAErS4I>NValEu%a)fnT(C=5x~yrXIq$xGE@!kA;MM($kE!fcc~_ zL37j9kcB`}Vchq0_81=GoS;S%v1LOCLp;UE^FFI|8Jp||N$D*~8=25`8=*2J1 zJ;XK55=r(ihY(9}jiJgA?Xp<(Es7yG@gT-q81Im7r42!>5x#hXB$gwnzn}SlcmYzR z0~!{%cf`y`F`LFkdd9!T3bJRh>*}Ah_QmV7qZ^!5seT)18-6n>T{q9ehEc?9qCO4b zFN^Hd`Kb}$65-e}P%CTL9HbJ?cz?B_$cHw&hwL?ys-vGtZ(_fUAsYk$p7hb zxs06OdsDKmUYB0T3HQ|18IcBs8@xRp zd6gerYfjulMH6Aqcol-=7xO#(j>YZE!%m%)7TwacD(wvd7g~1>wzA0P1ht``fSVwH zBM<4P1zUDVeJTIrC+46A@}Gd}(Ry}T1FQLB%^fzZlbN)})W6ClqPCH+-;=_kg6v7@ zr1Y37;K&c2tBJcc8h?9-X^BnQ_}h}F79cI_v`vEgz?$Y>CzFsAKrmA3D2rkgsHERI z^NcdQ$c^HC6+O2{4etI^SQ>r2l@S%Vv)bMoqs9e|AzejYstyq?OE18h5kP+mi|Ig|IMELQ+_ji4M=DD>I-N6 zV*7jv@GrbK!=@%R_0pFh{_9~^u>v{_cnU8PFFep7jeb{%1sAOU1zO#j^i;`WL*_|F*&&|2Ko!{^zZuKfj*-ax;H}ezP(DXS3Wl)U3X&BLuK;e9$lJ$g4o} zN9PqCpkl6!tqAlzd@h*g4lSM|qg8E^gjm5@JIK@a+XSsd0;2KwG1md&bAZH!y{Yq& zTXx#Z&B6JbXZx5<`ud?s6O9R(sn2_Hs?H*r4+kHIN1n-dXK%N?v?kpt_K!6&qBK=^ zlfv(kud6Q)kU2V8wnH4lXjC0p+gTlB2c85$O5thJ6KF#or1e*~)noY-WpzXOP12_0 zw?Hw$hBtT)Q-NdBAUo10hk}DH5;}WXt%`VT^ z*QQjR8puo@%D55Y?FxCern|W`HbU@`V0`ZGJ_lw-?%(tiWG*|hbK=9UeF2Li73Yt~ zOYb-?uU_}dIdoKw)&szZm1HB#fi2bmvYkwQH=gKi89YoKtQ~8^?ti>j8FNaTu()2;ujgxYtsZRV88>!<{qPBwHbzi~p6n1J2e%~@e}k?1 z>>HMxb%Pd@-CNv$)j;}OKR-jw)~R~6g*2gwog0*fJVL24x$&rx0Dx@l#xu6!n+MXq z*W4E(hf5LjQ#P9{m=iM8Ne8_`=2S1&3W|>Dt-@on-dQ6Go5Q8BUf*m*x6R`P( z6*xn#uFFqZ0f`_pj<7}6(Nuy$Jbb-Ik;cy>aazJL#w%>)XS6FS2c02i_cb@zOWMA_ z+oO3qM!or}8)UeF?2`t{fSM!I?@%~-al21{9OXma@24Mx= z8j|N4$%+?E=vnbkAzxe@&c)S5N-{V0TonQkhJ~`NE%9AhmoCf=CC?eP+a0w`NLceo zHlxTt=%pk2kK;#Y>g-NvE5nJxz=b=-e)QrAX7&Y%zW`W)luBx*Tx^DRv6fvXHy+@kn zFs$+myFUK|*Ld(~qTfoIi4a)CP%PsihFZvx&Vkt;hGM1Rkdc~9j3kxZvdS>hqiL`p zw{jE|vW%z1Cz6`H%{~Hj`IAV7;jk-;F&v>Mbj#glN8B%0=xAb(bUECI;4K;o?CTs+Qv0s>xQq!%4l|3vo{$vo?VV79UeR_qrD*%DKm&QU#+9Tf+ z9|!P?QWXRHgxRu1Oh=D@VdD~L-heaw*aqI}2L z@YGAN+bk~E)XzXA#4gO(EXRoOn`hKhg6tk(!HR#-GfzHF1ZpOE3;xBjbv1GjssfZQ z1bqwGf(=ksUG>(X|D?AF`L1m1nD-3mu9*WMynVQ2w4%2h-~;njU?*g;Zfd^%67}ur zRcG^H`9vv8CFMjqZBseJ#n?%QnvKQVKK8t#qKE6&Ru@Klx_ill8jE2pJ$~4 z0*&9&)897`WP$IZFG#8zPT5-$O#oq(7P9Extp2;~t=7_Ho%Z2-FlkueEQC?K?=w3T zQ+@(Xv)$xg?t0zxO>($XIFpKN4}cviK}%>+L}p?q`CUXPnj~P9^)uc8K8geZ@jAkD z%hOG$<}`OpzWmScQnoO6v(Zz?#QoAWxay0X(sjBZi=%tVTQh5NwYnB}@F$h~7V!^8 zt8IEnX9CUd{I$rKpj*)2y}~t-4A3;_fEc)Hy&F=CS=Q^bw>*u!pdKNj``(ft%xjH# zyo=kMvqCkK2E!X61_vX*2?chIeRPzTSFKa8F-lmH6KkHXl;V|_^a8|VTJ9EMCJr7LN;+jq8tH+or6^%{FxrW&eAM0y8Z{ax}!f!$54wUHIu*ing+` zL$Gb&*LfZGTR1as%=#k8_v_0Ongq`uR*>hF zi@paNH(mTtQiD}G#0=K9h|mj`DB}5Pv4l!K4x`|DYEV zLLobY9Pt_cv(|dJMNTajb}C0Xrv;ylpRM{Q7M;>#Y)Vhk2eOKULIQWktG7ygGFV#3 zDdN~1xecCtN(;FBeZnm%1N}_%^z^#0M*OvDKDAwCFxn=K)Kr_nHXpUr9HKESD(P@g zD*Hnu8tltF*P>#}>5J;IDaTK%D%S*FxsY~-yYw7-&ms68gEBR1hlkji9$|5pW zi?&RnMkE7NfA~DU=)O06s~F=6^gYaG+@+utXB=DhL|zi&kqs=)-exgsmE_9U^_Ru2 z=J@47Ei7eE+NLqGM!j(Xq+i@OtCyvIZ*bvZ5OK)VOMQrRt-Df(+>~!zjBRNQq*Vam z<58PdjquXPRDM**>P*GG8KgrUu=eB8B#UqB&380BWAgh;zZ|6wt1&}H_}-m+W5sc| zY>8E}I}Y}!u~%bOwmXvi?&&+@0!_rK*Sy>=x$x?cs3f`{0IsVf)HS_ze`<`7HAc)3 zImHYYyhrd|MXUr+ZO2WgENCmV>j*%B;T9YQb}AGupMFxj>vdEflBJzUM;=FH;?mIb zx$DAj5h>%yAM1NM-azcPplzdVze0ZrEMD9SEVq(F#zDq}XR~@jO7R9ZSPixuo_HT6bKTj=VGti#3OxQLmE;;fv$3^o_AFOnGHhuE>_nyLMZ$mvL6}ULh#j*tA*|W( zcEGZGw~4W^tRpO^^=cT%p6H@>x9;|x{et08TH|2|eW}isZUfB)-w>O z*O1c2@ly}biO_t@qyZB?lRlA0Y)JSKwghj1n+JVU+#5{e?V8}@9>-m`b0XCv7BaW>v!#*!vqVE(78&S0&2evIwL$s?g^o(fRQ+fF3GWt0x|*YpUN&dq)j zpnz-?$U@^50_}x32l4p~a-eWhCZjlKkf3ZwsZ>-17NPJ-ua^$7^xypG<}A8UCW^CL zYAi9F#|ZwA$S`0|#W+xfnN7b?Sd*oftz-6@!)1OHDag9vHD?Qx?_xFoylm|BpU5r> zhsryelLkXpVZew!4&dn~X9*)EAp<7iVutum838sDH#%EW#nyfH;%o;*)f>S_2Ct{O z!0$hBEppPeKi|AhH|zt74q!YnANWu0zAtm>Z zKiGDE0g(SQayaYXEy;hYs`CFIB`05w+22<9Z@vL51IK?-ax$T&V}mt}0*cws|3IYp zXtf&p^W}qlhnKig2bo5m-Q8jXTvSuTl4OpcbVPNXZ)f;pFMBmj;}XWDHUAJK$iSnu z-sNcGo&9M8Pj>1;uG!I>R8EsR*d+F8fSQ z6fb!M_?=FY;t8IJa}?$}lgzBi{Sa8|Se@$uJjW3M!Cug^RlBb(2usffd->^?Ykt!W#@Si?k=xUss?NF?J}-%4O_3~O^u zaCrnA<<8PROt~L@YYmU`sZPmT($K@^7CPE*Rt7^dN@(6EBI@6n7bE92htkb)(?o<> z?3Mau&2vB&@63?t%tPt9(Fetj*cldN69tc$wphZSJu#t*J52*st9k|NBd&^x9HJqN za{RYx>Ses}0reYVe3kI&0et870QnuWPuc0*b`5vA3^lhIx*KAGm_!oC@)lMBc~a3M zqbB*isQs-H6K@VKdPX-8tm+dKFgAXX*3veMm}?N#&vAXtW7`2W?sw0{ob`NYo3izj zWKRg8N-dv-l0~qtL@pc+H&P8Irxiv+`w{K6&k0UuynXkkZ$sIhSP?nDWQp6{+^_|Fvw% zuc1WX!_K$cfiU?j3Qxsu$uG461*Iyx^f0Qzs`Ch0Z$?*e9AxiV&KhyJU*jJe*z>%+ zNiOEWPwcR}2nyn{>@HVD0c8i%qIyQ_*U&*$k>G}{snl;iH)N`zZTc;bSmK?!qBVKf zimLQe)k3Ut{ywFgU#es-fKvXvoZm`;xHQsAt}R9pR+~P@9_kU0;KW&9 zCT>>vx+9C5=I)LC%`#RI$@HnYr*pxELQ4r44T;FDlp=0ZS}GrV4#+$Tb3X9xB;;9g z4(mf2gA_}uEn$paGV2h zEz6Jr0?`q%ZwZn9h1cD-xfBL(A)`3{PZ&VbR6`&jH*pM>z#y=OG{w79hRXe^1hPgo z2r7dC!tI_p#y1}jFZtxYQ<>;;xUjTBjPxUw){eu#~?97?BGhi`L-$L4yB%_0eYTjqCPlG3b0w=#W;DjMq zeB>9riG_YZDu|8_&Up z5w8-(gDf6a+@&n8Q4tOPc2uQ1qtDF)ELZ(XU!=iVBo?w!t}M&8U(t%d<;IrPVv z^+vj}^~?Ki|1yI{y&a`VwS$D~ot5841v*i%y!_eU5oHsoad@Hgt@k>IRLV~l_?#Vp#$Ew~3;@FcT#1s_4C$co_^J(=9*DMyJ;O@4fOzwbo`{${2zg$S}JkzZ9= zg-%0+lNk8Ge&hVu1V?72K!{v;`rt0GMcPE*j&hujjh6IfmgG=--YLXhI_id&=Twz( z&u^*|1sBkt`j7V7ew^zWoz5-C0Xw&m93I$$8)54|$5x(PNnXc))F9Z78YI45GmEh! zYk-c1Jv-8LqjSjwxHQ_R4dWH_9G_vI)JJl=Pch|stlAtXT50_Fc~GK@HrHcoy*IZn zpAU*SG@I|fyeImun>_sf<4yS$3;kof`@mxhx%OjB7S5f~m+{gk4uX!C^&D&M?aI2+4(N*87S z_}rKrzIqxBarp@G*;M5ut(Oi)&>_DPsvR5@b+0my`VbcDRjoUEDVDU~0Kb4kh=7Pl zpVV!-1`HCq?A~7S=vfP7KaW?KiB~N+Ttfp$o^$ud0EY1fRS4tKV?~w;SAM`c>m6=* zPhJn=8P3j_jcBXledfb2TT^;oG>mLiF~{HaIr(c*%iG0PBj9WW=xw$?^xTRA4>oAx z!bjiUHY%T5+et=XU8Yk~!YaErX_wd{4%g#jj+M@*$|pnCUDg+!?c&sbm!-tuXa*vF zuph}U@B!mpAqF;$riL?;0M&vCc9NV1!!ak;rqFmRU5HRGzX`gzMnga50zpRa=-9D{ z62f-V9P5k+HaiJU`%NK~In;-EvmPZ1k-XBO+;p$Y-Ax?qTmBAIo&VXzeh@5$mRmtJ z1Afd?1JU-~IVnb@&GDKy5>hsj+G>K(-^nyqb6J0()Sxd$=R<}%ZxX!BjXDc$#^6DbhK1Bx|)Tc|! zqnANpg#_ArS%ai|QL9ueUIZLT6xJA*UXc6-UDNWaNv3@E6y&dMG~J{*($M05qq{tq zyyP(Xp^!k>Bc73MC*hmlCiR%eBOEDH@^oOj*Gm>>MGPRDBZG)@1IkU> zkaaD|N@3Kdn<)-I-rTr!8JfP@-EtgqJa5NNSz)JK=t(-#r|NTzs#?a+VwiT{iT5-c zdpA-EAiKf8YlM`>iD%Z)^Ht#z&G<1V-_*!BY{owgk(zK`diF0?iHy1Xjs&DY8)-&X zNl~w_e{(SM$x0-UkwINkTQ#wjTw4yD_cvSvE#6JJ7U9<1JT3Y*(B#4Hn&gRFJPa^c z?XqjS&4!$D(pUZ#6&MyRCubNtV>7H3$pfYpmCNII#%SaoN?lb_c^(qHmhK%p0(_oG z&eGAcCW+dXPa0Lb_g#LX`GucaJZlrb7GAi2LTkzo)>gR(NL6z)RDloIr&rkBeE;=( z#zxkX~l#8j3TQMjlVj14t z)GgofffUwszsoeL-|W*o!!)lerV7y4<7bMFNP9`{DpO_-z0JW1af&v-Zp5WYP$DX= zW)o#3@7LRxAom+-7Sd&?8qGt67%jOmhg-X(qK=eZS_`!Y)qgx(xZc~i7)*RzAGxlC ze15`gKNhHM{>(UH$DvLH_3dg*+Hw26=iH_uE`AcI_G4qXW*UyfYmb)>e(P)v07ong zk&mD(Y`2Rln1s#XB$XU82&6LTXWy+j#~3U)>Q0w5^~mJ7U67{WealE-|5sn*?glJE zlDr9)a8-+x9kxT;I_B*SKxZHr7Ne56MJ^)h0Ly@eVUOUL58@Z-HbD@NzCh|$Y?3NO zbbP5lI9K)u6MPQ0lAVcmNgn%YQT%$gpKY?pcM(~tIP}{_Hn|W4X~^dAJp878l}n5B zV#3iV*xO@o+XNZQT^gBi2~&$?7B`gdk>M(R=6%!oLu6Z$fKp3`5o3ClXOtjSl~i<8 zxyZ}jeP0YB#DcT=Grq6M50j_ip#NOU{~^u)nr{EEp_>0UE&pfL4xQq^r{(|pqJPlx ze^K}URLlRpi}Qa#%l}WbjIjQ3d;c--Pf!1!!JRkM)}yh85kLuhMSpn)@OOVBs9k)L z0yq{(M#1L?=s(Ix3emW%NWQt8*|qOf;1$4&ogQyKSh#04b!SIzMFWwj0H3aFZ!0g8 z%i?@!9zDA%pR9W|_R!LmVJkm5c);^Po`+*gV2c<%bFrW-iiij^U32F+d|vj(9Br6W zqC!!clS5lZ;(e#zjdXyGAoo zn|h?lJQZh{j{R1uuB}?%iikK&z3ikzGm7@RPsmQy>Z&aK13vTRJC@5Fnd+F469dwq zRn|oMA*ugFD64lWMp5|fYnyZg8gTn!q<>c)pNJv-ai|?j0vN_y65*1_@$~AjBcqOB z@7;+uJ%WD*?bZ-J38;o;S$SQn>CJMOVebk*Ruoj*>dLvBP(<~1>+`@!StG2(fcs5X z=nuw9iYuA+$ETKq`S>N>2B~UTEiY{CqDJeKSb*K1%U7n`16G0qUj7^>zFa0*Oj*a> zIPOzP9GebodoOPq-gYKWJ!h~X8@f-M-w88~`rb{Kk~+C z(WE7bLtOOH_hvcOMbSQDHvzhZ#NnpERf8Q8em>WFdtrb3MDVVi7^AnY6emeEL!*O{ zOND26!)KA#r=M>%k_5OguU}KxEh0pP&BfXyRA}&oUMpMHPm?(?TSnCPG3~4j%~dv{ z(Xbq&THC4F{oNFvQ?*i+u-JTfaf=v99*0@3!Jl92@2$9@Q&lsENj=V~k$K_SzFyI^ zUMA}?=4xmOkd9#v6clRzt2WT=2X)UdKMu4@KDe)0;e$*Z0!|U*I$f0!8H_`fxn0nN z#&=WT%cij_7+@vX(MzqaV?vC(1*L$-wu{oq;+|& z86Xy}DbDnXd-ik}T$kvr7Dy*T}0Ui2oHhvAfMVhDr>3hu|4L;&Y0wqWqEqaIdu=mBz0iO7g*SVb6-o{Qb z*i=qL>SjCVG@I4s4tJfTXatL0LI<0JpPpiQVK!ajR1CmJ;J`TB%h^vyHtNvrVaAw= zso&HbC19GiM-pf62+Z6z#<@*%zT*D^fknwgS|Uoiha6$hK0BW>v=ka)=si^sb7_Pn zz%<{tie05Cos+B%lyclXv;Ch^Lyts7Nr<)RJ16(<}9 z_~C2?)grZJ%gc7a=fXEM@23$?PB+zuWo6B57a8S35|UMtgTjuDH_BJRF|KuBq;WC% zSB12+CZQ`&odeT#&!(DkDx?ut%j4tYx38SARIbsF9Wl$MXU@d4S(_H9Vj)Y<9qtNh zG|^Uej|{`L0>jGTlsvB0PqW;ll4FKZJ4~;FvBCab@_@BJ@Dv7zwU|y(nR178LCIOU zeEuKm-a07I?#}+i8h3YhcXxO9#@!tncZbH^-QC^Y-QC@_kzVp9`6by+GBZ0fTeW}P zqM)eDeI5$#`JVGRd@YzVya=OgWIb>vsgt$7&7}0ul$<96l5%mtZuDT};=-~NIagBl z9~m5csy{(9)wk$Sz;I#&8R0rCwm>$Y@$DfdJJ-V1Q!d$9e(a$*WEgR$eq61n)c6Gz z1BH24KYgfzW!11Xgc;(<=b7p^T#%gbPKN|18cpeIcVeFC#l%cG-v}uyMN50Yc8zra z9KSj(P75u=6;+q}9t7dt?k)C|9S3^GByyU48$;1zX?zUd?Y@AXj8v?{+WWNza&lTA zvD1T#kOV-g zNxrmzMhxD**_Ekq-?D+TM&F7>-)bSgmOo4lwg#AvvYchm6S?yYVM<+2wsS(i%a0ou zqtrI4L%jK`pVzg)1Ge1!_g&GzvJA54=uJ z8`l>M?h|0<7|2?O4L&L3hvEjbascI&Ne7(*bWT$sd#Z$Z{hkPs0%4zr9vfFpdBtOT z)gu%x&aHR`AatyYp)gqgb_OXG&8mcSY>ZZw-!K!SaN&twno^~WEKOE3*j<2neU>?N zSGZxM^>DIjzZk18sO+NPfKoJD53(QO0~n@P29q31v4mU!_0!&Ot$4+x0;i<ZGh1Gq{_i+msiw5txt`BA2VoU+?NR z?832N(+^g-vFTI86-L?ktlwxC*B(ARlOO_OR~iNrB=IsQi|1{a;7``tJ&fllrAb!a zl~XSeuxpu+L#)-yN8BbErYCzrY3o60LqD`~QctZ}nL5)2tj|{LMP?_syxHa#)+uRy zLgQlw`R^^c&P4*s*Uv~-E9mByo3IAFDcBC38-u*YgT%yX&4vQLa8{@g_5+rA?%u++ zQf8JI3FFih@>sx~<#RhO8dJn#*r5}si@y2C{81w9RwoOA9`Ve3$rfuP=%ylgm3R0g z@_9hMvWKy7V4fi$*Yc$aX`)?`G0tY5OWY;#BbZ1*_+e0*%(UfVOo~IrDAC|M0u+O0 zFCory{PoJhb6(~7m=WyJMu?nTOmPvkw!-tUO7KH$r9h6Zun{2ZfKt&E^wR??To-c{ zG;(Pt=hW1SibKzqkAY54N3>^2(Mg$l+>js?2oq-8(LH!Ju`?4z`WlHMjF{A9g2{B(V1CY`s7I-v5-j*HlR|Tgkti#a3w=!dX8nMq~i7^Ngg)DMHuBZyLP286m3z@Ppd>H zzoDK^;8ObWf!XUeS1wAUb@+y=9`X5LF+Y5m1%$jCr73owUQ|TpG>Hj6*d7n70`Z}R zXUB%;)HTBxf>|Ptv&hTq$60MgO=?UoCg3unJ!!uBczl&DR7R2oZd$U@=W$YffCIJR_6 zV~QvtYhNA&9$`J9L8TXAvF;_;^#GyPIkz{QX_nvB(|QWPVC;(sw0eV3tbe2(z9Rj9 zWD&mBKcWp^>mP)Hf185%a*zMNNJ0FOviN&sJlnq+r~coJ;*4J=`ahKbGO;kxvT%G^ z#Fi=J+4YL45Tv|BD>NA1C$aTh^bW8SG!R%U`Z_7W%I}u;Vk*e;NJ1 zvLs(Q5?W?@#{WtCI`hA*VgBQ({oS7abRev3tY238FKhi5?4F7JYi0Oyt$$UVebre1 zf3&H;4eb9oC?*ERuM7)5+ZRcK6`zUe>!iPX`M*p9&`u`6iBmOt;{D1rs{==Q0nS<#+n%Q^!<<4)_BeC=wp5AuSb@l3vBntST z2ptdz>;}j!=B}sEqF&dXbzqXjkqUHcw!jSwsVKFGv!4# zwCvA%O}a9+_2JhKqs|O1&tJ{e2L~>Wx5ecVa=IsB8CsiKAU0a^NPc{i`6?S`O!ktF zm3;?iyMod-x6c*=zdJfzM~T_yQ(^opp9Y;sTTHLFl+R0@T;2c3!{ z_x(CuE6~;t%eHocn0jwVE*`ekd_r&-*9l0XmrR7#j+YPtgZji73l(gL!(Ir>Q8tJh z>&lnrt~=K%%5ORDP7n&N~j< z6veS{VkJ_RKWKRv$Bi8+xcBAO=F_To z5A^k)MaD#uyyy_M@)4K*0=%hXL*;>vk(~W^$jqD8gA83%mt4Kb8hC&R#^8GdEy07W zHlv?$7|9GRG-sb zqzL*_W~Az--6ixypjbV0NfY^TzLgw_N~Xeks*?*_t6!7WPx);h0(bG`c(d>ylw%Voe0%;?1 zpWDi;-U?aqL>#OX+DMG8DI0Np3jdmQHPKuRk43$Vefy!hN@3|LUifRnxVUGO5nFXr z$rt1sksw^`X{~Q=vt~9+Z=H6>r@J!&89Jb5O0Uyc$!LF2c&HwIJKOUh7Fb!!wayrw z%^moy5q&;o%6_Rjt|3Zz;qw)@YObDWIjq^?gL>2q2-+;0QINZJl|yyrHHf^VDO!*COEiqBmCn z(ZwUeRJ2HYA^MnLpd=-Otv%?0b8tY0!>RLoQ~JCI`X?cH-sJb__cgQ~d}%$vCI;`4 zTr(P}dowc^t-gAl@D}hf_L$Er4+WISw}b;sg>zj222TuYbuYSgbhbrIFjetZweDKB zW#eC2gZVyj%Lvi@nTttJo?%+GO11}4gAlKr#ig3zN!ILGGjJwNf0rL-ix3y~_F{C{ zuvXVcr!{@UmpV`9WjZ|6UkXD!CEXwFq19 zyC8?FjD{TGUqPEP}%eTC7|y9ML66u9F0CKyKW!pxF(n<;OH90HJ=;q>b;OUIQwJ#p=`P zN$erh!!~A@#*YGCkY!O8#N!KM2`t=Mg4w_BWt|*H4i^G);iPd>oQ-}G#cAs3aDl&zf~XbHl*so<+O0L6Hqpa=i4Jzh#6*yDn`OiVS1tV0>wBYVPN8=eXerbggLmdBg7 zEfvh1`(y`GK)+I#7=!GGGpeyCDa-^D*zds$%r;zwFkbv}MB_@ZV~5InYG)22B$k>f z7rwh+f6k`ipwVvKXr?J<8?`d5U*QjYUO1?)OU|6qK8Zmnod{dWenJ{!b{hE<_!oXk z2jXK1g1>AQg5Y3E-f&6M$C<^j^Vg?8v0(y_Bj?|on>2clOh=i_fNW*6+0?BRa3;l1 z=5@uOzS{QhvL?H=Mg4YUUH{^mU-NvZ0mY4 zOeS5oWTN-BzR!ymA=}m*uKKf&(#vd72QZw64Wr@lmvgo4ysGPx1u0;uK>G|beWmQ$ z1Tm`|<^%U<@qP9~?MC9P!X>NTykd}xvvfN!(~AI9AHSAM1om-9_sC$JZqy5do;UP~ zV&Ut@MQ=udXx;D|ykr-~_J=&L{milb-CF8S;@$B4=P&V!1O_dLAF4(2Y3^vU6G{1~ z_;&;uiPR~t@`z`@)2Nq;-V*3HSZ_24+D93?WFewC$_D7<)**p^#(KNXyN!MVwn@Jo za@mO#knDQD)@&T%p|_O3aa2ML94q8sYN@R^tEABqffSh(x=fa3=*Bmw)Hm5&t2UQ& zS|i1_ZFqOD7-{%TE-%y)T9Yi_%OqkznNSf}FMC4IIg_%s;}y_+*S0NtY-av8-l0UX zq-jI1v2)`2J#L3TQ*wbIO^;DL^&iVB`Oeg(ge6c5w%uI zS)e;rgeaU5-B8rD^|q*{=ya&*aYlTWasNli#7dN{nAeS&UfqMAb`n?5iVZToi{kaU z&PSJ>D}VM-%|Q=!uf1Wt>2Ro&#dMHLiy=S`7YFOeO;r|?5L2HJGUixi6+^m?8K=xS zS+Hn1V%a>Ap)|RTw@)Ay38nmSof+Rbii&BZ&-S*_E>q90=s?G)_sV(Rtl&$9W6nh( z@TH{Uy;2yaryXA&sQY}cnQR`G!7yi7HL~I?o97~?v(AHu=+AoWBCjhmGdI~Jr4b!y zA=6oG7(mXzY`-JL`vK_(D`qxa12RRk>D`!jvK5QhQ7N(nb-PF>;Lc=a;LB%vlbI^7j1}%My<>pyy@}8J(jQzJ)3q^Ap zk!B=ZS9%40&pr*w<5BxVD8Xo;9Va2+?h=4DZD$KO0;m!(_^f*UpeCjsxh1PK1ej$6 z_KdjbZqM(<;R)dhC8QqAN7o2y`(gIdJ{}!WltvI72MB z-o%HO4Ug4Vz;EA?v6P2m5Mkz!nQOQilNH%JXziUmZGpXysvZsOjw*dQW7jqNky!kW zRZJG*YG`*_iFFTD0JMgfxx-}Li46W76P2@|5rX;WXph>EJ_Mv4B@Gef+EMXF=m_>z zkMPhBh)&8DL9UKqcNW$Jt{$){0pCmx^DVxu%~8GGl?5g2yX8C?L&t-Ju5Gm+azA`L z*a!gIWEiuv5qBU_YS{JCbsn?olj;?$NNgCw8tD}@L?pydBJxlbe}bhiH~wVyn3zUl z!?h@Et!;{hI3=BL{K@yIxvjH4;=v5&-rgibN{U{&NiBn4F2LgwMGjA8Cf$J*0rX7} zV`2`3#22MccQFv!PZX$NMn{FuQp`wA!jqBx8c{9vts+jWwd_rAL?sS?o=B@uR?8S9 zjjaW8s?PS1@&PL=FI35nRPCE`CFJXxn_i&`5S0f`1^;2VEx5;}b4}ccn4r~2o}4r( zl@chiy)tcE2``8iFu*h+Rpm_Pd;(|VJg1G0x*zHDNW=H*PkwcAUq}sca51L*f9D_g=a(gW}qn^ST`0 zh!}t;KD&y!C;0>tguB0)2keomDD(@fS- zoTRQCNa~jqBN9FGLr(U~#o{W0Hk~w-x(ThpaK5vsL&ok7A3~ZF)^1a)*U{eHIJFXz zNnLmOY9TN+r4Xxa1O#Q1sYU9w98k9!T*oXnCsPTIVi*lp9-JZK>d(xgMf_R_#rRDd zDGhFk(TR04yzNl}2SZvU<+(uXu9BbNR9GB=$&&REPVTRn^`Q&1Gb)9hLD9z{c#4`U zzop0F_S;tmC6!1pH6iDb$VX&U;AKcXxSUNt378>Zk+^J#Gc7~|KMY@}%LUg&-+F-h z2Tr|kg=tv2i!ocU2GD>}YxFK4Awyz)3}+|;{5F?IK7m}EU}dhIUv1w?*n_}V^Fll` zcxm@$3KG11h<$joC|1$Z1hAAGof0I!07mBZ_qu`S}sTos@xU zEz9CuB2*ZjKXars-C#Udsn3#+)H(-Wi=p6eUp(vo zoY}N*?NL=e=zbLqM)005z$;Uyfm3>%HQ&jHF92)@ycOgH{<=e4N(=F~tNRaHB<+mcL+Tkihstu(xO6UwvkJzS#7tgIoa z+ty|H_tK)h&;~v7_BN@!2m)vZkiphkjM1PBF-D8 zlyvUrfo^(8)acXaqnfpSi(B*O$u5oStRIhzS3|>H7fsnKWrt5Od7BVmlr!#@jtIXD zJDz_t=gF1e2gBCYP@pJo2KYj0p2nO_2!hxKB?X1|j?Oe(9c+Wi=QduGRw~nbQCuW_ zT(c~IGd8l3NRg~Nd@>w90m~J}IBpf=VrRb|(Cu4L4K1LC;gL7?ARy%R|8|^)3$de_n z#nTmM-qmOove`O2FsJ&Tj)N|jY*e4VK`wZmik%m`p=}zh>Drr}oKHb*cv6C89HrH$ z!H^$q?4;<>7HVBd-z!@~@os0F!*#dkR))DF9I*KM-g6?N$I{&W+<$%UwGgrgK*Z zijeWLw^^*4F1mOhF}(Z0@S(o2P@FjVQN!e(S!?fyP|cT><;hL8D*b&yuC7cnh>B(F zQF1MJAY_|-Xo!!~Xui=As00Q=F_h09T2BRshUMx+$o>V8!3& z?Ta=85Ar(O95$$k{IJ!2w``R?j6&EwZvPEM5Ab6d`0$^4o4(j8e|6#fX9V~!mG(wnW@-A*h_zn|H$5Z!pXp4ZU!0_`5B@w|5dG&Jvj14B z^}nLe{%sude==3<|54Ly!143refi-R zpKEEx0z=tRv3#(b0{ZYNhp0+duAFX{i+TTiJUC6tpkIa_?(fk9?NqBY{F>BfP*giz z-a@r9uR<2=BDLx{DgyT^GoM4a&q#kF8pde4xKci>ffsc^JXgoBzMEM+5f;uE##FNc0?WTV74`Q&27!119T~2~5>g@wEk^(cTJma_T zAc0p34SHd?F?l43->S8{JAzKnPKRiaR-3xzAy&a+80j45{bI6egh%rRf zdGmI%w7EToM3m9mBiS(+AKebBCur987%oPOqWuCcYi;2CV?TGa?65pL*D;6qR*nv{ zQsKKDlgsU==yh6p+&!^D=YE24AYkyI$6!(>pps8g)oD|!F^<7lJCUCcG zR%#Uh9zw*)`N2sW<%ShHPEqu8vj5jivD>)z{`)h=kD-iyw$MN`#A^+c@Tswi*wTMM)O!ai(8xm z!r0g>&FL|xw77Z>XL%V(U}5TX@~U^ zXJ1fvVTmM?gSG+Gk;}QM@_cWuiFW#{E3vab7l1O`AtBiVpFQXeeO~Xy4QHn45rZX; z-L53e(j;)g-$J`23Q7rDA{j7Eq!{5_Fe-%~2);O&06y&!Qrj8gikX_~YWVPP6_Z5O zw5A7XMWHod77 zC^FyGMCtcC8ZguLqoZe$48lc7tIf>(ZQK&jkm~n3$ggzAC$S(7wGjw3Fi^+^&x@v)=TLwF4|x$B74($s9|ado9~cqr!eM4_CFN_pjBD%sogrzuP#jxbqs$4+%oN#o z<@4y8dcX$e5Nb1VRd zg6&?F5r=|0fV^7VWD*|Q7)0UTb@V0ns3egmO7(V~G*-K!6AMBSw8>N?ZUB#glR&_i zXc3GM%lk;N2JB^|ml&X+bEtcyvLBy70ENUQ>^ZJ=Ox`S;IcmY-#PEt+S4S@!;uDA2 z!;%*;SXEn zFjJ>iyjh4#{;)URSRF$zu_zdAe(B^R6!Vy!_c@L}$DbpzbsJl~?ND|u zao#`7y+C&^K|0+Zqx^2~hsr5xpNru%b)3t>4s-~0e{)nIYi-zu563#dAeCFoIX~LZ z-vdjdYy?;>rJi+`V%t4S0<>sE~Gz)pv&Z2(^+z7q#~<@SdFqN*(mHx!ahupNIrA`O~}Od3<)iJhwdzGcn8ully> zAaL%BDu`yi!%_(-aA@%TxORU9Ri-%oV*10#vXYA_Ck#)4Ji#?mRFGg!_6RB5_`O2M z#=S5x>fzAM_9UlkzmntCpi6?Okak<`vRa+_XWnI5Ta}F&M!j}xBnF3PHlp(75=&){ z+pIEYe6Z?uv03q9afk&QN^VCvEJnhbp64V}O5`zxA9+oI-;xHE_aJ|StWh2#Ft767 z^)%5t4SfluEG1}&61Q{SyFVNYq;#{H?wn>rhp_v;*N6bg$j0nBgP5SGHOEfLBDxSc z8C>WTRLdl$2*alc+w*qWu|E?6MzTwXEbr@Ucp9j;7? z=8R`y;=2+HPCuz5&BrH4Pa&IL@2PH%TZlOw0X=mBJw2{H)gd*6=n%haH zHfImF8+@S^7wHsqG7v%uVHG|!`IyU+=yPoVNDI8ucFZorT^I1p&xQu_NwNvA+Q}G* zcE9W3N!?f=k=Y?X!5)ErhBVd1#MS%8BheXit}?>4rpf|Xnv#m!lqU~3Sr|82#Vi;L zIz~ddfGNFbkq)fx9DT(K_Ano5aPALh9tJTMgV?D_M-z(Wxw_6@UPywN zw{>n0iwnvwR@;7Q&{;vSG$;z zdS5ZrG*GjIw!`ggv7=L1{j1FpGJwTZf($b-Hy^pFo9+?DATGjN_xoNR&x)b^Tv85? zD%bn_?lF(+JubK~=)wa&h-g>)`xhi%=$WeD(Ver-{PPvR1xB&GbyaJ7t1~$9T=M^2uafXrt$0N>BlqPDTn;!FGx@Zg74h0v?-b&cv5!G z@g^^Uv&;u;BNPH8=*@bCt&no4_>(=I%ol3F0R!Dx7(z7G z*uYt=JMsgjGSDnW$O?g&)?*5@D@xyHsc3~{pPMv-dt-}u^yIT=D0cJc*%Jk4c)s62 z;KULIN?lDGk@eJig@hsL)IqWjiGVJhlrm-kSAN@C6_WsZ7fIxw0;J1ZtVhfrT+FJL zw6bufPUcsdJ>(|qhXFnT_s!Lxa_}Gm$`hGGPyQn5QD>o9=c}4bShMk*wh+vbC=J$> zGm{2SF0a!r=?QPv6^`by${-n1H@uSWr7>dHZ)Io!i?T0AsoN zcKaLw4?S1PteM!{aDnLEsG?BaV&&a1(+ps++i~{#?GN_=!dujIX|sm5`rG@-(fx*` z2RK4LviRr1#oyd^|4z90H-MGD+`Rv5p)BS40b)&sTiI4lX2pT6LPMcslIl75L(9j_+zP{3K>sIEXidJHB6H)+}jPxOf! zvAB+))bCI{NsmobB~%K_k`}D@!CY3#$~-rod5%B#FK(aX7Y`36k4(6+DvAQ?hqpWB z1D4P0i;qpCvrqjnGrBpU`davb!@3XiN%R{q*yjY5&@-l|4|Z5SGj;ELnoaqTC0BMw zg7KZ~d6fqrjo1mx11Ym)(Z*k$xcl3~T&K&&7mcR43cv?l?Gy2wZ#~)L`q0wPM=7t_ z1|!m6Jv&lq(H65zg^a@wF88j6aJ?VZ)T3tH*u%;gZlSn{Cy-}4 z*yt7qRprTuX-rQT0jJeS4!!^~qnDN#-^Xg8}gK@O>FrUz$Xjel^U$kaU~5`8Tv5{ ztF7MiNy$ngCQ7EudwFi9KUNDMIGVKh`F4}AIt5L`Ug5J$ra~S;54V1TqIv)HJ!rSe zwEJ*hGgejtTZxYDx9Cl)MuZ`Rc9uw`)`4+T6lmg}O34=TcI*XbJ_n85nj1sM z7gU-;OHe-Z7f72Yf&{5L`!XU=1Q9?cyXK99s4`)*je5HM-NhK>blC*-+g zZ*kF&-S-M*;MRhe#**LU9BZJZ?P(dE2J|b-nFXlCtsw?J#411HujFr&Y5E2ES(g+k z4`o930xK(;(G=RF)Sb*kbz&?N@WL}+AR6Ba9Bx@#oo{HVR!eNYo1ZyRFPFEiBqljb zHaz3lm-`!f1nkFDwCNjuhmWIVoyUJjyZ(v4X~r9k3AsQ+>umu+n4QyQ5_d^|S{w{3 zo`~+*`jD;)Ie@OxTA*2Mv3gr#4{3&6N}Y#^pU>$#B4`{E#Y~$F_%lM7_{)T{X32QB zsUt^M-Ma1Z@MeDYd=BY6jKbNGMNL|MYxS$EPcKJkM7$K8V$}Bz*=O%Zj%@JJ`g@ZG z?I%w|Q^yj!c&Xv!WCxfkbs8E>Z{$R+GniMa&l^hK^QL3!8d|($acL)~*iVP~_k? zIHWfrpyMYb`)D2*dWO!cP^(0#H6OJ4BS)4@5gqR9|qF5kb^q%zn>pYJJE}+O?#K}zX90-6; zVU4zL8;)VuF#VjcpFeQxr5LQ8^M{GsXLov^u`c(AUEuhoef;yk!2#lB)@4@6r0XujahSs?>V60(Q4OtY^;q-|plUuzehXx6*{IMUJ z^bJK|no!DwDjF=GaeXtdB&N|btc#BIG3V%?&F<#dMLLW5k&U1!n4>{HnXh`F#dRJL z@F^kSMbs}m3Hc`!sDOl10Y03;hq-E!2As7RvMQ4o?;l-DUY;-Ec>?ZmBVz`C?597b znahx}0DfP}k?m?poo+@BW9#ZugD+fsH(|XZ;FQc8TkP@eJ+DJLRxSXR7Nbz66YnNS z#Molc5~HA_?@XARLvXHvL(umXZZnU7+w?MvK97VW6O>g6hpwQbte&Ms`9QsqkLIi|6IR1ztqnFpWlWPI#P>n^X8 zVWo_vKCX9ckx*b*&}#Q7X9Jv--(RZ_v4Ar`yi8)z3famYIx;kvb7YvKc; z#9m~Ci4=|bOJ1SKG6BA1!ezVg2VP~L_F#r!EQc9=(#8ervl`4kakAopQXc3*1S*CZ zEN_$D*=tmp?tFp(d&&2^e&Xx4V1DN{QLwSgVsj2SK@XF4E5(N@LYu{hU&U8Rw%=!x z`NzMa{J+dvSBnpI%4clirlnvn&v+2G@iDluoi>nvPuQk+%p%w4N)zMc=1Z^2Fr=!K zH?MzZEQedC!SPR-9Ns&KI-5mP_{4k;Mt6Zx!80pK*=Mg#6rvc}5A~Gi;QNtRX7|Xp zu=CCS!+gR2{H!?bp3Qs1`&UeF4?njZXQO`pnFuat_`4m?#mP#P-20i?)sKbTh&TFV zkH$-pajj_7)q(tI27=3Jk!*j*Z9lP^D5*GQ%1KSU>tT$E*1-BS=3lNF(b;HYK!8FU zY?OW#s2iyMcH+#%^TGQBtl6N04WF+4*C912JJfA4Nd&n^3b6v)Pe)GQ_@edqr|d*m zPs6?IcKvfe09a;Te(PaPaxt3#*#24xrdb8Whr?C%vf6)gcX!ji^)=r^unF8i+(KOV=j*kmC>>$ywA>{$4p5&zAn|SqPk~!C1{O zNJ*s^aedFV0!A(9l4Ls}AEB1t2Bb59e5-Vj9{g@N5Zn1MakI!QN zQo>*WEbyKD_{B;ZPtQ_<5Vjtv+mVtJvbNF`1X(?G^*lnq7^ls1ic2r3WiuP&qdMkz z^jqvfHJG{8!D|qx(M%Lj<_>yJNRvFyuU5S%qB=+!xRTz!gyKxoE5f>PGJ%(1tTH6O73V>saisbhIdWM<^qzvSY?#;c!6^T2GA7!)NFWhoy*mJyDMIf%L ztIFLqwOv67=u0+VQQ6uxLeD zD5<1y+;<+v^)B=reB%y~-aT<0IV7|xMO)EyLHc@ncT9npJJA5vInbRbyj=n2p zpW2|+c=4O=&A2-MPqgU;w2tew}agHnovKtbHBV4|57Ag)YIbPIonTgS~RK zk9EWA82-igxJ!0^I?7wJ*S9XH-wYQ=9qy!fdRA7Uv)d++zo}h1y3oSh28qzk8OX1% z?glM~r`Nw_*JBw@ezO_Un=fcvZIGhUQvpeBAW_fe5@@V1!fDve8EHJHn^s`BTw`?J zK!hBFe%+M+*fmM2axw5&1?Q(u+?#@`yX{OQGHsna0l=*SirG<}g9)j|2}y@6ev1`z z7#mC65XDu(hr2+kQiB}Hr;L$DAoiX>i|6){5qAVb_@)5Aa!ew?J_(6BwxV?FQJY1F z_DOIO;uQ^-oIXsvA4f2;O&qXmP>w#N=XL`(dh}|<66Y|^D)&u3v2wcz zlCX+L#g!Dxd{Tfj!rDNKd>lF`98r3z3ybYO1Bw( zy3M8k{O5)%+Sz8W2KoH!Ymf~6gZdSapUr48ZxUI#ef5nH-ncRHO5#+MZ>8o6@BzX; z#FSvcKxORSg%>(LINEi;PImAIEyWz{EbiIJ1jD255i5uE{Lm{K*^%#< zMRI0Bt=vX7Y?TX$bfO7Hg1D8 zit;Va&+mo^h&G}|z3Lel!<6Bc9S)yg4+gVe;&|^EvMn&v8g^M0aAjgj-`P?NR@t6}#*0aI>dtEw1MePS;ya*w>o} z&z%xRS!j&UGBKKxI197D0>zfy(?eevI?zbQAw7oP_0!269Q*v*9aYIP2)v(-j><7= zhqh?-lUA+jh6)&E;u65Z-8Fa|ib@eIN;(U*(ho>Gh`KQ{KcSLXF$}~=Stew4VMaXSmV`S= zGs~AzTT>s3G~Kf_+;pmuQ)5jkI4l#E&aj+d-{N?`%;ZFIeLuqmJowyKos*TQ8Zh^u z%dOvEczeAD*hg`hvXY$SGI;qCwXWpG=OIP~@VfbM>`Y7jgPyV|Nepy3FXcJHsZ4^) z9qh6Ij+1nrdI>^!c9^0&-&quYk4N5_c=kbf-bA#zPeSn1Jvk2zz{zs9J81Qoth08h z6IeAq$Y|b8R!zNHoZ_we4W+D|6(CjA)+|_7hZqXbJQD(9ngYx?7fCZ@ z|K^@cQzjZC5H}P~n>ZRQ(n7hvVUol+*Jsw&E&3rxI!MT^sg8XA$oOG35>n^grZLHy zUiWIoYG9;LZGFRN-Nmh2MOzPOTH26el1ou0MvDRiQ@{}2sk9FGOuc~xtVG$LFYqxz zQmmurONGxBfqI~p8TgPv2oDsbRKSng@7vwc2&8kQ(I8XCdn^*oqE^XseqezH7%2SB zAccr~LUbw?k{1Bld!Dj_Vu6mfSH^*_qUEE}SJz^8Uc!8z z8g|@W!$r_2&CBl#HrS)cau%_6Wu?{pq>(m9uEaXD-fy(@*fBUb=nGgkM+om6Q1w^Q_Xud+wLi7vMmz&ZnkSxkm$Oc98FP4S>Acthaq_P=ZKQ!KH zOC$R5(XkqXnmKb;0q~&E>*PpQwqXMc9O~2!unRc0Ks*}*zd4tA7l<+cDpasa-sP0| zHm10XI2A_o6E*YY@)wd*C4#lj$hqu|OY|MNYGVKf~jhmp|6c)3a|Em}HZ)+(Omc}dSnyzJmP4xZ(K z4%dpgMIr~~lDHiC=#qkSxkJ-6`oZvSw(tXy;^hgExZD?UiH)kz#xVL^U?Tp*3#*r` zAmF>za4EB36IPoaR#k;nF7>N+lj(Vj+~)bzh`IBrMDo$IlT?TW+5OEIBpH_B{hE#4O*u67D#%RA&GyLjI+g2N3I8l3^m~5BDK}MxRHt#(wF1W16BG}o90ueyzY!=f>qa?j z0{E`)9Ad%Kcv!q4admqPeapyRDbGL@kVyMVxDw+S*EK~7$AO!6lCuOxAGi*s2TJ5WOmIfpD)7ve>)?xbnAL zE{IpiC&QCYtf|3hLPg`RtDGM;c?BmMNPzTZ{RMo7BBmmfi`^1ZT@;*$XYTJpCWjgU zeb?K^F}7Y_)kI~#QRim3^s+7&Ix74QQTMj0U@?KgT)rYJ&^DIF!J4~%EFo&&J5^^J zcj8PBEjl%5r_Zk0<_(a5c~SLD1wlxAJDVqCIdL>9fO-!O^3ri|YpOFdI&z)op;+in z5fqzo7QiV1iZ76qb%B<8Yea&?=;{U8CN6dSNnB_pYT3*2(#6@x$b~h}#9HQw^egos zEB$sc1HsV5{4Qw}W8Z7_?BR@{!Fdnb9nmlLuPl zgxyk+gnah%7qO1j=2!&%w(pt&Fu_qj*^dKZc5D24C2$7Gq9=3{5(l_KL(T&;aAZc| z3&LRr28dCd*cOe*POfD`Fo7Mo8bBen&{bc01b3uW)WXdwf7^gZLA&B_E}PU>h)5w`4b<^(7K;oq*0@DZ~|Yd zQVifsQh2zo1JT1j-D>TTtj&61MGq1^!NU3kxn}Vu>eOQhF6k#6)2#EQNr*E3b1>t9 zu!C48q?RKU@N)!wk$I0`nB?Qq?UVwHIQaS5>PH0=raTzzu7m}{$cT5PBAkB!*7GFj z3>MN!XMq-_clOh?Uo8uJ_BB>Ujx+|^%GEQ;%!B1yiN}Ns(?-cwKvoV|dO{KD!-*>Y z!0kOhc@70Nu0FmQ86N&x9Ob?z*4q{Oq+G~-TXTIOc#H39KX9EGMLPGjLMI}w)GV%2 zj=1Jaf%|f5S)=reSDETXnI@JUZwofEHWwsd*Lf!5?kfe^hF3jw<7w zW-dvg=MwU)&`c6G36V+G`I`txD?~yN`w0>7qhKSPWjwlmoA2|i?aR5Z`CjyhLIVga z_;s)K$Iv}7&3bKmXrzLAzPd;FZZNv&pi{-P7;(pn!;lsr1f`&3g0ff1u7xi` z`{bIh_yeTE^2{)Hu@gn6k#&z*a_$K>*L5NDx-Y6_B4oHlS|#E5|KjeQqch#Mb>G;w zDt5)TZQD*Nwry5yRBYR}Dzt-IDfZLW=b_POnzlYi2Zw6A^R>*IajwEm2z z|DLjagk(qka|KK3eWn9B6Uola4%Ok32oT#y0t-Nr=lw4%pT<=rmYj7797D zPG>l@&v=;R5UEgM>CR_a5ubwFOsU!cr7pYrAig&l6@x0&m9NBHY>omH6Cr-(Jv`5E zn`fa9Jgd%y!zCi*!>gww^@G=hT)sF=7${j00F3_QqWr^vt**W=JBA>b-8f-p#3Nm^ zrgis)>ZzHg+Ees%trhn0)bq9WwOJv1!jpA~95vFO^Sw?x>nzs`_5PWqFf}|Q{uNGS z3)#08>ks8zu63FsI-9|-r@PVEH{+!Z+rO{~KMXrHoN=1`wx~lqg|_lw%3-fb&BpX9XCybb1R~{=?6zY+Q z;~`koY+GqM9lTGbY~;>dUmh;0NM%gvJF}Vkf(_}q2B+wqg*;_BJ9oY_h@-(dL+QvD zYXw(mM-BU<7$W*7;cXr7VArOb0d8xau7>aET=ki?DGu*g!CteMSS5}S7Hu-<`UL*1 z*!SGzALHX!`&u$akC@a50r(3oi^11mRVDC#q@`?}kYDD(yNY=L0vz1UwH%{cVxW?e zb9;&M2z@bha;00o+f+grDTqpK8)?x<67s)fM!+#ki%*P(Z=nU1($w>O5qEdmc3>#) zCCk~s0N9S>9y^oPl2uMhdLemW6B4&~tU;EwGEmd+ zfnwu3Lf#XVAFaW9w{_P;(UFOQjaPckP~;8UE))NraO1Es9{C{` zc79D6Jx91L({qGbR_vM=gnH#NOX^m58^x^2$i#i@4NcMII^rF>DjB{~XNGwWv1i{y zIcleXgbaOW3YMSLJMriS&fP99dYeF1o8Gop+NnX#jTvUHVmahS2 zzMzhBlD0=;;KX7MMb-Bzv{)2?)6A4S`|08}40JpZ0sb5*AQV+5cf;zu=Y^MwlY^w? z%P+wP+(+&nnh49q_`QDQ{3`QSZf-#*va~96t)fax+IvB zxww{7Z9028tyq>rcEv2{p$dZMuXJcaELBOuZ<8l_(yC4AY;XFTY%LSazfzpP40#cw z#V)TD@{>ek1b|o_=(!YH8)}*IrUbCB6zD1%vp(8o@=$I6N?Blf9CF`>iz~X=$qZ<; z_HZbFq-KYbi8j~_&MUSw*62d6t)W9t8wY(qgVf|}jjjs0{i@-pJsZxH<4Zy!!7hz* z^h<%_VNb~qp@UCX`&csdCM5?Pv{-I2fQLjjF5EedY?y0eDU}Pe^64?wm=yq(3krAg z+HhwZ$8JOxZ-O*dOH|0XBbagBfhb*jBL(24sM6Z8Sx-+`_8*{pphhKXMacgFrRTJ za*6idNV)d6+XWI;@e$!B*2yqj zT%y7tYr6G!_x0vy95S*BPlk~MFis{V!Gq>ept&|Uu5v+L-mlpJzyP{$O`U%&eEnle z;y)#P{S8{h{x@h9``@5dpGc_RLKyq+p^wj)?BBY@zblA+j<e$hWT z!t8(YiT`T0hV37=n%`2-AEDGtpJ7JK^sK)LNDS5p6J->m7AcJ@boK0~_y zC=dH5&5QlBYM)Z)UzF)Tu}_MY`k(6Lzk2t7$fW;gj(`1ry!=_dzmI>hGyg|;t~J#$ z`_pE`^%lw(D4L#8h`~BQstW^?xb#u&0t=&3O-myTkfRL;L zsB$rkUju&#kCcD}B`7SI$XY`{O$Rm1@U0}2woV^tJURKomd&%`v#RL)RNe@9L zbFp2otZCz_>Z7O)d-V6vNqOe64jma%gaAEVc z1z}M&u2`IhT>~TF+^vv_iVIEvZp{*uuU!Br2YI>d^-G+Ah_g#gy;r7$U@$my?R zB?Ahn419Mo>tP0F=_w-O`P-^@7L$bAxdT>{wlcA8AcK1A z>Ms)BO4bIH(zisvuwuqV+nHP4Tg?TDgI~{PbCM60(F%jlE!m_v%g#Qz=EpqZbr0Er z7gl(x;_ahh*ch9Cjb6XgdSyHIKUwqqavOX&qp6qP0BWr(%LN#0P z?nDD+?U~ZDZYEYep+g>RUI=_JtzS2{)*H~7fLhB8JpO^jtEWUx%umb!ED)}&uUGaQ zdM^R`U>9`oNRhI5Oen2JGHw(*{q!b4;RL9_8^btSW-G)A$4fwax#!}e7#!OLZec3| z8Sa2xzBostVSBDvh)#MUnCgvNWp7aK0F)2{DwI7F1)g&+XnBtuk5-Cb^tl<_W%pZ7FL-gpY|tE9oHS&4}53BK_j)-xT-9TUl60j5f&|<;m;^w zhnmyT2FEO_z8p;1t@wve6hP191Ff0@qp)%i={NK}kT)UrT6=r@6q>=yh#qX}+vViL z@gL_waG10QWdpY}AN`Pt<5>~PY7!TxBxOIl6r%-Ug3B)-(^Wn8^{d<(td%-wvxa2n z9o}ySE`N+1d32o5lBa3>;PloxC(^Wq6~|K!bQsJ&ir%}uX23>$eyahoxUr(2fcgM7 zRcA<(EqyFIQA(4lB^};sMJrZQwl-5R+7uc4Ntr&q1>8E?Y~6N6RO!SJNSVz`oAu5U z4ZfRqymQSC-8Hh)^Rc*Xww>6Wf{H;Tnq^w|lTvrQtO=fiMt3r+DDMO|sg%{{)d6s% z8DecD-hk^8QmI;H@a-EKVo{p^6i5=+ORnA;b1h$jx-ZFrm#8kDf=^I{@i9?ggdLRb zJL^8wC7Gu8WtY*c`Nt|DZLRp#pj;R#W=2?yMnaS?fdUvVt)yJjjcXmCS&px}1|yZn zxZ%`Cwx)W!ITT&50EnVY0=1yq@WFvzhk>rmIt-sqLJ901y=+inEl-uKiMmNu58YaF zm!S^8GX?B%nrxl@`{SlU)Urb1_xl#vgR-adntmG5S$o#2#p6D0qnaxLrzhrF19|mk zkNrXR!tW{*V{-(9(aKHh`S}ba_~lPnn2Eq9v?n%3N+x!mC8=>k!EhK~W62|yqY3&L zEgf&EI-@Qff=Iv6}wmP(v$ z+J%|v#T%|413|wHbe0~kA^Wc9idl0OVrBQ!7e1tDOi_48TkN7gT$9h+>f^aYBs@Oa z34YP&)cn#prH#iD7aa}QvE6frwnR$czq*Lb>$(7==1d7#%*j=7!RwX_qQXYQgf(KG zaow|gwKlO`eb&a(>AGpwj>;&E60S{fg?#~y(2$Qt1JNVyk>1%)DL>;%AAluMiMm_l z>}yB$nItMqS4=y#w2npM5GGQP&}uaGljlN}6m>8&!D?=2GRvXl8|R5$yft;@*hyf3 zJ}Uzosot%;#?D+$b;DMUNn3!TG-Y}R#1Kp+e$N{8t7YnsY4yo*(e0`{h9ls_L47L= z#`8V)Q3@S;)dWbyVJ-D8fFapI40vL0;tZg9l75F4!z6H;LlNNvQ>mv0m(LpykGH_< z2TX$zSK6zns9$8^K(2e|RB2JNai@myt%X+>L#>Dsd>u;1PotW0ec^D87|-m9+Ia>% z)uWIB`y}r#p2vWRaqO1_bqeKeuvLzDLyRdx9HKSO@5^n*jl##mkpr7DR%Mk~0Y8Dv z7x|&pn@%sO z<|R!Hl7H^n z$%cI1_dTwmH2jZ|k5&!bDg1z>MU&0+IZY~?8OUariitj>aru=)FQ^yt8t-}VRV8U= zXss7LKMpxY{cUWShC0ZhkBnvDVnMnnY%(MebMu_{VQ{tHXTbhdRh_}D60pp@ z%cpSE(1A(*l8ab4$%@fC`Hw4N{g)OW1C0RXRX)a)hk)Ke3P!vw#22`7H#0&ixBg$b zm@z+S41x4V7BOIZN`!ylIMyZ_tQWdUsREoC5+bs}kV|nyip~iS1#35tA$HyVe0ErTK062VZ! z(ufU3)9;DZ@*iIY>YsaeP-QezZYE?BNmKH$ur=#Q&Jp2T20ms@77cAgZ2aC=>}D`* zP3;(Z+fh_VhuM6|E#8<8K}YgCq89C-u(hY{@b5HQJS`*zM_U%t*itdp?;O9NZ;fXJ zWx|~btv}okDo)GuIIkuvoSb-`HPW6l9*imt1?{>f#Gps-QaJ3L@(_+;M-T}U`Vt|M z^(uy+!BBM#t!m{B4k3z~;lSs&HV5-ax@VFlHDy~dLp+O>tEawA=c?t%eEpe0?}ooa z(6fE<@yGG@stC%u@z1L1I3NT6+bngobthGPK6GcaNGVAHl2LpTkcq{|HMc8*nIuBC z5_w0WNU@Efj8_g;R=ZiDE@w~`&XdLQVQXX5yK}DxCq-sdG@WuaDoz^cH|rx_Qkp51 zkQY}rX6pB*r!L*z=y93zSmJ6`Ko+iTbuvVz1RrY5LM4@X@!Li?T?ipE9*gAst@@RG z@b&a6V(Pk^OJaw$gvGF55i##Q&sPH&#G(#ic=?=x%gk*RF&q2^XWd$jSG zg4eSeEb{M5W}Kii2bAARy^cGQ@zK;Zxs#>c%I&KtO8qzvG9XWWX=(V}6U$$$2y%Rm zp*M5SjZ6YqfB0zPm660Z_qI~FZ1|6+I`g;&p|;~SQptavOXYK>`^uM#hCq{F#j&lW z>cTjm)DKf$B4=fK+kz~>V2)5Kqaf&C7kebwGstB$NO)LG!Jf1#5-Q~uc2w1lxtvmDhDGko2$AD<;dgB^CmREYEt;{gIfKp$-vf;)p@uO4*X;{&t5I(08GGkSe4QpQo|ilm~pPsRXx2elb{ z@Wa|tO!X?^_|Xkc1uM*3GaFH{s6uAk520lQ^2;j~E(@{v6H7bV4blF?@KQ#J4ddvS z9oCV?0S717^T-N1KHpY?UjUL57ZwthJ2L_2$~TSGaO`; z5PEkxZARH>%YeGW)HUYRz25uVy}|rToKb|cazHUVyXaua3P_7K)xuHUFSkp3;_YUP zyS@e?$n-w*4oIHVWGjieX2)BWiD^=Ys%0wR5F0Lt8N~(d>Iy<}pGuY0T8~D`)l%tR zv1}dbD^_dB5S{JT(lSzVeCszyv!o0-7kcvWBz)%l{dcR2pGwZt(m3C%mv{;tP|xIs z^rK%;?h0*c0+FnZK;ZV|q#ljodal~Urfolfs+(o?BM8h!fxp5^R@Z8Au*Q33<0at* z5S-DcQ{OY(44S0Z77(e~Haom&6 z>mc-D2lS&F+hV(y>N0GBjm&x?MCVu7&2|6ro9P^I&!MNp#+ z&Z9>J!=+u9`&jc@0_UvW$(XS6hC*2Kn5tCJBx^HdV7-dJ;uT>c?Ysd&(e6pZi!|1+ zf|m|0xhDKu!8pkYtuuqHH!3`v(fzOCa}Sr1xJ-p-yW|{86Hx3VyYN}jZ8X{+Py2X) zU;wh?12}&vOS1nHedgbZDf_!0?^DG4lm-7ixsieHw_^EUl^g$L*!+|Kj{Q%#&tJ)n zzZdb(f(<<#&8Lco&&2x4rT@eB_Gxqb1p9ott{7;Tng5$Dc>hvG`iBPkpV4vt|IJ+g za})oqsKdZa{~zR}pQ)}|?=GN%D&X@)c?LR9Aw1nv0QYu4`xPgSkYXeWXVE#LN6$p;`t0*x?Ri5Nx5w*ZZW=n?V!9`N$>_-P zD(}0r6wjQgPdl53MC-3GM=32#>JO?`-i%6uUS1sauWO-k3o{ z$t-$yrfkrp%C&=2oBH1U9Ui(54>XmUd7jmT;Wun_DF^CYyGV!1;Z~RBb!mCj*;FK~ z@C7-t+Vl&rPK`>{^l%+en2zrnF%O-*6u0p~W{)=JDWpDDl#tY^maOj`zj9r*- zV(>2cf~L=pnJek-ZI&I(CGs3q;q5fZct@sTZM>Ce!qT**QMzRXp?2Hxsd|JUtSwJa zI=ZNupbBjjKqcIu_01DwBpsmb^8-Weql>~G33Kr>6V0>s4Dpd3B;t1CY&Ra)Q*~9e zliv;dVgbr9k$C;MwPd&Qr{hc6+6vQFq*cEf!60)bDUgb9t~wAXJUcP?tCx9x#Xydu%Itf_7J-gJ*!J}=!dB-+DFlpH1K+#V&64Nqe)#hz-ECh9lG zc1S>!@>2oE+Coe4nXL*xK&=r<`XzAYrWZ84u{M-6^U2PZgzUZ((Od4?nmCXNrW5lt z6_#iDaV&qZL4!)Q@TYxhl(p(c)8drSEnRL55r?5SpCFSbFTf zM>7-10P*U7uiB1WxtEW=!w>#jk#mgg;km=KGw`f zZ9uLbnH&x1Nl%B^FK920mC1NLnnVC0!<&neU??&gW&${SM-VpKzUL4Z|%FbuP zPi?>ZOy+z4ldSO@l?9TNz5dII34IpJ;IH&kyU9cc>EInd&xCcIgH0~AR5FPPQH73& z7SR)nz+#BEGd zQ6#$c-ADA;^B~Z$@g}@98+Eh9=5dcn?5Pj&o_qNY689NQ6sluoO}06B6k)b(t4$vk zmR&Z;8_Tq)EF@H7n&9i@4uL}aykPU3l!qU$rz(@kQ)hi=BPf! z|7cxw@?17ieyA-~R8d~tvYCnf{_a&OuH2F`Ks+U+hqbER#ri^`Se3*p4f_Il6P)&? zBZGQTm@*YUA7??hZ8|O~hht$fxgm4>6a$gI z^$VZ4zx7P5yg{5OUbb>pO+0n_=@m-axCs!0h%>u-U)pN*W};@e%K%lk*T~e`0~cDW zAd#&Ek9FC{i815r;0m8Zg zKyP)_+%HPwX1FOwYD!7e?mUsM;jbR8RC?pAxpMtx%Z1T^Ns;}(0( zbXE@Nk53UxRlnW3La3q7&8|wxKJ zes`EWFZZ#Mpu-MYe1E^hygq6{Zx&sC8rR&+v&3O-|556inSSgra4pZmOs zW1%OmXo?~#Zd6Fl&ke<=t49Y_c`*?D=D38zcZ}d_ z)V#ipJG@MCJ2kWhY}nxyK$VORt@UyReU|~6AQXKoG5hJc&Q7=Mu#%tyA%&!tHx>L& zzTduaJ>i%bDIOyrn#Cr*8Dd*o!;y=*3cb z{ovHT0R-NcCOva@ia}G_O=aC0&260y#i^Jc3p&54*lqm*bciVm%oBJ5%2cYclcI+O zr8s8n#2||XbXkv}ji}5~rT#LaRwo`~6d4r-Ppfflt&_G?rSGKGOG9;UVj(7f$35IK z*5zl&ftkaUG<%o%)WogKp4U&EhLVV~hs9tFKnDCE5fU#dTY=t7bghxFezg>D(mdo#aW5#gva9(guk5 z7-^(<0leHjbX1&%%vDP|E05O&C9^irBObc7hk|VEYo~hsjU&r254+x_Y`LrjRI zYo@Y0d^O9>0qyM*+HYfjTZV9J2dopO>iLkyQ-8ML$m z^y2aJ5+3g9EaZpJHIERGOKAQpI#D?cY5&+NFqiZg8>uKUFq-?KLjF1F%xb8++50Yk z{V#nZep*86;n6-zz+{M+jNGb*nB~-%NPw49U=g+uSUozJi7bo_qI>WD)(l@1W&e45 z_{SANZ8?>ic9~+s5>&>?EVbde3S8`M@gS~f;}~i@nWNp(4|&ysq@H%vi>&CLvpEqi zyCKI5w{x&Bj5~(RzSX->>RiB(#-` z<+}*ng#xG;AZF=8QIHIn@8nINb9EZ{TUH!_t=8W$L|2vKgJlfW@zOLgc;RrDx&wI$ zG`9Sxai-s}XSZ$nmll!sub`^YVHhWIXRoUF1PP4po%m@}R?QVZTU;O2VTKFU&! z;ijnM1SxSvztb8zs+)$0@LGcV!oiJ z(Zl4dX+u+0AQ@m@FNej)piuS*eR zuY+efhj8vE5~MH0I1}Z*+R!^-#P=Qb3N1%Vewr%~dJaKa-9&a?kA*G!tgUfnG}Z3P z{u`dT`wH1{>iV71%LH5GxRhb%$`$fF>T5TZIV(FQRfDI%!Zg%$tf>ajvX9c6)IBANxe96kB_28k--qp+6_7? zw6YNtv@#ITb!3MHKhVXt2lxRzF*LDRe3ia@f+Ai+)%k)upH^`5sVwQGSUkP>S2DkR z^PG((Zg6%C(3AlMaR?Q$GLJkJq4uAJsP$0{CXjivR~!^VH0BUjVkpL6pT=R6JXDXo zFN{Rv6!D%;-(nb!3U_y~ZM1O+iqVvCD-Y&!0f^Y7APh){-26%?Udx~^bk^GVEQ*rX zq$kZQ=RE9N0O2xf{g~k8qH1@Yy)lAPlti-w@>EZZ-{?ebpERi@!wwb|M+h{L)ZRjy=niVA^vj_|I`pOeg?C#e}=~W zp8xv8Ve*;Z_BkT3^fi(WmR}@Yjk1Ko94dqFFMpR`5|T$E`fP z`6oZ`WRwz8@MtPDofET6=ZmSVw^lh!dhxnF#~3tGZG6GKxp!I|8!tVf5JYlBb)k{6VpWMjZX4q-vxuGW8%c-T7@D8lL-C5Hh7V3!I9W`pYp?^ zrlnD6*qNap=Xv#ZWeQ}b7sP{5a1oA)%j?x=3ih)8U_ktS)%iu?Qcxn#Td~V3@7m^J z$h@wOOUITTUc;)!fmHqs zXPxy(Bqd;P=wxrn3k-Sd#=j)VQs#5ddGQ{)ERoK?ds3COCre-If_{X`7X!S(UQogx z+L#LUobD5F$Cd!?wzYYR;L`Hur_qWK8p7;0n}H;)5os}f-3C@OL=Kw3i4 z-K&`04Fy_{5^xyof2`v0puDtfIV@^Kb}ib{DMrhF_{HO;SN4c|0kV4!&Km?D%~H{L zeO;wKH0x^NJvt=&#o?Omc>WXEQ|lck23#e;u7+v&W%oXLAdomKFWWCrC)X4eE+UUo zVOE>IMVd=*s8(!-A!J^IQPddi>tVmIgWC}BL<`R*u+aBBqpdJvhr8TZE%Pnh8~pn4 z^sHV0|J6w?rE{Zdm2~HpTg82uAL0qGz4yOv8n8q6BFIoxH`I;uS&7QHQXeSJx^sD* zT;G~QHIfbp+mR}=-q$p+nf$R%)Va6b4x`l%VVN~!MqA-=W{W-EK(U-oy)!t01&^KA zAEyO8KzohW0*tWCmkwpl>p+It*Ct_%W z8tiTepSbm0RmE%BSC;oY%YOk7?)H%)QA&|)9{Bl<9PR6f)4blCd0LYigU_S&yGL9I z3pqvg>AD3TE(miPF3MQj#L2s$yia3=sw(S#2$?cQLiHm6Qdn8DP%y+c0?=02oIFiN zL9ZSOicQ~AF+_Z`{KR?)NeY~Q9YK$h90sqYwaDB2Fl_rim~`2s3tEc#w0>FuOF8?P z>M+Kb_UxRwoj&9_P9cic*mrO3@-I8BrwXxb(Z6Dj(3nVds5tY3)|Q4)#QWBY2?=r$ zg$W7k7x0wA1C4})%QXFs=3`qr{`C!e@9-yCgOdv zC*LOA>Hfj6V@#VTFGsRew)F6$U6cPD^&{)Jx`&4=smFWGIoal+X?2}@Z?%zUg<9ts zMiy_u?cK5sx=BCcX?*KoTHd=Dp+`JKg5c8Xye-w9tuR(`Citg)fE)oa$w;qLHjY05(2Rd5lD6-g2P4b8Dz zxW(E*d(>9ye zSi%)4n#UBtUE@HO6ZD4Ogu_37C33=Fx0eFN^<*Q0EzVx~2_|QvrqHEPEe(BeDrq>g&8)uq?AQ;}Y{gC4DQ(LoXltk*d$@zk0Z@EFuqgvrH zn%FPU*GAIJBJ8r~@)u?!i&fUGhny^@PtUC&^Sqm`1i0v5D7@BY3U{sZb>9gB93EUq@e3#agA!oOa&u5Y7)oIZ0VbFA~1DfE^E-z_;miA zf@BXSAwCrSFTXXH$?F59H=q*_$+}aWnj4>>^;G_ zVl54JP-1=u9U=kUus0HP|x^-)u)k!5AAw^?iM{{k$Rg zd?}Tc#RoUzQY~+7eYBN2G@!kUwKvb^CDs-vRuC{dQm_n%3`&W$mGF%4udWo$!u&>= z16X)6)CQ!A(-FARP2$x>d6=U=ZelU7zPY_Gb*p37DKURTHdh5~5#sBAf9PZ@zaZL! z^2`DRTm-Dj&q4AKS}>+Wi9jRi7WLJnRwOy{6NmMrK_vlZ=SaaV>#4p@oPaNy2)bR|H*<+#@Kw8Oec zSOVaXAsqhI2D!sbt7dWogZ?#)YR5}d>HOpFGTkB1oZA6 zQZXIL5AAnb(&h$fq6GEE9|As3yy7Z^6e>Dr1s-ZrR3nUesh5Cl$mtbZxPsSuX-3`6 zYb^48Q&z~OmN%2Hb+}2V(^i63P6rQ%Ce>mjC~nN*A7tQ8X996qqpd6tE>p%Rdcu4I z45y}NzpC6qifJ%;lIF<;_T2{G<5uLB56chamD)mb82~P{FQV!e&zM+!T&c_Rl78FY*?9_Ap zN>{X&1axxa_*e)a@9WUS$p!^UtS1Cz8K0eRE88v!hE!7L*M2?nHmdLsxF@b`IU=|6 zkQai7|T&L$&R7C%( zJ5JMV1yk4>sND=2n%7%woWI24Hd{loq_55jYX>+xq3OpPgJw_Mgls~8uiQLS?HY7g zwfI=~P6eI%7BD@3_-@~E(WGfM5Y&*b^u(t9c8kmu|KQ0Jg0b||I6KCgPmP9 zF_ABbj^Qs*Ry%lfeo1>9JNDqXa>l;GW-J*}FX#eSH`r$)@Z^J`fK+ODTtt(Q{fiL; zQq{wAUv)Dr#=2#wnW=YN>X}Xkr&3$XRlaG9MHXkBi<0erZdJU|HftA>!^A_F4Zy3P zKd$olowk_xk;b{lIp*urxF*-iPiR85+Pj-Gm>yhHK+-7eOm929w!^8%AcKH$a%?lg z(m57j+j2R-s+kZS0a}Uso0rie?{y7(NNoWK(Nt$XTU}OpLq`xKK$=LsT87*X8>c=q z=+L}E37MY@Y312oD-M5zN`(zJc6FC(;KTUiUNhfFvl(qh)OJ>ijH-W=g8)&BbIOd> zNVsQL$1}E~5rd(i)EfH`ULcnqidYbNvFC^KaeE=_2B2CbiTG<4uuI0G({ zWH?{DCw9{c_<(+=`ltmb?m#Y)&|w#E5X&s>ZgP>~amjw@jnnb6YQU+xc5xX#@7jhF zqw{`zY5%6r`l8R`elHTW@9NBcBcLg}i}Rrz6C9}GZYd5a?9J7NxxWkl#F~ElaUp8M zC>~ECuAnh2B~v))@uL=xY*wq;@_OC9Mb~`^`9Rcfg)iw_Ihw zy{2V#fR@LDF_vRBA-jpyrObf!`S5Hi58t0eb5MnQp=MvBo+|PED3$3>D}d+Jj;gm)bU@SX5<39f%f@hyJe!s z?f5}-S_rNFVBn^ByBx@i+h}gq)#0q~+HXofs1eJ{JBObJ253WE5_=%X?w3H2bdrjU zFKdYfd{4Z*6i@>bGLHa5;*@m#?5QLB3em(?>}PG_5a59c!W@*4hVa1pY`N9i(_ywG zi(A$JHt~b%m2jOVzImrbVZiO&>{&Q4sSp!aCPGuQ`>hTfF`zw&f06>fbH_nul^zn- z#w(TiSMazL{;O6?MVAYa)U7MQrF(RUw)i@bBtaUv6*}F~~tt>MXPoMu>^9_h#ga%(Ff~iGuF7{`S zUC`3jIJ!(Ndy>&KD}M&;%>iMA3;PJOFh|DwT7dHprqLXtUFWV#5Yb9U$oBP9BTm~S zl^p$3LXB9~)M{}9kLaI}R}K6-p5lvEwLJ0zDq=d3s4HX6sEd}tOkb^xTS~pH;S$Y& z@TzXk_4@cEa%|iXSQ^J}u5L;nZy?75{3k~Q8Y5wPRmr@p0V!X{5+#qik)42nw6(-kN?oi4SF-6ITKkF4pUWW$EEH2WXGZM9b!V30 z51~%dh_ob#Vprn;kLsgH0t9A<3R()#Gfk}U@Q8fK|QSx zrX&j%%q7H4WTC2aJnk0pL=Z)6FhYVu47JxZXWP+}7vYN0i_@oa5rcj$58?4W9s|y` z>aa?CkkeNT{#%o5WTM;*Daoo&qugLizH`CkpHl*N`G7@ovN0EpnOlps( z;i`s9`w0`d0%Piy!Ny}7M+K10ijbSY;9@3pqvbl}m#OUh;cU(KRFweU&$u`?Wz9Ij zFHMQjiU>4K`;o`MW+fL;;T*qiNtm$jD$3;NA+xQ}o5~DyPMzXit-d*G43@8>aXbYy zdVG|`W6u1V-pHImi{b~P4vfqzu*~fi1<%9X=@vUuliqrlDlcV__@eKMDgXV<^m}@F zZ?8%Ed`Q!b{$4oE;)9V z^6FRo^NuON^mPrBe#*q^2LvAL{MGBjh&u#mrha-07y!nhT@Lw6Wb!=NK7BZvS|9ZI zad*=TOscZA7|a>65gD9F`5VD6DOWjR>@&{&f(5X-zOeL-nzEjvKsS$VF=vV6Nm$Srk!xUm7_=yE!nHxq8~X`g7hlYDTGOwLd=~ba zJ-fp`966$5uvMXD(t@x2z_SaUcoKMHnSuo8H(G)-n3o%mF1~m#kAMcAnKYf}8qCr0 zk-=rineiZ&C4RZD7Sv1sZRhK^+-f(tA0U_%=u(Qb^BJn;w61dj4NA-VCfIIa)AEWY zx%VInrFF9RSFD@9RcP1yU8l*XZRw8@Rs(8I&goL(`qWyUvsZ!JU>hkwP&2C`0-ni| zjB*jl=X4%FRtlV!6)B8kYE0RTrV!?O^jv%zmRJ4|R3FXtyk|84-BiAIBPpswP{nDQfYImmHuM*`1wY90x*4#k9{xrrSl*Otk zweV+;&;@3}Kz<8PvV$?B5Vq2wSVdn%ege#x8p;*IuOYt<^VJoNls1|PA(hK1-mi`)G zE5Ss>VrWeNPW39u*rKz({1Uaq^JJ}VC?_rNSK8b8xK$MxU>EH>6df=t!ce3VSwGxd zzN%?q#GHu6qN5T{&&!cmBktGbn%#2C?j#|&k?rxjkE^TO#m$>Tysi&V^UMg0#^uu| zHfRg?s!0-1HuU%YJ&!^^7jv4owID=84Fqat&2^PY3qR)sJN+zl0uc$}sNS1~zJjDm zMq3;B=v!RCNsomCIv~^Uq>at8YkSWc&_ql_v6%6;(Lspk0*iz8U#oNUhYK3xvt+6D zLk%QS1Zo}q$ct;fxgrL!s# zZT^9iJ-*F;B!AySPWe#A^>br@2mz45+nI8~vdMfj)lAoz69kEkT5J7iAdma3M`QS{ZJ~2scefa% zgXY-~aDn=`+#=UeV7=7k8i8^z`{6(w*Ai(cY1z<)QV^)N<7h=zt(@QyK<1gKp;Wd} za2Bp>-t1HaWNWr6+xQn-444@3ECjt+^^J;ad2<+Q=>_cXJxK#HfY1s9zNm&lw9It1 z7XwNlr|+0qmdEox9YJ0M92Ohc6HFKB3Ts1}__t;BM%}qw3PXJ8*H_{W{$%A)1(fZY z@*y-TI}YLJe1YFtoNNoa8A2}*LcXtVbW+*E-By;4(FgG;5aoR3rE+;}yhaLng{2r` z({1&1ii6!{W1lYmwqS2QvW`4VN9Y@#wV)rQWPp0fl3E=)?%$ggzGT|rh__Fmo7{6^ z0@cjfRK3<0LYi=yT`9Od-6e{W$*U)*Y|qdlANI_^?-I$tH45yJs$iFVdtZeixntR` z1IbTt(U=Bb+^xhPqb^<_8xX&}ReDq@)q{BNgqrmUnvC~K^Cc>5glpX0Y>JhJ;T$#n zaRxEBR^QFt4BtUrd2z0MU}%&3WxHL&Y^WKP(QnMq49d&MB$}$5DDY4kN>LOs%IV(M zX*(DwLv_&C(d39>A*$4<1$O7V)6dc&a~Ilpc=N@ixXoZ^Oie-8C}%erFrK5;p${M! z0An61hQDs`|4VER2D;zYbbN--gXaI)4F5kj{`7ytX#Ce;w0{G3{NwDO{x|*Ouh0Jf z;XD76^1#AE!%oNcNta-zVfy?|&(8QsTxGy#U}vIXWc=?u`~PIh{)!t=T^1S!*5Bj{hTnz+W*U0d|5if+!@o2n{I21jYx=*yp#S^A`Zu}?)2DUi zKhRaqRHbc*hEPE)yTNg9kp0;ef|pk>?^%&_Gy1{op%6AK@#@1Dmd#YtwX0$yeEfWz zPA0&YxzDy?gymNPegu%)6}~z-b(Feas?z?ld)+>G=)&`9@t*Z`T`$-1e3Z5DesQ~> zaK7KsoRzEdY6u^F8IBs1{rFi^JIIn1#ekE3zM5$5tzlI^qv253(UZOUQPHUzFQJN! zo@al0o~UB?ez{tP*W@!avqo+8X(&kA_@%tjqF%A7YxPmLsqr;E?zAg;UL5zuyW{!d z<$U$D40bhCx$AxZ*TL?o%j46k`M@{NAE*_VAIjEAD4ovmOK0hekCz*ro!&&R1^2o} zPIcZc|AV`C43D%=_qAi&w$rg~+qP}n>Dad2vC*+QwmY`fVZZe}Gi%MPy=T_i^X~by zKi$WX4|QDizblp0S?Bfpy`4qXN}mf%>^S+|zdn8L&uHK}vm-|lEnE|XZzWso6s-o3 zQ5-7ovsFh5=%AHW5iaX#@urv=|Cn^XR9W%6t@ELwLS1d0d?p;{B>(AsnL4%d+pZb# z)u;R9w`*8I8giX-*{-9yqsM%TYWy4cK@EAtU*7`SY4od8u8ZdBjcKjhQfk-lK3nx3 z$2!nbZ#Ok-dHr`k$H+E(+x2?Rpm-sBqJM_oF4FhHJ*CSSd3;5m+aJ(h^fB7hgQL+b zkrFKY+KS+C-728O*wFN8uu#I+#KgR z(|b)6<`a4_&Sa$vyWErh>V$VLSweM9$;ZdZFpq@WH>RtCit88p!V&Lzm0=cgUOEj- zv^8K|Is45sG+EH}dI-Ko(#}l>&>6EQnyaOY%P9Cttf#imvR?|{uQ^_1wgj|ERHZNS zCwKj{@?dj{z!twJBLSWvV?>&iq9|9J8vhwcEhltZOO#3_vH?17&~K)-Dhwcz<;ve@ z(R)R022a|_$P}fbAA_A#)rP~nSN$4Yg6_wTnOjo{p-F`yH$n2l!?ezzL2r5-IVlb8 zE3r!J`{M42=0V;3Mml2EIR|3#`{-YsQkQ5TxHf-n<@~lZOf%HJAwFjLZFCqTSNprY zelZ{qiKqgCo}d#ofp|_S>=&vtS?`^Yn3AL+R2a9|+Z*`LlORmV-!&hN1u+OuC5HX3 ztxqAtQp=ODUt0Roz9Dt$$eW4HO4Vo+bQx!(+~3g;gXWAR2qF{3^%QMSy&wkR$cH>J zdMP-W3iz%_5kLIr*K?qK z@;Z_6r}CDl0fIv93dsp%OlQSDd^6p?w+f~lX=2ytCqgX=vqMGTEE`{c5x$V0H(4ZK z7s|iqF5JgBGkGs^25}P0KlYmxOqx=HaDiJm?7)aYRNwGs>t9_T$z}<8(T6tQr;_S> zoh+u`O{`ye6#G2RJ?!v?(_zBPBYH18lc9Q1YTT^VkP;PF`m@S8|0Md-ezqT zBZu)G-YcIEo31{6j`&x%sca&O3Bs=&kvjQ4E0Y;%BJb(PH?J*HQkwf0adB}ADk!F9 z!(FPMXDA`wN2`5wWDgSNv3SE^0UgMt6vfJD_ zX>nb%)l;5EgSwg}SKwX{+cgOnJnKBt41fRmxKv)?NU%?2&NC^opzD`IvU zPU>Ai#dM8cKWyGp%x=#c(9B@UC4ygtsu3@PVSyJnbSpwBN9gWaF{6(D58mF1W|5Ba54f zCGq9auz!o6{9CS?q)Y_2GFMErB*dZ7k!Ttpib-LEg#86uPIexT&!9+CvWdQFm2LTnPMw~(Q6|2PCaC*Q2q+NA2+(^wG?8h z8K=Oz{v|XENqADb8ctQ)R9}gKjZ^w_?NUgR_bk%{8GKrmSqgczD(=4s%5{plrJTSA#H(3&QNNS>wD-^85(BZ+E&~8MK$0xhwh<$o`Su@V-E8{zDk|8 z!l-v5((r9bDQu*ujO6cj&ZL?gca-dQ#=(+QNZ#UU3oXGg zO|(k<_I7>BamMGg0A}Q)ZcH7;-N)|Z5;$mfB{poPHVjAt?~RoDfwR$%eK~Ln&+)xs z^Q45z9)dM289U>c=mQl3V}2acWN(}!InrIo;?^?Y|})D)4G6vsM=xIA>v3=qGny9+7#iyrCq zWqIFbaC?8a^w?Q4O9WnQyiw_!Y*tpswaYZP-a*INh8I5bPb5<* ziWey*V^^XtVfj-UWgrNJvHc-1V!lAOXn}G*$k!oqI+H-Fk-$LRWUD8@^|?^&wm|Fy z6?3T~9j=rE%)pt85m>La1v~m;0YemK+%)^5RM8P{cXjQ*yZkn4qwx8TJwMO$pZXA& zyqjzdW_1JfKe^woistXd)G)(ms)x--&RbVC4CH+hZBBi;PwImO6W+4Rb+1twz&F2EvNrzFuBD&A(sX@ccIHsixRaGRx^!ac(R$#U#i z9)w=2P+bp>PVJ-}M#qg)J)W0~R3rlze^)0U!Q%{P$oSn!eitWa&xf&R&MBvkgGcMx zxou9V7{rALA&Xxv3A$^gY(LhJsIi-ZullDtQ(~Amld7c(&sv+GJo!8xuk$*Z;$sRy zsDNHnjMPOm*lO9*O*XX*$+wl#dx$Ho=R%PzV_r}Atduu9PbybI_?owmPcrz&-w_N! z1f6C1A4~vr4}G(RXT8Vn@=gQ;SC^)cGh~sH93g`U!CQO1u?IQeO$Xx5YfPj%9ReJG zW+8PefFX_%ErucuIjh2nzQx=RUV3cCQ~q=(wk#Wl1`Q^9#e0Z0GBfA zcut_2k(DqQ`*O^+cE5Nu&~tQEF|k&4W^Fox`dv9MOfr!V?MTZ}roGui zXxH?XA}@?HkC2JlNjpcLWRIp0iD@;*sgRWwX#m<$@3zXi?E~OWuZt`>I8K1Ug@ERA zY0om3bK6iq#?d401}#MG?t7JS%6(D`)8~2$q!>)#9Om{!F!k*db^7^{LOOA9TcO z7i5fcd`=`hk!AYjQUoo%>!>=tG+{AhP~4}?fZnfFKfQfEW)gyDM>bI`>QW`bM+Jh{ zcb?l#RC6Ck1*9i-gNns2m`Crr*N^!e@W~G>7D+inh^7}`lEA9Qx=yC&+z|R;*7wyY z1KOq|KWdvA%JMn|E@v-9r6m$G^zqsbG(-tD*O2d=D9bY5&Gee;Dt6;bK;UdJkHWyyjPHUGv zE5MpR?%b4%;Yc0BTzP3ar}h43oD?=}uh&D%le!f9<&j^J+!|rY8PF|X@&2H=xRQ`> zc(-Hm8=4Vl>{lAqKSXRye{8S(mA?Ep4$WV4CYb+H#{)oYe>yOL>z_#MzpUB(Z>a50 z`Q%?+v-zu-^LME2FF*N5Yc_ul^P5-x`L&_0L(`A2;XkPKt>Q01E+&NSv(ntbhb#K#dpR;Mj=( zXp)8N-#QW#(?36`ze_s#KUhfmzqF?q|FEb2LT$wXe%r+igO6h3_lXCfZ8vH-H8N^>y0h zi%1_JlRJ;tA%jgT9&}usYuoe*_r+K# z;_BnSm(^jQ#QVMUcZnSLfJ6?jkbvX#hrYL_XyFrQnm-abgi}=Z`Ba7#4pUe(RCnl( zH(sne`cdpMsm&*8d2!;%18BMQe{iHP88hjqS9i(1?nS4U&JNS~>+fvSnP=Y_9QS>f zBu+{V0;jcWZuCckX@llr>Svm10kjc0Oxy>Uq|0XGsmPzTSNfw(Fhl0c*2_ZYvG*us zZ_Z`2S_GY6$$g8OR=b(@3E?{y$VKmSM+jAzUwd76K25gf2cPprexaB?zvoO=_Jj$z zt$HtX2@K>g8pw2;9x8QG^GmUcYouXq^Bu3*-XSb@#9|r;zZaMP@+`}lnG=ujdH62t z*`MpcF z-c{b4TzV4{FxcSB?j`(#gn3H5=NGI%bd(F_RxxRk9B9Gd6e^bGQQE7~-Qqz$uuAhg>@Z-_amklW}w`L%VE@#fN<#E!(BeQeooa06FHVtjg;P^M>R za5Amw($9n%ZJ#@0;r5dyo3a6S$zCJEi62-e*BPO}>0Qfi>S*Zn^=2_xoGZkNIY@`3 zH*IX7bx{Wf*<4eo^ov5#n>XA>C*m_k!Y+LJE4|ASE4j|{=|LW(4ZABWA}{o77kOg=h2GWq~RyfYpQo zZ$TZXH&0L20@*G(5yWNRe?c;{a9XI8{)W>dB$Y}vUA$Fbr0BX=fDM9LoJEYWKV|LI zV&$(}OsyOSY8?r!gPt=#!h+|bylh3MZ+Z(uyvTu>-{eUQ)tKGVOBFDEHQ#UHQ90PP z&Pavzl^tr)KTDtlumyMP$j7C2IX&*vOkE1XM$|`(f z*$h-TnSeWwFc}lCrD1dVOnjZ-fEK?e$d||6t>eo_z&+J2(j<)clEAu^ z{zb!QJPE1T04v-xO89Vv|Mx9z4a^vt^%JprZjuOICu~x?iGE0iT;fAwxY+qDJJ@#l z#qT=gc|ZWmj^G#lF=&|h1G}=4cueS4&`>uhGH*y3Q&|ivQ(%2&6FVOLMoN7VDEU)S z_KjsfGv?Yewz}LOH-V-&tWK2f#m<%FmjkM3+8vuOiPoTSLiv{)@+ z(-CS3l~`{T3)nC_B_fd)gdP-bI5?A!h`G>Ep(t>=VNzc{<`P(ISN5C`k2t(1~oer_FhYulq%pBeW` zDerS`+=ah$c|?V#GP7S?zOYZ`5f24FBTRf5vCO1N6Nw+*N}#*_*y!wdi6iEd5LY@K z83penEOL6li_*2ZXz1M<9VJe9AdXvsaDs<6`%F;tmf08cE|Y1Fey|ni&{6Of54^0j z=OKVV{4ErMqerPakY_e%p`3^*jh)In2bj!iHZp5(<(%2r)#}deoGr zuBWeZSx-Fl0&c1jKjf(~nPMGOy1Oc^+7A5`0aUO7S1i5yu#tv%(^YAvk~{`|*j-;Z zAahUTRh^vTaoD%RE=}Wn-q0`*j;JmaRN2H+up{K0L`^qvhICN7I~tDXTe-gQp7&YH zYI>PIFLX|4&2rQ5`-X$+eC9CGc=W z$>?Rg_K#FnA>FXwikqE|f?PxiEx^%=8%=8 z_40ju4xR6UdwA8;%==>USn=2vOCU0@z^|F&6%q{M#pXHfxuGZO)aCy(d=Qug2ED6KTPVdC_l^M+sGKmaU$hC1=Q(YB8?QFj66*;2VPieHm z!o+mr8#lwy?g{t6^3NE%>L}E*KodE0=}c-Uc>er(%f0!)VeS=UyhmmHWaKhZQm}ET z{n*oq$mqRmQP*(EXZM!6`IK{$mzF@ zm|E9utT)GSt=eRd{2NPWA2VLiVfe<~oKu>YDSIgf|*O zCx`RKG$1A9RVi3C5j>d<1J#`JDn|#2 z)quS*ZuEg?!WQ;L!6UhhL4M}Aa7n9P>;vI~R>0qpELz@9CEPIKv=WPwfpVLyJAH!T zklHiV6s94-FT+1lQtK{ly_%kIOR`Wxed=WQ&d}O(bRaZhLPIU4?y6!zQ3T`T-LDf; zMS@y9v9m!InCz;sS~1SEZY1aq>Dx$zYZn2xUvILoFOF3>ZPhA7)Gcs|s8j$Rh-A@+ zlxN+9QF)nBhGdU8v9Uzzu$TmV3bFUxdrJ+P@7YT>blQW%58J~4=*p3fFb&7>Yoq>0 zo3aQDH<&PtgPjF`qAtH9KQ@XHPWs$xK_G5j_;g*LpYVLad6Qg6-*lmu4#M+S*%W17 za|K|7@^!?V55(ugKVV*%(RXT?MclsNG*)ZGBY!PdwSq~IEstUe$p!lx1x)6Hl<9!edTz*l@D8v3S$$`qS^05VWL+MSY>m8>oO3u(-9gxh;DC?jJZDQmdRhydX9ATl7d) zL!r$xxMFP3Dr5Q#NP)7tlgs{miys?951$Z0j@=Iut81`#yiZ_cN5D3|_TAy0%(76- z=PSIO{QB>gT+;3W-cp2l6=qlA6wgsIcB$V#4og4`G8I{oJ+l_~z_~5d#ibCWM3uN} zl+kxoEr8+1NjddIjM*IO3#2r^jid-7;H^jLW~;rP8=c8sFyiD{hF#5-ug(ZbbC$uw z!1WdC>117e^E9#pMm>ZW74XpLmu2k9>ap_@u zY85kLSPo?)9Jz`0DeinjB!Vn4n(>&Y^2U%fZmcMMt=#pS>|q@&1uojU235zPqpulg z;bAq?7_nH=wFUiT7j>|`86=4w@%Q2naw8st#Jg3vk8TukWgM2KCMmTpqzrTmS%S+v z4{$1Cro+}u!2_d5!@gb@{KpcO_+kqtHg7BtzVlI%s4jDkxuC;w3e1t6z`%o6XAC$$PUaWhGw!8}W;z2Z zRCZ##X#%kEh&jxW>2FV)OM8=+dyY!98PSy6h{~Z7=j>tvKWw~uOIkRWp?YRsEG4_x zxC#rwTD;&4c)U7M*{~_ZhML{wAb{I?NAGTb+r}sUbcTxY{xL83OvB7T#PmLWUNn9c zg_#%!-w`F!a%mWB4uiL=iMFaB>c+vjG#U1*NX7XH?bNUc@w>|?7H$46@kfV@KzIBv z)Z6qv_4>vir3X7As}NVDs>v5@o0Tw%rH zbs@z~>Qhc*%(rD4;$mi}lFC4#IqpE1wWGBcCIwY{(qaNb)!L~cZJ5I;e_EQGTfmL7 zOb>#q;y4LCj>K5Rlv-y-XmvR5t;ip3;syW7|Kg?&p`;7+auP!KCCAMGIP!}6u&MIsH7akFpCa;UvIjcMYB639 zU;l`yO=fWr|Ht_7Z?i9$HMgQ#&fLy6wm#6EPpoVi z%KFPG{|B#Q<6{0F6g>d11Jtr3gS$6mi@qTO6J~2QY(2{~!XS~Jlf5MY?Pm8NqVY9i z>6C~{GaV?5A-+62SNWK8^5I3LkkWyOjQnu)etoD^DX+4Z*MBe8o~b_H=vs@I^Je1q zx=jz5nCqGvpFACp*6=2iScp#k9t&$tcJr;bISSWKT;8fq4NLBu{Ll&hXPL|E_5QdG zMF-mcSNI^CC+AkJAET&dAn_O9_P_qj+cMBNZ*cwfxTWbhS+%6**0tUHbY{=hr&p7P z%R4J<{Uy=;{r-XSdlGh93a@sy6Wa_)((daQ#bGB@$EO!nkib}q$d=cWN>*zO{eYsB zuwj^`hVXPUS3-LPWA^)h{um>pyvqbnXSPYtb)Hs$)nx=)h~n)@HiR#@Wdtrq!J)P> zRwjZ_w3J*235(M`$%?-xjg#>TY*DW)R={=Zm?2g0>HXat6_YrdQJf^|9r%^6_hbw;1~LtiPCYH&~xFUaSW6v^GrqNzi&81 z(nMPP)@MkGH#rRi4$Lnc+X%vn8tx0+3My18_E;K)!mvOR64yZ`F6Spk`X!{Km)`pv z70gZY5!pb6k7_@U94kZ_gr6*@zV@w4Xo3%m$Q;MW-IV1i*q34SF@ z0cws;P?9%Kt=j55h?wPKXmaHTo$TK`o$x;jun=N6bWcemKoRadzk2X78* zP{Y}n{h$kamu8*}wX|YVXQ=#85E%iDEW%JI$kt~o_6m%a7+CJ3F^yB?0X2CTBA7aH z@`t@9B%^iadW%7@kco0v>tw;!WI-Xq%%$ZNB?^DQr|$Q{Ib}>%{2#HvDFjZfM@lrR z`o&)=3_?YljkQC8QJyJkqDYpu>ACfn2_Me-cV`(f35)4!PuSiTx|n=}r!XdOMQtJ` z<4qQ625CAa@If-$HEf$Yx~j4~>=`WDUOYPO2@PhJo2t)RwH;2rZqw_xeY3qfN{8&d zYt^o+!+w+=TIH*EuZVpZ5tC=34W>23kN{ql|#K zMnl?Zd9@MNKFT=3zT~ac;xMy(i8$F^kE5b7_Q_X=&*B(Xft^!++oV}x305+C z@|`p`I5AyX+tj&YV!t@&Kxob)r4o&MrUw&m{r#FbQ#o! zNaes)+Wp3`^;&nIqya7R!u|PDgpYK~S_E0E6b`{7f*Z|Tqvq3D+F}{wfkIbp-zAd9 z8@#fpPE5|l^_qDC+>9eF8)@g^V zk*XUO%L#kJI*mOtldNXVQ?c*Gh4&gBMG}q=Ss0NE^e}duU7xl?$ zCzk*`q50h$U~IU#Ww*}BnQdU9B8qWKQx9^U$>a79)^auL2hTw>tkHO{EP40Yac_5PV`<5%gqxI||=;IR(0MDKE z97?X=4q4e?E3#tobv0a=FSz56o8;68aJOlC84cao{a+fou1HyI8=b7ZtJXI3Wmp)= zVWx`JPpm-^<{Gm2F;XyEAZ5zGCYX_2H*rAw^^dTH3(|$ivOi7*sp}2gi@0J}PF(&d zYi$@r{E+BU3yw}d%1z=pnXw8!ZxG-T_ zEO&|4YIP0GMg+v^rXb_gCgm8axi5H8%eB3(+_C)x{j@`3EGH%w9bAldaM*zLd>7{~ zTRUL0oRo^tdGhTrTsnn{N9ac};;+8ZHYffr?a_AMWDh3#NyK#_fyM2d9Qm_50?Ju3 z80?8@41|jlvo5WRgygG@bd*s*aQtV~dr$zw5(^nyiR9OHH~At-g!0bvu1=UzEWU$7 z?j5x&@Ol0gn(1m12Z5U_97@XKA6q}$y|wH-Tx*Mro2n`DU%V+Mtnd$ z54YB!{QEpRO@9<`fq<7J0UY!3PW{H}Lw21n3uhRZfB$+Crx+In> zCRyZ1Q7){v7m)w;a>`QY+I;yi?Mt=;vOO;JMI=O#TB{b`XF9r`7TB{yT5W4|sm{r( zH1aqFnTQU;>&hD6W=n7)jD5axp`-!T+g1e0#;gW<0=h(=0(D||_fw&Rza?`Xo4`jM zi=w1oG^$y47eQqa^p81HKC#Dv5$)HGZ<$v=-jpsUmFBTJQw&GW&3PEU#JH&D#cE2dJ`Ar>eG{|l<_qMuyT1!81H8_!JnMeh18Jv+QK z6*uUB1dJLPbBRHRPsg?gIol31oAxVnZMG=^9(0+}g*9&`pRQBDZz^G`IIgeSSK>%V zBov_%~t1?`oe!`{kEt83F|dVDAiuceR<5J!eS{Psu7}rN92hlH=!HijOV%= zLdD81**+0tfT(URVX~eriKt`;0^*a!J4mS{z@eg%kG%ytlNr;q)UN?PrREtgW`v@y z=U)C!P@-^4W%8?~kPHrtF>s?k>VW+FgF?@MW$$;N^HNlmtk?%|hra$kXldj2LBmHB}cukY<{u4tCnQ01vop-Xy-TMhRdqHIeQ9&w0aAqy~ytvbq_V5$rN{{t#r+B z*N&T9FH(hNahOgav}3(=&|Cq228RyM zFXnCD3Lb(Tv)WTl!^}RLLV^hAJeEk*np6rsqh^gt9);L2yCVeEar!(?5g!#7aMmvJ zN!LJLiFWt3qp99b=RvuO`}`2fvFsDoAd@}qEkM!h&_kEFQL2g)pFyG{=j3)XMd+W> zlBNvq=md(+JvgPC2^ZwRQ?tEFt*b9QIkPUqj<=e1+YS?MiM8*Lu5`we=9gDly)8f1 zOQY`shwLsB7w2=E8T3nHN=4}9f&=pJA-YA;I%lyuY+HTny0~Bm^WZSj9x%sb-4Il7lTSS|={Qh>rzJUQ- zezvtTia49EjvM#pw!7K39fcRk1M$H!@@7I*dVn(OsIBJz3A^1!bemmuM^tb`~{C$70pC@P2fddr2O69yLlOfd5H z_@ctaq1#EccgoQ+RlRk7BdXXR2Ih>aO1KEITwDQCv$SlW$c?VE9B`x36sV+X8&>=2 zBy0%={p^@Dv5B`bodgEJXvwm;y+1&t*QuK?>O%{!8e|x(ehQm>Zf@L_Z zr|^zhR6uZ5-&Ma==R1TOE>{nPU~}2Uol&NulNEBWfblj^^~fW}Slgx?v&K#ZrQ$)l znULCck%=f#@?Foa=Y8j?mx>WmCn2u%2R3u8oGW-@o+v03e9JL~yO|XW){{XzKp7!& zAQ^Xjz}jDn$}K;E8Sb*ob949Qg}@f+F&N;~UBK#$bQ;TY^8dj(gYk}ssyersE6 zHCwke=PrD0@SO`-1-=7}3wGUOk(`xbh|TE3|1lp3kpC;OMfML-CqN|p4|neW2zCC| zkYxVThXi27KmA3(^-n|zxc<4U{NI|BEPwITl>apZ`sd>^{9QU3%U_DW{*gJ!{J%(w zYyc;bjff3U{>~04dk3VGvjeCj8y6cr+rL={Wc=q0^nX|Du@w$5hOK)p7tf{?DlZy=xq-|MzG0zw=^x_J4jK|MtzmUslZ- zx#&6m0PBEP6*Hil{tvLu&H`A22b?;~ztuGbF!O)HvH$!{_{(kle}H5E`S$Q%IW`yj z|CoKB4)9LLki&z(#={6mX34*5US6HC1nZi5>=VIqY7)5|Z^3E}W-6(Zt`(X0$R}Wq zyj? zd3}g0EIpi=ql7vIm7xTjNyrRXvbdFml`-~o=8v7yed^Qw%2!DC$aH>*L9-%NExXHv z7dpAf_N54$iQ1`6?>aQsGmdl`Fu#9fBd8rpXzLh?HtV2LuYT!V&+EK#_yPDeQju+8lmcTsbZFwr2bm#lm6kBI}<}9v?f=V;<)D9u+M?w z;O;S*l#iZQO^F@Wzd-`exW;ZF6Xn&R#qrIaeZzc$K7Gyq!vAH8eeLx%RslgxU($la zw)d67i|&no^4n(+GJ9+wt#G}S;8XsC6i0ry$D?k0>+3MWZ+EVF1M1isr^M7z%37U zr>(g%6?$P}5skWiE2OF8MfrO3`!Lr8)6y#JNchmurjq-(^0}U~LZRtQBDT4Ftf`wQ zTlru#4pDI=DJ5&~_elfdh9LgE{AzHK$};|H65%iQ49V`A)@_ZY{!$y|Q~H%RVY;l* zb8)#UlO$iO3GgSk)3WHsMj5%u;jEr-)o2w1)b-}*D$6X^VNG_BF?Fn8 zi6j`+3Kxk@gGxz`+idZ$)8d}*ojWZ3HxHr2pI$^7rqq7eM^E`RY?RGlRDtx25iG;< zM@d=)`C6K7NO-096YhTAZuE>^Y7S~81B@pIcllj!(H|@xZp=0=7z70-7PF+ z4!1T5KFJs~sSZ(U-P*FV=Qw|XaX_!4daKv+(|5Q^zem3Y##dSM)nPqK;$_A3!B`mw zW;dCWRp=TK^L*+3(kgIh>Q&inQ_bNCmwRpfSkhYrFRlrCxFQecpv<$Ev4S2VdU-^K zckXJ5f?6wOoVH}CM4$TZz>V(QZL~-gGrL`1X+{2aC*a-R<>-@Sm2QB)=xx}thfvv4 zJMXkj9cRLV)`s6YD0nKY-K<_RYZ0!@{wP7Fw}qFQ)Ooi;OFUE^rz9sjWwg3>)n-f}QAXiqvL zxrY!5rIraixbQ5Gg^WzS^NC+g@f}r&cne|T?Xv((M9*fLBi}+o%-xTTmwr=Zoh9HD z%h{O2BJ6&#a!mkFRizp|-~wys<>AaQ?Q8!^{^wfl$%M)c^#sS6_4jXxIL^(IlUg?4 z31`Njn9Lk$n&JxBdfP3h+q2L*i`|P$;-KuZxhZ<7LSDg>>cb8|dP+pq<;s$}c2T6% zVZYJWCdj5G4IH91YP5}E^(zq;>s(MunCCb)6b~fY!au9V+cuP^z%V4%PJf()?rwfZ z^#1%UD?pGAKjQJYuXb#R6D_ebprjUJCsv!H=q>(pR`Pqjwd|w>Ok+^zmU!GErV`{|S zLxqK8=?Gn*`htBlwD)pNI%$pB_Q$FOIO(1?nGli$W-kDu;MYuaf{&qF^Svm1q9`7Riqjv+@g zJw_3Vi?Z8=H3pd)rWD#`*6^Y}(1woH+t?<1(z3Qu{{|wJt_3CS_+;{Jkyabsqau$E zAFnWP8#sh~c6y^H^z+5Ks96Ps|v$B!Vzwjmn*qQ&X{e0JdxC1$C10aZKa6!|10f&8WM2BHX2xz?Cj zDd)(@o^E+%L4r=qQ_~!TP_7)ES0@k=gj?rgu<(NTlD@$2ilW0CP9VifsLFhFj0_`9 zd9&8SOaP-K{>jF&ud>n5;fVUAX(5gNLD+z$0M-vib}{gZ>ERUP!KoPJVH_&Mll{TV zUS=8wRa_+>*061P^VlgLchoPjX%qFqi|E(OV(r{+D#GAHOb6o6K$F7r93&Q$1E7oI z0z@!DAjJ^*s8Bpvpb7;zKkp$Y0_X0X7L@VPkQ-Fv2%ZzU>1I1@k8gM)ZQ=x;)|@*@0vX&1j-*jHqOS6!_RTG% zdz=?GD;v@E*I&LN|LU)p4i~{gR??Ms58F+l&qnRs1mR}gauSqi@p)QjmK}}EQS?uV z6KV}>eKaRqnpAnA&TFznU1SJk3{%W1wwxB4>c%AvJP1sVxrT)K<(wfx2<@K$lmx!c z%_0vpe#hn<^U2gF)|;ZI`*gUw1SE^C6O$*rCJPbWDduBJ7=!Qz0~G%aF(W28FLqj0Mv_l|N{1+J-kwyCJXk77~0%Cm?3#V35krQ~{av847U0cJZ<@Rq(>4Cyy<^!ER+_ z)7KRQQo{GW8V5JuidvfH;QonTwd}fXfjdF|ZLjJ}L>?9w&;)e-u0r#)io3S0VEN(; zG{wp+{s#3ylPo<##-{bo#lr2DhebwNxEUk&ir)f*)5Mrp)d zS_1=RgR;C0)%sA{EL*;H7ff@*G<$f@NQZr7%Ec1b%xpdV7srN_ub1Xkl3ohkk(pib zIR7nN2x@IM$KlZ@;LDBO-qmT3Y&)}0I3}_vCs zw*zc8nUO0i!`?1^x*F9}n$;p6G|hAy=vMUcJ9Y&5Gy&z{F3sb%y#|lvc+lY?bp$X< z*k3_|89FIGty(55vV7f>n+BNzI&y;RPHT9^9EBBu*>%k` z;_Gzo)!pk^QogOd9D{-}QLwIbsgmmT+m?O2=`O@OHW{(tm6gJL>PTC0GEe+wHgM;& z-&en@ zIbV|4Ic_CMygd20@9`L6?G|F?6?C1s;6bKR$TqZ%@MP-pFl4(fO}u(u8+7#Ed<*KI zJNR@VAnrN$!oSDX4h2p|sT<3vHp#g#VEHJ&i1qhfRIA^PtDRKA!)0GokqFzg-<~(z zcVL*%eNajj3BqR;5aZy0U|RHs3Ul|Dd6+MXT{N`UdN`e@`D>=UzfIZq7^pPBF7kr* zYM?1Zf>bZ#pDhY>2BlDiNwD>(Xg+%|U?Fi7IwC4Nboc08h7Xg44?2}-yluF7pzdtf z?$BY;>57R^l;*IQ#w{I7c^T-*pjeEXWieNh7Ii|NFK_>%*G9QU`Q2;nao%=Y)CN0W z9)G=yB+lTV?%GoOTQCW=ZJVk3S?5>LM%&wCS#-L*w=jl05u^i-Pb2#e#!ub2q#C6n zg`$r4GX@1FRmZbatog%6EdFpZT@tkz=NR2{p5SY+w#(o-2`L!1*)Kb`qM#{Nb?Ubo zxV>H_U8SX&Duklg$%b6p4=*F#|0Oq#ikg!~e(KTL#y$ZCScv zW(JFynVFfHSr#)`XfZQ0Gh57PF*8dRGuR@Fd)w#syQk{iQ@5+%=^wB4CnF;ip}E&u zJ5w>nnBR;OiJ>JB-=Zo!{$YP%iwQJYB-~d{#Sur9uBDxI{R3iaDyvN+tgGZxY08@|o z6kVDG3B+|OeLLqBXLJ%v%14>cX*>#h zq4AwA`lFAv5{#aTIj8d$$t`5CTEL9ou@52%U@+SR(Ht-;%9+reD9(nE-#3l|u=qsN zY5DN_rC#l~@{Hjh%Ap0XF<&>&{mXDgI2lgGgFq|YP1Kjqb+!2c^U`3z5(fLoA-^bBv9ckyFdBl2$>oFH~3>O?KX8|qWe>lUvmyAIk*=Ye%X z_hF~d*!aH2{mPdmaa+hGaKB}+-HA1~3i2LTfdLPRyPPnZy1p3sx##D}q!a}#Ey?WQ zw~EzNwZL8_dV?pM8nB|8XpK$NS(oKk^VKplIoB{a=hF$Bg=Pp@3_REV&MOb9ApBJ? zm-4+1C}G)>26a{&$Fy2svpKBU#L+TAF;}Ypo64Fm6vFK+xtD`Kk`^j+E(w)1OOugto zYY&%)wyJ5^hv8dptob#;Upu)H)D%@V7kU|+n=T3*(_Gcrf^8Y#UtW=XdbZc6<5YS! zpH*Fd4()JT&g3n3e0@zXes>K3{*0}F6*7J3BYiO5Y<nh{RF})?z^A1b zoJsIPlppB(w7-Qni(D!WBPBf&`w}%%?ox9-9Xla9dDpG`EaE;p(sHr6dCHALKsUw$ z)Lbw8augC-dEP!`KlOC>Hk<39TWly}jzj^@Xlsf>;g*sB+77l>lAw=XrvEv2)zdpq z2s&a%u&3yVeo2-rk?d1H4pg}kQM$Np7_U=*r)XM~pHPy#?a~4jUXTgv8T4fE`>wM& zbs$Z6h_!7KeT6M?IRP`#xPJ7gF84a7^Iej`!Wll0`nT<)#VCk`cYfn=V&W-`u_yac!8x%=`Hf z;UL7hHQP6DciA%s^7j?xLg`(d*OXTFdB!=3*dn2ace}Fd!=L4&rrEE&6S2cBLuNpa zukO4BpXG(%_L@_pE0{SLsxQYVYp$;S2tik_s_P*kn_GS3e<+(R7*SjjPj{%br10cY z(|=zpjTfknPR9lN(Zc209>7&AbnB5_;*!|}$- zEyI2Bqd|0smVMnobw{6q)*DAFE$D1T*xENS_-^DTjY?M8z`x+_0J+tih$N*TpS)C` zo(Q$SZbY|gxLo6#rwg5$t+O&nv;);#y^X|Z>eu@pP}m{s`@ptRCmIJ)+GlvOU~3` zLDo*qf$8%&f1a@ZG$5Ush=@j63kTVu_ltR z$sw_7e=lrARy*T;Chx#QlcRa)*-;x>vDCj1@B{m<*uQvCHeJ-;B>QwZpH;{;@4z@= z@lC-xG2U!zJrR9W339py%1mfw0mAv5bgqSb#ixBr*E0_*=y zw3_V?7vWF70_$H#tABrpKk4Pn>;Mu28z&(fC0GVno=HC%(HZBf;9{snXPXX+MzZ9hZlm7w$w9<1h|E}p5 zw*sKsv;X2&{QWfnwD`Z$$p2sd3t(XY#jpV~=YTT^n79g9u3sgx(KB=YfA>=yfQQrHe8k!Qs-i!=CH{X&LHYes`D01{ zXIBLW=fCT!_UMnhJku%Z=Dj#^zUnYx7KCCeA9i;ip0n|F4K zNk{(ba4)xHdruQNRxOI=!14I@q0yI}`f7N-$8A|%)}uD_%7wX9%zk|IY|yhodjSx4 zrZkWrZY}Q2v~Rva-#UhIUp&h_DI5qDh&D>0dT_t7)tokc+#9e`yTZ(L)ukV^AO0|u zl*v@RQG=gyXUDtKPvzgx3UBUp7|jSAbod24e^*v50upUR7J2f81n&xLstemWCh%-E zXUpNxXwn!n*JG7$k&8bBy7Yp}+eNMTXBkAUryc`G3!-zDHQvkS#tc0A<*N}t1`fjK z75k-kd~465_3FWj2Qah=A{zpA$6BiGO~9+e5VJ|F#a^D|_k617gBxnM}5;c`<7 zv!Jjm9#mYLt!OQ<;bZ}u`x}cKFaTqU-x)^p*;D<>vmCUxN+!OXgt=L4sG{Ogzk5t@ zuZlZOPyN=Cn5?pDZV-&=dJErXadycshdfcOeB9EV(bW+UVS=-@D1^Xx}ONl#Z`@`(yDPT2mj| zA`felaPQT#Z`mgg;yT?IB){FJk@O!3l(mdGZD}W!xYao{=-QRheE%_E?6Y3$Y}Do{ z3JW*ng6Hr6PbcBtAPg>%DFK@rMbo%2@$IG8piya`%<=fqVq3hu`MXZ^TS47Ab4>1v z-WxT`*-zoqZsLx*{YgEws~XTAP9&f*b&?|hj!w18BHMkf48%}}N(7|Qb_TCdh5zaz zd8#RQD-;KG)2Wg&m-G{#ciNpc1qwp)M3hL%%)|EGlx$5$&lUkD3!E6O3a_24j9Kl~~1yY)iw52oGs(+8u*zC+HOO;$fp&CQ@aQfKy( zlPXN~h3BS6$0-Lyzup#1xCad!dg^^q&dU)8F2hd((5M4fUP`hFNEg&JcP6!9EvASQ zNSrEQKA0ZyPAWWy!jRBymS|Q=cw|RAr~bzu5I9XwR`(wpNAzU5tQBdlk#WLsZ}yX% zact#H<@K_8kK{hN{2(Rw9^FTVVyR8o=lbf<>z1E(gk8&f9OwHvXZ@Da^pjd7u&1t zP25kzU~#f$H}<%2zHzG|VHC++4M z1Y^gvRj4pa4NYH$ItS}O`|l{XCZs1yqBK$pb4$X-F@iANINtvOdc0mgizB`mw7p{LgAG6k!VhongtAdEe zd26$PF3~}1x03fpp%BU+pmCw!srg8%>4;7e@B3~Ol@vDd{Nd3Yx70M@==pO;-o^Vy z`OJHvx|j0%(H4*x8&;+QF;Js!u_#71!z^fcak(a8h-u;@B#Z+_axet6c`fBEffVpe zQ51}p$;>Rg@w*9HuN)~AT{?5Yjjx5S^Td(f!K=eNN}6p~L9wcj#+L{%ROom-Us-DX zY*O?nrFVfMl-6dVWd2G?iUTU`S&_zF9_{$XpSF)rxqIRJNO%X`Z|lZBGCg1o2XA&; z{PdWWgT62Gx6cTMp||cAi#to5L_lVn_ocN?_`9+e>z;2_%d|8*pLXNI*y)#M#bxf0 z&ObG<4BB8O1YmZo;^-vLP_t1^IXTXC4vwS-thFJ=IRFTjFO1?G8V8-hg(cesx|i&9 z2!O#~+!?|>r*1o!MokqDk#au+K2X~a-MTmE@zI{S-A$Uy#Ab{-#ZGsEb?%Qk@>$Fj ziAF=ivnKTUA2H_SIotNHjDBgMQQOvCvOK&;tP#92|6I7R!gRaXUa~7Q=>6SKer-z-HZ2(|u3_U(Rre zNMNq_#6yYxv7D;}x)O$-YXFZmV?4Iekdja(rU%5fUo1!f+yFEXDPrCMTam4U>|gmz zJ>bBKYSoLSb27DkyH6LipwqPZZ}u^z)eQ6f=i;J&3?q zbohfM-Yr>v=2xGkAXULyub?X=W%Lp{(xbl)HniC1(C#H%A&#GIhPHpnqB#Gr!_+k?og*?OAtjM^VI!*O_t&0Bhnwe zW}yPYsCkxgW@!{I=Pj|{BV|Sypfy>8WO$hL(7@+Zc1zrwFTQ0__QIogvf^W-bNDQt zLHKFLlh!Gp`sXkjhLxT2@knd&u zzOL8}IAcpl_YTfjti&A&)MpXFI6ATh((&htK!hImz0>LhmI{l_10>Vvq18Ra7d6Pk zx)5d_?$GKPFXt8ftO4%y0f=^Ld1JK&u61*a8%Lk0%YY&^#i8V;@Fp~m`p}^;aX||X zGFF-P_$8FI`O68wg+#(IgSwff9{+2u>*W}>Z3ELB9&|!-FH_{nH@(u*6VYb+4$*Rt zOG$bg*DOjFnpW8KUK#1)oH`=udv~FqP&z+8!K;=iIPy61`Cl|Sy~{O-c&kAnt4{xL zP1^Ji`$B7+kg(aplgww~US=ZnCgE19{6sk3o?$lH&}W!XJ!8?~F1Me4wH&V@o44qz z{GIxiL#>3h#0-rsLP^mU-&=~dfG(N@4cN}%#NQF&t}g7_D2Jk>6xGy~jfCCl>fpPTt{3Ud#=DBj|6kNWK*KenQiABy5J z+*pcn67D0vH*T?kIWKf6cH8&1;;Zv^>a9Br?p`=SQ3rUzi51|!m_)xU=0|}srsHjb zVudAB#j#$-5WhVH9wOEF9f{#eILi|(!*{T`%EH$9Dx7-$;PTndo;T9k)fmFYVWjb& zL?Ljt38IIn$q;l2YCgA&JlbGR0zD6vdD_)lTubX2FcR^!C>ZTm$GD8UAIQ=7oaswa z49LI*`?q|jz*ilL2F*t#rB zNql)yl!(_xdYpM1RF9}gfYiW;&LG*a(zL+$qGB15qeZ5SU9PIr zF26_h%Rwz=7_n6yUP-$PWztil!;B9_A?vxi$Q0(;pw-PKbUUIx3ZzZV9yCAY;k6Qm z03Ajpo$w9`nM71}9rTK^`^GjA9Y;ZC%SlZ~I zS(hXWTCa%G_@9-@aTMtp`y>4y+}Tdv-ZQE_x-{RKqf0_CKhjeytksRjgM5u@PQ~EV zqEiUgC{ROz!2i zQk=6+xor0kOZ2GymJ-OtucdWCo$Eu&#UuneP%<0RK*-Ro!)-Tj%VZf=HbRDYMrsi% zN1Pmg*9mFH>t1Vnq6VKrte$z<6yFObE(|ARwCA{kSt0sbutCAcZ#W!4H7Ov~U3Ib< zr-IO5<1OiY9M z5@qGDOJ37yA@N8!J8@D+Kdm1deJq{YccMf+kP({Sf`+wXaIq)9@RhFTte;xbH;6O! z1c8b{{#v7E)-JiRJSl<>-a||SO(1pT{&Bw|p*7`{qH-TPIS5E&wBk_e_)E@yCg%M9 zHa)`)GT@Q*grwPBU#9Xp=&_>g{Oga@v_iY9}<@$Z{i|7v!MxKkL`= z^!nxM&Yf%vcrRIC#?)V#$8ALvl-0n+O-N}KV?d6_#T!OEO+o0eGZLe*IAvwBB~wlf zAK1>&XYP@|#8+{w7_ZDpzgZKNmRK^$&r4mkf zdg{w(jVM}vDXY9~yttj^UI9X@We{j=)b9d4!o*cyO8}l$*MSm@x!- zcewJR#KQ?Sm)3m337G_ayY~7Od6_UWbMxt9eiM&yv+5DJ(bO>-)BB4@tCuz%NK)A( z!SoxlA<&jfcH+PEc7D%c|3mcpU+D>9{fCzW5QzWXfI5I9@rzsY-|PKg`$xmbKk+xL zzulsLIiT)$F@MrPSy%y$7Qb8vfEdaJkkeTJ&>0Ruw+b^mKt1OATV+tDzn%v7dujed zRRH${pb!5N)L8-5{OYh^1Wc;?rGhj4y*AB%QPe;EhyM%u27Vu{|EScmak2gz{>{Qa z_&1#+AhQx+H=LpqZtiz{{`wd(pbT|_ev7~OH*%vBbNkvwCRYsS8b=GaaBO^8J8}to zD=BQI3hv7Xs*79%4EitDZXDUK&5x{FXzn+=yMqFs)dw%0c0(&8F>77&BPuf^38P?D zC10uu=%5Sbb|hit@>`!Ah$3}fbmbm&4>I`4~{7%grv9fsHVHZT=F?-Y@#H2#m0+WA>r%juraz8{qd*QXR?S&lB+`K^~5 zaqUcER+5KZFw0D<;>L(D19^ML&pH7@$%!t{yj#=uT%i+v@c!})-}vaAzi36+dKigl>6+WlzOcukkoRBBc_vU6A8Yr%Gee9;_1ls0$SZUI+QR5REHu z6H$;_z2VhU>lxQyoV8({H=kDUl6)k6c*dIVdJR0W1p7nU8)!3?3LfFXM#Oe{PdYL3 z1MG1-ebbQGJ65x})g^>a32~~VgLl%(@cl%1*|BS={Wrc*M-cJ=|(dx@s%e*qE>hnRYE+mbtna`sh@j&S3vYLudR*FrpxIaDMsl{iDVFcl*jm&wD$`K=J4bP!_}Tk2=mj zB*}2P7&iu@(M+us@e>Nbl1)sW$4JGVk8@D*L92Ycd5EW1Kf?X|aRY_3kaBf2{~(8T zc-Ck!K5E>x`!V*&J=c7FX3?Pi$MERw@|_jc&xXDu0$+P|_C$lT5p|xe=?cb}WbiK( zq%dufv-YUPl{0jQ1c#Y$dxm=CxOpCseco<0eUA;ap2y)uYrRaP&d`~%HoVIRRgazR zTe64a`8Fat$gvXPPx%f`&5sbIF*l{L(oOYY6md3WoI%p_Gy8C*3L4)*t5iqyB{Oqe z+qDb}pr^Z*nkCfPUBkKSn+uC29Yh};0v|W#lz&LFso?>!k+l&Klovy&8I)M*u`GLb zGWl#dxSLh@G;^$j$~%_Wmt?h^Jyqd*w{Bmhdk#=fCouY(NEL{0+J!Xld8TJC4fD?2 zXu;)c3Kw2A6W$(MtKq3fUNqu?_ciLFLl}dkc@To(?th<|@Qa@Z4z{wG$|cTAk{M8A?9T@}-Dq5xQO=oM_l z8J>BFYll#k5q!?%@A+24!|)YG{vjddm3x~!u$>R${8Ai!N zyme^mRWnGAAZeq)NP@oG<uo1`i5F(>p-(DbW-1<)94j-30!C81ow(W+ED~PPiK^l?Xt4(5R-oM zg^z0R0*>PXFFqm7&g&<4MrVJq2_3Px?3g>-J*Q79JWtcZ#$d-i&k%#*oIIz zr)v4Wj~&6uo^i_%8YP@&s+f_0&eG~h=-MO@&(dmF=u;NVv9qGd;viGUCruVn_+n%S z#O`lP^MyE7VOynocP4BGim%F%-&o3?o_Av%>o9I;jTdg)%Sb4FY(kwh!Lg9mKHzi^=TQ~mBiE4?rDlI6G&_Bl0P~Yf zSO_E*jI#vcSQ;ht^*3a zx^to@_h+l-bG*|=;nc{fF1>WPa%9G&bI3K`$?EEN(m&if9J|tKOB;?(){DmG`f`sV z#SS)GrFEIajg6}!p5@xICb!7KO>w^*8ePCoMIBgu(TpD1y`8=}ux()PX+d6ktwzvg zSp@lUs2sf%3;fZ<92sWH+I?D}d%9`S&T*J9j|ZBM{p$jG&$N>tqh^V&V%b{pFs)$e@)b4I?xxo_^c!b0!MQE71LUoIIgkr{@&ZNaF9O8a-XHiak`&Cx;XnuuP@L4*gEZ!&{J6I}RlniPSPEqFZCXVVATX4tq6 zJpC_yfE0eT~ zham!Lz*ZAHqu?v^L>@m93+P7lkWAf$_-Q#aUit8x1bk~k6~7@NkGJ)TZw5RIQF2Ox zA26$ge3>C}gg_^K1WLehlUpk^K-7->QXIuKx5h_$CuOu(iL!pN9%yHI@HXznC_Wc!q}<)G_HP&6_40tMBKI&5ZyZx{BuZu5~?v zV^E>*UXlqkFco0T>|kf@9IE_t@^z0DaiLK%4Om+>>O)h$$z5`ul=G4dxC}0L8u@}? zI8l)c(Q-!Ptv`M4N>1 zqn5XpFVyASb8Z(=xS$K1tb&i|XDfa%facYGTsZNcFzrK8>S9kh>spMisa%*hK zGq=0+=7TBFl@eaemiR(<_DOcX)pjCsA$^=tv_R?^%{Pd`RbbWob0SAi3?tAG=Y75h zP4!D=Ba$@uS*fu*=peb?x6T(7qd=SZleDJQe)1dvvx~~0=m5RFdM|oR_B2iPhI0pl zl{8p0xh87&@p1%wVv0KDG|^7Q16!ONNjblB@bRO`c_X4)KB<~~%eobMeJI<3OS{Um zdDzhpGnHO-G6a+hv-Es(yqq*VYoMUcdwo^0K2iY?dPdo4Md`$Rs8!R#Wyxkt&S`9!tK4wiLzs6weL2&c&8>&~?igrBB;@PkmBooOK3 z`1lt0+*ay*KR33d28KAf08YwY73Vn5D`7&U=XBpf9MuuT*ilG_2O*JB+Olv=--i zscX9`8>T_@CCP$flQ)FmNDyoqh`+Tky8u5mwWFWLl zUmf(5v@|yi<@OrW(-M&@Y-Hrg@gP!dU8MhyMsECs_KFD&l%!f|HG5pr?@vokfjjw> zVa@lLr%*MZG_zQk(mus8#~`O)^2Jqaol_{9wgunp41)SSQsi1bOGAcJoF2Sc7j&V@$gm8^i!bbq=SS=UXvDPdG!r@R$j>oGzROFL zO`dVCRc|8l;aScN!|{fk21x^fuqM?B%#n?J0cbZNS?cS>T0>~-w=1Qu(WT0#`(IJJ zQ=nbNRr9DsTNdfdMvf;D;frR>5hJcz?v*k~%Rv@)%(*f}i(xC0N!F^U*5O1u9;5`5 zj-pr^lXVlhFRVXi=wp43Rk^b=n}2AfEGY|A1ZKQIyUI_u*?oI<>sh<#ri}*q4q3+1 zRDPLSS5lElPSyUj;JZc8;{Gh?`}59mG*8m5gW%QaXY0PIB!^5*+$e*_X9jfd%H|GG z`GZ#2C6zWm9Q*G1pwBvb)%Gzo^%m9|wy9NX1c6*iK7<5jcOFgFaY?v!Ag6~Bgv;cf z!7Y0V9o+k1rRl>2K&>=Dg}Hs7!ie;3LBzK9HnC%7p|NZQaAlS0Ke_$D+aqR3=f}{w zC4v#6B!12Zo@LOJKn3E5i7~deNc*^$Gh25b2#aBMaZ``K`LrcisYGaLoi;T5Y)pw` zvMZQ|^|shE_yx>4!#|{xD+(HSo?I#^10OTSs_zq)lI@4r?ykjk^Le&y!VN5-Rt%&5 zGG0Ai?&QpyB!e(n9yC`l{{VitFn;RRfLjO%)KD_-amDSmVsy?7!U}wG6G$;Ty~KPf z`arN7OY3g>{Ssjg@&z>92opEWYI8SLcPlp;$LM7x8(#&-z^~1YR2>y972zmt#|4NH z$m*t(uFPCHtcBJ)YGnwu>-a`TbLOtq<&TMtdUKlf+nS@=D;s$95jBQMTtqh&&>Amk zkBolaWpb5SV|=lU3yYmU=-YjL(q$-p{0|bhy_Rr+l?u{F6@oL=ul<8oy}|3+=siI? zbV~ScTzVxhjQg<+wJuO*Wl%k9&ID~NwsT|l@*|GsLp+V;lJx7TdLd2EkG7rk+6#)a ze8!)YytM=(7&6c1Fzp#S542d}%ch$L5WZ!=X>e3n_Bx9n;Zk?21&|I=d>OrsIX%N0 zuO4%3Y47QJ^q#*T%Vl`OGz4lu&@TMfYUe-WrT;5x=O2l2fS&kUl>}UW=f(faWIBL0 z^S_~b{*gofQ!<_HkAVBXBHsKi>QDM2)2|FM2O%pUL(B%4#>d13ppyX5H>~V{wDaFC zdj3_K`1cC^sVElKU(j(t6~B_r9KV%VE&y%j|3Faye#>8F(|>Q*pNj&($bZFR0YGv< z%o;Gikb|BbP$Sc?(SA&SYlI(=!2gSs?C*{Jqo)50gxKGw{f|%cKO?iOEdO4J9e3Ir zLf0!w0H-l~2T9Fiv2oq@rAQY$|CI14xuT9b5}Sb%1|>cIE3%Z>9`$FTl*iqyNJwZu zAR(us(G~hkq?wkh=M8592+Yq48V$DthmM{+x^y9dkv%UW@b*iA_7s7U9G+z%iDyDc zL*O{lFFL&1DB_vP6 z4o>abwP>#-Oqhiff0!4^)_;)lS8Od5a>l4lM5&2c1oujEWGJ2 z%a7IuGg(R4w`6_9B=x2z3U;2_d)c23+}BI^T=*jsp$}u5pZ#kTH1#_vxY*Td+y3UU z>jeZENM$g}m8}~)54-(_S#jfVCepo}r2av!OJovvp3Oq_`JhcBo$|Y7+ErJiLD{3N zG9uee*G!JAdeC4Yj5Z}^h&+x^L_M=Ayc{|x1I}!jcR_~E^Fd7ka*U3GFzq4ud$C!% zcKrsX5V0VvPY6)LkciGpcP?BKm<^X-IH)IlGSQ9$-Swa(hi-A;*#``sFOtXzUM!7$ zuv9nW0@m5`pMkqv9%1Von>k=7FhB08siYTcHpEvhL*&TywVnGgbtKW68An-_1$|*Q zh4dYV+($}WlRChuwTVhrNwkj$t%k-ChDt<95S~10&QJbP>Vq|NENH6-4_SsBD6NVa zEK&hXBOMoVd#~JRQdM}f%r<|ogS{I7vgojj*af<)sC0$h=A1$MjTp$iKry{!8_iFY zP>4Q_j#z34a~VWx(?MekDJ!h+;FEhEM(O5A#!`_s;RY@;9jjP8`o`v$N1|y5DYnsC zYrffC4Z{3y3X8SAGhE}<7PEvdF$S|D@m!+}bW)!@8Vwpk4AApVZ)9l3&0InZwEdlV z+%pW4;O9v;+pS8hLv6e4EJHU*v-VOTz{73zT?>PNj~_kVyRf7+IU(dmw2NS5&#yZN z`9r}c8Gjf}N30gOkq^0}a9n&~r?v2N-LLT543~mp+!^K`iu|D6FdC#cOQoSzGL=q9 zE$RQ=vTM-lNfs1LFc3xci<`Bz;gb)>WoC zt;h;a>z|N|dDboz2w`DdWIVWO3VW^kuPkf0CTL4yrVq8<#RJDaZr+%q4fJw;wh}J{ z&gATl6YwWTPJ#4Mk4!N2E12gc5d>LzWAR+#Q-VVL(S|CGGcL=^mT&5}JN4n>o&rg< zUR=^kJrad7%}Ts#nN1KRcu%KsyXi8@Gv>A7BU+_86dv|P2?+4znz*<@6mH;$?~J0p zSyhR9pqVMdw9srg+6s{YK3nMG-Zm>o8%wv#(NTj~YH!d<(VJ-#GiBqhn~~LGyoo}J z(haoGk(g>7rfwnzUx_Tz2(1_bMnQ8IRyjx zm-;6K(IN-2GGbQ2a#urN6s@0dO7o*Nwj2BpVP zC2*Ua8iO>f;!5)F_EsN)%DIN=Q%g=hMWXS8Vk!k|f=e3jv=748$c*u79H52e-=}XniVG6R^V{nX&O|Rt5LWU-HBVU_f z^jB%ndl*o8D0Z= zjrCt@ny|vS5i9JziR5BLTP1F4TUEby*Vai&1cg}z->K16nYaXz2ySD6rc@;BZdC-` zB0%}W3^MV@xyF2mX(KjS>B{hKxTvrVwXlV<&T5=noGGh)sRDs_7C~hd##EIFSz8}5 zc3LieS``Q{(?Zvuk=h{8jD4zvy3gM(K1EvH4b-)mo zU5fN~k?rS!&0r$(+!%J%ll3^oMPd@Q4j2>EeJ;D z>CHPp0b1iFOu^j8F_yI!-f=pv{YBZw;I4_pLo?iBM`GOpZJi8@Lc~k@z19VD5qtDF z!-%bWUG5v3=k%!fH?hffCUE_3)_L7M=1z}H*~1fyiTPQI&p5#0-u1o${nyNtTxJQm zKeOeA-ai;oxsL9-b#*dKGhA}4re`kRVq8(~;vLS!CIa4H+tr&6%~Nf=4tyO1l%lHZ z%mtE+HX}P%=7Q)zDY^kMKEAND`caz6QcLqMYs`FDFWkyR@!-e#@nNUYWLKXvqe>s< z*AFI1o+lLJXlqw--8gO-5AomJO{*10GkW3)Z($E*5;|yHoCbvQiyYQT=r`>KT9D)h z6S5kJzL$N!2TF1s03M;0EP2paeKi3a;67t%#sPkZe>fapr@^Wws~~REuNfQWVP7Gg zj}=4nX}jaRGG>b)i>{-qesV6191SG~9c?61OD`4RP|uH8sBCc2^A*=?2uWf(9CXoR zd#y)1Q|=b4D5BBf$x1OxeEqV7@-5S%_Z3G)mlRk`8AGdhRMEOd8-G5eUi#d?)#T+s zOSvILmFym}s0N1-X@eiiTeAiemoQRH=7s0#I4RK2KOyg<6;p3Bgr{0`pBV`@{)J{b z__hMXh~KrKs|m0Qf(e8RhPkP;V=_VwjY;UR2cne2GCl1odN<5Cp?F zK{n33imA1VR}J`QcffPH7s=gkIU6*j9~!}QSAF?I8rz5KvMY0|gwjFtsUxf-@7oMV z1f8ntz>jQ!Ngov*A^HFb#7fpcGgPK#ep!voCQ4@Q34OSNv@-~C%<1cS3zh}soskPX zjYVLaI}4j61#*&FrUUh;Qk?Jl1`WtqB$XW}=JC z`&LZVlBfOU^S~gEgbly|!}{qiLVaLW97K4eygSJ%{8mIJ>3jF00wMVyx2@t}{z_SZ^ zsu&`D`nIeZOqMs1z1YVvk)QLBX_Y@?GF?1U?bIKEZTLn&bW(jai_dO-6S1enQ4-Sp zwH&9NSf+W&lb8?(=dgE0{Re2r15XC_Fwnz}-dS^RT3Y#72)xoKP@TAxk&p15-5N*F zCi7eBdoab+bW3S4==keT3$P+9F4K1HF)Ce&zy-%_4Ko5H*Q(`O4*W|StL`6@s(+x% z?!{b>8q5#+Xy>yYOOx^zvPM@O9pP$C-=#3L^|#$4FH9u+2-lF6mBEO}mq*tN8=r7u zL|GR3OHG8RwXMCiLlDqOCu1xvCzE6MSoHz$L~fZG0n$B%wd#>BuU;5i8fgAZSWrO* z*qi0uLfLVQiN;9pd)?A*xEukLaX`*#wb$_=!~u)Am7x1bV9)`ipx&1!yui8 zq`1H@(9RQ>M`|2YY&uDjWA~<9(GsK`m6ZlvgKE5|7GOroH4SFGtNiSEIq_dVEy4Hz zkI8KuN6NCV5-&v@U>d}&v^wwWQTorQ2;zJwQ32n6L}WH};Y1558oA-cAYb?SU=aR& z1Lj%!K z&QGVAlKslq^b`t%rlC6UeWIEq!LKH!)Oz*dt)BCoKo!X7eE2&^SYo6kTAVCEcS_ex z+PFxt*zU;Q6xyFk7QM!_Q+Pd_Qi$Z35Xw5!92)Gk0-W})fpp8OpetiYAi!OX*}^eN zo7I!khhU{eRKNeQ)ORQufZZHfRDnhd7zI1D+mQKA_29+kJpb|Zd|9Q?>>U2G!lqnq z;9$Bp434vv;-Dm_e6iZ7rZK6Zu$;4kmGc3&E&DT z_65jyQgXut|RyY@njjqYve5!3g}A;1Nma zi*Uu9Vbvj$s*|zr3rR=BtS!bpSCcCn)26;klw)5A)c2D7r9xc#6L2jWRdVp{!`6M3L60JHi4ZF;{C^+ z55ywfus1iPpJoDJ-6KDAD(>hT>CLNfagL*|F37e>tf_D=4? zU0~sTn=i@MPB5($XXJjXJE;>7(QzXRQ>@%!3tFTrt?I7KIe!~0ZZX~i!=kGpn`&hI-+XuA>5m95=W-Jd(PY~M1p zbVgD}f@(gcsSTPtwsZ;0MTXwJX7d6S2^VjuKDm}vN_=uiuao}@5pA}%9f>222y^G@ zIGpE-S@%2u1RP(_Tt2D42Nl*BhXGaA-=mhOGR!=K^_75=8rVs6C4Ln&PL{=MRy;eS zt8}B$P+%Ta$o*-zdYZUQ8LR4>khbeOdO@2TRcqORVHqP>cHMMomAFEUj`8Mvy!y@p zmA`YCj!;A(@MgnR4NP4vm$KMy7Ursk6sm%^Yx)ht4vl|+YBJQRBgWDPAa>wkVee+Q zc|Y2QvAh6F!6_X}EkuK3k7EJrO7@^n6$%x}EGhb*j1j=|ee!9bkf@dp(+Jb}g~Dc} z9)GTPJcpjCgSLLc+Fvh&tLc@YQV`L4^3c?+2d)@hBKo<{%WDdS&JXGawGW7?{lk-}Hnurrl3Hv9 zcz&^h{*+CZ)3z$n4Ms}+$Y4731NjG0e)NhK>Tm4am7n!^gF|m<2mDFrhDJEBe?--A zlB!lxkS}DEOjdxY-j}dcT3M(E$4O0Hdzjy;^19^VPzA-14JEB%Xiv=;bxKMTPvJkE{Ax%e?rpBBr9-R@I1QH$OVR=BF!r>SV2X&{^No z<2K6rb(w-!TkngUvCe<+ zI{q2!1fVp2>7@Ts;QY`01^|J8i3t##{1v(c5DA!m1t1V9D&KT*_QwcP(+#Q$|M5rD2{1aM1!FT6Ma zTn)JSV_(GC2w6Fq{@7S?fRxPn2fBqp9H7{8{()~{5NBcp-2B020o*YCy7{ej^Yb$( zI@z13n7QaMD2j?RsG5Cp(PI$%Ypqc!eAm>Kv=C479!TwmQu=@MR0c}M{4V!AOvArCl=Ag7lgn}*~ufQjh z@gVi75|*I8NvvRwogJu7$DLbFIhfmwYJ-KyWw5+z=p8L+v{Yh#?rC4wdwo8NT}PbU zd^W$^t$ois+cP+iruhyIqBwBUs@SzPzo_|ew>%)xVnCDqIiG# zcxN^FWIXV7h+2DoaA>e>;%PlHTHVO!?)mINpr@y;dzfa4re#b2J*-xKFS$q0;^q3y z*Zpp1;Qs0KaL?zNw5F$nu%ml4_R9C^r;*p^?*j)9m3gv;nGZ`oWNu@I&h%VnQuob= zk>j6tI7Kf!5~OqZ#N&Q!eJyzwa8!A2QdBaWPlsO zpunEj()*C9$8y+#2dva}iyei=MA!N8!m7*GAnX}4YYBm6tnjFdjyQzrlHg>kF>N~G zW-=tHZ}Nb{t*ftSgd0wse=RNd{mYu>m&=R&6of*Xh|DFuV?Ad5Gb79*c6xZGg)jg1T5rA&C5dNlL`Gkh zw8>rBGrHBg+BLgIvIw7D)*UF*=AY+^#*B zkgvMO*NAdZ_-;`V2Dqo!D3C@8ATOJr=YKgCb=?Ifecmc?Xi7MuTf7MLZ8>2i;cgr4 z@x@7-CW^LBb-i`kq&Pijqnr66b!GA%j=0K(9 zMp(^Z#24%VRr=ttiAU{mdPixe1i$m3+{C5RlTkGQ&ZP&Mp_d7e*%-&Qhaib^vyZ`Y zcIz@*6f&QGgnxCfVAaJaG*qGl`q&o?-_Xqs-7D~?a4D8HU`I>k>qUJv-Ek)+ME&yF zcEvn~YWLv_VgekM`G!n+$U*c%^u5=-rY`y}Rq$!;Q8lv{)t{H1;|w_z$zlPS;vUa_ z9Xs1pUaQMTD&QCX^-zKxuuX!L822%Ek#uj!(dy#$$9^euy<>2FR`>kZCW<;qB1Cqj zH4IW5TA5jiVLvmt@;Z2W)dIBii#gPU4cgnN8==eyj*vZ!)H}CfF_5~E&;cn(9c*y2 zqya|6m$aX+9%=lJlj7s|VbRig+kw0?T_YhU9C&j)QrZ6aR_yZ|!6 zEJHdg?gLvpsb1HcuB}~BFl2!k_CrO4gk}L&vptQ&t;Nubv-Qg)a8p6BmNCh-nt65TNq*V}nH&Q~r1!5tF_gBw*B2h6TQm z9t6d{7cGHV#?r^8@9`DT5MTPg*G!AQrD_o6 z8q`z-+N9Z_^l$j4VkReKLQuoHS7Epw+@*3Mfryze6@_Y#0T~I+HZm)RiPEUKPOrM` z?-WT=isZ9S<&+}|6wv_X|E@eVWu#+7iZzCIR70CiB0ejuN;W70 zqY>(1>+yP z>yB9YS8?QLW`Xb1zueLq6WySg2w*^x*o!h^#-&HvsJ|%Md`Zs9PX>_-xChp~oJQ2t+j*1BU+d6noGDCi*y# zzzn6{b7DXrlMN=*UX|lk2s84FnbL6@{}POMuJJ@@`1S%Ngz;TrI4lpX{LRg*Zxk+g zmWskLOZQ_%RrAuriftw3Di@w%t-9W|X-tp;I6S-=bzw3i-G{r%APb-=>uW1s<+eL1 z6 zxS>a|>_?N$S50Z64dHC%HWEFT)DVdXggZ?Dd`;&B(K{)36V>~=WDT{>4A#PL#Y$Qc z>(mlhZ=^;pt270c;(l07c=j89w@H4t(&jn-Oyb9+V$i`M)|s3#BeeE)3_QT5ZsgeM z@5ickf7n;mu-H6-F@=D&^Z7RiDFBV(aq&Pazm3@DDJ<+|T7CbJJRFBx%Py9?h&mGcWmKK-mjNAEr)%H8ZSb<+Z;8l~V^Ng;M~XZ@Jmw8UaA)AO_< zN3KS$2u?GAr0g6P`270%#exV2BI^ZJut&zF$xo;KiQ_}N1z$!TN^&;dK8MGjl?w%0 zM~+%wXgbkgf% zc4#kAUvur^J?I{&C`89i$!yZw1zNWbOlNrWvxCcLWBgjTc}fYb*5-e1$;s-Ec*elSGstwR|N-e0UVQCAu=gduvh|WQ#pu!yaf1_oYvSey^GeG((wf4i z8Vo{6yc9&gL3c4y*&x57zMkeynvQU0^O|rMn0+FNBNm3B9E{D5tenxll3qs6qFrv| z3;yRm?;b0h@GOx|7ZIsWMb9r{{_utqkbTI8Xbgs3NPR0meLh0HEUrSDh$iE)YUTCH zWONSfsSS?iT_T+j)~+i@KQ%JK@*tR~Vw+r#ADt891tXh%qCz4g(f1K?J2WD72p}mK z_gOt!gru}ykoMb^J5fX75O6_*oivso4XD|EFvuf0!E8{DM+B2)nB2P`2(^F;) z8$jD$HsH}PBdO4bjZX4Ao!mBA@%5s4IfbY=XDqY09T=0Qv z`hvV+8S!ceB(DpeW}(Q|2ZFQ}YO92p ztTO9)N}2d3!D~D6SR0O6t@+(zKMqDAcxTXfoJsbr`H_N>_`iIo!YyR@>fv?>L4zC0 z)z*tB#)u?6(+UP0%5Mn_ysjQ`G%TjzJ*@ zzAa%_DRA((1;W7KCU+@?xm=@DKsJG zZy{T93-)5+KIxDJzSNo#Mhpu|@$kFa_Tm1QOXmyjC=B@1`yL-K1dze6x!Au|JXrs5_x#6N*umCL z(AG`sk0Z>Vu6&<#6zeAq#qft#AaCGcV&nA3a`cmx`a^*bvbAygJmUD-CHfBv>%SFN z_8+|0|5Y|v|5{-GowD)gslRFz{k-kx(pdC=-F)P=e(ULu$LP^*sfuD{PiaSnmyc7lpW1WIQ!3vL7O#g4 z$J`aShYUK2vQn0LXJTvdNH_LX#pGNa<<#uNvr(!T7xC%+c0xvltXmB@T;5T3vLn$r z=s-iHOxOL5Ba5TtnWcQYZ{J6L#UY#CU7(6h+ut?UdlcYPg2*~+vyGNTG~YGO?0Pb# z*^neWiVIUpfcTSe#(^-=I0MR^-SU~f=IBZ#0qs;50(ug?_ z(_V0b=JZF)xQLNDX-kR3;LuumG)wd>%Tkpw^cIfwj>^sbwdFv{Lbk! zpUV{|&FXKoT7ahHw(J#Dq5AucDX+&bqY6u@YX#fOIDM8pKMw{D9)j8GfYB`N5VC{i zk3Mu7nZBb&Jq5p1RaJ##Q-Glqx66yyMF8GF7tBJn6<-yX`WUGrcz8)QhD|i)~V0_51;863{M2 z3U-_)RL&;{YzafKIAb#jLR*zGE%ZA#Wn`Yb!<=JrPfC)Kef>1AzW%0eeCT5-WKZxQ>*rZ3gU(ZVo1CX{K(a zQHGH{=4>ckaOXnEQ5o#fO%AYWag_Hf$X{-U3`&N{cMBQt1SNiJhvW7E58=iG9ILjBD|0+nD_6&V4) zq;n9c{ucf{JK3kh7RmhjjFr#iQt~+Bo6X*q15hU1ak8U04uKNq+b>r^Nb=`*EzqNa!29f-Av~41qf`FyL+& znx0+X=)k1d7ARfiXNu=*WoU#K3Rv#kZb( zMm>G^C$(;0;1c&&Bwb`AGrr_%B7MA{^iLYmI2b+Lv+I2qgy5UXxdfo!TK6vSq=p|rqya3<6%Yo-y#`FSkxET)wSIeWOfKrH-T^y!fs~Zv;quN6(B8J&kQ=rn zMzIvkvVv%Z-yb>vxOQ7Z&Mr4<$7Ib%kK`hzWo*PSJHxuLn%luOJTc?UJVh7&B*?e&jftz{&Y|7P3*JfDbzY zlN-!APc?VoV9QW=fTL|V{H&R6c$ngmwO6DaRP{lhHc4*e8dL*ML?YqS=RvxObUx zJVY}ahzgTz{7!{$Jkp%=W3M$=T^FTz*0RJpk#=~pWIB-UEpu&YbVtZxYV|twarK|M z6+6sJ-mWy-j&uDVi$bd5!(nLP1Q1QxeXC?@j=?%AZzN+fa|8vGB_U_~L?D3Ue!N^MEaJ=k6Kb=(z}#WXZkpHf0?!W%7?m}`*47zzEY-qsih98fe#^+YPp?bygOlAB zOSwY;h3a){Hy?`ww*pYa^z2sgQFLnh{A?pB+j@%eoNK9T+tRJUz3G$o`}?z!oWa)# z8-u=lQfKCjE$m?m--G>&z|P!BcF9@QQ82A7c7LTAcp!0fn7g%e0yH-Vq*5Tz_y8&a z&W2hK|9uv?&aaQ(<%i(s#@;YBOGlxy&{&khil{2uD163}pf?Ft% zj4QL0#33!sF6|$J_HhKX+~vtVi#sBUXmk>U)YXaOT=XT;w7L0PciCmRRB63K##98& zzSp4yQzu#BzhWoxJAm8l+Z^xd(23P3p_W|4^_wdMUzn`@Q%w{-L=$w}Wxy4h{ z61Zy;;P_2?vK)S9aZexTsA*F>XN|;ui!|yx@s7x&^|)-Pq^wZge1&fXa4VKR6$wH< zpTd?)0abe-$_ByDi4Yh$CR%|CbOCkF&TAwEBu`u>%!>BiGa|mBMV9%?(?^6F>-5x=I951XyAkbB}a@tkn&?O%lj0_KP;` z1iPSm42QsuKL>(Ip*J)gsx^&bqAeJD^Ppx@?7>+x+~F*4fV&| z(}KCk=fZ$&oN09nEoZ?K5X7F&d2v{^-hj$K-qQO?3N8#*{({$&0kjGR>`zcH zRk!0-qV7xGAD=n=UGNiD-`JJfWacOo%^s|{*LSUNZ@Vnjszb@H7Cm>oiuYwrapJ3x z&{Zn2imxYTf#wkGXbPnHhm|6+IWkb)8O5eOeVFs6(eZp<)jh( zmj2%2wUMoAwN#_I>g8S$ecQh`JP)xAB$$;2C^I7Ufqd)K_{mvc+`l(obv~R-wc$60 zuz32*l`nDxDwPTZ)Rim*k^AcyBknjgT}>eDO(n#U9h_99&RgFlM6tnnkG^jP55kJ! z(!z;y=oh&cMm!F33ZG|j|T zV*zn5jl+1M(Ndfm$IDyoOaE)%60i0BA3ZF~+vHw@C2bz9QeWI8q6h1Fr`Cv-k-*<{ zT*^+SYHM0)20nfwRvIm6hrWBDOAVKIm%!zOFjf?ICL45DEX#gnl*WKm?5MYB=~_Ca z{9RLCb%Nc3xl@AkG?rbml1*}12&l-ggmqM0R-P(5O1TJ^v8m%b2*~&%xmvZBfm$%7n1;14GodS8 zBrsTN)M4K-fcBe$k|RfC{IQ^bE*fQNuUf2N8`w)7xF-dLHl)8G7Fq&`1Tj$xZs#iv z4z}ad+)7m!J}&#(-nFp;bv9&Am?=yAd2v({ND5?W`iPB6F@F{taje<~=88C{vt(pN zskScrD7CTA^^pn+n;&p(hWcTE#`=c2XPob5GYNp#|>ZRiWXFn%~rla@hdK2l)^(Al6Smrwsz_qWdl;vBUP;2U5CS;|#w^{l?vf z%I<__u~x3}vc#j_PYY$go==nJwe_CCz7m+aO#7qK?e2Dk{T@&W>r_3Th}_(tLZRZ@ zfU=CqN!P2Prd646e|3a76KI+0lI15%jiWN!d+FGRvZgZxk}6P+)23Szl`W=uECW~2 zG}I{J*chTmEgim*hTSzw8C{kbT{F;Bia!e~lxEdkF1BlsmeZ&- z?Th53=at8f!i-_)by>qS6H;DPP0tx}r(iZ3Hqsy>-z#QT3a-TyEDnfhR1Cy zLrH|?EQVpD8J2rp)FjML%mPq;S7B!n42&(S&?E$Ae{Fwuj`st|xt4>(sB0#?xHq0< zzo|G!@FY^fv|fZbeS9b;h3xrER>x)`9Q+Q&@uZepFZL$RK=bw0J-#tfbK#1&vi|z; zkyX~e=Mq!;%D0ad&+Vyqx#aA)kcFOu>W>3exUsE8T{eC^SG5eeGqjwa7)tay zV2HYaa)fpnrMt#rMfVJ@%|!jh{DJ*0X3;oR{J2LE1{ z5wNkbb#m1DBU`9JA4e=;intlRv5G8+5y`u`j<&-&MO|5ms8 zqo}{W!(Z^nXK4B#i7U*1gr$Fm!2FpA{uxWb%=QV8{LhA`f3~Ro3nJyu5&Gw%=vinv zK4ZxlJ~JTxAW;}TvsXT&MLr`SKEvn#N3$}R|79A?pHJ(bYGUO0Ovm|uDq>>%j2QW| z;qHIFrhlDK^XGH@#{~Q@X7a>i^QiS`15x**Q&YCA{h|MZ>cPfG0M82@gT z^NW}+F;xRx<&o2S=7y)Njh>=nOW#kPtJ^rfPfj7nw;df8m%7s0{^32hV;bjNf{T3) z73OPaEU(^6PN!5SBJkIzHg{c^uQbe}BTiZ9Lrb-8jjlNey-UBMw0;qaDcU3hI38{! zipe^d743#Gh`+31Np2UvHfx}@+m=7dVpVR2DXBs#(djgg`Pb~*=h^kPHvBGrFW{QK zeC4t>yuMJ%NH2?tqZeL%wY`PNSr#)_rbZ(sR%Tu;V(SQy-&L$F-Fmry7FtbPnpY|I zCs0$zXJxOU;PfgyE_s-V%bynz@0x_lp}LIR&opWz&AUICaFJx+WPbIyVgyYsr(36s z3|{?J3D*R(*I(m&9xBBPgR??PgSz;hp8gh64y*ts3cS*R3e&P1Ne_U?bCa&EfLO-5 zct7a?(lP|bL=so%daW&M6_)Z!$|XeVs$qpOo1irm13`lG2HMZUm_72B5OLX`@?}ak zstg<`+}K*HpsB;!z(Y!=x!}k#6qZ*W53jl@EJTj>9OIC_Y@_8oN{Ckogz^cHRNAo< zjJrnm<24hcfFCivLu|jKK#|09%Cd0Tl!_{z2XK6A7US`Ni6*y^+jKawAhw<}VH@M< z?KPQ*)*KKj7t>Wo1SFF+%*o}GbMg@TvDSd7b3p*t#<3``y-kK zC!DY}zs~QqLQ=mZdZmktuS2|6iyav+$Z$53rp^kFcQ&lXw)rd4@+RVnOFvHbtlROM z1d`p8v@p)u&eb{@=0JO_r$A?iC3l@w$W#{>H|Tx zMuL-{_@=VbnBQwTZ^96bMPm7H92{`O375az-;=)aN3`+qeZDW`iTv>1@ZE}qUHjs! zhTA+zNWt3wBlz-V|Q32m_m4Sm2?N+{qP$ z-VvBzN7MsZP6H9_;f=2$FR~0HVn*yqwsdMpmYbv9W@9F31__qowirYmdJLQ`#0C2s z(ZhEJG@XeU%L<3n5hukc39knn8B0zcn*#;(DHp&i8${=@Egw}X<O zEF-=J_flyr)ICC!5rd%)J6S9ez%HpC?2DRLkBO=T@?Jgo7k6f4y^zF{86`p<#r5lj zRHGrD#uggAW~NIxZmxbCQU&o-MN_ICZi_|cR}&zWyc31f6vlP_Ncs6wSqoTNw1P9n z++WQ^q>*-eigGq_%r|0f z=KF@d`w{0UYq;AYfpdKT6HaD5YDBd#Nau6?DRu!Fi%lEHw45f21=@#Rl?wOWLZ}QG zeS?{HFb!o`{jbsPWtor<&Xd1NP3$A=oexJ1Tn;zk?j7oUVBZ)+d9h&GCl?PD((H4XG_|>pk z>Hh2W)}|FR9=Yvp8R<wmZ_V8!?U$-Ftp=xjD%jqg!!^Q(^+~S;ExTR!1$^&Q^Nf;IlDx zb!}d>6|$0ADU{ad3$EL66zN^*NoUk}T~4ARD@UcLR84pW@lwjW_ogaJ)05O$mI~F4EhC&Q3nh@unlx^ONR02 z1_kwt{7(5o<*{eavGd}$0k=+H>!_&-pZhb_S2~-7ly0xqG#MLKpNSej#bfH&rcB;% z@EUZi-CL7~IW}EVd0Z9WaO7u-=))IhtEyft&O;|Plz=z4P@?GZF)ahJ#?{1 zbh3j7{#tVZfKfrI`j8I%Gkcv)9Zx)u2=JYX;8HsgaX*#i3S@hu%{f32spaa~jQ@S|=>6bP9)FRhN z0jal{mIH%;n`@*D9d1Sp&S8IurPb;~VjwZYVC}i#(FPO5SUH0&-(;{O7oiym)oL%c--U{(_MZOyJOs41la-Ze^l*v6m>i4%|IYh_bzRwnRYsGmko?>0B6BFAB8qORC}>Wkns{q>2(Tv^&Et}U+RaE#%N18 zPj!(El=iitaum951Cc+3*~3%0M)f+3R0y;gP`V?FV+T)4&C&3axx(UHlv=aKrD$ru zY_^xD zqQ)h%B5k$t=^5ZN$psa8ITZ5{^8{59yVGrL8ccz73Ku5|?1G{vKQRc8FmBAZ_Q9hv zn!(8H4Ym-)NS8b2C1)7m$0JSOMH^97{ZV4QuJ&@W`WtKAnuGO_=RlUBGM(X&)s2;E z1&#p%rVW@>BcR{c()gD=fi>Ef~|jcrU^tvpQWf(y&iEc`Woa_#};Uon5N_=WCpvrBjiknGlpW)#Fp zS{eiPoVZn~#3pG|dYj_RqGwO7_rrC}f<>>Q+`X-sEziz1_b;RgEZ`HHpz>h2C(1_S|%T#nJef zw|fes>eJ?Hx&ChO_nxDOhoLdn9V*|{oG({v-BY2JRCahJTm+ z5GoAZN1%(dxh(@VLkK~vnq(w;?pi^|`D}?IbVwp4>s#0e2dExwoL3}`44o_$XvkP9 zwa%x|qCnY^!W!U^Y!CjN1m>38{R7z{6oZGBUX%iqwuHV(*Sob1pH8i$(qqhFanXdR zJ9$vl^vOZ}dj#7(oV0@AwLM&sl?}ZlDcY8y)Y`Ta*;aIruP2ea-YEiay24C=c4kbt zv30dtlW*z99uW5KZP5a2_?h=w1hN7FH7AoCmmt*X`yhpDEOjvGQfmAj04aD->&E8z z#LCOV`DJfVAmA+9waz#!8PWObEpaVj{dG=^ zYyOe`%q|>_NT;QJ_!+HGwEVj;d{HW7yZGXqt{7SFn&)jXIe6JOuX~zPSzzLfnfIFv32DT|(s!=vYnTJTGCU1ELwq}UA~3PCh1d2{P1h-QA^uKt8Oi$n0c63kZ~ z!W-snNqMt)@^H)Je;L`FZf}r*t3Uo2-+YOw3kzcMOqt9OVJ6g7bNBx>J5a8{Y(T8- zCd15Oc#SWZ;NV0X5eRSR7ZU#){h5EjsX9(_umi9wV1LtUb9OEc!dT~B68T&OvmK8t zv!tT5`HgRL@xoFj+c4q+t%~_n?VNY{UXEH{q?2f#=J#8j^{J_=&gKkaO~5V;|6WA9 zX?^<^>*nSn3_3}8^-p_c3^lgJs;=|jZ$Y?Dx&K` z3&o#%%$pDn-8QTY(vdE-C)}wnv`6o|hc7M?ZC_$5ubG|;k!K%6bhr*gzj~6Sa!duT zuv{h;;fqGV|Db_j1I+%Y6MIY`)F}CBwnT_Rsi9FU-%8gnE&T2mb#E%#o1IZ#5VEk> zhShc?J8`mAnMorZ1ZGs=_^};iDhem0Yl-<& zCd^x*BmoVSnOm3(@W7}67&euVK20KWWY`+lb)`(-pj+3$9*3||z1VHc2LbzdD`hdu zV5OBbyC~uSmsC%}VY>m3X+JDhVsM$iCnRC_^(ALjL6K2H!#}$$t2`@;D6nkT^7K*Z zW$?QBu|;C_gMdwitIoZGX$yxJt{Phfv0W!bXV3W@xc%DxU>;Y09qkj)t};y!T#t?~ zD7-!?6wb>aNtdr|TH);btlI&3ICDUB5R&q z$PjwbEztDSmlF^>ykerjl0xCJ8COCige~ktF!1W`?d}mu7W70rbgTr=A2DeCP?@l6 z^4=7tIZ*a`cC!7c^`%QM8vVW2_g}Nu`X>hK|E=Y*{lowNzsF$xMRNUW!RqD>4V%2sdD1>tJEPE-hA=tgCr<&No-6i zOR`h`$%J7{s5`L>ExU3fYSXQoK;XWGKqKLmk{lqw_k%pYoTuIo&JVgHCQWV(T${D0 zS<6>f$9=lu>d!7#5s%F1^iI+;v-GmSZM5Z?{60>l%3Eel4-*eHgI1p}(o%Kywx3Dg zul82K6SUKx`+|E|Je4-l?{cQ~`t!%o;Sr~}R=7Tfv0hEQf9Jf$K-(BLJkNq_y>)6= zm7ld6a_Nzyw3sbw+l^OU&r51|q|t%JoD12vYF3@#P3vwZrL?Q4%pnu*Sn5j_Ux@*- z9H7O$C>nRy($k`%VcmqqTY4z``)JFpA1htf9WRn3j?Sbks9iaCI)0-2NyOzAu#o2< z0-kHaxJRZ!R<)L%(|0%nIlr7M4eK7wuDjFu%EIXJy;iwOKPQTN+&52A>`OuL@6m!F z@X!V4LXH}xauCKbBmlwrBScHZv?0TY^&=f8LMQdLp6SKBk6C{V@A6W!mmo0P>rs~k04)FprT zDwQ~yAfSojrxkfgL7t?%k%2g&O@@gga;|s2@QEa}j7SZ;>27wm~$SguA003USdVD|$QZI`dFADA66Q3$O<+FI4E8 zzYr9Ms0cuZ-!H$oq2E*JYFi2!eqkV?LlDASdn!#eTdBO-!v$ANll@$|7~PDEyPyJ;^FS z-4c4*(4|o%8#|VPSwqnVKQHFD>`rKoh;|3cggHYg%LEwA~`OkPQVAP@@CwmL?ysA=G2 z0fSLkf-B6Us2(e!_Zh6gqda83OgliRO!7k*EVkEDm^2-_{teQb+Z08zl#{ozIdZ>R16a%@|jcZ0{s(a zEeX#e=zS3&YrPmlN*IE9nAxv*k4Z(9bmISAonGQS3#Q7bS8ty!aIarz6Q_hH0ZX_vV1_$KC?k#HW!Bj^P@5z z*S;%x_j%r1I80f70aiR*uht5H##azRm{?j(yq2xpA#|Mnf%HJm$YKPXH-3oWg#|f% zNy3Vk7<<_OHwp*x7zpUH&lhWOH`xPW(?VQ5gWr^W5MJmL?0stD?2|S>3`pLxBddGu8PuAa3Q#`wBW>%;m}2#|ct)ON1zm!p z`*WtBN^d`zP|GL-t@5_^;L5cSLYKMQAkcluqH z^2|Qb#jHFTPkC47P_6|6)y?q;5&_zkXBmYljD{ie$6E6$n`B35wv~@V5>s`CkLNd* z3q=Kyx`IHvUyj|FsSt(TQRx=3@pi+)@5m5H=G32htg`&Deo&+_#fb9Cgz{nvKz3k; zF&TW#q!CY<;K~2O7l)#YpH(1A^vU<>i@aCwa*eJNwQqi;i*>Z_!|Bb|L_XTUMa^;G z3kw-H2-`KMrWr4eYj*@;f*|udt}aPZXXpwra|8O~jnKdkAx)L9{feT5S$fsFjz=Ht z>eb=NoWDXlN@EX>)T-2oy|@OATuCZp)o!3xu%(g^yc0B8(5nyT>jLp zQFG1Ml&Q@#z-w8Ju~v$?h#hV!9cE3e9&rKvB}%H1XGtW^@Py)}J#&F%q}%aZdpn*R zDs4&iF+~>`=7O*!kA+_$p}1&Xdu|~R$!<+L6`)SaEF)vpsw}{JGPQO#T}wksY#3FR zg+K-oFC*uBpe}XNpPbIRizcbpE=CfzK=?40B0jeQ%s<3+tzWxzOYJL?gcDYe@$CKsLY;*S?rq3{IT&^UMnvucBzg%a{GOH`-V zDnB^EZ(SUx&r?}57BJ1yB_BBG=xn2{b1bn#f@|r_qE(v813fF&ZQ_FUu$G^dRoFyq znmS9!QKL6gafh8(b!=3YIoR$yXt0WHUqo$KNBr^(P;q>aY3+XYc4kpSz*se}r5MBG zfqk-9v9@WJu%<5gURl^fPDn%8Cay~rpkgZ{MmFB@p`h>u$^Y=JIEl~t8pa}6n2*~CVgsK5L?}#fAm=Z|l7(MOAOvxo~`tD%U zk#Q^6&~+0g4m{nbWE`8!!z835QLSj9zmebYj53)lnx?vr0-`$~<&Xg~VMo?$+3)R-r*pNP)G;y@@x<9_vKjn7B;_?VF+!fcIv>6c!0-i(KaftKjK$ z;baFTjqx~c@`u~&^@@mG-nvk3Dts8T-{IEv9b#2S$4kO1D)5d)7ALcpXjk!pA$+^B zhNQC7j1W3g0S^irf=(j!8exKQZO5cX(s-zk?ban=&mv2Zgl)7-pw((>Fp_lN2 zz=cEcgh|&ra?B!vb*g>jstClH_aBg`WnNF|Rmp)c>T8~1_W5}5;WF~nw@1K|8* zBM-Wfe=5bW9PA*WEt|>)nlKNDyvDKZ{)jF^M+qzwNqafn-LPoS5`S4S zY-=iqrCrAnG?+=fu??a(==9>yp}TAI{92i5rLsxpgtGAhMOJwSd z%}`io->rG8P-$9-y_B7AC4H7SRrVeqb+=GZj?!I1P>w|v)hPRnctE1Opwh=86f`aG zPTJk!u|ca9V-=}mEMcch23cCxO}SFov9OVrQr^D}w2!PZ$asFDNgRS04sw%STl5UA zwrmprLPAF_OJ5J!$9DRmD}EPt%5{pJ(!ZV_0zIiTE@AUJgbenNYdb@>F} zteJdSNNBs?t=aa=?2fn}fEcgmZZ=-kq(^OKwuRWinsME)UpWz+1BZYv82bY$>e-|8 zSFHR_SA-&f=K3oXec_w*=_%fs1ro2NHDQUQZ;3WmsZqXcWyxKle_8jhNmExO2fa<* zJ31)qMxWI}H0uYrblb8C2=X=Gt8c#Dj@(ahkwsaG?E78{d1G_dac;|HZEkKL$p6Pga#GpxPq?ot`rM55&i zA#wF~0&&4M%4X2kXN*^r%rG7?7-ddMnI;V(oTM9nyyapr4Wb_7KcN#u8WbhpIxEHL zFf}Yhb)@Hozdtjo;F9HB=;wKOXm9NsuQR&H!3rxt!>HEMt{^P{1rJN8VZ_!aI^~&~ z20G0mtNO4YI}@)~vAtegEUu3av|-!ob)0RzI|Pdg{v@w^Q6X_|TpT>TU8FrB_35-p znpa_5DDrGuyFc#WtN^DOY)?^t=e9g(g*Ycxo8cZo()L-}EL&OY2 zyHkcgPe$_Htg{olB0NHV|H`hQeDd`0ak?27kzFzLacDf%*mj4Kdh*d!%X80JpsG9T zJE}fV{N*&;->O)j?9_iCHvbiqc(y-1bO`?NT>p2Z+9xXZN6X=VGZOPJjqIP*t-si{ zzg4&XFKzc1sm93k89w{6tle?V>owS9G z6`hdQAMzW$4xKoi1f8I*gRzOjpG}mXM}$oroyZ+cjGQcNZD<{>t@W&IO|10(VV%TC z`>&HH{~VUTq^v(HV*E5nV)*R6{B&HWW%)EPVr2ewb7CN1{PbpLX8&*2V`A_8xm5g{ zfx3wAYqII%p8pWK*Ih9`7n-852b(fkN*GSuJq@0`%fw&6EpL_ zQxON$v|`qWu)ycYtkH5u=;-g+Eh}#}=%C+b7VHy%z+seaT>!>3%jKfU9q~pQ$zDe61{86Eqc&9DXuH|@i%loNp7DBr8fh2#YE|t=ytZ;n zIW^n)c1>7@%Ijl<>*#4gF=g?PW96P(nOn^lw(Nb}nyat%K0isfyY`bLc$ZQXVQt{P zKloAEj)*;G9tb(l{gf7$7#2&T?FvDKGB^{P{`!nHkupT0rdhU>AHJdF(y>oeW_%Mf zs20OS0iP+Zd)g|AfnAODBC zw*ZQ3TepRAcZcBa(73w?cXxMp3-0dj1b24`?rwnucL*LV{Jpc!|KI)od-lEeRGoVD zUKLfVyQ%K=^;~my%{9jO#&G{d#OjSH=jh7R`q>E z!kOtiEvF?q=eBzB83JDUCJhL}52vGcSBnp)t?8BW#C@7S2aSR8T{DhHUrAn9R)qXa zznoXOOKck~$-?z#(tFL8GH=;0Q1ukUB9X||!**~rHm`J2?FgQ({`}0&D0{Y7enfu~ zA%dubMul#Kz_~;;aLZGq0LPm|rp-?YHOGcT9Z8+^Q6c4KuVNo>>ISr_qI$OHgp{et z%b6opMGSe1415T87NK0S_%pcB!-u9tKR05d@AE_3H0Yv;u90oF#wnYRM^RV<(`Fyd z7?qD`%R|B1JM9nr7jHRm5|&b6*bh5@41TEe9W}{37qAF48Zyc2q5$XD?yD*n4k!Y!B?v)#8bm_GeF$IIK-G|(XPQI{682jz| z>h6x`a2Yf$+b1hPJnVUcgZ6JPIm~WqJaVe_-ZSKWa_-Pl==16twSXUm#Ry?0T6K|6 zn?L5ZF-0y4fsSvYM$EaXX|b@?qQe_KW@;)2T|udD-xjwWd`xZ$o+PUPayn$^;;Jwu!nhX?Xu2*t#1sg(X@~U zo{j=7>2V3B81vRol{ht^VXZ$Hi|!$*dECRw&X zA6S$cqp<0z2f5e0u%{R+<2kZ8?u7Td5;MaP2zhhXT3O?%kPRe`Zg;KaBCSuhEjFA? z=6nCZF{?AVioRb>s6_Fi9p(1Y&4GrG2J7kVOPHpInJa~3yYs09n;6g<{9$i{crT3} z$0Mh9<&)?x&u)bXK5H%W*(4b)#`bn$O?Ndr(<#uW7)g(mwHajS+|;@Rx?fFF3bn$BC<@CV4 zmv+I=nUy`kWCx{>jr+A+NJxmTb(1h%$QXwo#fO((n%yj1kj|R(MWqMD%^L)Dtkr>p z{q*Y<6>f#Yfn6Ihb8|p28-CK+H;I}B(BqH7_ z`xzB`>YProPe`mDr~=X`P- zaG-PPrAs^AxvGqtv~AK?j15r(LNelecKeW4v|gmsSLXmqVccB4{Va-X-2!7esYSMU zYrsectyJ*JEL{k$ce{V|1SojjWC}rnyPWd(WBpM2hG~-^%qyu4DW<(=h>p`#Be7as zXAw+SO(Gzn0BQQ#{KfL-N5J>fxqZyU0@Mz8N`y=K67I6Mo66$pWWk3@e8C>oO zM$uWyT3!gbv`G*I^mOS|!rc?MNIEU1sA%kZ69wu~6R+61*#n#AdKS9N-1zpBE}~t> z!AJxFCX>?#BS%BKX5EKX3D5FiYXf_!Tl?r#+f9(W?8QPzA5?(&w~nCX>ulz;_Mx(P+4E%OwpdNLkomugZ|^Qk3o{{_H~q8M#aa!7}UJ-XYO zVboQCs~IeUN=wq23D0;35@Eg?UO$PoSZK4R8u+MIg%SQSKL)@*XV|C`B@14QLEPcx zJoZpbWsjg)Z}RIZ`uOEa^qX@NqlY52+Qoqo4-);3+xb)`<0Gez0(d%C#6pv`PR--w zQ?y!7s5eLX()pb5{H|6u3nEL3DnLT9rpizdnok~z!Y3JV zn;x5!n|gAaUZbU)sc|Knc1#SH{ea*iAMa9YB}n5lKrNJEb$Yq>)OFp!!@hg1v?F0} z%UBMrrRKR=h41rdcWkfN)?Cjs7lb?(Lbe=rVD?e~Y#y>Wu~*%?Z_6gzOn3E)XS;T9 zo%>TmMK~#c&&0aJOPl@HzJPvW{i1(2H8`4aGXa|0#j6MmTV-EJenlAp#A)T?@Oh;| zkUG2eo>Bnr*-E-T*_noeLZRP7-0CSn6Ekk4d?dE7`U7LtVV4J@BR$8No|}(G4YpOD zu#oK{G!BpGMSV4Ex;@Bwm=4GtzA81PAQP1w_-9gyK-n=QfqX**bjd4kUYLhb>O!0@ zwt&K=Fjg^7%aS>@aw?~u9b;Suj6!LPyn7i_Rk}Q;0(Kgo);SOPaBy6kiEw&)eJUES*KT3xGSWf@Ug6GA;M0HkU~6FH{|;lNGk*4O}VzjG$@g()CYj4vB0R4br+54$F_7fyPWG7 z3;$a=MpS0O$aYxr4Nc%*XOVCxj>5g%tP)1sjhzk}Td#Ghm~73wnql9}jVk9F^C2&ECN zy=vr4>xQ}enK2J;%!WhfjK~p{U}$5_VuW3@YoQ_TXD)p$yL^6p7yeQ0Cjqei6G=5}!56bwL`8Ly4!(BtX1}|R&>RB`1<-yk5FDOD>hyZL^3Iwfq2$rdDqwBDX;v;^kRIE=xhk%|sp|K2`)gHyRKrdT;A90x*8!XQ*nuMj#0-Ev zUw>rR{hN#WJD=&_ljtu+v2d{in+l1!*%+CDaeA!4I6W?)1vY@0m64g{Kerk(69ebq z-(pH8R<34@l146$X3ok+mUc$=+{}MBG=IV6{#DfGkLv!i!(le>C#3vIG7* zo2?~{N&63zsF0U~@FY?Y=OylP0et?Km%9hsXMZQbj!Jur<@qLHdY&4#hh%_& zfcJy4MkSBG4@QX7C)&vOi((3+<_dhPLK@Z4RmsLqF1(K@)~)O!xabWh*YLmI)|K9jTwm+%8|Xp^Zl(GC0X?~~V{keF z_=)Icc`+pg-VM*nTBxTdma>%JZ%zI631cW0*1?g~F9rmsu@@6rqz-r8okQPRD72F8 z+B7bHDTzrkE?4=vN@#Ys%)>^$JAIzxfyNu2b1EZ{WVUE&SRTgJB%`!bCT(c8x zjh+BqY-g!{f~~aP4>A^9AeEfBa|C@eq~@(-#PFu)<13rk2B>K znWZO81SQ8VIW_V7phc-GQfC;g`)FBpJT=<-Zw-W}uaPKt=q#29anK2Um(5Am_^uZ) zR#G%ak$JKBsKo>L$(Q>J-qm#uG0BK#BPJk$)(4GMUy-UI+WrSD)VEW{2Wp*Tt%v3{ zR5{#pw18WCE;0W=9^;tGlDN6x`|?~hEu2%~Doe-I{i0B@Rt3mkm_C*R1j~u080iFI zj&dy{7z3rpzGzCp+CRD63Cvo8zS6#V@o`DEEeP6_8i1pjxPOQR1u?bd4}Md;-&%0U zQ3&A7&*NnB^LxHsAQ&snj+)6_kt>xHm(fI|ZI&T_*0r8V&fOhohWwHRWA5-}&m|FA zq-BGSG18smu#MkRJta(71V>%+PFP<0WgWDt~1XeQTsQy^LS!d@RIhSi3nzk#MH#7 z3a^W2viNQ?jh*t-vo&LD>IoiFM*q5n14`E4U+_Q@-rnHrk7TIGKD22MRGlqdg|g|# zupt;m(g=3|a{5J5IvKJ>h^^|I#(cNNebxASSJ$DX0LWxH#0J^140tGl^VwsJkF6jgkzuY*nZCk#Qtp~Sh4;3XUo9vL#2P6nY9-z!O$t*1*% z_k$LYlXaJ}JbCgiuJskWIM-^%2=vJ1 zvp`oSllkpS_6wUau6kJNDuap}!&y1O>VFUMw?9OFd5NA>u`R|IiLUgPr?;yuFsg zEi-|SUKlR77>ByQj?4CIrLhp|=28$|&V{@WZPa4i%igEKKfdpm;odhc?qwGPC;UL4x9eFg9{!f+F5EWd zcudJEVR0@#XS`i~LZ?s!Rgszd6 z-JxI)?dwsx^P&h?-uW?6DO)EVbK)2MAAog~H4m|nF`Rs5yL%EInE1rXF=J2nenT1B zfhzxPqr+}&?eD$;;i##^93brEeiX-$(RAm>EqWO1e=waB&wi|Wz>`6eU*P7U=U&?sGNWQ3*^IRIqk6y4 z&r0fTZ!QD@ue^HR{jkIeR}(!2?knq^Rx_b3g;6yUf;;FEi}PgKmGxLIagAS4bo%n7 zwa_i$vSF#jX(fVOsqVz>;794$x$c$rg<1X^QSsyD?#a4QVy2h=hzVw^pkET74orC0QP}S5>+uTU&8AnUyS%K+ZtE2g zJ}DPPrP`AAYV zt4A>{OA9dL5L>*tsYg_blcZupq>lw44q-`{YLf85!k$W*Mby~6>IP-hNV&#h&YSl| zF1nP`2I+s4jvurALJfl;h9{s9W~U!Ks&u-q2n9akA&hKkQ8aS6T(@y%vq!GWz>wav z#%`p=99Z51);g6T-u(?SjqdH1;{mW-2q)nCd^)0WXC3Oy!op^EJmY?QyJZ(#&~8WG zTMx~K*sS8RC^Va5YrAZf<#eNNrT4NQFqJ-QpDlzka@E_S@SQAeH{xybvcvi+)%l|j zvHhv`AUV5)m42bZmIKz>AQ;rB)sjjIdp&Cx5bVspyg*)#f_O{dXc_IN(P9oJ`0h7V zd6toz0{O{=-tFl2U7X} zthxb~Bo9G2t|vnX8XgZORca#ytGNp2ROCBU*cRfZCq_mvT(<I@Ru{<(P}*}l{2R!(L|DuFG+WZF(M$nR_HBVtD-_Dr|b%0`bu^TFGp z@d&gGbM!A}pV$IUHVUIS)1(RB=l@tI!v3U140n zX}afkJ+4kC5_|?uO%8VUPg2fX3sBE9xPpO7B{TJg-m@t52)5Kaw2FI=38|PQmc^i`S~* zb|q9IyX8Le7Q@2?#;5wKBL(4G6hJT8hZ2>_inNI^&Is9Ie$^(X9a}YWE-DSsR9%7c zsEm;jgXCKjJGji)W^c_ELTw-VJjJ>1A-*bKXwdj7aPPyr99hpF>&f+)P{`1BF>5QS z*D;vMKGa``E-qb|exLN*Jh@2kqi+?tR!5Bq?&DvnyHVa+_dff9u3Q`pTH^cn>YT5< zlZ5JQHew20zMK3Y2^EDV0YLhDLo!c{oxPns`Xj?74P|HtYbOB-O-vi<R$wS{)~hAi|mB!&sY8#!1KGfzW@XPU>X)M zM~VZe=>UdA0od4qHc3Dc1t%L2?)i6v768EC;RSz;)L)8X0U9E4vICI-7A_#L!$u5D zpJLg4jsIO$|AFiMiG=|@q*#8NB5^RX{GrhK1KIgqB|Gr-{~ZdQ z-!teh;{^EsjHG~<3n+K_hmRC1BMbY#6>kC}S${W1f9WIqpCCPdfIFPO*TesbhU&kU z-~WpAaB=|tn`XYR8k=#OW2lfp~QuwEUQU}9ql`vmnut@uU3_n&Y!w+@Vr3^xTSb|JUNu3wc|(@ zp`8|^ZOpvRtGL^=9m)K7D`>|VK5egK7}+{i5`6&|A7(Nx$Qnn)G0f7}rDJ=$C92eW zeR3vy?22u0bwzZECH}DZ>cd6jd0|$suAx67IY6+tL5Y211mbfq275kE%)`#kq$NU(N&0soZr;YSz8 zu#c}Hld^(@6K}m77o`}bC!U)pRr*{LJ}Lx$yjT$f{3OSTQiDrU)fU_9*byam=3d7> zmUg3424SF2YtvZ!=tn~P*Qf7_3@D-r(s7&40szpt4t0rlKYx|dELbPIT|~0{L_?8* zSAjmQbny!)P}Mjq+d^$|J&8Ss#Q{ecjD9&lU0l7}MozrlHs|7KtHTI&osC5Z1}&pD z(N;q1P4@@q8u&_sp6L-rNzXY%Xl^iX=kpBvI6yk-NW2bfjE~O3bQDK!yRRZT%s9j_ z0#1~=M1X>pxcBG0Wl^fuOcY0~PqP?)6KG;7A#pfN@df@G2@uW(n0Gjq>AQWIqevP zu2j{Nj3t<(&g@vw&*>^RNkXrN#FobDcchtz_5z2slBfm{FZFH0%wAzlgQ}Rly7639 zTpQ`RVRn+l_`DTD*`!(4US8(u9MV+_l3i@%0303wN4=EQ1?2^P25#M)wNpFE0lLp! z2@(T|OpkE5#Nl|sa0u3x>OrN!hD61!4eu2uX6KY?n5BI{!{v){3*Tn?W|f$$Pilny zYHo7~Q*Cj8zKk>Vv2c~rrx8QqWV>;IX0r?~n*5mXQfU1}k=@r-;ZrQtBHPIdL)DMn zcQ%wp3B}LMDBLlc)2Gx!+a*K~yt1}9C;nv>3T4@9@+x`m86e14*x}Z`Rm`6hR3R9q z()bOT=a*A|x%CZ)6F+mlK*how&6i{yuFG0_X4h7URtZsn)BIeK*Sj>`r$Vg$X3AFQ zUsea|j)V)@`170jOKr>-(xh&GpSF%~cSSdBYd_sp^>#&7JN@&2)q21x#Sn-O8|?56 zEh>1O1W9|eg%6wS5a=#qK@fvPKkD-bvBrp;rE@Kra2lwLow|UVEi^yGtOjO}BzL{^lO_gg z9<4r&dmC%LJSNE1bo027DC5v=(t^~Ioy|>qyW>-Fg-XG7PTotm$L{dxjP$61$K`p$ z-sDv7(){54m{eB3Z+wjZTL*eZNA+isae1w z?vt|XU_Lp}i>2f+u@n-T9Aai)3kuhqglOjb36o`-S0PQw_&|Xh*Hs=9K5@Y*!qWGO zGytElB`mwW&iPE3*R7{N%G;AL>rT%3Eb@DVGmo`RDkHYIeo7^NkOu(;v%f^|7qBNC zqhvEwKMd)HuiKhoeys;V^iN%`fpJIUyvG5uNOB*7q;&}2ICM;11En5+hM+mXIce(i zQfsGMqKEb;b`ti2CZItd*hqQpJXPfRCC(v@i6MJns2B;E7YpW+H9<lRWjHei(rJSBSsAA%L#tO*Vj>&p~e#&Au_7G5s9V!b{J20 z40N2Z&gy)y*KUX{HUx+}`LN^6xktEea#c&XF)#4w&V~x1=UlWW#CM>uc}Mo9!AIF3 zq}-@-d`4gYQ8X<|GA%kag}x;U0WRTnP9#E8wuM`isT0-)tjPyKfYsQq65(-URl%yZD*I)kXrC;5hA3?#*+Iw%*1H}Q94(a8q6JR9 zPYz*_znJv82<-Tw;tI3|liHTZ{Jcs&(@1&8K>QfxmCYP;iyXRlg|mL(MOM!l6z;=C zw2_0YVx`ZB#9I-*rh{!pY&x_;gcqU+gAFCcey~D40~8$BF4sonax?S!<`{ME>-#%t zs{=?J^A)VMXf?@UQMcI`Y~;Use$zR!J?`|$6m}adXm1Rc^0rQDaF64uYb&=tl7$)B ztg_%Cree5}J}V5{OO8Yw^+vmx5V;?d!Ha$1qe=u{bpb8i^PCN*vl-?w8Eqkz%-{XV z_6fJVOBr=S0`}DPyH!#YBXew4zWh=PsHLqSBNi1*^JLQ5M3jPOyc2l65F5hBf{GL3 z&xOHMo5Xs#mJ(I6#z8E6-GGSf8-3AyC)3qqk%=BXc_NodtX4i4#v8|?NvV7 zLuxvj3_w+1f=caVKY%5^L~2|>a#5Fjo-E)| zB<+XBX1K>Yte-w}eQIZn#X?9E=~r^mWI1{1j`(Og%1)nf;@nUwNuBNLq;Wo>))qSu z9;8T@kKDBln15`?1TDMDmJ{#&YNye(<)3;cZM4*oM9IeN&vt<*C`-hma>@dWuGPt>mI%lli|=UDq)(=ryhY9lSX$R4;i4d@9 zUPlD+M#}|5r=}W`h3A_?AAWUcZvno4O4-N_9?2CQ@9&C;olnSL9wZBM-6#Vh46o(N zBn6U^>A8COfM7$vSo?L8MKK(n8=z}jvb%pI2TsbMobb}5S-F0OXVr}p596wmQI>5l ziSr9*S{u;he5qQcE8Pnn~hWhA&0fF`-etDl0WK~ z+qX7oSwyPT!HOS`EVBBE)03Q&jd%s~flHuGx-@|n-R%8}7-3qjx;soh5&O%Gnt=ce zsHCK7z6l(r(CkLjnOLu zivD&lZ=_K6t0VFm!g1fVscM7mNVn^Fo$!Y9&poLeqVuNm8V4K8`MW?|6@6A}JHIO< zV&)HSqL&9k%H*bf?V*30oWX3d$6lxiwCoqRw=YsMdN!c3mtOv*qCm zdUM5&{8ShLM&5Xgw(Ahria&ce;T_*!Q=>PSrT`cBQDy*RA&$q;!BatIqW%~kj#y&$ zIqJ?-#3;hy{r?Q}zkVEM#u-=QuJbefjF7 zfravOUAU}Db9{aJinqP#$|>c~y4>}7qSq3}0?rJUwTX@wWYY|Wv;q4GTeTU!#)qSs z0r*zrZ~5f0QgXk3MA2(M-PiC9XxGrU$S2@@kM}rZ2`O&8zjr10g|%)-0BN7Z{K0KM z*eykxptP!>ifq>Y$^omCt_+0J)aHHaqEDmTW~biJmdjPiE@n`;g=K9!4sqs`a#f(y zc#fhV%)FQ?Gj|F>K|!1fH~+qJ1cJZm`c5~;)BzTkvy*nm%fi5_I9gBwwhiGVSSF$m zelo06-txi2T`xYpd`4XcYd3)G{3wi(mhRE&PA3o)WGHr7_@4q?+H!KJyidiZ`_5%De2iFPT7I-*96@?x@*5=c~7!P?kxvmC>&Y7^-ta92$a9vy{s?x)pFLYTwMxO*B)k1KAoRj1(ZBxZ?1b-G?mXz z=Nwubu_~>=&$9noijPZWcfVYx9%2#n;a$At{OR*R`}UK|M=61{Pm>4LEQ*MUarO%9 zW2=(Vb^5S!m14J!gSrQ2_U7HUpl=$hb=Svi0`ET0gIJt(oaqh%)eh+v@Fc$1CtEyz zpJJnr;0Iqq)oa(f-yB;888N!=C$RCc-nm}Tjj4cnK(yWuFu5s@5{LI!gS5oXb<$dP zGNndWTh*u(+bX@sN7hQ8v8)b)IW(Og-l{#*F3Qzn5>GW=s&XJ|4g7R^ zDjSd|AX?2Z?#Y}wVaedyAo~iM55t?*FLRXyW+sXHlVqE3r@h_t7B>2dqd~FnmwP-x z5RB_`rW@L;SK2RX=pl8!o!)MTl07|7PZ}drlI=QY=t9fphZ{O8MP5i)y;!43Ef-ng zcvXQ(Q%NDB;g|HH=iwTNiVaVS%M+4INmdBb^|eo3Dy*4Dx2S8|X!xh7s`+yiK$)Xx ze9W6U%^^`@_C%@n$gMn{M*1KoYv#_zxFx}QmuDJu;}rtStP}QR8!rKY2l)-^95l&< zC6Hpp0rSfsMeQ@V;Iv;6y z4XqrNu(y08HA#PMU79b9GDRH`ad=>#$t|DiT|4P{fokYhV`0p11c(Sq?lHX!et*2p zo^EH9A0a10JCgr_;#+0kv$PKsqgP?#PGH6F*e2`QgmyM%Pgt$>zSs%UP-=!e7@-^U z(YuIdNYFQq8ADBSifT&KeGz(EuXLhffg#d^dD@T^y#UFABrm-ELU5mLEcVjRHsz4S z8G;}$cI}dv;-bq=Osdn^?a3167=u(+c>aKesdF{lx%BSbHMa)pdfRIFVio{42mv;= zyV-_!_z`7T+rl!AUqO+1{bQ?Z1OrA5T6yVNw`k)z{Sv%TTL>+{jhr=AgQB>oLyZU!FY|E>#yp4Cd-IjNkP2Yuqm!g{{8o`EB^SPW+;_ z6cY$^rlg%+IE{bDLqkx78qHf1Cu{4+>jx z@tZ7qw)96(VyhzVC>~obhesKAa z3#X)AWA~+AN!rdGx4LW0yOnikZh8WT{OBz#e^kxY{5fCn*+1xP_I1z*7EHVR? zHN@MClv~I{<|j=nFkIPKd)2@`L9G@zG!2qlvMw*-@odl8j(r)Qvvq})M{u9Kfj+qS?rhPj)l z=;bY`7cmgrt!+G8dmY59@i~OCW2g~jpM!c6Ksy3LwD83pavD4yZ)eLaDOa;fqVw(} zH1s=qQ9jOAMK-+@y0VVd)(L!CU@ajEQVVY@baNsZx&&nq0o~ApDw|RKj1xm5Fk6{O8k{fCiaW-4p_k-m6UN1gYpS5S=1dTeTcU+(I}WUpyz1im=REKhZ$0HYwlOM27+vs^G&< zQIRARu@k&}6T9bz~U}d zf<-jf#R`=%^t{L+#o4wOfrdYL5ObayM`$tX%7p=~HQJL(15#(<#Q=~ehO-F>h4h}l}ops~bDC<*F=TT;3ZENQZKW3he z+dfGMZS^x?84U!$Nhn%c`=hMpCfma@t^zD26n1m(Nd2dzyX!H9>cyB}W9Y1WOK<9V zVKtx_5BPK>#@o2eEEabrr?Hy7r}*UX((u@_@$=im^w5pR7bjRA8~5^AQJP1jmM-2s zPqQ)$-!5yhk@>CrrI>J2!pl^r<0ZLiE>}En7J(7_!Y?NqxZ){ad)BXz&*WII{A}|W z)!`9b3V&K9YU?);a)UH#IN2NikkZLgj66LEy?<;7*S#3>ho z3(^l{9}7Y5fbh6-6cc5vA4EeDetEkM>5fwkjHwoHnd68qFyYxkq9$`lHE+W)UhR3V zBC5=LbdN`uocM-;eUYt3nSay4{}p2lRCNFGmVeQx;2*)q|FQ9A z1@`s-@iG65G5%fbpBvoYG$=4RhaGrUR&HiSpg90gSUHm;he>pXP4e*?_pyr;P^)MgaZekRjIpJZJuxihtjQ@V8D9|7A&kE~UQ=5|GOWt^yV|M&SJ$0H}6g28uj@vx@8g zZ)_n9jQ&%nVlwq)G;}MLQTgLd0s=svjz3lauu`j5iA^y1z|14AVf5NB#-|2Vp z=daeEU-SRXM&f4v@3N7aH8$=4NG=Z&C;W-UH485=^ToXDDjmds&2x1eN|^K>N3ldqIW2bhSKvF-d$P*n;!uYpUs0hDaH~;UE8tdny0o=_pw*y<(f0E4WZkJJ zPsQ~9+?3J#P41VofY+0R?C{;IH7N%CMhDHPK_^F&RcUz|d|Ahc1t+?IpJ1lb2zUD8 zEu{S{5v4=Z>gw&LU&FM;0?Z+6=DYK+$4KV-pjnydWjC{VPfgc61PPO%n4akw=kd%5 zj;9!Z_579W>;qqMbMB^fptIbYe}~r9t^kjpN2m`${S~sSL*v1VaW0+r50dit+ljA! zsDePBON&iiPs-$2kE&gB>@6&M9F-0|Jq>#s3Y<~9i`E$XkCZo=SaFf(4!39b0WJp_ zlSLir4yF*AO(-Ry^S4*9t;6J9le6zGFd!B@At>KCg~rX_I~iJU-^@Sssb8P<2Qk!K zTe)TW?ngx)n+%N!M)|d99mE=r*eu>1R+||xmwMf#ogaHHO&a&Cr*rX$ndZ9)dFt(T zcI7giX3ODX$5(C2!BK?D+k7!ihL7bW+Eox1MuCwQqgNHcp-fSdqcUjA*`Ja=*?ozb zufh!iaqc*gWkwC+4YVqL7px`Ac75QmfAF>_kJgKMaBb7v+t;>SDK`VwF` z8hUAR`;q6W@3!E_(5^bM_&(0(#ComT$Ia=3x1#nEDyYD7Wa`?qGvi*l5e}MH)NG!> zG^;%k^qebFu4U*r8Y(xh`cq}?;3m0L+5Wm#Y99ad4XLRfqrD|p(XN6e{FlpWb~r4M7>!xs%q?ZUvF z9O$6pMbHhGUn&|M$F#56)*vRoTTUJ}r4jj=LZnlt2#v@bl4i6yMV@tmT3>(P+qrdp zeZJe~oi`mFjU%Y>yC2aAR<97%z3{zpYNv#98eMZ+;AqQiv;c6e?;ws4#M)+WZCQ~Mm;2LR=&wB(b ztXlDu${Z7Z7JeH!SAd0v=QZ7uJE(>z;7Dt@Xb0$sLiEqDl_1mRDi-#*+}~OJ6wlv( zI6?{Q%X*xyF@*=WW+aDfXtXKxv`@7SQA9!!K&D}nW}U4q11CqINaYo^!MSC;+oNzb z!^3++tlGuAludKRJT&ihY}ERK z;TYy8F;nVxOY5)bs*aZueOC)2g&)<%Ui#0ti#N@~WnxH#&2=V6ZDJUxQ0Dd7@$&JS zzx$z;g=cXa7`R83p)YU_-IPYXd-ec8AY4)R+(9A-)Tu}^bMI<s~q{ zt!@SjY~4(4|5XDfm!!M1;nQD@5oCl`$_HweNCc&M4v%1DJ>1Gvs_#(1_4w&@*g z8AJl#sj{!mcw^*~B&b3YXOX92^I+?AVqacR8DuL^6L3nJTkK_a21Mf1CL>N{f^H@x zq0HhZ^}{>V+SKEsSeY_YQ@Ucs>v)>?SV9C~e~SMK0%;PmH-Nh71e-HUpRCf==Ib1c zPQctW?x8lwf=Bx6VoehkYx9TrRf({!jwLz-JsBgAI>n0R`P z3OOghR|jLb^3EG8Wu9L|_2*TC5FR}Gt!_VZW!7C&Bt?LibRDL1Z;8~av)W4NlfQxO z-X@Akt8Sly!MBlv&FP}G3;j8j-4#(Qk-e7#@4hYFZKf!)L+I0HF$dI63as7_G)o}~ z!)Ult<{Ggt*R(|(Fs+7ApKFZqK|Hi2@?+H)q;CsHNW=N&@2M+HFw)LEe=3WiiwJBE z<8`f7Gc6W}<3A6Jd zEn6by%-%NeXYtxR+5yll+-=C1TI263`#Dm$5X!PhqI;~%t>5_@-4h={C6=P68(M@i z4_cW5JSjrs_d97E8Az{^I1x`Wjc}Fxo`PR5nvBcV*Bds-r8dgY~YvNdPz*!Ky z7mQnQ6?N;?r+tKKB3~1~mWELkA@e-&&o{b%fjox)xNqIg+=+;nY3D#TDo?An9`#{! zYQroJE*C{CsumA)Zl-x@EZu5CkJLJyJcChjTA?y*E_O*TFNJQ<%KQ~XD~#*_a&aaP zizfcr;Q%0k5Ke0-rN*FKM299vR>>daef4FpC|R80&22wT1fZN-J|_={jlK*2bU$`O zm7>t?z1>Khfm$eDIiGAf<-L-Rfw=$@6`v9{q=dJ1Uh7Aj^l^rL%Ws?VA`m~FxMq&} zN)B0K6PfF*L!;Of4Uq%aO}Pp&Z@s+sFsgWXLxoipHp^drQjvl_`I$|9(X?dvol}%9 zoT5qovGh!wM&Ile2OJF^9}7>8r)w}{eg=)8M1bOBfhdJ)+)_k-$~5`4Xg^n_dy0YL zVkO*0bX^@6bzTmf{ZKG1oB3FF9K>3)XH~ogS@YB z1Nn0Zz(~i)t1S$9N2(U#n4_fA78_3fk=DMmQA+$?TkGZ09mt*Bn))u29smT25 zX*;4w6nglvUu(GB0Z8oHjH8aerU5JltMn2!RH{~-=qZ*Q(ehqYb&dKpe6TMsc*|k} zjTJRc>14FThZqii;}5snPDQ&ybb7fXpWO0IV>b@M>EvGdnlme!?If4(q&C%#uPfyq zf1gwvCEey<9m#8;cId7W%6hwLt@4$tUV?UJm{W>rId%Jzcy8x$TeM6-8?9NZUmu6C zIkS8&t;`vfE+F=_|EQY&N?j@_ibAvuL#S_nZ4A89eT|k-zR|>m9y<;%9+NPGAFETS z0#*UwQ*AFmO*Qg{xLJ4nMns78k^?j9?GD%X)uLSDM!QF(UoYi3qBjt;l!|W4ty5nJ z*=Xq1a5egu))1P|2A3wds=)CxjrcB^I15irqIp1!I!!;9uG#Etm{wvOvPJ10B}}U( zMAa&++qRlhDovU4xLNxkDY-vQCHl{1_l{eT1wXLe9v^Rj_QB3ko?ln)=y}iiLW>mQ zKb zXt885v&GEJV6nx_%q&^V(n;@K-Cd`x-XogkA@EZk7ooY8IpA*f z2;A$i3)el1QT4oRLWR#LDRZCTI<;RQIr8fnKa=|`m^!9$C{j~qF?;5VNjxcN+1@wo zvHi=y@Gux9%XB7;IXGymh7h>WVvF(b#`Dnll&g_kKp+%jTe{Wap9zx`c8R`R5`@0O zH78pN`hSRS6_`DIh1UB#vJE}rPu1-7N{u6-O+T(ADq}!{BA!# zwX9_X>k94s3{LN#lkIrfZ;{SqyUQL7G7K)!4tz5bq1<>WdSjqDN_0ZbZjhR&N>}L= zTMUxLeFZ6n#ErBP&vPZztc|iP;xp^VN^8tT04BOGX0`%FrXB;e>nle5bA^S&KlloZNh8*Q{QS%j&GnCP6 zIpRh#AvK~ntG~Uh$R|N0F^117kSLd~Ak!w-*Q9x7e$4#L-T`7RQ^}V~RmW)@U)v47 z<|2G}I_3K}k_LhXN|=%bpZDg85DntpWVB~6Y&tW9OtXrG&Mpv~?uX&x4>RDhH$e6V z_HjJU3y);td?ZU?9vjT29TdvnN^ls}Hnjy2j`!mOwt{mSn$x z`PCgGJMOGOE8kd*gtpM&*4mXiCci0wNSWIwuX`N}$B zBQ(LuC9zt@O^rLm-7Wz$y;=jVdM`;7@ z74Y#Ru0KcdhT{cx!0F$h6_YkaG{2oF4NYg8m(kZP(Hu&bEzy*pgYA@-Wr-R15^gU+ zhn@7gsR3=mQ96;PLDsDeWk%IlRRT5jYXJ<0wip!8x%e)#QNSW0(- ztZe$8e2OhBeZpSFSD32G<4QrY^z~U8s8Dw#NC`JERD#uH544QP`n-PPZLYzcE?(;l z@r~N{^nisaFa^H|*~+_;rw37&k#Jf5hCXws?Kv>bW3IY9L&QZ`JzFaTE(b%lO`6fL zvG#sV3y4dcvR$sYE7Y+91(G?X$(8-0VP8BIfu0H60JyjU5ekxoaOqEeP?;APh{6{V z<{1gir(95Z<{U!cO7Lps&C*L-$T3ccR4T3A_ITJr{ao(NQh79WXR==$ft8CvyJ0>7 zn-E-f%Tt}e9i+Cbqg{zN2z_kgo9`lb3Zy7-0p-9jB*=u0dDnpdYI z>ye@v_Fd`Dwk{s!RyaV?+axeDLH{wkd&*FwSZ{$rYH5tb*ioM+5U8-R)lY0!BB3h4 zkNYq{FTn1wzgkD>HgvY#6<&Q$n5YqBylMKAji7GUS6NhH#=i!6kBR&3roFn4?W=0q zsw|pk@}^n_$XrJFHyASo+310<4-1w1E0nczE+g|=i-YkQj0Is$?(iRES}{KR{oa1k znN1y<^YChzr?;*c9%V=)S)V+YbFMxfh1?i>5`dnUl0GyYG^i{`*cwN!V$Y8};C0mhZO0g%>r;Z{e}=MjDJE37JzpA=kcGAf(0Nc|9SiuNWt{qLkgz< zCrI&^H~sr`5DU}ag%p1-`mf|&CIFY<0@$V40fIcs9|^`>fb(Ey1eDx!{@2`_e~se& zAJN5sir@gbn+dSFY>dBI0e~4W0$>IJUa$f5c@CEUO?dHlWcfd@+R3kyAf?y$0Q z&@;0F+;wb>^njpaKyDErhx)&;l>ZMTN7&BD+}6bLZ$kkV#{XicW29#Xcn<&l<9~xC zKoIi(U;#2FPF5c5fA{o%-?)Eu`oAv#CxAx$UH||A0PYgbKOoNkbOBtfl9G~tZxj9# z8DZuCL|OgjXB>d=C;-u72Hdy5jiP|8EqcJ8m;Z7V{vYqu-znPw^WxuG)E`gqUvCU6 z0N4Ds69O&}04^~DGQR+kOn_r9dba;vg!FgA$p3uS|6J4mpFzkU-;95r=D&duPL}^J z_yJV(&id=#g2p=8BR1t<^{S(}g$IEO50RA8(6 zzIB!*@EBOoFP?qbkQrBIvn$4FlJ8-C>*>^yk8acUk|JW;lOLD&Cv?zw-DBv>0oll3?Yz@iMDM zTL194$G%*$ymDx5%aBJOkVyN9_CnU#xjCUe3a6*#&r+`Wyj+)kz_DM)7yxmvolEPR zL3<(n3{PLPcsgGlac!&If%Rd9=;1t~da)1_)h_Hv5?S#|rViKYIjlG1L;qtU2%onq zqxakOx=(B744xcE7iTC?Q}d0iXOla<`swvWz&pp|N4P3K?}x!|$gJ#s5Uy>}s6T59 z57?`~du;|)QOjN#=0~$suGD3DOdGu(T2#cUFrjvN1~NzWY-Mz3ww>KFSs8LsT;^F=AqNm+Z%TFP?W%}-VWDkh%uz~IDulbK^$MyjMWinh zV_qzhZQdwG53UxWfs?(Os7CM4NeyfYcroNwwk3!+rxSXl1L79I2ioYnwI`saZ-syK zmkAz|Wt?M3V?U)DN{W6HtqnMw4q;HHlbn9UWGR=g8#~94v4kTruS0CDEwiEjt~5gB zd@{}Ccd9YZecOARfU7e@-eqFO{x$e!GTR_#MF{fFcKs?Pgy=uE~0=q;Gx{*st z1*%_|ZFr+R*8~pq;&!PL*2}RJ+Xc0Ea`GVD1}X4S@n+tG8ug&du{SJy1S*Km$H86v ze)Jt$%VpZCT$^I_v}44kGFBdHc~xyc(z`S@#;k| zg7JfTVPG}RwzUZgD7O)J?{-h^Dhll_x=;+$q-m@U-!ny7);3!$wVMcQEb76f*L!B^ zKH!}JZz1N&Aq|+)V|;(Y{lE+2BcMW0XC#MU2q)D8k8>M5Dnx4=>|f(fe9UyvyGpqX zOr?x{Q3VEiF-CI`yBf&#Y`dwR4|i>`Sz-salmdc;`Q;f75tJmebZC93Ps=mn``JXtzt}q^^Ku<8fqD$#B{|VbMTg7Z;<5yDCoH)o zCBr|Xup$hyg@5yLGQ^hJo3@|~nCOwu3@IRrFV1^oGMoyKCH=Cx{Sz-N>duk##M=RS z1o`Q1;)m|sCK+w{nD&V%Rs4Kdt&p0)SNpgiFx4$RKhg~C6LZVT0fQ8idy?;5h)JJ} zpu?pcY*c4RM|m?K=n0oGL%@+K$>YY}7s{hum?kfaq47!stCJ?`Z+>ASLF?^>k;2H! zL$Uh5&xw5nmgu$fhb8OALE*U#CakaZRQjRRo}rh=GK44 zI8djnBJr&N70asSgu21O0C6hX2t;X=EH=;6KAF{Oqt1MBY0*qExyacb36q)MPjSUE zOerZ)GFYj9AjPlwDJXH@#92an6bu^aqVt4gL`45Nzn9y?SPwdqDjj*GjDdwANjRQ( zTp9-WY(6a!JX3Q~_I>&y@IAf4i@-s_S}YukM+%ma_&~(SGsUr2KdB zyTItyWo5oH!cGzJKGXvs!@xb005|OM1EuSIR zz=m4?X9UfbrM94xkPOo)V~_7Fq2TparJ*FaVbhmPSvK{>hM%={sIn9H)Vm+(=cj|{ zTfg17&B50Y)GoWqmF5>q+=uO5eLCcgkcqE3a(^8Hm8r({(`VxQXjPCi2%}{{>A9ry zjrUwWM-zk=$CxstFlZ+#W3|&|eg}5~ljy_cvekL6F~d<A0oMS zm}?-uD>zBCBtY<3#d{pq9Qcg=c8j^(kwcT5ac;~-cMM7^9zNcD+g`BAaV%LkeqNRX zoFY~Pd`68DZbO68oM5y2OHNKDE2f~&z4v)Z=z?su0{vn2$x`yZu{5M}27N*{ne~iK z1A>7NafxlcSR+kuv*6=C5y*4nNnRPm*^V~{OpA!{JD;(~q66^}x<_v)30_M3!^gb6 zM9B&1T+Oj@8gu!QW$WV-uez$rS)X@(Wfw`#8ACxrgX@(gd8;MuHx)$^Omze$kh7o(=iiayM%GV(9Nw1e8=ua zzU4F%Cd+X4AqTj3Q1MpUW zgiMtVLg_uj7JC*-h58zO`0|wi_?c*SnqdXbB~fW#y|PBWb^UXcD>WP(Lhi7t7OFV*prk|8ud?`^)`_>Y zpwLgw%a%U6RkN6N*6o&Jm(F#m8w}*D%(5*@luLjrzRbN5=yDqRHd_5k*UZC4IY)O3g_W7LH)EF-uloF2l8qo;}VdAB-i;ec8&&Ju3?L0)&^l82~c??eZlaJkBfqz2e>@6|8ULA73dQxg;$>nXYucF$QJAJ;u3 zwgUu7N-vSKF@w)O+@Q&}UO1erMDz~SoqpIjRNr)Hl>koUd3?RGO-6q(Y2o)@YQ-LQo#*+VR`*C zq=HSPjHnjACz3e@a_N?&lnr!46iTOl?UE|9xTQo5s!eYSEVuIv(wU44u=>1B!{4>Z zDAfH?QtP`?y2`E?RzWE>d1@jd=nq9Cg#|7V_`c&-1!7pg)<5WE#X)*E1M0dl=yvbk z56V7HM}6dV<9uwnFOYnkv`n43^X(#vD9M zX0+|bL}O-j+Wt%upj)NcFsf`qmTW@v9HJo`c#L^dH#YW;7?!tTE`|}fh6yIGsh0|h z7k|V?Eqdy8;A;uwnBBfaYtB!6jOZXD3=QQ;&u+QmITy*%Al5fA0a>&4`q7E(Z^id+PZ3c2{)t?5b?>V6;GdQ_kj(3)0lAB(L*fRpGcQtg_{H$j| z-#Q7~=jsSxmbJo+id#%U>RcKcK1hB}NE}oj*Prg36-|3XkE(|3GY6VIs|8EGT&WUMP7;f6j@GJ|a{l~;Z0wjQr%a0NNG5o2W7&rDkqYEt%fv0H7ou~FyJxng z^@GaT%*gsXOv{b;IUN4bqq31;7yEPSRvISCndgf*I!JXIpbhnkb<&!EWUel*31QAW zQF<8dwxoJhGR=ncw)!VVuxX|R?9cf0+@gStbS{>`WD;>rp_0t+td*X{Qb({mY$OyP zzs|lrAcUV-A!TVml{ zeiBMOqccnVxWryqt(b4JH;~FsV~8L+aW#pqDxW4UE#%53shmag1%W#mCZj79&Z2&_dXvqX0m=q$ubpOR?q=D_CLXsL>M0z;P6K9IZGHlor~p5RT=^dVcX1RK$awY1 zDj(hvi0~VaMxXhM1>_%4`Q)q{cD*kdZs)oU);D#6!YStGK!hb^>&i6L&bKb9cG*{G;!Y(|`+fMCwQ|PE&S%!9loyU}K{41k1?nObZ=<TPyS(t+Tj0r_EgC@np-rl3n zyHG^_VEF;b6~RHK6s<`+r@s#Y4!ds*GFOJff?an5vV%gbohMM|7fUvwA61@JaesCYrxvo11%=5;j2ZQQxl26AlZ*w-UzA|5xx~9g2yD&_Ol8U z_S7Rq-W0=01V-)L?f@q3NZ9CL)Z^;qk5PH&Um!F`R@6NxzXmoCFtbvWW&Tp^N2^ElsZFc7) zM3wm8%^o{5{xJ!4E@8*K~A;Lfw_^w z;~gG}3FF6X#KPaf1_`fB6mJzH+ae9KH{9TvA*~_TMVde^f3tiNbD+Y8G#Q#((ilu4 z3-ahqWSUNUkZvuTN#h}c#Ai$%>!!}EidVI&5u|OX57Xo1!`Z%ZRwWE<;<5;pTi$ff zCPeUly+;7R7%{CIHGdOhF#U5F0}vbc2c}^93&sFcDgJr<2gdk^o(iTv$i_eGsrZWn z`mb=sAE4xKc`AOF7yMsR^zRhD-$8eO;tD1fKp`UAzk*i$1HJV>(FzuJfW-o!#{XUs zGdo~59^i0b2dI_*0)ztipuZn` z5QQS;=0ev+8+w}*}&xd zMO~Xfhkn&z`@Hx44nud%)41>b+rZgCjN!xq#v+S!L6f)KRrh-dXPoc^8-|EIPj^ek z^wW4GvJ{n?&d%yU=yG`giXMGpV-SWwVq}e>i?WT>aQLQF)s>4TJ>`4Fruu#WK;#s7 zp=esN*{mvW=gZPMfOQC_q?-Ojv#Imyau7DF6Ka1FLxnpMRuCWT?oGQgbY1pn5)sux zT=ckwAUsvoqMMva3{PHbr~1tJj{22l09xO~;k;YQ+ebIZNdMKN`Y`3io<8G}frCYs zvk+aML2m;6eE+QxiiY7GNpRbJLdTn`gTzRodbFh*!6ciX-YBQ4WwT1arpc{*e?=fy z1l0>{Km7dp&7g6;{{b-n0;E@br+($NUriQ~@o1y2dIchIohtu&gjx++Otcq;&@9PG z7Oph^O>-bM`^AY>aUl1WXq`CC!Dw)&mz*uqoX&bA=8K<*Rk9f+?rS(oMzZzqLJ47tvS4Hq1y6lU?t(B=eFwSm(3aF^9O?h zx2UDUOy8bCsFP40_CB{6wR1S-x89rmsL1v$vO2leYtT|m^D|ZoEmG0>IyPb40zQiRq-mGp z`jMeG-=L*y1sm>HL{M0-Ax?WoxE)n}f|2f1sASl6)N!?r8ZL)C;(;-+k<^LG7&~%# zVjsWRNbkafczeT5y1;|PE4phQ!zO~gYfpbGGvJhMdI+CLC)&FO+xG2cZxL5NLRq@x zei7tNq(rQ4!_Olh5vJQJ@rSPrEn zFG!NT<*{w0f^JS%1|z{56LG`E%uapjn2?DWXi|o3aVl-e1Kcw%IZU{m;T}+exId~n zwA!j9E)QdRq}^`6Y!?LG6l4ox3D2Qiqb&aX7%jbDs;u{GnHwetdz=MJm5<%4ynxOa zCPac?W%KovOh^h4pRgeaT1&a}^%M$p8v6Y`SAI4AQT3Rfu@LXfUE z_2ixWE)+kRc^Em_kPNDxRRJH7iHWu`ryelqu`;~}5W1lDx!U_FA=e~}O z%i~8hi^Yv#uaMjKJo3#Fn&sU<%vYG3syEy$ho7;gfxI}~q#R(w*&RD1MIdMS zRz6<3zN@FyQ%8&PmIT4!==Me2 zEsZz|eBDcok^_5gO7SgI!Crnh%VZ8jCo5i4_Y!Zvk+li#P}L?B=trY@`~s|OoQDvN zkdF|Z9f)wS0RgkbyX(Vf&;vDOG7YsG_s~o4zTIc(p<(kj$k<;2d>_4E=BM~8&7F`>W0v4;z(%mB=sG3_T-Q-`7XQ5!sbDsuRdDJYSs{3 zCbyV-wC2hqod4{!`X(xH)M_BuXRU_MX@2$R?|1W5mt%`+bOgqTFEwe<(ceOHlIaR4!+aKZ`XU zsmxD?c;5+H0tbh5%MIE0uZsf~+e*{-Hagl9#X7iQwqiP&iGbLGg8)ZXGUs^U^cWs0 zOGu6jgE?$Q2N@(2-p^=p$@MonxNX+<4%y=wU3i~6rI{>;)@t#j@hpBsL!mxVtyqBW zGS79?wkMWWe+VowEjQFHM8-Mx;C6hzdYJM2ton2bGGT-PH^1)qQ2w=F>!y*nAA&l) z=}~*qv=*$I!HT@?(KlsVfKV?U)Tw4DG&j$)GoznsUap=X1kRr_T{ia~)@5q_&LU*e z?}F-lIGPQbKZ?VqF~qhpW~tP$-iFXWA1(T5r#YU+uQBr7rCH1Nm1e-s@^BNO z%dL6sY_X^I0@M{IjLx0m049V8M}_FoYM= zp={w`-JwO@s~%-hbhz-*mzTR@k}yzF!d@+>#X<>fzgk>(WGRzYABiU}8ReV~@NY@R z`bE!}!Hu(H`>S$E1O>3-MCgH5BMb8*scC%+fxAG#($FzSv#=HWv_w+xi7JFDuv2#YUEGB9zq;{s@3mRagdwF&j*9nD3uhl9RoL z@n$=8m3C~#Pd-aU{6aB$a>)0*&D60S;uF6f3C>L4TRscQU|^g#YMPK5C3QMI^`f?0m7 zQLJ=Ze50vrYV)6FAf4q6X};ZHh}9*#VCO`i(QSK9U^OYQy@!6*3#~Qsl_7W$#xlNr z?!uAcWoL0lNx&(ifdiuVS2I%8TH7`*_yni4oD;JH+*w^^vmf&ol(o3-xpFT1v$go_ zeJF*cXPP8>t4bPp`>Ly;1T-d(o;_mu{A^(K^SH3#P%Ro&uCPpl=$lRr?QRjqjjDPPj=`RH>MKSS^&F~){Pcy}&eq@RXf^&4r}p_PMvbh~>A zbnDFtxHZP1Y~e@SE zu*@q?bQfaw+RPZUg=;@yEWN=2eH<^%`x6mu(?VoSgD~OV^AD`^XsgqZu;{T{w85~0~#dIM?cN>cPk`VWSrz~U~LXtPY zSttp!jUnCw4ZPDl3^VA2A zu?YVZu04{t87w8+vegLoNa`#z__?qVzU;mOXF3-Wq62c=xoJm2)aO9N$Qi|a#R5kT zWNlXNZ^VrQagFsV%xtZi65H#shDmYbL(JZ>WIOr zY#9X+KT&mPlA?@E$HTkADM-_p z20m^q{39@fQ{s1_?v#gzTks@0JqC*~F=rty)fa|Cnza$b!0auov{%`~b?cN<)wg}_ zuJ*#sx}|Ml5r@UGdf)b?F}G9Gyn(*C_p? zmSk&~e10A3EvZH^y!}!fD*P7NTz~8EmLZ+urox%o>Kh>Pd-M#iV4@&i|BTNmKu6pw z?8k4U8RL=_Bq5Ew)21=%O7T&JQRJhMFJ_cwCMqA!b0uGGDd8|B)|^&DHLNUiADh?; zo5Tup%OHU9b3+IQkb6(JN?FjKDS=o+TZz>Rdg8b2ru;1$cfDPdRlm)f1i?BgdE1Ar zVcbNpuhPI}1sHQiyFnd}5=}ItUNho~$w?zkQr3~ghdH2|-OX1J(80h@_!)67Ixl+1 zQ*)|&M)>Z*uRBU0^TuQLr#Ye2B+s>VO? zGN)nZt>NH4Us7BaTcpabyU7x2_E!Km%bwt_TCE|o@CQ$i3)D(u@j>IxSzaO}YD{~J z3_q{Lo3ge`Ju|*zB>xG*T zF1}H%5T?SpU$z$_o-Ern0c8NYiU<{A2lN4mWJ?CsicPhQFAh5Np7Y^>sxiiSv4UB$ zq_YT_Jh15GHi@b-CA=YmCdtBOmVHe-yJ5U$w6RdsKeu6oo4?j%DhVU*G6@{HHqdp{aYI7Sfz$fDGsy<+az#5?R;Z5OnguxK3Y@cRdDel`KP@bBfq6 zNJF|b^jKNX4Gf67?M#tF*6R-je4cw@{4s`O9}N>nwyjA^)`k%`kt60|#^tHEqs_tI z8J1TmKfJ`g5#z8Vy(8?W<2NwEp#2agZ)pzFStpdMpu}qNzo*=Ztt)$AsP6`p-bg~w zmi|q-o%#1z|6c}h9qsIe?c4!TCX9rvfFWQO4nlUoOfVp0Mwj8=Tm#I1%;x{rKYz>Y z|4?3M{zIAnXXW+3yy-vWb>=?>_rDQY#PY{t{#^TCnp;=_Ex7+KuLHV_IRJ5@{}L(t z?`gDu?8{#*iG_s;5IqAJ{ALHtX8#@lXJerUbn~!q08*9M{#P9ee_uELV+a3oiT~NK zng5w?4461)_@I-o=554OS&c>Q~H&L6kcpJ(%Lqtsj+|6O^@n0mV{jwJdx798Oh!w}ge zTGe$=2$VDTiUDqB#xY}v1{p~mg#ytT5}3dz;IDUCWxh3K^C}5Vdu*s->$)*7oDXYG zb`ZsOW~UL$#pj2|hAmkL5XB$w%COb!ftwV8vn*VweZ%`dm`rftxZcaM(^KOu%_W#6 zZ8=-9er?Zx8N)in)u#W&*@}~i5ie%6-N817@mPv?k70LJr9pR*Ql9bT%!HkA9T_e# z+ML~dGw&Ffl5RA4QukUBv3OIy>{!6*G@ws1^T@92ofYiDnCsrI=c6%Z%bx#`zyUhh zL4-11>AP^?*n_H0yn-X6+B0`!=opp1%U8CfH+hm>E?BTp5NsB4 z=qB26aXUW<%fNoc&$OmP3n9#S9QosBFNT%!6O*AU>yuq1deY@?UQ39S)kc)mrK$r{ z<%Q!w=m@p)TIJ!YjZHPx0f`m&Y3 zQV2uC0ok7}!KQ|j+kJ?jjr(Oo9#YkCE`2yWFWlDl(3Jx3sQ_XXMbi^a$ z5c5*+xnq*M>xx{6Nam@%-AT#*q~VVgJn*za`RmxA!zhf)M5gUfJ3Z`E40X_q#NfQY zY`-OXU-sIo1d2sMyHXVrk_Z~atE)zif*kp6;QG8t=B7g~3k<%e6s{0D0^T{L7QDw{ z-Or0}__;e3ob;YS;ZE;Aw)jB5odB83Ns3l~T(^s@cM|O{4-=+SzUopX^Z&7u< zYd>A~T(AV{)h0;BLG$dNB!B8K)q!|~0e!_ULFRO3#rkdw@*Hfn-R%gp6N(j~rabIG z`Mt&VzED0^lF|e10HUvf!%&@Q&Mde8XWuj=p?N1=r)S)HGBZWvjt#4N)EAfv)T$0| zL_6T+2gVJ&F>kc4j;t??{vOQz*jnm&jsCv^S&gApo3r5P`<52BWjf)KD%>?wnqTI( zW5~SrQ|EJmPjw1Q0{9hj;Z+#!%*cn5NqH zvg!JcG2w}vPnMo0!kaURtFj(*UZ;Z6U~@PskF)0Hv0)U#RBO@qJ5V@m50x=h0kNPi zF~!9a7pRR|D_=q;jyZ@y#9;T94;N0VeWRyC989eBJx}8+RLX%L;W*FcM}WgIrwV_( zoztg=PB7kWPwz!#veAaUPaU|s*WDHfg&racpH<8xW#bNEyXKU$ybWOIHeLVpDdv(E z11>(N#5)mqp;4sI<0^Y}I+Zm%wCNoDu%D<~%qQc)EpW@OA&X>QJ_5!mcTvG!oq&C-0X!+~KtZWRQAJLqM5ClD@_ss4Lc)m0Ap?GT6iaLrotb4Cl3}Va<7~V5Y zqOSdlkJpy+TwmK<8*4g!5;cuCED>oZS=KVrt6Jbl(>D4^QtS+r@@vAUdXTqZ6Q3!8 zD+e<$ju|msb?`X^8iM{7UYqbG^65%B_y-{=Y43NfsR&tE@P&47WxL%H&QJ6|C13_N z=>&*aVwa735-5^F>21pSvm-S8O|GF-CWvBZhS`(E_OhF}57ms3mO**9`CzE`G53&C za)g{HZ++iO@D)q^TX9966t8A9q^YCSB~{B#2oc7b7apV4?#`ovXdyN5G%LW=l-5co z4Bwi>W|+cVsE+v0i5aW?NR|4^Y{!BpBHdGkuqea0nU~1=QE$>7ycCF_EMwOcOJbFX zp--U7O8B;*$YmFbM1xt5KpN5!h{1c7)Lhtnq{U)K1zu?aBS)whJz#kf-=CSkU*Zi z!$HXE?D`w_61d7bzTR&U79w!#hI~8~q37_dBoDl9PX`2) zk-)kcVBG2MgCHoo&PK2+Wo!qp;IW}v!QrDpv#UsEEb>~!p%2%CXZ|#>1TKn!;*L63d^=9{n#ss0QZ#wEKr5RbjunCQ^&*oI6FQ1pIsR6rr z7^mTrj;-GPXmhCZLR9v+b zcnJh@9Oke|pHiHM5wyA;a+|E@8K)DNFl8|-+j+Z_&b}3!LTD<(rErkVHa9qQfo+10zD$VD<2xYL!h@& zb7+)-^}E*{Zaw6Nwy6>Lz`fgzrd@XZXi{#mU*jy=6~cZc8go^)Vn#|OlQW%+Jtu>m zvd05y=HWq3DOV5Oo(EL92DnNLNk(!7x{pYWdb{mh@I=Wqxm?Pi-&Tr4vy9zOkCX+Y z7W}x*;u`0r0Exy;F(6}AJi#rzj?MT=6wa$)H_{b3JGFn{M30L_F zxtCI8D=GcSH7}xKf^zqTLXvE%%c|(#J5hradSS+_SdhG$U!zfx1tOMC=uGnc! zG^+TV9{VMJFQ?q3W`WVvxBj-&9)oI#7Ids!Pg!bqOR&2tUU%4GT|_>AkbwzEvi=}q}m8ecQOPoKksJuLdi%* zc81FUA?+SC@x|u_ycR@8jy2XI>Q2ZI z!l_qG?K9Q&^-)Id(OgbD3clR*5Cuep* zrW$I61QZokll>N0)LKEz;+GY0ou!gj+mTliW%B)QiiW(?Y#tviEfq4;=%{tS3?KGu ziEIXNrnj|fVQC{(1ui;lb31+Yfx*yYu$0Qh2uWnh5M?-^-JQO-Q13RcNU7B|6Xb&K zat5OACx;wZfb=^rjVk!s%7eQsR9-Is!L=>l->uNu`n2>47hQ6Jz*$|naXcCMF7r_g zEiiFyRU*5$Va`f@MZ_a+D^erS{6esqg>Q>+W?AJsDDHAo`Xv90Ag5Q=30{Bwau`DVMV&DOO!ndxj7;RY7gtE4QjQxZ6b;&hmy0gfmnV_)(>D>EApvrgK4c{{< zo>WxpT}IL$a5#`d3fuT~4MEFFPs1Xy;3tHQS0RJf3=#-+k*fO*O|BDJ8EV9ZJ{jFj zM}c#4Eyt&d*q|2HaM$_6kxWyl7TsfF_RLxG4To#n$BYRuUrL6>`K%gV7$n4U$c8oS z#I~@hXH_bV=9wQ5zGT>U53_4gvW@DAi2*+1lcZj%-bB$u zoJeJpY(jAahSh3-a<0m3Q5_5nH0lFVxxL`t@aD%WKg0ojTYs9Kthd;u)7g>JYyV;Y z!lA^aQw6mN+xzwTc{`|=H%yL7ap>%NhQsz)Iw~&E8c~I(xlC|MQvn^lFXb{~z?W(3 z<8&mf9~k5DG&tdSEf4Z!9NR0xO4`V!wig?=9gYeLp6&Mgd8glwBo&gfXxGiXjx3re zfRBiwNu-$Qm$GhB$Uqm%)cVbBw10gl#EY{oAklN^HdwkK-qhd~f?cdxyV(1Tz~7Np zv+VI>fF8EmS%W`a;Bc3R^c@I{!;$6Yva{Tg<>qf8wYKFUreNMg8Y@l@yBmvlmn#1v zo%6mpRuR5`%6jf6*Qt`1`Z2uv-NzBeCw&uqT^>jKCx6NI%8YP`5PMyHFf1eUxMx^U z-A3R0ktPC%2kbGxpJIZ)>&B(IO-FUl`?0zV3?lh4pAH8^BSspe>w?%6Tb?@qRK5g+ zvu=cgsHOP0`sR=K_~BG-m`!x^edIGCJT*E8L?Hlzfi81zjmqtDr<8{IW%Gax?__N) zsLyIRmz=Y06ApW>qz*oVBUCGkN5Qp!pd8@B#&+JC46_wOX8MQgl;JghZsW45Qf57l zZ4yVCpEnyLHiOJpU@%PO>!Fm5d179*-?jvqV6PW_(dFtfN-$sFR+^-N@h(=z{@&Dx z8FJexB+qr<$P_c@I1<5&*<;Ckz2J}~m7N)_1X=HG3?6~)ps$fb`hF&O9+atNvx&+& zhZ!Por_1syI7E2)NX-U9-lNWP`QKGY~GPSr|`B ze~fU)dnCgXT;B+~l>e0(!U{GG#iMb!qPz>`%vUYQkQ@q1#`I?74w{XdVaX2*UdFU@ zkcNS9eVD!=!k;GUo=3c`cx(_eUT5BcOB9zAp5#1#@N8 z_ej3F`sn%oIh^<+*IFSjEJ5^!Z=I*aF;xW|6U1GUCAdFqLQ@b&lfWWWw@W@PQPM{JfDppV@2E%Ss_> zhBn41>J6K2@kK34OKq!q!WZtH?1PyJ1vy#|>o?ae`k*WC&n}Y z;`cYf&Ga`T8h|Cmf0dg5Ag+b&Y@JPPot+4nnSXoJ{IgQ?Z({sUu~f`Ve*oeCP-^}! zh%)mpOL{=^I}0Nd9V@`Uo*7^?{>z<)g^7`l1+1SpeENBQpoU z86IFk0|+u_`WMUJf7zwKd$Ih}*z_MF^zV)Me;Z`}?`Eif-vj?y7Y8i;e-mmxr>0}K zJBS7zZjJwvZ2Md#{y}HLvC|A@FK<~ioHjgH0`3Ozca!K>8+0ZU>6_2F?*v_~hm)~P zAzx)UB{AC6Ns5Lao1HE=53^giy&k6=+i2`Eo(DV|D^1Pl-|vWXbj~L`dHKB_vobH2 zANSLYMmZR%e^&d<1yGinib;@t$;jHwM608IaqBF2@8EA621|I<<{mP3&AvWs9X}Lu z8mz+~&7?N1Eq}f>)MCZI)a4|rReNmLr&^sWFDqqZ)x|mHEs{=qe}1_L73(+WxfV-B zl6@W)?FsK4m+48PLM?W$ZF_m)PwjuyM>iXkxMxshya1O!d}Ew!5NA)!g#h!yD-VP16^-u^$PIwm!xD*wu`6-tJ*q~ z85p$589qn)v}DsFf0P`R^(c`WqKT8woRdNQ!OyI`C<{+-U#DjCamiFsA^eeWd6Xyn zHHZ)EywAL^mL9?GE56YM5ec$uCgJmMIp^U?j^Ty$a&boY5o4juFjc!_A6y&v#pP3u zz~RfJb9GDX5K>AN@{IG%EXC0_m`>iEYRWIn`^}1xy1=s(g9P+VWs`z!RUnDoNNd+y zGH|HJ=-@-3Dve$S2{}c}P@4b1y-|~Z@_D)rgXxiUeURafazeeF^G#QRit1BRdamPZ zY3A%{?g^GWO4vEzaROEppR{QB#;OoXy|E63-Stpf))RBv;|m{MeaT3m zAmTAp{vw002_x5YD{_IlA>=n;z=e=NKv=cVk`Pbx9U7eUjA2Y%gPK!m4^s3+HJx+P zC7D5vY1@NblfdB)Alc?? zN=JbKIDGzQ4;Z=JLTxYf`r80s~kSBkPcbdo1AX*`o?Bp~<+V5b6)BSPBYy6~hk zmP}y->t<&j8noSPOUOj;{4hd9<~lnF%Datg-Eb2bhf6kJ zqXU*H3r>@?D~Mb=h_sSAr|A0bil(O8lr5~_%F4aRyhQJQzfny;awI+MeYvq1EiIQY=r2!x@YYh4(VnxM1?oZ0QN1~m!X-7DF{DtP zaGg>zS)hT*lx8FblLqUS2xT%N``Gmvf z?a*R@Yejx_N0Cs=+y-2ISe;;flmXkQ2l{(ut>c&JyIu@*tF^j~Il*`i0f^{mEZ-{9 zy~rZ6(Vjg=5x8oj_aO02@vZ~CFt_Na#Mdqp^pWnS8LN4U#*8C8T~_=_*KJwXWrHEJ zud?Imz?-x0%;df-uXy2gn5hkK@la~+#O-cO9pp0JkbjYFgb%(!)d-ZskqGPcksf*L za2U15hCTNeyEn`JO5!;MYo^t1#*gUKBP-Pt7Y(C;vC;5h{ zvI5N`q~J?6D>oLm8BeUW)hi(JA;;NF*0?`EI4YD*LFjH}?>6Q%6)$SqpV;h34xnrI zy*IPu82N{XaM1EMbjq`e*k??}e7Z*!FHq!Vc6?!6Elo{6E{!o&<(6TRAET<0(+(pS zK4+BQ6D#V#<+XAKO;%){&b+xl5eNOQO2}-=UKL+ zEZtJMiOYR1-?`0k#M*c{kkktlg$$N~(W>O*u7>`;P756DE;-TE#_VS*YRIng+w=_y zna*_;7ZiTts^?cD)gfdyFJB$n>NfDE59m4?Sp=)5Y?qo2mB6gGdpb?Yil z<-t3-?PHnjWbj)1?eIw1 zcne5uRigG^%%HL6hxWvdQ|77qa=dtrv7 zT@kD;D9d&!t!x|6hHESgQ36PDtTWaU4WY%Bx$>Zz+CE!lfPp6WwYhZ>L&uV4@q4Fb z)$Ubtcf3t08eUC&xEp681Y-P*^;&p zns(z-um}=d%9d5j$;^zUV$MiB9hDbZ({fv+1*CYPsEXu@`9ZGA+7_JW3C0&Ms`^TVK-J~YcH}M_nL=s$WgnCdGHOF!G5n&i3 z+5NV}SL$Lo!Nh7OOYS8u@r_H6uhzx_3SNtmuoK`%TP>**gasSr2Jq8MNSsZvoblFY zsC#aqu=L@{_ZZ9kqhxq`Ab3bRT+9e<7AqttbiA#i4{fg@ROIud<{@H^N!Qa-O*J8w z=4*JVd8;!BjPdCHP%2z;0yjt@0f_b-hUw4!?iqFJ+>*y7M&HO9yC2-sFpfY@C!WhX z!-qjE9K7s(jBody7irS3AfT28@=KR!JsKwp2XemEk_v3Dt6iX5MZQR@V;TiWH3y6t zjP25}X(srD^jo~F6VQ>!TMAof(?Bnphu%Q2j&Y$FwlVF<#SP#4OI&=}jX*iZE9#1= znlO>|TXm6?M4TxDoph3edr~+r;Y#F|pAW-#t3(|@t8xV|J`9AhB5&mCFzC-V|LgAXz-1|2O?+xkKHPGmB*5K6LO z!LT*0!|;YbqA+EFdo8>&A{))<##ddJT-{hm(u2@G<}+K2F{W?5)5CoD5(@0M+1TYU zU@Lj(5v*2i0H>S&wd?GT*(@#o-e~hFJ59QJf&`h%DxHCwb`IO>6G4pnuRpzP(22U~ zo=>_!nIsPr;5%8wUSn=8mo4@}zbbt&=?Rd>tf^0Ep1-Zq6w9~H7wLXZy{qTUt1_DhA^YXSEQRUKtgQC`f)TtVA%T;oAl2Idi za55pM_Z@*tI_(S5sgZ1dcKJ}CX4i&(?7;b+ej5vTPiY|7H%{hl82oYV4%`hJXr5a@ zuczgcC|oRXiO@{BzTS_TsQhFfoGnmU)0O1ak9@DCEAX8ICoAGf@LhJ>hGVUWGbv}D zswu1AXRt7Ovg_Z7EKl{e$m74lV@_sN8Pken`*X#JAiVpu`FMoVkPC!gA3EF*gDojY zg!B>SKT&!Qi84tdD|xvVcMZtmMOsEKA$n`sa$N1CLRi8PD0FZa$wmF7v{5~5H4OCU zszG;DuvM+)B~8J$3};phsKc`eAZluu;tJL>ncZ;_)*@v;4=RLpyC6$Zz6#w)0Urqz z;xl&q970mEwpw_S|%P0G#Kayj_-a zPEf~Bm_gsHrmaNff2k(e@frj8I$2ea8OL_}{zjYYy3iIQ5qrA(x;Hi^FSVQwyh1n-G)DFsG(Q+Z2;m|~L1kUrwIN{z!X^X@ z5ShP6t%C^cZ!)zlsOMC6z_YbpaaFocs$R%TsDPDaM*afUi4@NeEyaS;)aJh^BX@0F z1LAv5^NGyUBnb=iSqF1kY43^^KUy%J+&U=6+c}r>E|~*8P~FZE&axt^;^yJmyl;nd ze{5`b*Yp%;jHvXgTX*hQ3g5M;zyg`cdUG)l?g^cE)A>Q z2uq9+BP9zrr`|qo8f@e=h+&FAXM#TII#<+aYyp4b`6vZ(DkA7Fo&7~rD&3ULW2r)o z9aBLQ0#RYlpLZ|r7-yT3^9y}CH55l-bFVU9Px^6WCH-}NchP`?Su_wi7H;CfT(^rc z3UTX(ABvV_7}LXlkul`uMM{hP z%&Et|-?O;9{-n2N4cblD$ZiGj1GT#=4=8ZK%X%GH$3pBPk5{5Z*Om>7bf{Yj<$E96 zU*0r(hh_kB2UCsvhjJwIFD>qGIOP9;cm=?lzvW2g-yAAHYy3?x0cObHP60Ke%U8czH!_D_l+KxboT1-K0Z)HiklKpG<(K(YkLlyuCT z|I$20KoI3$cozKb+MfzyWB>?)ECAyKfbRsrWS9UD6A7@PW+Px?XQX3gV)<7YA^)LL zGXGUkzn1XNMX>^mAbu6`%M1gcP6Bcw0qp6&rzV!as_E|{`ETWv2>=c=1EkXbXcQ9w z90q{A|CT=el`qHdt^KDyF#*JFc7Vdn2*}d}Xyr`IfVKRk=>nFY{ht+coy|?`98GNg zK_)9;?f$Aq|HYK!mz@d&;C=)Ip#pMH8JPiI@BqXbuyg?T_kZn9`pfP8cfI@n*V^*m zCG`Jbt~pp){~K+&Urp9&wHYh>_{YswpKj}jhPWe}kRJwpCxVxG)4Jq3jS-nSDU0VyWI1Q2u5$p`&#l2D9`q3g@-v*Wt`+tdB$^Pz$LGf!4-ucwPc zOIHV{yO`^`;;xgl^sFx4>wwDQwEoQ>GqL&;%+i|XS9RCr%$#i;8PbG>{qc(r9&g8I zqJ=Hl)cBcbfU#Ixo&~ij`|1_#&$@P1pCZOQ<#54Nr&inWo60AiAlRe&(56zHpO$k?5mxbzw3LG}XO$_okG`BDhe&;h^^}ZE;4&Jmg zFIcmCFvf^HIWGaT5OH5xfEDE$m-$I_RCG1J>8LSF6Y60&12H*H5_vt6w%F3K3}ZIa zQK+!eR6{A+&$Ui09Y|zMY4s(v<`AZ(zWR$}Z zU9qC!N#mk>M4$zxbUPZ`ISez>F#bqS9A=18eT)ir{?0IF*|Mc?WhN*X+qTEpgs!h- zdV?EYP|?p>f{d#D@sp5(3SpE8_bB;=7aqKNn$xA+p#F5*3m-R{pGfpSxriIqqA~`H zGlLe6(Q_io0fRlp7LXMl#Nzkv@-?)4k=Uw)M2$W;|UT=ClS3$FVaUAzrc5&E+RG-ekl za%_a-+ai4IcF)l=?kJJIhWC{d7K}7`q);S8*{5UI`a&ko0A-S$HEa&T@`MGvsR$)q z1)3~>b0!-syxZu50Lxh-(EY2KC7xM>_8rkW;<>SPAvx<0X@Mve(rm_=1uVWRv1p7kkK zy&$|HbpAL!L6E{S4r;C`ZGsZnR4TnoB)mZR6P<{6B7@sKmmvcKKc7V+WERm3gf}_4 ztfC6}UI$+KSFK9F5|0JokRi$KLqCr``%g}}c~>EQ4w0{-x3*4?2V!$hQ2_sncCj3l zi{wjoXswRT|F|)K-D6U@ATWyDi7JAT8m&pn8jB|SB$@d?MichurduoWdS3`RAwJJN zM&=M*=?%+sqDop&P%^|QbGwcQ(A=c3qA0W38!|WwYc+{aezo=EGmsm_r8iH1i1x;E z&(*5k$uKTRfjmuiV1)&{iu+8kRB@{(p=J~=0|i)EbZVlEtTk9LnB?H%8xX;Vukpu| zE;-(NJ^8?1Hwa$n?6g0dPbO-kgEVxs>4_gC%=0X3Yz&4~)G{*85&RI6egfMs3U0gD z4Xsve8a_q<=DoCEiwA*}8??K0+4Kgp1K@MfnWVpLJ=J^`QU@ap(nrs^Ps!O4Z*JAK zNilgiVq7;JT!0ns#Ki^8$B*rq?6nJw8f9JYLDFw#GnMj#@W3Qc*bJ=0>4|sj8ND5Kd%NG56wi zs!kNv%rN3;M=2w1ALfd<3!XbrsC`-&_lSin*ecSj921wCzI!fpZ}OM%VZoe&B!~a<5@@sF0X0E zSwS4BKrG>=Z!c)$=6Pj3YwLgRV|bm(Vea-W_J7EA3gZR4rDxSGWmBvEbUOb;wBgeG zY1NIJ6M*P`bomJa($*q4-`H|l8l1^KZ~DG+)i*TY+Muz?6XtfN`*L#fGcRJlQ3ecj z3m%Ychh8HZQ(Go(7rylW;kjlCc;Q0CU?xrBTJOxUMNg1je&Bw!x6ue-#_ru+ds zA`50rM7!iuoOC9^GR2Uo6qW(nSLIG*cDgI!s)PTy;O;dQsyd)NVL} zISr<6ljl^E1y{d4)h<`nw39_-IWMaie|T?jnQ~b%q9Lhpti$b|bd2VB0+VVzT`803 z0dt}DW}Mw6GPY#C^_@1OO}7u5A0OUoa5)4NP-Y+eNTYLQNGZ(eF*_vV-2Hs{VS=d*0xQ!u(^*28aIkQr4gCH^n#OLP)0+~3A8Y5V~C^~A7 zdv$|NT{;BekG+3GbBMyr4MX#nGaxUHhX7xeSp}QS)%Qzq#kMftYKq1?B9tI5^Twa| zB(yLeagQmA4Ni{bDOq-yNj3Fj38iq?Lhwn~XQ;pj$#j4$P{o~fP7p#V5Pac@viS;L zW90n6KnCUAYfTP`G$Vqr#t$^GJ4fa}wQO+8Ns&T0dkgp5_=6dT$p6BLI=xm~0uQ6%S$?I8~>qioF+9QIg{m`$4`#nyK!#OF~*WQ1wy8_{7 zs*=#DaSs2e5LkjhZvi2?eiw*0BzCl8rcDDX4CeB()#uZ6g$?d3=n5FUa%M#hpbpu( zWGfkP>Aq;r3AF_r_0Vso$OKG@`=bu1%1>nCIzTbA=L?Vi3Znm>M=>8e}r%70|l ztE<=aZTDX9@YE_Mu|c1f5)Ahy%xV5?@|7PxlKro~Jj?D67R3e`lhap;Gn-8YRr zV@WcNfiksf-BR5STdsTAlO-n|K3aS@K&)+v|b-M-Mc(-@NI9@JU@vR z*>!G;Wf_n$u-L~^T#>Yi5;n;XopP{eJtU_W$$7+q)GOfkx_aB_5fw0sXyBZ4Z!Y4N zrD%eFZVppFa2CH~U(RTe5h1puT-2|{cq9kY42}G#os*Fil$XAa1A@qrGGHhL!I+dm zQ}&(c6UGq>7tXHGy|FucT+(1_=;G-Jr zgwpE5u2;h_4us8qhV4K5f<){S;nz+!7;8pD+>mZ&4$PcxyjEf)lNNeN=I)gq#CN#h zQOoh+aj`Uo5>KpXGn4t%Q;#wKpkpo{)3Bj>Ulm)l2{1_F)tv~}k%TrN{GRK{ybKoE{EWOv;)fT{6<4k_>e5zG zmMXZ}iI2~2iu5r2gBEwCIUh;AQpw}%V#21^LytvAu_~|=ggkN1zUexPqg>sa=ko5>hv9slpV)q0r3SW~cE(TO`tWo5s{oiJ>;BqpQM0Db>$R)zQ{1ZH90wQS7~{s%X;%6N z5=nM~`B-Y#%+1-JzGgGg%&ovdMyfJ?ufY;C`-t#EHkgg&BH*4_6Q+%uuT=&ue84OG znv1a~DvS1tTyID^!r=8?-|T>t=_tJUvBEzyC6-E=@UKu5#A=DIlNQIrt`Eq^@h8n` z4{F3(nC=4KTcpF3gA%=A8{FMx80cf$4#BgNThdQW#42$Vc(AHKF(aCfo1v`P3# zIJ;(9WR^|4)g#l#6JTCW=TF5K@m11Q=~@N z>i$WYIrffw9!;uEU^gA=Q5>T}Pu0Z-%1NkN2H$Y}y~qiS!M08(*+d?ga>OTMZG#Ur z!*JdjW;%adA$Y3`q}nQHsj0F>w>}Ghr&VW84Shr1X$dzseuSy3vv^@wD1C6cEc~(d z)|EB(+NR_O9v8?D4hHtzT?&pRpP>!53=wq({}5f)&9j$b!&Xz&{3)b^_I2(%VL=L2 z1nNyv=82k2+KAR=^tU=v9%|a|hZtEc+p(BFd=sHT%ZjtcO>&T+@o@M`@{N}?*ZTbs z%R_kr*p0aESoDg+T1KX~55&Si`=f)nTmqcp4tQ+eauO29zw^e{b8$pCe;Eq+N}_>< zTVP>K zp&xAmLqy_1^gSPa)-6#(KE$6*F_}r#u=jC38dC-+gYseo~lmPQ}ly62C5Xd=^NO zdCD)1SgzH^aEU-wJ}8`o>hdCJin$j3?f@xTuZ^s>t<6@Ql8xYqt90J$-|46Jh8DTd zp_KJdm?(xG{*0BWWb3xwC8|s>9iW-gaA8;dx&0{y2o%Vo_ps(4e&E3J&sl8z;g|5A ztTp}+{Qu57v;573+U}QI0s#ZPtckIO!CzT-sF=Ih7y?`{*#5v+mHuw60T509>Vt&e zMf^$n{pD573h-bCgckzB0s*=`EBmkDLO{wTGk|~oe@SiqUGE=7{qt%oGoW_XKioyc z{y&8E{$A=oUi06iS7ug5mj6b2-BTNj#u-8bwb=KgOEp={=i#QY zm;Esp2mbYg)PlYG3lu~m3`}}TM7q5AK^DJvqRJXlIV< z)Y2)W@2z7K^OoXcAEzU2PK!=lFu&H z;>-Nuu~VO?*DlND@Dt2jAj#eK^02F9jFMN3HGj&HJ-@|$fg#@(q8_ms{N83R|jAz-p&sXuQ zsmDd=Rq`4qBZ>x*FIve&bWkY0GLt%>+NTF) z{oyks$inoT1x!dXf|aetRs7Yy$R2yo2BKD4>AxBw<`<;Z5nv1HA0gU_Nu3Tlttu=8rU$tCASz^96qt$ zKi%|Vt1mg+V^E=gb^{-a*|@dAAFzTv;RD95^yINnhO_{PxhggdC^JY z8FOkrDxaLPJgFNZa~z5P36yJ|fp-cl(yF-FP7~>hx^1&H)(5xTsvy>KIce2%rZ~~SJsx%pb z?g62~UasX5ibe2O3w5Wj(h`19JnlDv$+58@$q$gpvE9Ra40$h2Qsxzo3te-gr6Zil za_`CVUMU<$ey)kZEN6Q@`KU$0C6{p&to^7EW5moNUruDrlibdi;-|Q@2xAzM8bMdk zt;`Hya&ZI285DQ$f&nA1%L8?ExnJ7ALi_=)XK(98J&3ZhZs+lc#P!%(iO!&d{G=r8^0dkBITGTQ+M~=xCLpBTe!Aj9G1#U(glpby zn-|gcxvvmBBJnhL58rcuz#6TWJ3Q~BPPSlN9YYX&4Ng)d$H#LG+T1KYmDyyyO<foapZ@@6m)A*#OFf=_%-A&Lld1RaGuvZ!5ro+vv}l0saF zi!<4V=FL2@x>i}IcdZ;09{Pz1xpJoFC4r}eU#--_?5F%Xw}_Gr?# z?CS}G@F=MW@$QByTR9Lvzg+j8DWLgTlCEj~pid{GJZr<(lFF0Ko)RMp5uo)Iw}%fs z2xXEF&#xxfV*~hJp_YQ%GSiV**}&`DlO8!8ghFX(`It5c$FUTBh&Fw&_C-s)3uGx+ z|EArYe+!R%-I5GPs3gx}+tqD^ca|N7+JO8cRfT5Rut&{?HbzAG$>}~>*KlqG_@kx9 z-svkHt$ppN-oa_}gporXoqy-}2MAu1G`omMwO6vBk-#d%NQa!>WDu7vLZ(7dN~}H{ z+=q6jsc*K0K$zH2H+Kt2MtRz_h$QT>5WeueK=oZMwD?zx{;S{OhcM!;nejGqfJ(GzP?B=k+1r5`T<>z(s0CobTiUTYQCQLrp-rpjRW0ecOS!MNdL zlFYZt%9Q9WF3>w{+hPR>1xQQvw-AF2P(hvoORrN#W@!OvW(c^X#KkYcB_nvzQ0R${ zfy6{2UZKQ{R%=Q{?!}C9BW!x>G}5n8AC~6iQwou)ow{_;P6zI6ZhJgDSG7NidbzOL z31WIT-6J-oBx;Djk(?A*8op*!MdHSZ#`b(*AV&s0OqhEv8H)R4$ywxrPm&oN=jU}fbMe!$xD@u~76BNc^tvDJY1ItkC(!FfBT@li)D0Sf|%IOCEI7f{$C* zOc`KRj^%hCj0NDoR!WPON)yYwG9R5_M%M0i)GnDxx|88|CrsCmQ}U>bh@?YKlk7o~ zG}~OX_l+luL4stPkW-QduLYx$c0kSYw!po^YZ&uzTyX_j-lzlefgxDxAc(2TdM&mg zTQFg_u{gD}LJlRSN!?6f>Z-g9s8|e9HwCTiJCh(3V{E0u;&w{yT*IFkRyE4GKSdyy zZ-zjg%1V`B^qRTS9?^PcK-UvGI|?JC1T;62c&)H;ztcNrlV2X`2yCvONU;;_1ZeiKn17iY>8wX=zUw<4BLqU@GOf z9vv>RXFYkveSBYr^gkW(2ug9#Su499T@aXLw?v=qNK`19XEsLUH8fh; ztg{AB8!LahP@Pt45pLT+wZMV)=OH>k ze9>JR0cbbek|S8Ri#wrujS3B<~XBvWvL|s zb~sGNF=M89?ElnG1+fH==tIjFlKv!NbIA*o-RTa&sUsWWDN!Kb3~LScV?m!j=rhPG zj80t=F*qFRy6Pmxk(jQIi8qK1Tm#nd%t~F{{`(<;AZ2^jGRABpmq;`r$1e&NoOj2C=(rzNLv{Bk5MU_v@k^( zAn9@7DJ9bM!4uNBGW5jq+$X>(&z9){Xssrr^A8*j_~g%LruXn&2Bqa}MHH zO7(mJU!^FMu-iLx#@U=p%GXDpyr8$>k{wU&tY!mBv`+q31o`&eweUy{oFl*1ri0|C}1}ho93tW ze=qi*Y62vB(Q$JAuRbvW98rIzR{b0L#PrvF`nAx1u8ETkKzafi^K0<{jbdixpko2p zg8o~I`YYO!fT1z~(9i!>6bmPyasQT10oc;N*ipZ4$v<_9@o&TPEKHmL zEES-+{V_bx0=NL8(f*Zy<6rOc-^atBYhnXnsDQKKcTIq3HV#099e@b^H`MgkyZrZ2 z_2-%Z94aS(*9G`D0J7@@h+5rFj)hFhEsWb`5pZlw|`*m#osU{`>n#%gCh+j1U z3TFDHpZ+^a0z~BfRY`w;aQs0O|B9{yP|nN@tN=p@Kt&96>;M8A5K;*6iTD?9r@yS} zzfjJM0CX2{ApKI40m}tAGy%bXzg7_7WWn^yc3RoR(AmS@gkHwN)(Y_c<^RG(BX3T(Z(EqsPST~0Dt4ZWlD;%1HS)bQh;8JcY48_<)zdoTO z_c*yN}d;p~kH(}>3ph^&3=5p_43 z30)JDJH&hpbH1(V3?{yvQoYga{2@P`F-wj}{5Wa2I>@E=v#M|5Z25UC zr<)4bYQ9ZRtcg=z@0r3QH@;Z$}4J!vhOeKX$en@#^k}_qiG21h0mZ7!}oA%W!bB~z3%9M1_9;3p`F6- zW&BXL{phIsJ{Fehp%Cfafs6vmVTOQ+IiS&_YQ`7>0a zp0(x~L&vcnPc7THfk!#`-PEwbYM_F3X2|6-)rxOxD9iZcG|~9Udk2=~^^L%HS`-6M zsN}n;!$kQ$^+(dZ*{u@Pae}xa1zja@Nr&lgsF|R1UrYl$&!VTeXwiJbEi5MJiTm)h z6waTd&f^W>j!%cbWfn2sCvunAT9=P=)>%ZJf5)C_p!5txVpN1+^W-)P>XIYkikqv_mK##&hyRJ{q* z14W=x%mv%y)Xd4`%6Y>O!Age=t&@IV2nL(5k$4x8Z~)Jn@4NO#b;379w^=-;L=7Fx zJ;Ebb!9rtKc&WI#fsnQjr_{~iGW#)|7wCb5U=2ded`9lGc5sVS zIKm9r2P4LBi~}YMiquRx+OHffx*^tEG7smXNf*U{Lr3HTxX159=Zd1;K_#AEm2VGR zPHu+AiVJUtmGN{GvnCC1T{fSv^dPHvMX6Y02maN2@KVEA&b=1gYZSW;vrym;!`s$wc*~e*IameI3zw%YeBdgSi zi9sX_^mqpqZBT{i@KLwZd_n9EB!9>#W&zfyc-uaitwI9`0rxUg|0*Q9g$Htx-yIk8 z)~y;IP_W-B4(f8@0pYmgxHu zJVRq)4|K`*z@b|Qt2os!VG5!bX``+D|r)dPi$`@J<__>G%aJT4@#v(88B{y+|bHezY z@a-RG78HAAsS|hUB0CP@Y5NnpjrP^Gz_YNx@T@-wqNyG=5L^v{3}Kz83puwxre^|_ z!YzC4i-0;bnjz=4$3)4jg!;nvsJ(M4yRW_W=1ymX;1-cB)pexV-;;6c(ULr848;>? z@}se@%L+fwx9-H}5AI2aX-Y9^>Fkl0M^Nd>VO%SDZf!S4-p_lp_T|?YXIB8B3eu64 zPm%#u%T^gsy(@47SJ9b64di#eJh`SL+7&$)IdqBDViN(s>JugfX!-uYG>`q^K)#Lx z)HEY2EJga^HO7*!GWu%$j7HmngvprKC8JPCumFsAw?ij~WJYpPmEsG*A$v-~>GDYx zF05S%bm0?+^gOa|FkiHZM+eJ*GuH0zuREW!tkMeFZ*CxZ(serMdppd zv92>*AAt{?LCvg?!Tx^08G?kq$*(-?4ibocSOOo3h-W|YG6WHXlj3tjAs2-ZmH?KQ zG2$(DONOV1oOOujQ0($T8`)W7n$**))f_SMPr@R+FkeK*hLF!TAm&?}Ox-_91{Z?A z6pl;_c@a;Ap#$mffA6?f^-&ynkJkoWo(A8e+HktkJ18$|vB3$|UBUA{DK*1CF6y3{+$|48A~W&{ca!7;7jpp*cbs6Zq8!Df;=!Py>Au^d08u52}-#s zfn*e)>%$)BndqKAoz-`ys(mY4b=xt=M*1eVA09n$sZN(BZ7w&fRcpyj*J9Jd4(9O< z0`y;qdx$N@jAY$%C(y4CXwr1p743(P^chF-1P-4a*ZFi+Ggn@-n)qGaZENWx_O~Yb zz&VG<-~S)#-ZH4JE$tc&F2UX1-QC?GxVyW%y9R>01$T$w?i$>K6Wl%I+vJ?SeQsBu ze!J_Qe(Srxc2Tu!G4`Bm&AH|n;~9@F{)v`LcHTCbTWH()S$QZn5M|Q3oon0t?NJjN zN-5zZwnRc-u06zDxn;WD$K@85>k7$Qt=s@j6vpc-ZM*q{FRy+&bZl;@T4TU|2lw|* z6`Nf)_LZwejA$F^RS7gAZNhFmJRXKT>np^_3Z6?xTHMd?tosu}AhqSv@HC5w7l;wN z(jr@O{3=)zV8kR7cENcMy4F~QyF@-}7Wj>YI!5GAlA9UHuD&YEN^EBy`zk(}75`K6k;~=*9R-rat9yY#tZe4 z29(`J2ThM}QI-7y2Yxrm+%HshiNZ}!qX}FTKtURpO95w znX+)=A!;cyX#sU}P!QewSZEAw>DA85MyOVTSQU=Uin3I|>sp1IbX}KS_db;Q1BWP^ zjMk%Jfm?}^xn!&~$7W#m8H(6kQ-oP63ef-zioa7Is0Uu8yofZ;-OSaDeQYmxi4IyL ze+Q;}P&=~5CU*40ro6cR#!dz3z9ezjF8LlO@|MI^v_1|3OnizzEoNT}HG*5>jU#gw z6m^QRezsN-5l(xQgT4*%m_{~S7MR|I1hcL=SB`^qw7sS=I~$-~_KMDUix6-9{Q8g6 zGG{;13i+n4cO`Xu-sgDg_pe2a&=a(vicr%=X4wa#vDF77tFx7$h`@mtpGI&+XAHiI zx0JKYs6i}6uwdGoLE!R`CKL_+P=3sURb-3alCV=0{MP7&Jdw61o+5!Qwl;i;#Jipo z2Zo6dk95Mlr!XyQep1%Cp+>*+0Wv62ZM$cD_Y)s#SyHHFPaB3TZ(9FViHkw;jD0lU z6|k&ot^FcW*mq(G{T5Eas;(|RzIePI2MM~cXhxTR2ha0G&-qy- zew(NVQ97t>S?6fS%<<6)wkUJ4i=xyz6_1a_%pVVod7Ur0inF%Fk zm@+9S?y8jKKFcl`TPaAPKDo&_I;&f0b8&Pp6EHxp&d*bEuM3k5lb_Be|lBv#V~X zlxaq<`Yu;lg$bOVia<1cVW314ic!Q;CdO$tS&PR&;2=C)3fUQfz`PUKBM(%zqKW!= z|M>J->jjWkkz@82pPRb5cll2RAlAPV=>LuY#QM9y!}hzt!}hzt17Np*2|#SW3p{MU zypVw4+F#5R;PZFE=r^0_TcGXl-~au3?7v@+{rBquSl?gQ15k;-eg3-MzZ8l9atPq7 z|7lF`umAtY{0l&$#oJ~6nNalW$NzzbW#r_bV*=2ytbl9)0F}+e#6So5g9VTm!1~vc zi>!Y_!v30tKLBE8W1wRMG^P6;5Hklr$YT7jAo{aVhhO)@9}qDDMgtIu!U~89W_>gE zvH@f)K;$wjAb*18FD1|aoPqsyYyJV!Z>c4$j0|)D*Ye+DOIR5>0lLv&jOb4X=^yBP z=C@>!H#P5fOw1er(j1^X{#QW#>Am!iggyWaD`0hC0myo604AS_nTZbI&wleczv)H) zOE>u2!}y1}V`c(S_y9461rVab{?_;q5R?tL-vJCbU;zJOM*mM|@9&KMFXaQ!Y>^d^ zWx@iOL_kA9PQWO=DOiBS8Fq%h7}1|j-9IFk08)eiN;N=>VdnrOssKb7RzROkz>3Pu z!A{4{_`fxEf8SVs6NuhcN5B9v1B4<@fOr8=U;t|s03<-l=KO1)JSIBMKU*;WL78O- z2(fPoM(lv37l1ItzzEQ=-XO99GS2_g%o!607XxPtJKKL6Is1D|7V-pGkN~SEGhnM>VEq-;1JG&zch;w0uP1-N#01!Y z0lO~2TXqmTKvW039nb+(JizY9_P?d61D^N)*OK`wb_%dma&Q7#!vdxZu(tqQH-I-6 z_P<&J{j*@DUvE^u4bs0OfinKFmgfIHJ@nUW=5N2|Z+a*j3)}x(GGj~p1r;oi;l$q(m5(a&o3aI< z7e&TC^WCrAn^pT#xRqbMUevT_ot7;xm;1dAo3cOGcj;tyJcXs!E)P77E0)scpgxqR zL@H74$~XyvHP=VA)f>7xHBp#wXVr1%o)Q|8C@f)l$5g!+^n00hH3h=PzRDm)cqBnvj|gp^d^t1>Sb2jK)oLe$1MYqrc<0lruLXdJU9}H63W5AP<8jYkOsXQN)ap$oVnsVC+ zon+oLC8NsVI1}NH$sP7#vpg`~U^FUiWNK@SY@Q3J?aC~QMxJv_`*JQXo;eu>EH@?W z!UDvVf*!)9ivt9vTvElvnm7}vrJ4f`;VY@z(`jp5eeHZuw-L!e-1j4AKLx;YS@msde=n@~&;gCp5FewA^c-pVsz$51~4r+t=Fc_mG1eZpQ{3k!yrYMlx*)-3xrawZTwhQglSE>O{r%j@v?p6?D* zKx{ysW7n-|iwk3vE=&w9Vf7BpH)&6O2_>UfRrwO|BQ3ADCRj<9AWFYPBMvS^Eh|9} zj@Ga)#Sz`JG>}r$LomuW+zMS>>9)bopuHCPb>8STCd^rucgm>M0VAqHo8d;tOp{*6 z6Ws{VRKrumo;_iAa+p(%n&&w`%Y1QXU_JHB}q=fI?8P2&M(8cMzH>#W4 zuGai&hyCMVd=uD57_y8;UHfuG~=5uYPapw<^_`$^wiH|3NmMd^+Z6)E&X;CjALlqE(XR^Ai;VcJWdTw zO{BF0%5|0jvg$I~Eda6v^+~@Zp!XsT_JgAPBiQ*EqU3`Ve@VKTb*1}1g-koS^kGKlyyb*P@|+mEAo>~{UdFsr?-4J z(zy~niTr4K`X)<19#u|~G8 zKdGKS!}EhFF$iCzvFOXl{EVEQq=CkDL}?6dZqfDXDvOy9DCQjZ-sSSFhsL#rl~}^r zMk7CTbDR5lVgA$S;)1IMf}j7vDl&1x%kA>M?=-Kq>z1WAk6PvcVOk7pi!VUD8!CWc zfTT6u3l-O6G*A%NZrEMX3ztH&>e>;SRrwl;Ow40Mn8I@)`?DAVpD1flnwcWns5nt# z$PHLs2Nw-ut+@d#;;YHA$_e8w!MnY~QeiOg&^Ey)q>{X%eNJyTkBNWy2;g&-0m4HY82h8i6U zBJ+ju0+F&7NZ?J9tD#X$0y|u3x`B-ar$A>zKt0P2$`lO`>AXAQcQmn&=KbhfGc0`u zhuv_)LrL_Vxqi5Csw9{GiqT>0T@(G3#~<3=^tsB>aC<*1UZc!vk}EB%$zfi(auqru zAy{*%2A6+7vT)2*wJ+FGztCw}|4_c8KN7o_9(2-6mgmX&9X$J471c#HSK8Rpsq|-8 z?@mu&dU|+K+&KmqZWz z-%}3fQ$6wg7Vbl?84!jP6@QingYlJN^F7ZxS6zG8rcFw@y_CPx&H<)=FK3FY3*A)bGCuZk&wndvgv2lMN49#(Fd-*N>ahifb4kW3`VS z4WnhkBihAQtW@WeO~`s{$iynAW=6}_nHd%tx@^oPB;Es&&$~3p#vu*FQ*oCfPSy&?HY%vr^gYd6pwde^|SZ#*?kL z`&rpA9n%SD>T-IYG=WCWz_@kU8;3!7)icfrt|HAK5`nl3_@li##e>dePsxIQTD1x$ z14f8aH6~AK0gP%OgjkZFn+#rWK-@TJxOmTz^b|u8&xh9`-!II~HXLtC&L2Bo;B_tDqv=PISB@|=&dT}yMt zQ}YpC^VH2-Yth=dHHM#L68^RB-i- zCSkRS&`A2zVKG)uQoU#To&gHqBYgNoyLZ)}0UvnJ`3X}2bvVZvK=OH-W36UFKZ9(~ z6E34@9cIrp^lupGojsfUOycjncvpN6Zebzfp}-Vzjxs*%?|_HrIor)w_(@kB#sn#a z)q;1Jw%Yx86%mdTkhpt6L*vYWw(W9%?=_iBya#M1UOgz+PpPkyIKR#zkI^o+?-=c~ z&vDBhff5lS9NJD7u*~5J?v!)zs3T6usY_CokXu(G(|j>6$C+h3+f6t55Jg@A~rF$9a0EDa%HdpUn8 zI7~&>Pqe8tr48Hwhuj_Vq0#h?NoF)ieauH4a|oiwG(+sZ{&=Nwe15w`{@ffo%~&+#siY(E}i z;tb=MuD=#EcbrL%4=7d0YF4xp@{3U%Z+-O##vc_3VDkEsJ_K*KaH~VHj`-BTfwI$g zLn+Q3R-7fg_9F05QD@n9s3u>(2G=n3=_pGPW#1kYmf=(CnOsq%p*Sj7!h%C0V10F> z-x-nMP_hUSaPz!h>AV#^sO*zd!>lo^qmZ?%p`a)lR2dH9N9@T7@8IuQbnVW`J$q=e z&J<^%WJ1Sfb%zeN6x0N!+^4wy0#jB?Uf&_QIqiZ&TFtmN!MF`dfC5!7Q+Lo8h_$B^ zs`>4!%U5PBv%u13BePp$CWHs3CkEgn64x>XCH{NMtynHtdc2hjuhRtF* zB~|moakrF?qkNxReCpFGJi(!^aM;z3sxvc%Yob1MoVw|?&HvQDC#iY~XmQwErLu1^9W58}Nu;4Gl| z(@--Uk=6KUMqQQ%2#Sir7jgQGKW9louYKF7P_I0)S^8kSI1vhLMubqJy2s;PTz5S5 zuugGIs3T^{3FC#E(fyT;bkYksFd>`80z2W9?RhBwGV2{PNWTOphvW^}!n8*u9IJL* zvjYtMqfM_dC@x&nCBBv+0n1VTN-(^(YnRsMVuPFel<;g=$ItRTChz?EHc#Dkp272> z7-XzcxSkqRx2~cOPN-Os=JSav*J2t*VQ1liTWZbWv*$oscN3S8>2n zIMIK9KBl2k^+X3_Hku@d{gBg{dch0bepVi_BCXJMYGZq2z;=w8>xwK)RZ>8+dIEBd zY5Td2Uaf7fsg=5kQOPi!ySOba(5sM*+BA`-@S@kko}R}m4E^YY5w1hWyhpaN_0&{Q z-sRrX*pGj4f`RZ8$eC{5ksN#P&pyh;_zT?pwta$wij*s~gMw%(~~O10OFPrP(Aiv0QKhuNWUiS599Qfi~lB+ycKM*ym87bfTjk& zSZ_dG*Sh~dVB^y=Dq03skpG0r%x1-M6wN{!Ss-{l^-p9IoNPId!D&Y zsW1P2!hd``BI*DL;Gg>W%1k|}_8DJJY|0M_j9P9|ELp2B7(=B3Z}kAJmihC#TG!Y76?4@dvfHmUp*3_cw(h_r}WiGNP9EEMJ~>@xwD_ zFj|P^oN$4w`MIPLg}==q5g&IW+CG|lU(wU-I^gPVkD|52B95bw`(Y>H@4V0V5!48< z`SF?GZBeo8NPPBTxFNP;`Vx^;MjyiOZg$ohL@YJoc7w6SZ|I>=i8d>C$!E-b;R(#9|+DaM}6>3BkPko)AYx>Ro1SJcS3?|x<`H|-0PDRPL zpaN;QEwH8J94PmZ!AT5zu{6m+Sy@p>i?g&F=cFWFQetw#)@ z;gc{s(%)Fq-^j)^ePYgUtg(6M^_ymj`Wd13v@=pdiM*GqISoxlTFa*oN*-0dd`J_y zW6OpW%CcHvavIis!vo!1T0<)eQ8BHUI^TSxH!6U8TiKRU6cE^KsaFH~@C8J%#j<~jeZ~3ZBm~y1yC{GzXX+wj3 zk~6u_)=S@SL4&ly2Je!)5{X+a&k=)l3vCLLkTcZY9*VNi@3?_vX1D$-$0(O%bZ=$V z!y=q+(I{89Goymrw-cC^!n&>5(csM7|GCQ67CR7Xse116hlxCXeWW@DnkZPU;^6+3 zFTI#7yUo2(@OzODes0ke!5KDBB<$6^#F2!9><0TalI#0;F49rhxI@T!LOefLv+B>> ziLzKXd)@Of85ed+6vT(HcD7J?*`I;^LIWW6R5_Ry>csTsgE0)IZ;;e$JFbyQI>rIA}}_k7pZ7RrgnI#QHQvu z4qTC%aoGa(bkoOWV!a-Iz@Wqz3cGLXdF4oNO@ARj9r6H#O(ep7==?4lqD+931Y_h_ zqg=~nN$ZTFO=RLQTO%rfQ+XI>lKsaQLv181C)CF}$przQA|JI~SmS19Lm>p%iUK4A zoiq*N?B)uHd8|6I)Jl?rfab&_BMoAiq>ab!Qsgn`E_O#?r+9RN&tYKUd8v1h({O=~ zb~AD9*|v_-fpkpnPi6|`*JL-(G->31ILgAFvo&>I^jzMIne5;{bL*d2ZaQy06+8^G z*w0xFgPSIy663nCo>Qm=JGejSYGua9^qAhpJtEH`(5fX((+GBCdtQD94|Lb%Pm9Hb zZhm1X@1l479^bDy`Za%J9R(bRh38Xnqp9&}KR^ zH!w7tq+@LT_p72XF-ufVEra1Y!_YmD=$Lh-iy8DpSXJ6O@|&zVgB z!}~5$(y6+cHQc0@DJ+#>T+@g+0H$k>24*i}`QRv< zIt8l1(DrbP0D2h~c1>IkX+v5yAZNA7YXzm%A_iBlEabX^Q3v;sAgx~_YR53g-3gi3 zD44;$xa!wbAwnZ~5f@ln2D9aVBq5epZDFh<*BOZxkp1`)8V2+vh&Kx1 z#w#KGF=8@MY-o=#%)+5VL}sGVP&o6eW^1Mr_6fICPy1a7$_xDZY6In3>je0V?M9(B zn+>a}u&8+gP7%@B?KDzY3k3>C$!(stbDwswckkfw)FSF}Au5?PICM9zL{71G*Hp4v zR;FZ;iu@$o?etd@ecRS^D0A~9jPwkQba!TUm(0%b6+hcBYM^^l^%@ezrR?72qEEL~ z*tju0(~6kn*x3hV;*Dtc?AxD-sI_aB66v~4|&4^PN)t%La@x%=Vqt@lnWyu zmZ^4&H6N*hmG8MTh%quiw-$?awo5kH?2A=dGo2P4QyKSzoI*rcL zy)dNgHRCXRv#2aerPI1ZC@3UXJ+j$U`r*eg%6ahSx_l{R- zM2xtg!FoxYkQjb|okJEfVkc19+$5GwM#0@B;B1uBvInp0F5aLQmrK@rgj0ZT+D*L) z6$K-hi^-1@J-Ds!`|6H8%WP^p&WG-zty#Q=>Io%5SwFbP#M zQV!lK1W`>6A%K={MIW7`31cjBOy^&T?oKD1D6Y0UA+d<#7Fl)9NSS>_B-~Q2AW{Bq zq{8LNSPML40jrmx;@L+TVtE@G`m;NYPu}Ruhct@zLjk!M+il4EvoBTiA_l@n;U+#G zZi3GQkQxw8VYO964t0lgI9RXu(wa8A)`Lv8^25we_#y@wU7*?enFTWu4B4lsPC#+} zSs;(#_R<>qFSV{@Gz^nor7Z3=GHZ*|6hTQiRQavU$zUG&A5Er$2w;M@I{14Tnn059 z3WJwhTGDDF-uGjm;XpIKdc{I38qR=5MjkH?>n%x>BRgjci*JStmLIo?=HhST|oSw3*~P)H4#Ie^p#)ZQ4cnesgDGhW4V#`kaZ& z8MtuKV3SF?sYqB>(`%%m3$$^KY~hP2C|64-AAM$lLeo+tq)HeMK)E^FyjBoKLfWsp5TZ#q1 z;l>E?N&&kSzA2I!BN0PZ@@UrqYn5;Xvs5dfPM$D8XFV4?hr6NvxZ z3ixZb{s0PK*JJ~j?Epz50PX}}b^Fai%>poS{?*P>#y?9Q`8BP-LHc*j*#Gz0wK)FH z@chlL1#m9@&&TSItHZyJ)g2NzpbQKeFfBBNm5v?wP^JkOk__cQVr@<6b?G+L-;>wk zSMcbsK(2!xvoeV^P|77D&&0_f5in{jJ~bclP4eEat=6Y(rnIR%ZrL}t)43jRpX}-R zeH&=|v7CcuM*oxOy)I4Fz47XzXSc?rv;miHzV0sIP4g&aQ$N z%hpx66~pD2y4;F*qw5o%^*j~L8Oz!f;-t&EA>{I`obB|NC7h_c&&!z!r?&?accvZf zRs0CMVNZ)~`kh0+g&gN}Xm~@!ik{XMeuY-?SmVKx?VyEWR$l#Pc!A*?KVg08w&b9T z?I>Ev)Ls`oC8n^WlGjo2QKcuo+Oqs|l_O~bb;Y9W_$AJ7j;x8zV3>H3LA{-ecypoJ z*xRJiX@WXg-Qy^RVP16Nvx@S?H|*Yo{MJLF%a{)aH03-CI##h5+g6=y{sX4_;RjVV3oYizcQF?hMTcl3_4?* zwlqRt^VEtb6)LY&h(Z@P>1SdQ>r`MtU}YssE@#Utr)$ZjiOIEzRhwxbDZ48{IAiPH z=8fRyFZfdkH%rY9kePi>;TFw8V(5kMJj1^_KCz{(pq$=SmD2IJFiN(r%(BjWHkz_q z^pC8#65_D<7}5`sHxEPvX(f zU+)7Ft#e?qWFYG_5f6j8)~FnQqJ1kV92Z3hIU$L83_rNp#q6L=Iz;^(Y$b zq!`vcklPN!Wze)p1^1^<9yqm1C*<`$sfVtnl2R)ugLkS8%ZSxt_Ix zIf~aVT)SN*k8(Gsv*w)yEuy&+2r~1gw4@Qmi9Xr}jbOST5RZ)OocO|ZK5EuVIZa3A z&L?Ox1{%vyGhsq@Oe+#0ZeMCTI8%vM4zo1MwiQ6(&PT5KPmlXF5&<)dT|SqH4nsmR z-a!J^l7 zd3QTJH=<^W)wP1_ZSgYe;aVHzWo-a?|~maGu{%;|Fjgx3micS_u58*~_m6tmy>K<14C7?a(%H zh2sdgSI-&~UCcjHR38Z%Hf(PqWM-hPcdGUc~ChLLoZm16`CJO&m93+4XL z={g_T+Xf`fQ7V`wMExWP*bnRnJQWfl`y^y-+B2eAVs4hn*ci&6p(B=?VmRuFv8xA` zPE6~^V=WvW!SGgrVu$7jj0*0%D`1RP7OgM$d5*0p3y;Jw$;ZEkBtJ(Mz9$W!TxVFm zrj-3&tHhLz1xwSwv~TN-DuDbArJz`zwKK9lxnCH*LJdliwx) zzm3z?rp@@M`(ryd5g-bg@SJshXT=X>=>rrC_b6+2}|5u>`T|A&Y zWw)ZT)?OSNU6skty%|rR5}H*8P<(k#M)&gCt@XUCq&=GT>^2%-2$J@IgyJr_wCx2q zY~jy$nA%=044QSSHd4H>e3|Crz-kOErsRr6ZQr9bTcpLtjgYwZiStycyr;vR|&SPud}3DIhF_^t0eBH-VNpZ;T8E#`o{`UA$&eW`uQLi z6mSacjEXd-Qa_s+_rQNg;#;oUeG~&M>A>)fjLMWTuRzRO69?Ng0T}I+kkOfH_F5`p z_NZkZwk5Wv=RcdeJ# z#LI+ZHLm&K%Gaq}%t-3+GF^?AoZL=saB%Fxu@!v5^n zHHzM43ztqTjfT1qt~Xy>m67A*&l$fatU(>hVxo%OPEcLroa-Dch-p`VxLEarWr`|7 z=x~2!@WOeA+wozB+r5G4n*Ut3c4d)9^+XLjxY&DcOeX>>f3}BIwLPf$;mhS6aKTf) zYj51G$tf7i`_KrCe z_CBCkONT0O29q%j(Il1zLhJoLx$4 zDFXldz(ivZAqSwT;iOLwU>L|-CIra!-iU-BC_gQL4+O_OhJvo17 z_&#sy(#36q-x^lG-CIiN(jq%A8g|tCw9A%RF^>uKxCT3OcSw!2r&Y~<>YmcCXd-FH zL8%Ep=Cr7JmW=$xFmpj&56P4Gi%#@ie)VL?GE4vLsl3nOt;vPe6 zOpz4vRce6=p^^f%PRTCuJP?{7i0tr!1OIJ@M9Dp79{riHEa9xab&0i4^Lelb4n5OH z$}GF>GF|QOf8v8bqa5QQKvpagf^L$LD`=KN267s5YRn&63iU$wOCwOn>1^mIc{UHK zvuAv*VN@i6P;3d$MM6i@9XKOt=VrVjdtXmT5=YMFBLFmMEG=zN!hXT<8VcURi!)2T zr5U0Y?^|^S;gFSY0I6icKL&Chf9#&=FPbo@B_i+t0xhZ-b|0&7F=J==cA+{F6V3X`F zC(ch9tmJZx`-mZ?J@7*w8K;^2q1Eb;5W8&7x;ZT9~7=)*)DnE{hU>r4$Pu!3w zB|F#9IP{|QOMae}4p~^5ko2{R_8Ors4arQ0cGk=1Q5`QWVjb_2H9aMNx57Y9PWF*q zYxXqzi{fa?$7QHH-YYR9%1lT;qkYxZ_}P&hbyypBFMZ?v`CBF%3XGBziS0x!pT#vtKN8111_|Co^f`9CLTh%)b^?G*RrUlZMib0b`hq+you^Cg;QjmP_%^kmyfxftZt-l?4 z-aKj80D;DG#}{k_vP=kBI)T$f2lfkRZGN8~7&tfH^;&yfJMiuLqwJM=T~sWdFb*jK z=vH!Lzq?%In3jP4;CQsVR~yEuRpl08Ae$Mq`Qy0h_Bg$@7SA#zQptx;$BbEMoQOjO z*O5#iP>EY^jj*cotrg-x zwSDLI!a$L9JM<&3#jQEpSRH-wQ?-tcf#E~-in|nfA zDk6dot|vk5CkefJX_TuIdd1cvmLs~3ZO?65n@xF&#G%6Ti-ZSKl);I(0*x;75fMPp ziiwaA>Npm^LQou0z8mR>FmCf#KogqU7ClyG4Gn&oG7)F2c_$7JX6K`4`R1r6#iZ)qYfseuX<>q{k?pP+lU`%-C z*5QiA&oSj#`c;>wWNYtHSGJgHzMXERGL(d}1;a>psop!a$my7dPnqyftd5g5Us4=T zA|J9g#UFg-H5=R{8h8e~qHDT0D02Hi-iZC3$f~Scp8ed{{ zqu)8Be}l8+{5|pkP{;j?v*i3e@&Qn54*2_Da+d&C4B#vOVdTSa(Gq_&Edfe^-!Ajd zA|HN%`vWD%$p}bCCSV1Wd9nb~rQgat-^yZH**NI{8Rvhc83$lI`jdj;U*q%#NN;tp zY>a@aWdMH)ND}x}2m4l#&J4&{092m-FM;}pNQ1YM*SBC|zz5qKdC3CEXLyU?1z-YT z{VOp60ww-zp#ILC|5kwxs5F1;D)$BoPzDbG^J~`r8=(Hh?EO8_;NKxs0VxoFH!c1D zsIlCyC-b+P^lxq^PS*d)%`^^hGp!AyuFJ4>xCB-V9-1JkrX2rZ_%_gw2?14yV10U` z(V&$$Cm2P0+lNIs4F6E>6e+4m!$#R;4L0n~NE`2R{2Spqay;u@KWyjv{Ak&#AxB>Q z^X`*8eRD!rrmSvPiV`1hTPjCcG_q2t-@H6+NxY?HaDigW_vPDQS$cA2F-#+ly6zk^ zw*+~STI<1Ip}~OGavbt-p)~x_Q)6&~MorWHCNyco+}!yw>cVSSC1#UwOMGdk9`lxOjga4)d`zI;4K*wG2(NW)l&US>fK>9-{8523uc|nqyi*+Q``Y2pYUVI>W{LTA560K-TGRr| zPfEl-C66dFI4Uc2Xnu2So{Fz0pxi}*48A&$^S#rx4v*ahceUM@kK&61jvutTEK;T& zc$Q7`cw}LX{E5IRzU6#^yUhB*nrp;Jc)z^dMV2f@t&Hh@s{|byj!T4|m;^>7`f&A0 zThgFZb)P_kimY4&5sBnD+__|5wlnQ~A>-==CJaW^+^_a+;N<+DUR?RBuSzeny~!Ah z+_ac=tcfd%Rz(>yinp@-Of+4(p*<1P*Vrvj;jPs(S6qFu?(`~Cb-zR zMggsY;3Cgbs@x4f=OTrW54gaLLrXmg-tOuLU*R@y3EH~l3@02VZZJhMU{sp~Jqx(> z3|H~o^%+Fnx8k%0T{dPOp)Hb81|2)jn7`V~$C8eRD80&+C4q1pW_qtwx@5C(@GOeg zRkrW)LXfr?=k5}7F^RcMb{s2-_{>073V98!7G9z|a%w)vdAYa#*kKwK8w&YKa#2!S6Z&%$DxnH4l4yYm=x{t$ofld*3H*VSuU{gB2;~+0Y zBqm|e88yjG)r`eXg(diDh;6IZt|q3z3f>R_Mv{#@7=XA%>KdO8$m z|F`_HZ<(6sE-A2+Raf~NT5h+l2zTHgV{BEbA_CWFqsBb3H7lyC@7qil74&`N%Jz(~ zn_)$(7Rs;LaXWjv1u<8G3U2OF5aBM8xq>EVflo-XBY<;zVBVul*F6zc`oTjmoXCo8 z#q|dbV}FJT6-1pox^AVfDWzOLeyzz(5ddS4xVPih*;Hg`Ubi*(;KXWRJB&N1O52(X z5Xn|$GAeDhm^Sj?S+eSIm^$HYLL2k88vzdihF_u=wr#hoy=>=@?+Y^^MdEu+MNr7u zMlS>g;tySCd0^>WR&EZEPX+xE3s-Ci@Rc42;9nc z8n@D6F70>%mJ){O`ZdeG`8Zsp5-)QDm{^_Tk7?fmOidq|oLa;Co)U1+zFm9C96RYMOUvQcJ42TLp+&q;BKcD|Jv#P{Hzk)XH$5qeh zBC-nJyi51G2OeYk)~mP-e&=KB3YqwOpLsDT(MA;)HJqISyVwqcf(bkMEJXvnYZZE? zNL*t9Fa|fw>%geBRv7d4vCY{e${WuflgA zeW;oDt<-yl7F$zBHgMgXm0uGo54%`C8|nU3r;YO77*CG!sfGM(s5^;j5AK11?V z;=XuRHEX+$%DjHa|LOY0Uui2V-$&WiWMt@f+hWN60xn_e-YWS1Dw1F>*tEj+9)DR*cK5asygV8L=DlnU;uU z4^>Kz7s?ngxxEN4P=zdwhy*8d2z%etAFRI2Y;}L)bweZMBpSxzqDIcY$k-1Two86471;F6F9p}e%lZ$?d^F`ge2L|n@n4m z{tt0)9adG_t&7v$-3?OG-O?Z+-QC?SA)V6QAzjklAdNKAjkI)&XQJ=^eeeFx=eN)P zUG8%(|5#34OvW0|c%HegagY1HlU6VGT@_^X;~zBX>zpD9rqIZ&J-JcO?nLM!aF)JC z2IC{}^%xg>H9$DFx7kt&!@p$@LKEd(vK3>PE1SKy)zB7Kt=sl$Ua?8iV3DxxQMRx8G}6jp1gnf4&_zbtgE(--dKjbp|z4AI7H&JFQUQVw*N0Wda zxu<~zD{=hIj}zk~15;w&lZW7aC*%`Hh$T~q7qPj+rN?K!EfIz1Ho1E5gIcA{@EzHI zq!H6NQ|>)>wyE*jVKAd4k+88TE6ac26RkP_vZeM4G?WN}l1A812*#g;#0R`H&F2oV9NkU95fKSc zGO;BHDKOzgwH}dh{Q{xp78P*O4QRb~D`6#cd5$GzohKDav@Y#pD)1-_r+Lx?14yNC zWu%H>Itr#XTill$AzJF(>{9dbe55p242bu^IgO;%BiF|yLetOtB&mZ!9o6@gZM|=%6oGx zTx5N-7IH?<<}8j*pX*OTPb~X-O}R{wrZ##cyDyI65z&3;_Q6&aRhPBBn>rpJE6`y* zF3tvK)$W3ArNJzF7;fbGD5|Gvc?%44jr*dlecTe4?r|8rWz@!U@!tjFXr#p=oLaY* zuhB^pgPN3Ufkk)aNr^0mdE~@tB#Gr8IV8~0;v3ZnzJ-hDws}3dfqZZ(lg}&T8Z25% z1rh`Q{$mK@=A*i#4&KZUEHqe{=%8@=<5xXyGww)&fpvUnCmj1DPayga}ck3qMzt%qgODYrh}SH z4OZ8t_62y?zr83)LbDb-P7RQF7?Oa#ODf}fv69*rPhK(*JT_t}D%5alxH|O7G+E?5 zLi*vG=LG#h1afQa1h+kT;1E(KbtRn!N-h1QRfA)Os05bnMsX_nQ%4 zRs6(Nr=Z^vOo^>BJMS;1#m6uhbnnc`G|W6ogc?e^nfaCU^*DR$t6+wNYANbyV@Brg zS3GJ6oW0Unh?Qq%TTYAHyJx+*=GhS`ES>uiF%N;iM1DP;+5`p42zG8SL~NNOj3v@z z`yNz92fSabvfJ-EfDNvPvC;(JK9%)2=h#-oCSVUzlgn)G0jXJh*SdvJpqF5=B^D7i zsJ#YDg|MrttTdeXtNu|WzLqSFYIV+>MWHJb9+DMEL~n`jD1pj4AA`^i%&?uhl?oPD z6Z)PR#lpv9R1fz}~d)X73J(wV$TPm|$XSMsWUE*+1Mlt0=@t(n}eXF(n-#4O1bB6SUH_a@1m5@S zer!yC-47sI{d_;5VhX(eyIvq0AR7j}<-gkt{OgBIoa|g2jZBg&1^P+cz!f(GGuI#0p92H{f7jyr$8_7z78f(1&&LGxUVb{w z0Uw1KFjQj##NYl0?C$_Uz<(XouOj$co&b@>pZ9Z*%8_$3jgwfl|mUd2UMn z`JjH=GyQdH{5@05EWp4p5Cju2APY1_0l8C7ZXiU!`jPdI_Pc+(@z?;N$^TqX8~}?M zIL)4=d|93g3Xof50?4|oz-%+~pKNyn`kTL7x_{E8WdUj&@GAw*0B&Gl__^H;WEiM< zW?-b5gXRBLk^kd)^6P*C^27>AC_a1gaXtqFj9puaaoWuRR zXe@xCDe%Z*22?w_fK!v1m6d^u>5pdW-xT>j9p%qZ2^)YlF$2fK^KtpC2g?dzKg>Y! zbN*Q|QQ*eEsi~jO-@om=U)tG##xWDHcAU?`(9Z!fF>o>e(S7&(EdBf<@V9`Te>pb* zEO7xsw7~iS>jtC@@P7T%58&TDSblz8_!ZCpOE~9$fRO&{3)QcW_7{Z14kY)#n4AY7 zoGAPOOvuMCqg3!3gTo-nvg-7+52#)6OJM=Vs5sY06pYkzuX~My3C>V0d`R^&oytmw z7;3b}QVqZiuzF7_2fQ=ho-}`B)O}K{GQCVmHoDNfIDw@HL@pf+o(k#P?yCq{||Gc-qOqzu?3+G#E@e>P{ zj4JWhL)rF}*{v|Pj3CQ9tWM{yWQ&Uf7KS$6*{f~GBM2oG{@vMwBrH$UQoX|k*ZSd* z_4j2ygm1VSW;mzEyqa;|1hQ%}>FqNQs4+i%KmUg92T5n+O!~uGd)?onQtZ<2h|}2j zs&{2&?7P>Qt=HX~zE^`7Fk?;Z7@;GA@e%4bTAKP(ZUYJNJgafOaFr;`EuWYeOxg z7B&kKvsR6tPKGBc2?Z4xYg{QN0{!)DF(Ai;@ zez}sS!(+!(hNi7DJ-T-1_}Dcbot7WkU)8AkvxDYUOZbrY-SlFV>7jWQPK8+n{7~u? zi3&aj?Bwk(Y~S3gQt{Hh(}sa% z&pY5Ky5Awg;@D}`RrkbuqI-*BH%L;zO9hJ=3+IKQEIXYKwe3lB8R}3=hdGLjbE=0$esYvxc^%+aWR{7go7}Xw+0dcV!B{!Ot`7sw zyBljjh}7Qdo9yW9rhSucg<$O-!b+r&<9Yvv0=k}NDQfltR5%uFPW?wS)3Cg(G{!rJ zUUuAjD>MwBxwHhl@X&PVIb#fy>sRbF?@c~sG*cBM%0NBj#3fLp){R0dfB3NIcHm>I}Qq`mZ8~t@HNsCw7kxB*X};4 zYGx9-p&9V!?l{2_4yVFX$?$zc$2&fgBxTj=wMY3TXy`SUhxo}Q;gWjnM3}!jR?O%` zez&9tb&s#^ON(76sHsl9ui%)4O1sm03okBQ$S?N2(gb!DQtkF)gA*1K*tmzul>X*Awi+SXjpdec*VeiM#^!de=L`W|O%=RvI{y6!=NM?mG;0A>f?>*+ejtweyGW_B zgrL2O3TI+#ftg0dp*PJyc2uY&qRdk~1KB$K%F|G4AI&D%1V5VXHx1B&=7}ZoUL~8C)ro zgN9~T2OyMOJZ=jD3#5~(byBF7Y$q{CT{bd_pk&{NMc5v1SXAYyy6*@F@HT(olr@52 z92Ao2qf)3+eiKhXNyxb(NOIOLo4VG>wLG>g^^(voJwPw;C1e2`SCS z5fpkz`OK8VV_m3~J?o4CYAa(%q$nu2BLYe@IJMgbYes5q`J*?{)X9$3zeE8mlqxJy|iU$}NQy~|$IG*3V$d7Ok0Dd{0q2Mg;L zJ3&U#_lH_Oyj@eixYbjweUxEMOf0Uy3{_C0W{cnHJbW}I#AbRUirYH$#)>zsLMb(J zuC^cYi*&K|3dJ=Q;MLd8{QA@RBrn^+ZAbl}>2;X5t)Y~9#I?}k^`;|2{SMuMi%|AA z4o>d_b|qG#x;>6*msH&OLF2B&Gx&qD(tDJLvcAme*4Ffg!fsQ(To&PpV^O3r*S;k@ z^w^{vg1gWmq|!)n5Q}lP1z5XOG^7>id)Yi)trdwY*X(x_Z_mMY9aASdh~eWTV`JJh zPI@aXJ=CfS(8Ge z#Am$QHnrhXxaqxnym%E^}4aoD0bPZSR9i$-v+Tr`&%a4xEsz39nL zB@pZ+5Vsm+Y`7YmUNxv-6Zf%TJ?(WbEW{_GHr5NSv&5NQVLwHOyw~LvDo7yY$_1B( zs;3im+$iXBMWspvGi-crEC7SlMkDO7S35O8+;?;}XYc2+a;jA!tNGKZIL648M{F835f=K!tToOWN!abSn4#M0$wrZRAHuEVE zvKDXO+`%UZ-V}^Qpl#@o^bK;A&oe znep+=Ihe%bNau$P77>3O4cq8c&sULqOxZc9hXs^16pxs|oce53kC-|bRsKl6V)h92 zx}x|HHqpuZwj)&bPL|BJHM{m83Yc?@`xvAa9f3&x58(N)aJ?#z{Nz9%Z=tJ0HgVz% z&$Hx+6;01?pD1+Y;k@#^V=MdUfCmeBjuPB(F}W`xQ68Jk$D((_7P7rZy>WwW3NwwC%XaH-A8Bs}-m1))(&KowKr{p_J zHOH-{JlIrfd$Q7P+NDxN=p?t&hihJaie&I)5mPqs7>H(SBfnX&%d{tm{(JrGC4O*c zaMmRdw>?EDghKoq4sghJZ{{t~7-G60hYfJIg1-}+ zI|{y1ZJ9uBUiUvg9iRUev9#fepi@^3ce}H1Zd4Ln2S+64RsX)g(ExdfPZ&${Fb|;r zJ9Qav6-jQ?sV!7&eX_%0)y1qq|K zoX1x;28pA(WJtp<{uS;Ok?~XfygHf|n(o%)qMg-Ssx#MZ2S|;yMOK!7s-Hc!S50MB$rdi#d``!yu?P^oUx2wTY>1axio@C z#5LOIENo5odZN7Ep?{2hIS|(%mo%@&tR*Z6C0^P~e-+bCoQ*z61W%$av!SqHTUJgA zBJJp$mYodY-wXzyEq4(gv!8aAi-pRS0YfuH?h^PCjvD+)jl$RiLiwJv)ajGcXe7M@ zuPmF%#MIo!I&N*vHPlm;BR`5G>Bb|McOWpV2vVUm#>`+S9khr38Ip5S;8mz3;26f& zuvr5BD3YRtCVB%fUO8cJzbexm>3<^v4F#EW!FZ$=?vljG)boWBYMP@vV%uH13okr` z{t?Dwu=gcJUW^v!j;|oCh7@)%B6EcHx?mF_-H6BG+Q>I#`H;0r--*>*^$HHE@xdY_ zyd7!MM5JF_Lc@1X9<{Fk-c`T&6Yn~XY{Zg+6sninP`s)8H)Gua30_Cf=urk1Y<5w< zj1Lp>9HOvGo;D1Yp>ebdhq#CeX#Ns9HK^grughgRghj4jA47ALz1-VOaD;_3A9ZAvak%fhAL>ekK#eM7ct z>#^P`N}2dr?@^kb<|SuM!QSfH%BWjr``(o5L~m{+1J#dLJHHs*zl!gyV+}ICL zLN4k%4-62u+@Bw|L5l%1zG5~8_dVrDHJ{zEFK-8hq3x)58Og24L9{S>r6+2k}o7;4^9OIr_9=Ey9R zI{O2ot1^U9-f-URcZ_wt(rPK9k4ip}C|w|A^)6p7$qNK3G-nAXcD2RDv{oWaHA^rc4(t$=F+$&!N1NuXD%EVWIS`Ul7My&K6oY8x z+VyWSN@I^FNOo-=S2wKGAs7LCa3Wt+#6lMCJ7BEzhY~HplbX0vAzL(@xKiSGk4@dC zLmDz)MRSbYM7+$(!Je@e_`v2|+p1yv@Hrw|aLjGQ89IAuY_s)yVtQlioujvDcuymk z0o**##v3#*h)?RPTH*E^JchSV#osm4w&lboxQPj=XQX2;b`(MCqD4p`A3=4(4m(R0w4ocF&WEa5 zm_q-kz@t`Sw2+~vhe;E743H;A&L7QNZ}1A%602d>E&3c*Y|BtVUbWK%-=!64P$_Mj^R#=iB0un>iA8d7h6f8Iglc7ak@?y}bFHwEmGVh_W< z-U{%u!iB^6kDdIMBEhB)FGX2;!E+`eHs=<%Yj;#C2d#}yHtFm!?~d8k zKuIhDrthwBSp2l&UhuulyQyr9I?JRDe}~*YF|8VBZ2q1jStagcvfKoB0YwmP@#b}D zzOuz(?NXH!^!eun{9DMlkK&A5 z6)`Y@q~mkZA)@20t35GbfQ+;`ZP8W}Vii_sObI#ec-Oh*y zSx+_gk;{{o&f~THh8@FT7~zYq&&uDn^v@31QS)Ozv=wKc-aOa5p-6gizFVage5LF{JqOTX`hO9a}ixJ;gw{X(PNJ<0$Yn5cFxE9v}8YdIo zBD#nw_yC!(Zm%J&7xtw2W+iFr77KBys~!^Sx?ffAL!0)Ny%h%k9J0ZD_J-hEt<%kfqu_m8z=pulqo)bJ@0V49+v`F>AH(! z+QJZ`2Z_Z{^PE>9i!g|euJ|U%oe7n^C!;k@5LPytD-J3~Rf}+kwO{ zCXM(p_gQ&3vH0pp86o{$6?C;(uMP}NG0!IkSR;yZOxLLf_>D7!47&tiMAJ!_cB+YD zv%utGGx}*t+GMi!Nxl)a3_iVZ(ih!*g&xjb4ry#_U>K-v`Xw&`J*NSrJm`ag&_}F( z)d{?~f)SV^2K{jWh=p!dk$Ce4xxkQVhLt(E-Y+&^8W~L~IA=K?I)cJ}%Ad)J9|9ZlcleyRz{ zfWI`c()$n6lFY$HJj_tn*OB%!RE1pW!=FO?5K1bAXlB7u`dK1&6iI{1tYFkgu!Vq$ ziLZRjum07<1RH=G{Ra~Ge<0D!1}Gl?nrQfI@&S-O{&oG=>?t13WodxdCJt0QsM-UReM_6ziXj z=r=4jV4mPVuN!~^a{*u?P)$FHVgQy7K(Nol5CC5Mzay|rB*3=NVU%Q)VidM>G&XV6 zdfqO;zlfSRIa3>1IGZqtm|K_|I2v&NE+s!V*gw@W_w&dM0Q&w^B?F3?>zU&R_>}(9 zx&gdJf3r$I_xj&M0#HpRK$MJ`8AuASJ}f{|xB;nj79b~oxNw-6eizg8x%0P}o*h6r z07>-c1$s^s3kM*O_LB+;3+&_(J$-85ZKVTlSR@SV-4D*S+l7bg>kuS*Z*<<5)a^ocuU2t$x@ z6_Ej6EWg@*6>k@w&l37!6LS@_>@H--k~w`;!bmYo;f$w!#m1~`2a1tBWbA;-d#+#4 ztZ~Qj1D8{OH2KsmN9woXk4Ov{RdZ#;yE}%gEiJ&eTr4u~lT=RQ^#=Vqz|ir^DNELmc=I=x31Z3RgwyXt zn8k*CTUA~I$52*x)>tl|YtnuckJSswapaSB)wVbhx?@BPE*R1 zpPzi`Ue7`theXT2d;&2{ee`>XO)x&Qg)mY{U}s-RS~@j9!->gi`@r*JTw_7z>yM2a zsZ;be|Mw`PxLYAc^pKPNwLXaqb_6JtWO3noYE=-mtB1D-oU?NLW3PCy)Mcz9ZZJ2l zuOWAE+{Cw42fVwL=M~z<@;66e)WPk<6}3-8E;44R=`Fb*9t6zZ8*|W)m&>#7_c7dl zr-}HGf1y4mbJ@#eu;pX-RzYc?VNH%Hj;mvJ8no*Z`^}@yuDFCTk{HZ1{YRy-DfnG> z_Qr2ENkp%QOqRe$2{O<;Y@IVilsnDyni*p$x~vxYEy$#}LJ<>&$yuZzcH>UUWza-X zQ;*KE`BN!MG$gg09tH6O4&xp&!^kxVoZ3Iej;}a`&g!~YnB|j?YF4O)#6Ej z`nuS~glMQ2G5@nx-#yrNg>^@2oYY0L%7< zr%FChRc7yvz2e(T|Ir~`Id&cdy*sJ=i#9ftmpsu`jVf9rP1_#E(N!-uFmSG^$19US zKhP!;y46t9oW68fJ_SdF#nUnw3b^U>7TunWD34@n_B>kBmt9>_FXl)bPdk{-GcgIX zE>fW)cl-!N=bq~2H-PcF`F67?X<*9ZiYwY=U|}=9eD4Ehil{w4q30)@5i)epv6;)e zt^Mg}4>@Q#SiY|-sGoI~{Sv!;bBfr%j0Sul!8UeiO@A|2dmM7gEdRy1zAXzz#u4C98@@rhTFsN283b#q?H?tSV=>BiQeKlxhg zh`#!+oP23`)3&CfskZ7hEs;BTfwfG6H|SuP%ICfDb(@obm%#(2eOUZ6k}>08hOG{| zXC|uF*lP&k*k+}08Fr-W>FJqUjfm|NCO(X;Le8HpRyp5T>Mo60uFz^7yQm6AV5z>6 zO^o6peDYxptyg6qsa$-=OG~<~@h;%KjT^xkQ~D~U%z>dQDAl@Aq}cK%+yGeD&2@1J z5h&-LhN4bazvK)=<>{DMA=-h*kno^69jj@172}7EMvqu&{~58M5V9TrMX~#v^c;em z&IlW7wH_{uh&yWyxw#GO-N{YU#*Ed~o2H*)u%U_0m~wP5bn1>bn8+*2 zUvr%MgP`|)FS&1SEOD9h%4*>3?@TU39RxSmpi+L987P65Rt!_AcG1l-F`~Zsag2g* z{hXY+B`@P-?$D82Oq3eEO+EQS%CPU_DikOVhzELyNDV{>t?=VM-GO;5M;)?#k)LR( z!rG@CE~%_@p)52A5-T)c!6j?XAwtAXu=f14GWK{6#Kck@#DMWJl=Rn-q8nZ-AD39( zrQeVIu;=9u#d68uPeK#vKdfnCLmy&{h5cwpN{#msmTS%W1uBY#P!pd+SseGV#TQH0 zAo;=$g&10F*=*7CeK@&TBz-Sff{>CcoitLfo)((Y-kVM{)CY&*CcP>!1kp32d$q!Y z+Xkx8@V671vQyB@A~=MH;M+oh=!S{3$nF09t%8oz+H#;Sxj}2pMM~-3to0~gsRYvCuCXIJKl>pw8Jb;F$1?=4 zLd?FjxriY!q}+I9I55s4`ExbSj^_%QCT={G+jmTzUoKzN+i5EfzI z5q%tU*KIiIO4U5Y5^NN~q`L9wEIIE;omKuGzjNhrzSbR@vqt>hUAW{_Nb3!R$9Y;N z;%zejxD?WPOoAAsWHM6^^ugtO*;iG(Qkv$s(0aZ#uTUoR4TxC~|ux^C=|Qr??SmxFIQNe}uNZ zT=N6c6dEG^)ll)Ve-nZjZ7%WqaHl}Glb9Cwv4KYTkCJsfL;Mu6Xk!kOuEuxKFE6zY zwUK^6H_3s#;DQ5NK7<&tMB!bpQ5gNErAxhY9gaOVqbf2VF-JsgYFD#+*`YGJs4*Oo z8WrKOn8|<|N9Yjgg?k{Wc2j4ZF$_+eiS*bf3mY&YUmwl080fG`D$h6+0Ad#XBBq=j}`(P-Hr6Yok0x3bR6tIh_ zs@-O}(7!zKq!EcsXnwLW@6Ivbf9mzFKWuOiRUmQL>8WUaw}aLY>LD1eEEmou4A#V| zEsueTRwx+HB()#;epR!6LtXXA*{326rNOGnh)*^r|XYKJg=TxoMAhR)2E zwQ6oJ4!W{!UH*oAFZiCP%}PJSNq-J4*Xsbs7^U2V8?S}r>qa26 z(G2vC_G_sncd&DYED$S^nRYu=3=)Th(84MS2$IUIYO(rW%QNY4qm|JuU)0aHnp2q- zwAYmiOs_{a$dBZ`OZ6n)uyMSx$-{G{)-xvkyf`cxF)fyK@r6iJAM?V~nd+6mC`ZtP z7b_NCsS7kFc(1!B$sJYfG+fl4Edn{bgVwh#-(thgus4NYUQSInVQ3vY>mBG3cfJz{ z+AYC{~d-#~&H5l;^4uR~8Dm zw{@C-H>3SBE0viPK>D>p^-%szQA^J2vZQ8$)JV`3TqzRC}7$XhM$~ zyz1n1xcP^EM{EVF@K%qjhpS`D&Nhve5ZescFbe$z7}V8}g*$nogi*{3LEEB-9aGut zuEKuE_ehK<7ph>m%LM7mz3*mV281LLL~TO#XJ67pK`5mc-&WN;F14XF%fxX6El$MN z2I5t6EEy~!=a+FK5$d9o`_78&87rpr?@>a7-s|T@VEeM$mkvHqxZH7cSvDPkmDO={ z>NY}rciT!Znj;YLYU!Z(a%bo%V*e7gi5Pv+0y{rjb>zycrNAt}uF7_vRoJRM@amn= z6cq)EDmp~fTPEu2atHjjDNu;naH#`SV=0;P5Q{hBbSsSv91mjkYR54NbV^6bXBU=Ibpm*_!-ID`~#_V<|psDhXzCtukig1@w}_a$*@Nk^1AWqdsaz3KT5OO z4D&T(0q1=qrMra26E<-Rr^o?CE!oQ-V@z2xx>M;4=bME$*JPZUEv7Z|z%qg`vSUcV=0z~o5eJ@3vU zGt6JxC_Z(e?7bA^f%4mjuj2IMqtt+;c?o0Ipz&F?F?qw)$-f%Xq{o6TK|;7|E1W%2 zd2o`pNs8f&mN6?tnMdMH*8(fOnH1iD96GpKB8FH(eRDy$=L}2I`QWlN<*dl=oOFqn z1Vj5dJ}&nN&v$=QT2N~fTXG?92lm~5Q~XJ*h<(dMH4Xnp<&m)vGObnJZR&A`E-@#o zhr%bnnjwiy#WyNP7vjU?dzSI;)BSdRByHvF#MuszhGbg?%Er`Q1`%R+y)2KI{pF7` zu6?1Kg^!^p_Dwg27hl^RgXzOJR+LRqLM6Yi`VDjO+G}XW4r_`rkOzDqiznl2D*m*G zoAoV`)zbnVTPmOeyogJiBtp33#0Vj1Cm^b;{w|WqvhIcd-DeUd^1&JV#LoI;$@iHl zjzNysWhgWrIJ?umnLg_JkS5zENVo(L)HrtpeV-z%b=s`I#TXL|HOKP=R=AKwzFowU zf`KHGvx-e%DIJ-&LamdVI=Gu=-lqyl|6o<&RH9gip|Bq|?a|VGn*pn=7BHUvT9!Mj zvz$3A={kPw+OeYm8A~MGq~OuB@f|rFg-EuyCC~8kx>6e&_(XSo_ZSGFt6=5Geb!A^ zK)@D6Q#9*nG;L!VIp{8rN&yR}IEK`2XH)w8{!!5qzqkFV3M}~sevLP>ea`eQ8){a(d|dnrs>W!pYs}x1g5~?4q!Sy|h{B9Ekn^>BBR1QKUe=?+mcWwE`M2K; zntP&OC^TG7W_Ca!H~TqSs=lQ#YDVO1#e5aBBm2E=mpqPkYXyB<|iG-4GI!*H9+GWY``;J z+V<_z+Emw8(3qN1ziznpLy(s$|18iUE(Q>H^`qS&==JZxyat{8*Neb zR}9;gj;QdS*doJ0%ae7KDWm*@MvKqRLUiN8X#?4h7P*+loY9E zTHoLoyuP8d_3Oi1VaFkjnh#3mtYLbKWJJ1CtwVKRr~~B zez^iZliL2e{tJX*{R@O){R@NvI6*((&-xQ00oa2-dw;;|Pf+JSfipkvz$jv8>uh4{ z4Dd=>f8sp^A-@aOUTS`CF&%` z&{F5*`oF~2`I*_j1@#vc!VNUC0o(|{W;mWBVgithKaD&5wxRvcPzW0b11G>B0w|UY z+yHs#xuFd((MZ_10rD5;pKi1NuFL*UXvi~-kORPq*f;?47x2mo1jq3c#d>C@{qK0l zbAA3E4>56YF>to9vt@9yvC*@#GqKV$GB>byHgN>Fiol=WK{P+B|8Hvt7^6O0vy!l} z13&X@L<+oe1LA&c0DTVdO8LXM(eKvp=U)6@Lg1^{31HcO2E92j<^W#lrRMX$ydC0A&w&VFivVR)9&*{Ok$*XDjO8 zl=(lN8Gj+j0HOupfX|YZ>_B7yCH$F&`AolL|D#3zdn)hGQ~p<){$Ijd{}Yhb&*$K; zkMYjDR*co+F=&RsA#|JiJy!;rZ!#W6)^|D&c09fte0N~MXDI6J9_j3i z?Jb*KZ#`SziT0!p*&2DZ{t1#D<96Olv;RGZNDoeW0bf3wb`YyU9p}V8gH;KEGgRAiz-Ref1juWLgIkG27`3L3t;0Z-^r%zUH3gnws6TcBRX}}He z8;Yof6rZooFQ_gp9_%+5(><^=?vKSG=W4`B^pGWPGdJm)CZI8MU!2TJS;Q_nm}Pp2 z>V9Bewg9>7>)TGT$yh<>gXcmMrpGP~%cQNs2kYqu6?a}cG=kDZ)|-_JOkgCN`4Yg- z-10Iwut3L5W_xPdnx#{c-I1@bD>)!BI{Uz@E~e{t%sh)DxAr0#gpTHK8V+l>jNsR$H|~+e%QltT@nzWD8nG*d4PToL)UH~jw6;zM9rjHK zqA+X~_QMm>Bfu#M=^LRak0B-KsHN|jF7tNfAPC}?#gmaURb#33D=FHso5ZvBw-vrf z_HjaJ5O~5_CUmnibv9etVevH1CSgWAI zd!@bofwsv>!mY+7$h(xf8F(}la7ek~>nTghdE<#(9a)t%%9BT44i^ThRaW=i?}!)f zTT0|U3m7ZZXwx%zC>6?T!ytk=lQdx7t4h8WmlwG;vXE`X-wlPqxEl3nFHQ(*Yw2&* z6d_ufY7LGh^t_mN=6HQ*?Xt4g*^yO#u}DGeA&^~p*jD=G0Lk;Xuuf0Y|Lxx5k8Gko zo^Jk}7Z|pnGBk4>`w|?CUA4$d%q5tw&$~=<9vj`=e4FXeL{D*TDyKKm?DI)v&%W>4 zbPhZTeBcolKT1{^&dC;^Wp}2d|6H>zW>5a`F=b^8n{!%9I!aVkRRyiTHk!g1R%Ni` zC}Z%pr|1L37A{A7>DT;(>{tZ8n0x$^0IC-P_S|^660)ZQHvD5OdikTC{wk_J|LnhM-91&Qb$U^j(Wf9wq9m*n1M%7K`R_ z<>&9T&DMTZSCyp%8>=&p(lc~=v$9L|WVG>dz&$u^UU-s12%E2eyO zX&q^3RPvlAB^c@>pTLYVHzg-t@Kl$8lF#`dUs_BgLS9~szq|}{F@(N%?s3b_MyA-C zej8$y$)&f~-fuf%m<$XEF7mzI_!2$6W4R)b3@7l>Ghg>&Ej2o>pExN(TG8$y;YXQM z#H|%?Y~2S085p`SsDc>F^^jn(;qi@Az1R>+5U+O*t>Q z@CLm+t-s6Bz%YJ15UNv z)*g)pPO~1>{C)F)(y-SyQRX&PEp7eMA`TZpb_RqSQxtoTnH8sCWI4c6%JLoq&Prj0 z>6MrjxuOV^!jW3_FarfvYujsx_;yL+L?KkQMO6A$dQhhppBf{tQ`q zGVx>0;G2YO0|V98skCEPtI95lvFcdvPUajlDn*Bf%iaX1x^NDGJ;Sy&zG{jX2iZ__ zk!M7hpkF+jM9$_T79c-=!?%>aa3yFez%p0xJ2G`_ysOSrZKObZ(aU7NjZ_q9ua%E< zi5OY+v}E+AF!lLh zUl#T^1uV+oIt8-<(oUg#fh3=HL7_#kGx!37kd|^G)InzprWN&|-V3Omrltq64fHr% zjt%d%h&C(eHr=HJh$P{NqiiX?%d`rlT%EXRo&uyS;rzs&7sc)C8Q5w<855w%R7YNM}g1 z4R75dZs;F>?eX|p>)Q*-DU2407!z#?clD428cgc4_Q8gi_UKqs+dOsEu#%*8;n%?t zG5NPD3#hJJQm7Jo(|c4?#vVT&c1H{8a1WK@VZaFAP2Jjn4)EUvKB&f1q70I*mENyU z#6<4Tr6iI+?3lwI%h0TYy`N4u%T>vba>w?Il`9PS;Y<&Krd%u=m7dVt$WJsZ6msQ^ zyI5-}&`wg3&UXArP{`b7E7)KnLT3<-*a$Z$t=$&W zh?OKm=y*G=BIg`EaHTJdh!&Yc%cMjx!Z44?z{MN_|B{r?F>`TaOE!y`NoC_jP zi`$=!eJ0gl6mDolc=xa;0 zs3jQxuuSUu%odzY>6VJj1-Bd_Rqn>u!yiQRe48iV;+-ipHOPWT3X}*8R)}+74z2(!g9}(i^DDtJJd22Lt-%BW z?eUfd$B7AJ1`~p-+P)P&=>4~eLGH~rW?vszuy~fT^+?HWDq1=F3Ph7n=gqK-#U;+I zv@#+%2ZdiKg>&+qD6}SmC^$j2za#mSS~`PdCXr|kj3t?(xXCq)ml?eadHg2W&Q$(> z1|yiJ{z2#)Lgd>TT;->sFR(r|P?g_qtK7WvsHQJay*$<G)Ntj$ufmomi?nqPV-4!5O?j}013V5`zw z%H`0Y6h{d{022{MSL*0jsrrP@rxgZ!9%(#KWn?0B-6!ka?vjSUsjS=8prnbUp+hu& z&L_qdNjQ@krWdR$Sn5Eth#HPvE4r_|LXM0-9$l)MRu=X}TW7fR3Pb~Bm<+E@*zEPJ+AJx07?;x6keB^!>W->3`U@p=$B$XU;Vj%-Rod61wkOe%zOY-=inBY4?b3{vF6 z1CTr8;9cAH($H3xQ*232L-P%`2;!vJJ|J&*GbyhU)k9ep88=zqiaOkpk7+`d8^?x* zd)Hfyr*&G-TTiu2bLnSyY7um_(NuDzWbxmah~hvTfT z9o!F#Ko9N+0aC|SH)?C27vZgO-d|MSsh5yl$2E@{zt>HmHd*wbfT|zt&7>O3+@4!| zdO6uUSv%RgLHlI$Zh0Z|GtjHiX~Q&HZmOa6gb2w}WEouA6p;m9#wz?$qw1r3f^=Zr zA~q$t>L=_d&k%`3&aJ*0xG0i1A3NO8Fy)kJ-s-P?t03d0AFjFw<>Bgt9o(rYD^zG% zCOeTd&(~(!=sIX|sK$`*%O9LHZmus4KQ=OzVRORDUQ~I!?%6Ilzv9+O595ZH>pu@1$oxSeAA&ZVGXPWw(}9@WBl5OTUmE&kwtsV zOgveku{?F_h)hc4^AL|viLsRjZ=m1uhGnVm>Gjs=3# zNxKRLZwIHlqL;(8Jg5`-L>%l-MvGIpy&i4u@>Ypz!b4yTK%=F}o>3vn{#J7+>cQS#B4gQhamYR*8 zt)Y$sqU>#J8fH2r+RwUeX;3;L@_hrmKL7*l%~L>LnMrgp6tWi{I% zJ&H`~*N_uPXKdeBRo?R)tKUDIRp&lG?D_(O19`r2D*sEo2EZi$BL?{YgVzAkl3%!t z^-qk(`U|7|TTI6KhxkbOKTD(k1B(44jh>bDw=S-%zl!?H7Bs*imGh?|Apjt70W=nz z02K981p>&Z|9f}E0pg$Ez@K03`AbDVx8wmPjsIH`Gb_Nv^(VmlFVyrqG+hp!icDD=5r-O-G0R(;9Q}tY14Ge}?cd?3(xeTwa-WS_E_4#u*D=kA1;<9c_!|MU8{;9QQYmM+33RjYn`&uzCX#3pf;<`W?L+ z5HVfi{^o4ML$4plu4owS|2EL)Pz`7RuvAMc-z zv3GVgXEZ33 z-rdB%_)4jyHOBcPsgI8{H0Y4zq&cpgh&1+%47>f}F7nXmDumU}e6PW^g_-YB<|?f8 zPDt4r(dWt2_&qrdhM1Vj&U-#9_>fvyDJ!vp>>QLM4?@!~*ChsEdW`eL>^?QNl>tx>}u)icN2C8|(Gwyd=*0%VG_k0j8kV z?&<{wCs;^=?juSJ5E(4?=<`DFNCZi)GXKRcb!#+7d5gQyJ7}(+JjBpe6K8xz*wH(1 z!v=DGYCQK(XlEU9-E!aU7YqaOQKMG_T5J1$3aoj;tM$tjDd_<5K_I{YEq$ zP_5WEO}l94t+Sbz;RX4Y2aeUZ(Ls|oWCncN2@4ckaB*`D&8q?&% zKl%NMqe|L~Ug*FtMD|oHmuPtn_Tizgu zC`kx#o9tqa^9`C_nohcj-D?J1NI=7NDbGU@xMNnwYDD3FWim{Jz@PLuVp|dEjLDA* zuPTrdDr9%(I&QV_kAZMY1BaeJLVViA!1Mv$X>$e{2^wI`>NbA{Pw~&nX72vvx)%gN z;g<9sj%zV2iVz);fTLOaJ$Sl*Id0Ib5Kp|MPqWZMW`>H@ggZJ|G!jwN-3U}@LQpHMhmvkG2;N1 z?amQ3F4QFFy@Ac~>|R)aV_u}4kX%vZH7iq5l09d1^E9NPRy&c&B;2+)2s{q9RSr;S zHn)r{RK0{$3Zh?73S)$$^dzY1%E`SF+ghrDq?`f*sR1#`^U1wrj50LYYh?Iso36X; ziny_UEwT}ctjCYW(}&BFnY>nD?uC>a9Z$|@-Y@w+A~TvPF}XAC(ftDW{8==?7D@5X z#S48&Or5wrcFVhJt2N>3% z%T*HI_L_fJN3>NL##fsf(n1RgDwfA7-@Hl~>TeG_(Xb!CVcg|h1SAvPM%+^liP;pJ zpk?c}m?aEdO(P`Ew~RTr}Vg8)L2IMokZv7^jLZCgC|2CuUdlo<{K59rn(Db zuh5@*I@>FdyAVb}Hz4Zvr=>k6it#}4sZSDem2;#b2~aUzC7J{pB}uKpp5CkqyY_B3 z+~?XkL_vgdpUWgflsyZV+0F3cDdJo)Fp8*`G-%H4`zGW$Ynq6F+mCdr&fJ5)6h--y zdB8rqkCglQNjWu(OkPnDw=9~5W$6zX`#9?k4CzD?13QuAjENb;Ss{m7a#kTEu_x1; z9=*0;Uo5rbCoc|pk?}xzPU{(TQl8h*{Y`r=R5MUNJrz|YXk z%M)u4x&c2AZ42V0-{#*sX53uf)2~btvIX2}C(=BU!n|H;4GUab5^&x(A*U|6xS`hQ zu*F7%i-!eB8aR5VEeea{n3ycVGjo%le}}WJ<0qGNw}%rW8_D{b_P$TvJ=FyQDaoaL zk1F4sDa_R1RVGFvAeSR-|-T4Z5d9P3LaRvd-59H3Up5Q6OLp#NucQ_i9-3Qqc8MK4?N#DNZ8< zW|TFhbId9HUYUo2uufvPGuvab&?K)Qw6UeUdR}A{BUUerl&ePUDqR`f(Y_+F(0=vW zMiuIjsBD^ZL9!tS7W7DYa2@4sckW}LU=!|~St{wMylMTMxsH_v{Q^_>)(Uy`)}+Wh`u^~y+Jf4PVx#|ikil2S!a9y=8}2O zN3C+=N^PCLeq8EBw)BQ@0k1r+IiYU9q}H{0|0m1x^g)r0bpY zY|Ay1R8W$g-gWyza0TDVT)=O7k1Bm?_6BV+=lWWLgzP#!PgbUTQlP|x1T4K(7sD_@ zM{U|aThzjPZY1PEbTltGIVA3wq$f$6AoI9lF_M@mFXc<+k<8v}yOZ;E4102FAZ_iD zHr8?YJ!|mczB(#efR-${_4IkIcDEy3h;Of8H(HC7aZk;vHu%VPP#_|jocew1mGBW! zaXSB?Eav^~L-r6p<{WzQl>1D!ez&Wn>(;k-)}b9flsq66hFR)d!>xPi$&rhEMqT#& zlhj$$OfCz8TR9kYEJ=_p8ZEVR=sY&|^>r+;eKRuh5*CR(wungg@4QL%3v>-D-)YdV zkb=u+fWXbnl(K&K+E-FYDle?kKk{K^^-5hKYcTIt{b6;uaow?Rq|~ow6UQd1bDGR_ z#u}4>;!t@R()*Cfn#PcukKLfh@64poTF54@*?(TB6W2?pWbBxo7n;#)q5%CJhiyhe zr3}aLq3?__MnjBZ{c~}lxF80z)_2qKhFU@|VG4>Ff5-I?NlCG|MJ|kyhh7WdJAHtMF2|Kub*jA$ED}%Wfep-EF zmYEaA;YMlQgdI>^wVmZ&-oaS)lSG{0pVEH3JX&Vl+&sRVn9S>KxoN$l%4PwOC_S7*RJwVUDNbaZ0H`-OMudQwr3aVeZ3) zV-(ka%e^f(i&>G(58v}ED^eXmZ0Ijb&#}{>;;iu6lSxZUXV8k5aT=Rdrl_j?rhi`D zxd3{63JZw{3KP*n>c5n8x^Py&>B9V#5-Pt=b=4*zGS1(tF!)FVmgjRQ1EZb*uuEs9 zZ`8sFv|0}T=QyCM34}KYcX59n)>Rt^S+yLclyvoPj>9VOd{dFJlOj{k$J6c%-K}hi zFoa$>rjzuWHkzC3=ccCE2@w}X_y~5?Gl<{f*z2G(z`A~{jl(1euPWz(4QYLC=xsYo z-m~c$1{DK39&BD@RB93{EhBC~A-ZjqEgYv+`RaI7g!RKQ_=e0FzX@J!ZKm_}lWcmm z21;iRZ}Uu1|}Y8R4+zz+#6&zEV8pXm>US*wb;Y6|=I~!1d5( zR!y=fkV9WrnHihI2EE7hK%PTVnm{v}d%qa)Fdm*XlJKq(Nqn?Z%Xp$F72~03&yk|T zE=L}LyIffxx3W%#sj?4*VA=3mKemlrzHoMCCzwQ~^3cQ^zz~#ms474Gzy#TjgtB-a z%|Rw=pUp?1aL8u%dCFVBhn{3XkzC3etzLy9FAvpPR`O1Hlokv&nblg|6HSOFkOsS5 zUzq1ZcqhYT+jA{}T%E;mj=6F63GkUx6thjv7HV)%Ud^?6pe6fCg-fb_@q1$B5F3qi z`)W%lRsWhQGTE+Zkn*tL8k0L3G(`_Li}`ymdo*ZBJ7Z=2m=7Ik-z=1S2Nk{4_~2t; zFFi^0n^B5PKep}1>b30my{x64ygW@D#=IE@+nlz(p`X2sKqZQ~OE zF_P=-@a8^coMSgPxAkZH40K{F#m*Gk{iU**ct7m|yAH+OoN=(lRK(GIh6sOnF%TMK zcdv{_8?z4S=zXrL`#@XUNmSGVE!~q-ft)Q*=ViP3to;SoO{;Y~SNo!Y zn+#xo$DR36U-~nUUk{gC@4%<;>rxJVE|;b;QRS_P%q>F3)FT^@WfE??pe}LVDjE@N zQ({eC;+iYW6IWDhj>m#6NykM)IgB#}QX_ZTL8`&vlDopLitdYo-;Lal5lpiCaCS_V z5~SF}!FxU)z;v%eVTsc-Y70nFgn{a)zd`095=URD<_M%WaMmI2eGj~MIoIWOQ=^Dp z^rw_TY~*2mC-4o}zkzo1Xj4LxL@%SLB$UP)hQIB(f{ILVsgN} z9wrBgov{r=WuY%ebS`sk@x>5z8TS2I>R2MEjekE$MB^t*Q+|UFGXhl#w(>rmUXCMD zSpL+Ife3i1@+X`~+GYuaO7CGwQ5o%;U>|A|DTVHMArjkPYuPP>Fusp6v``-6D=OND z-R7a6K zqJOfRMYsj)x9?=8c;4pkV5?_aeG~w>D*@h}@lE(9-P{>=3ImjBT;F#I6m#)37FFiSUXZnqy_`M+|r+OpT^HEri6Z%DR2> z9vO!+_qkO3U|2zZi2K5qTJ0Y{BFeiuXV5)k2WaJA4C*k#T*;MJtY$i|>kwc>vxe6M z4V}yK8B`QS$ZtdgO9`6Ot)Y!-Qxr=tLDHHUnIh2};aB@a{Kl{9^=0Qk=bY42j`(+Z z-g7)#i1~M^grsEiNHNMz1v>c(!@IAt;S8QK(2ecD;c(z7%72y)KocG39&u^sa(3wb zh}mlugU@o~TU4hq5klI6DGjT4J-?dxQMXzDreVm_-r%Vk{)_8szXLX9{L{xZIDhvY zIRqoLRM4CPhpS@b55&kv#wtpcEGMe?B0OMSsTc@bjnu&-=)Rr~m3d73%Rk0m`aahOh zV^C-xS7&rIZUwk*mU^8_h%ttf!;e-|nUD$@-6OghEybbROH(QgU^b;QMUcXqBN z)LR|PSZ@4Vxra{9v&$hLMk;agr^$=OReZs#Gs*7bghWmr4&;5fc0c)2)A|nWg*{BP z2F0E)&!%%AWguZ+L-G?hBnb?Z@@b#+%VI~N%@zaq3M!@~4Cy!RuKhHrUUy6m*%5X( z)Ii^z5qwqc98`?=Hmq-3<2^SUzj+C5n|RF2W@l?-fv;|^So4`*vk{Cj*tn7InEC*E ztMg#frN`KS(KD!t&r{Y8o{%?69z#_Pg~!E@pMalA8V9}73VX5oapm^K!%5sv_G)1t zJG)Aoc&xYAXBv|B#vm|9VLG#q-^qy;vvw`#?6KFb(k?x%HjOMu$@NMXTg0pqrtdl? zGt}f@O(HKG5B<3bs@QT8I2nAjm7RUh52L0FTzsL`aB$~yw0a>QZ_}+-toLK~1QQTH z8BL~sx?GtSOJ@UYmulebW?k4)ZyvLm;~uU1P!n%1 z5Nl$A;k6miIK5Nj@@a+dN6J@^7ss|v{^u8&GiXM^Q5|oODjnAhPbfFqZ5c|sN;tJ< zMI|DT3%a^gpTjaJWts2I@Z{zJuhW^ks6yWd74=3q-C95fWJHxTnPF_mk=(d06<~~$ zif?pI$(foHha7w5#Lf;i(^xAcms;Xqc8l(4lcCQt6q`TM2_^H%(>#vtjTo3uodS74 zh=W4n@M-K{?>z4A?|vV%M(+cal_51)X)R?Y^9R#0zYRNpetcXv+8=c|t5+$}vFk1_ zF7>IrNlSoGyxd`k$cKn&_TokJBp<~U?amVsdAkJX3LRb2|v<^qAxnar(TD9_@g|*mo?W8?ZE8(_IaV|EJ=8%h+dC9F!C9B4qxTR2 zqvmY(AEWu;yfC3oT9IF~=!u}^fd&Y3Zt4;7>GsdddC^aoM2us#bt)7!1Arn%;;#&; z!MN#gnVjoVZ>i29vuVL!t*8Yb=0P2HXoF2SCEh*DbEB8YgA#W`wgjI8QQbKp!tYE3 zpE*qLb-aU8!V&wreqCZ)AZ!Y98J#|cRj8QlxQ9vul6NW0^#1#5gjjI4D4QX<8uaq! zUT+u?iAq$)J4|N963i4KSS?!S2^)G>&RYogd8?4{p1TYOp!i#9Gs5zL*w8O=2JAj@ z@w2Nq#3TpXk<_|&vf$DapOs{&ybN0_ha>UHJTI$`epGDpK97m8t@yfV)EjBcXi{K} z(!c7uaLLKXJwl`!jlfh1J|t;;!>%lq3A^b~MwE9z72J(y&f^8n5vbF8{0bK;MT^Ve zbIET~fi@VK0p zaOg5qAo9irEJ_eTU??y_3*9ea7+TChAzU&E(k zVpGW`%}tl1taS765-Y7^FSn|w7|=* z-?MSV#}`(H!K0FtMfm|ePAHbLc%%=9V6K> zbfp(9tP=7U`Wg>5RBL?O^AK#af~&WZ>M`dww*V9jZ)kHRuf9pQ7 z8NEsI+`L8}_61&p|0Vg+M&L-b<4CPX=}LNF0vpVK`MP{(F?7rh!1pSQI57St-vg*r z{u90jkVpK%_x_a8vHt002(SbDkw05eqB89q_+V5rC`yhCctgIseikW;P}O z)CFj<06NH@iaKUMG9MuI5s+la0Z4uOPut{VV)R?(;qUT8e=QS#sfYz24+Zp%1t7=* zWEcW;bR54-M_B-hET+F#k;VGkAiQ5o)?aD@1S$SHF2M3LI24eJ$po+${dtUl1u)B* z8UNOM4j@DO-O&A$#*Z1Gg#;vE0)l7(MFDO#fZOO#3EO|Arr!nP{aVZak46C`eSm<+ zpSAtW>IBH?0P1OGz@os)^|xvv|4p0zN#OT~V)Ty@`yUB16DL5N$@RC68(^2ik|qIj8<73_^XbA2 z$bI}7B+3NHer5byLrs6bUjBM8|54L_eCPu(+ZdTS{&?1l|G%98`EMJ2{`xcKkB|93 zS&Pgp9RHWoApfh16hdD$71*rvG;BIrQv+@fH$#;rX9NiqM0Z7JolD@(la%9NOJGVP z7}of{>cLu(S;*$tj%l7}=%Tjvo$GF$z>MK--T7$W*0*bUyv>#0^C8vu{J}-w>B{l; zQh4&g%bl%0nOS`t>vdZ>Qd)|QLs(sT@!`^SaDRbCooTS&>&syEUf;1U5w!|^Ln9hP zCyhH<#88`Do9*46uzAcxWCG3cskHi>*vCj46B^y)D)YT_6W^IBE%h&k2Lvq#8K$+g zR(d1(R9dbFHuarnt)^|Zz4E&4bQrK2855Qpr%ihSR;KUdsTt%`-?U#{_NmQ+E{X?C zn4>SGnFcy+j8jS5*3o3XN!DRsp7lQI*4xsroUqx*@WN())OC^(P^(?Gb}gE!xyifZ ziSs?v0B1P<*r&4=<3$vi+uKF%8J&WCmvMejdvez^ZXeK&mZMX&z^!Q>IZm`?%+Ug{ zOo0J^@2*hu07B$YmBY|ALHs~(`GHoi{qpQ|_@J)%Q#-@+T57c?i~ikuwAXrdGfR+~ z_9YFz&iw*sM@W<(!{}a@cV}2lE?$JZkG?vozsTZ7hBu-EkuWoHNrUSa@|B(5H&4bk z^ieCs)c5HTLYjB(ugqpe(9|6QJfKc$pz4hGPxWXJ*#oK?z4_V{Gs-)NXD?%B8Xzar<~MwSuix z%H{T(ttFV*)kd(Gb)Yenmq*xz6;>rSP11R@M1Wj|E&T}J?n1ekw2wDtO!%HXCL)|+ z*x1243QzM;Jq*7ki0#JnHHM=A64wmEUxt!NI#z+SPe@<d5&=o0wM8o# zml@<9>WA@+aM~y(QLH_c)B6COq@gyPEnP%c=JvqS3HOH9QDkL!53>&@5Dojl0_P$? zG)ZXjxbGaIDJ0SpNmL!NxVDpM9&rqZw*BFc0^F1!iTN0xCM*f$soq<@P+ZD=tog1^ zt@2UT=hW4E!)FmTwihh!)s~th95Q&qmm6AdRlYp*d7sv#C?5M3dKawdgY;FkL>dXZ z*yK20h4fC|%>}HSrJ*X%0`vtFFyvdhVmvc%d^Z6F(B~uIwr8k&d(bhZ4`_}^0aA#} z%o?7e9I+~7Npjs)K_419p1dC{FTpGA#lORzbLQa)>O~!pb7A<$sp`PXdoF)IVtMW* z1M?pJJOq!7i@GHe?_Qc!UYeHtRpml<_gzcD{JuLiH0dX0eZsInlhBs1<*XPO$T*mY z$SL(~_6(k#Xngss9q;I1Zi{PRLkV>p)<9luo9FDWcif7Iyl#bl{Qk`rLSEqOqBb-o zonV_Gnqq9|pGSaX5=(K*XhPleqlu^P)Q;mz}) z=Vo&7Z)7At0JDILq+id852Ki7e^{y6)tdjCKve3VE=NK$xK{p&i$^wlb^s|td9@wk}#iXxWG z&Wtc(S3J${dio(fL4B9|jTydb)5+xNEg|RhrQ`DL60iQgd*YC|7_K4CNpUJBa z&mzwMp1- zwadLiF_yKJaGM>s8nHqLswT;4G|`sEsCU^Z&5k_zrAEfwp}p1)Nb&KNUNH4bFiaXu!woVG}E3x$u3YH}j9ot_~7);Q1R>8J6Wo~5|phVT9 zcdo`b9TcD(5e0MDFfn8S<^qDKQKJDjkG2#p>?|hBx28sjI2~>QS6|AGIUB`0zN2w< zikH@vvc_9f%fP=te~>~p_0hIDMcL^i&EkW|Xsc2MpEx@0BS*&5+@gITJa!=tX1ene zcRDqAhP^YlH1^O(V9dPMAPAJ*$u#W(qC@2fr^_7ZJZRT*{h)~Lw9O35Gm5+DBDBjD z#RttO^0doQ9RP#|#wvwdoMYb1XU7r3WODSFwDs7qwH0>}x}I7KEI$qv@~u<9=gA>D zjV4^LXATVkD-DBHDcv!TQXt|CU+Lq*3IBnwzc56Bs}Gn|F=Z|tNXu3&xW#@2BgKNF zOpI;{Jg#TU1v_U7zj(8DVebm72)J7=o=)PcIiIM_J*#_a5!nkO^w!inv{bl(#p%wkRXv^O04YQa=WMnNSwNmVaELZ z6LD*9%0!=`?tK{FMTQ5Gpk+ktm!lTnd#tgqc0zk#B*CG2Qr<_hPRuK8%8x$k z>I)By5Cv{K**AJbzEPs8<`r=Z5UpP6!vYmbQ}EL>>*pWIbSPmnp1Z1PXlv73?)U3I@;=x1ZIl%+o`PxJFU-BoUO~T!?&=+Qkm@`b(tqkmn{bg zjNHx*`aV@=aX3mKtS8tS@F6B__a9gR2&TZkMP4UtoFGQxL=&A~u(<0Vo53Z2( zCY-Mmb8$X)Q+{WK?N%2-gr;O(j`@0Ia-@Xj2a$&`YatwxKDKV`s$7ZoNr84^OG+NqLggeqIT}KJpxQJyti4g6y;?RK?b_%}V8m^#PNTx@Z=juf=pqN(<)B7LEDo8s{(%H3A2iuxY3@TrdwgyrFTeN0!&CY|30Y`(QWzueWb{Km^gOxB$xVJBH`OxlY~3&VPjDOr^6ubJxMOKKm$_jM`nuE2c<@XZ6#toEJdf)Ab7eBbJ$(?Ft{ zE54tDbyd@!eKW%oHB7`OK7h!)ei14pr^b!rCQ{N&HDb1LLnG^_kATQ#O!rwfV2(Ku z=QeD$bTNT@Q(@awO?4~~@Kqq3nP-Sx2+%3sZ?X2=~DS~DA=;tL6t2%zd+ zr;iwo4x5MFilje&-*6jE0wP!kH8{RGB7#zL40&F6T}JI&HWFB3H&`FCq{P0Hyiq%=rveQ9p^q?5;tc&1 zZ8NxF=4);Z!(Y*JsZ_mGzF?RB7}HLRrM_1nJ}b%Rt{M{3|NP4H(IASLOwDHtq@rv1 z^FV@epd(w;Xn62Lf7?TlYfS0Tfe48bYa07-6lHUF76>-!(f-4;e_gqov_rvFVbz(H zLQI;Uk$AODlmCE}$6;7Jw!Fd0|E$q&Ed1LQI`x#VMKYZWCb8^!0bjyFZD zG_xMWxf_$Vm7J|Z#~XoX9skL1I2xOVb;8`ZZXY*J**#}%c~d@qZx#Q+uhaWw1LGnC zvP<+Hj`&2kAfJ?0E;~bXQ&mXj92fzs9-rQyyuoI<*phluhkpy6k2FZuqM;Cl$u+sz z#okw#IJlbv<{qv zsrFIy;4#MYHkQ;_EBZ{oG9l-cQekGvu=ZWaIA|!dW^I4l+xJ#MEP(_&=bxe51s z!c#m#$hzcVBydxR&+0_;L-Ovr0DznIIQYw9^5mU z+^Y}|C>a%5sZN-+Szitc?vItqlbonqL@NQv+)LWfG1oTphHESkIjh+6sQn>aIzC)=gl)6@z%QI#uDymZGlY4L0^ zdHs5Nx8~LZ1m^wKvDcjWo~@Zyh4X>jVVkcHOYPszZ$&AQHHoV9a`N|jrlUoXPnQ!b z63^D@OGFoiK2pWY>q$dVivUx+;Zx-WyHpLHM`VN z?YX%)a_CPnKr%Z|V^WTo45v@k8liqBd}luj4Bx9{47<IeIi$gijsvlSQrb0q-QEJDp>JCR+sC%y!rZf-qG%M)7M&o^K$12G4@% zxoTq{p3LQgw^Z|!9r6V$B9|FICqkZJhb!oFSs}Z;Xri11Nh$excI!J{*OnjUuexS1`-2PPx)_?`EVV2{>7WbzIei=!8hIO`}<_FR{C z4V7*R7vaecx?S=n$a!f1ddf9A#njNJt<^mAaixGrnjccq>Ce;~>Po2d;ncpNn<5ps zFd;y83eottSU}qjA1GO9lqI10`5dsUa5UaENYhPn-(pmJV&k+Z(7OmZn=AKrlRgaS z*>zWiP=m2@gdNxP7Ig7Cu74kgRldW!#)gq*s4mcaaNyp&cDC{%kYQKto_#dc^=_*+ z(Xks#em6zt3t_r5qUD0knp`8hm@A*^Y1Oru*)_I@t<0nJ4YSoo7sQq%h9b7!SbI6; z5JxOk4?=2@Q#8aT54ANL>YhGa*3>FaibwMg?H$v^mj?FhvZ`&Pg#t+b|A?!+L; zp&^}=eyAwO@HnFde_n)DE$A!mT)8$VR-dB%;B#7~a6MMm1oE|)OFplq72csuRC<^@ zWRMXlYDbb=Z7!9>f<}Nqs#>>?w3WJC$=&WUl9p89hF+#%w8ST%gvzb2%b|-4uRdk!v@!g*#Y0Zd0+k% zg$}0L%>7Gf%>I+^{<%f#XlE~M=k_a%>nCFan7sj5DLo)UOP4{&*4ED1Nrx2x0e-<< z0H65d^-l;4u>Jev{htsRz*zry|7!ymfDwNo+J6g!Ieu~G|I}mk5A^#N@hJNrO!;4V zto|zgFI(gQCq)2*V*UpW2KX2P+!X&CH2C+B^H(STS`>hCG6C=}z&rG3xEsLmkr4ol z**E}K_`6M3e*>o2{|QV1kS_;7XvqQ)j{@Qnxd0>xFq#0ePXC|c#DD8#`g;QOYi|9e zLx6xlK!O^;k`n;)83BwKz&8QGg@Eum01xK)JAF(6{Oxxw`j=3O1>lIw2$25%X=BRr zi&y`xO#;l<-&OR_hYA442Ur1U`X`hAnGVRz2#B3yAq1FU0&eKP*$DHuHT@HkV)}WA z;3tX#K{}CTF(`&_*Ajc1y(!;!0H( zr@pLtFUlM*I>>|55{Bv$m`Wt|8;eTsnhU)4z8%U&PGLv)lCUy*|N7C&Q+9a z#9~zYP8`|1*7z;y1iW4dAY2-e?B?fzEN--(9qz(h@sl)r|#2#Dt)J-{5dL4 z7P`5$wQE?t8RIC*L@R_u=ehmS?Sfs2T-WLQX9Iqu18trx1)l+J70t)4QY@Pe!7L#;WzR%O~=em&06) z9Cs2~#%Ay1@d-|q^z9x!X0?Q}ks(9hRJ|9R*N7k0AF^a(cQgbNNZd?t?rc`SrtN(j zeA$&--R3>LNp&)fa?XC2Q!krV3pMibqBJw>c;Yq&tNQwW>L{Fwd(7Etw2kz1#8!cO z;pC#FsEy8O%X{^a*%7~nW`^tTe%$0>+XTXTgPc}ZrVLA=O8I@pDjFP}iO2PbYaE|JN zMS<(3#e3PtvK2TJBzIkX&jraF8Ea8EKF><;Z7OZ935sdI!c<3Z6MP~$q6O}f0tvRA zJcz0mZ2pS?I0jSqyCfhnp!)ET%iX*ie!I&@kp`x&(@Lud$CW20dkc)tc)O~|%iB#U ze0z+MyA@)FyDf0x>VZ4*N0*4#Z<_nTn=~i9D%$-KLO!qV{WUwdaq3J~L6|wm;q<0q zuNJ~uMYy>ov~GUpW`>wIepT=(Hls)N$}68d9K6JI#;$v6yRz(I*`~D=s|0S7+l5o0 zs36`e#nWVFfY2!^Cp=$J&FWep4tt~JzLyC;2UilpEhYRO?$_QF5BdC_7_undVjuFe z3M*m;DE*bh*0=cvu9Wr+^)}f^S1awkWaY>?Tae2!N)p~8k$t^UtngiNgqsam=qt9j zgcc$t{1xIQ-cP0&vyE!s)CzRu$A`ZtcrYMzkD$qX#D$n%3!9s9>8-`FL9R zGz%f<6>i9K=`Ekxo-sA6{e6hroN3^bVtffUbdP3_evaW}L=o!FzHvz2VZ=B%=6aDG zIfm1I$FxYXS4LQC&xu67t=AJ%XBJqqBa*?9DIq_2q*WhkohjG?!9`m&trI2#B8WIM z)WJ1zAl@Yx%3JgOtq;C1c_kNC-H|&O7<1xRBE}hkU^Bf&_GBv$SRjZvs3kb+}KvY;U-0a1%GYM|`# zHm)Remw-)dAx4p;5T(yoPjX7&jX+pAyvZwVa_*V>`tqPuMTsIP7#?ucNCj^UOiI11 z63V8A`M8!?sPvdmH7nLUL`I2sxkKv06Q$!hMn%c8=~^^5mo0}_AB|e0j~=yqKO#`E z#Hrxq=+>^2Y*j&RV<6@~1LNw{q|!@YGv zRoa8Qf%8!hv-fkK1rNR$^kBgtw#X+ed{EIQ6;WPwu3+WcLJHt4la_qB{URB9wI{?T zQ}xvzY#<%DUP}VKK=Qzk6_49-H5)EhR@VC(H+2Y#|2AiUfclFx-WQFv{i$iT&)cKB zMzvi>&j^nh_%@VfxMYpO!XXIGyLwLJ3dmy4g5}L43J&wjg}BE3yJC*OUGu7`R=wE9 zY^5P`@*JG&a4XM1v=<1{%8)yG0ZH zdd#hMwE~c$lbK2fI@s}>r7DD<0!JR(>xe1)Asc5n%kPsKGFyj=E#p@<)SA_xz=sYX z%_Z$Z6KMkA&I^aN@8ZyrPuT`KKVeb^5r4=SLa3^~IvX=2STEcyMyEzn%;n{`$uMk@ zBe1-z8`;6hSBSY4l+CM|DMpMbJ<#b>bch^k*^s?`l4;893+6EB=Sh>qM}}W2&4DxG zlErbxB6;BYjBh~`=RW!gGlFG+Pog7)R24ii;T|;L+j$iO?w!X#mvFU4DDxy0hOZP? z5f;%1ghzM)yJ)t=VI$Hk5!}j0iEu+D?>We|p>RGCGDuI+1_;;+P!MoOr7q9gN_3xM zU8NS_z4GAxj3=H-Pm!DM_NX*NSv6R&|6#a(P4>3M4eL_W9s?rX85_Q@2)i&a=93v1 z7nOvt?`nA3H%HQ3e%USd4vOzRa64&xKJcevRZxdo>M@)A)S3|XIW(FZ=A_z>W~^uy z;p|sqa>Jm*d9m)}VdNXR>9Zh^I!vNR<4J=p7L~a9&!)SafYn8Yl7Pj)zFcm}=n>cC zD9_nAJ(mjaw$$0#qkgr(3Q{Zr#Q{F4;EKMZP%$nHK}e}^yZr76u8bg$)?$Gb29NIaW&*V~SQ7j@nxqdlt*1KBaYV{Ov6INk732x&$UJwxvD zDZa2qJ=W5`Gt0h&u89Smfa0!ydtFYBGkP^?DD<9%YxH1#bH4%#xae4g)p57oHQ-te zSt_V1>!Gwdu`5T}5j&j%`0$5nNtFj?QYxNX<~ywLTB$zkBzjGzgm~LxCS809iAfMX zBW6=fIS>=`i&UtoP()r0w}F1>g8HiSb=h>XB(8}{GYh`xyD}d#QYUyXd~R&0i;_f} zvFXwx1@Xqr8$%YZm~ugbCR8Ui6l!A}#?TSp&Lb<@$bJdP)eqq*eO7Gdbf&;1|rd)ZlJD0+4XvDY*$f zNPn>FQ(prA7}4#*n0tn+xw;*8M=}2qWAw>U`#Lxet&CdE8z0!X;48*BIYh$sC7dsr zHYiFmHd6SpS5Oam&w7(4@v3M9a^*u<#$?LhKDPo41B4(6CABDhe`I3_OKMd9C^c6k z1@gyeLGi@O07nrya-ahR_yx=pLl&N$*_Q_6pG_gcPzBuexwMNU0-MCQ(=C3e&%meS z9V&E-m8CC}2ndR8m40>9C>yB&s^k@|dupeQ_}-x#k>6Uld`ZjO4hr|!AWQ^TA%FJt z*oR~F4O!kFxmiq*N$9kj>f|eCI6sY4<-VYW7bwuG+EnnlgCd}^+{(|upr;-+@)`21 z0T7xsT_*}A{~vX49UE7-CyUxKJ7#vw7&9|7GqYognVBhOW@ct)cFfGo%*=M|*U34f zIeI$Z%-r|BtE=1pw6-Nn)oZW4x>fb7s9I1VKNs*Lg+#5nK6$jt#phrC5oR1=v~J8f0jcq6~IWJkH;a=%QFoqemnGnn?Q65;bt^9R4key`YM zH7+0II_G^jKzg1xpxuf8*Dz)tZ!w?dT6`>NE3a{){3O{pP4znK^PvB)P)-&$;<7Ab-sROqs z;*j2)AXJr${NZ|OPaQvBo$Kr}xAJ}* z$Rr5WOYz-Hl^M0FEBVJ)iV`O$3ngKmQZ1NW5J@#jK^^6?m8PT54QTl0ZR>G|v7Q`_ z?+ekGluN|+)YUdzTtGj8SZzRTT*(Jij>9a{V3Lr1ncbwIR6*|uQLlfVS(&Aka>6MV z+IZgLO6k=@FXv1$@QM&)B{AzNB}1taJ%eVW~0GI-j(Ix9h#ol7>{b%$A~#s}Bk!Y^t0t&dAp$ z+4rZD9tsW%9!Y=l80R!VRQ0S+Du!73oI|H6Ouqc&kuht;Ua+cdLIy|EHn9>dQYmAe zH*K4&i<$|5Kvp>EeT=x7T0|f&MN3(0rlWu>P~-s)qMfSj1*ZRjivPJYdpr%4k=?de zPx><@V;+Rhk(B;Y5ZCuB!AlKam5*(|RP*#Kw=1euO9SS|00b7+7caeWREO{5C5c7i zGb~#(1tPeP*RR@&)EAz#U_uj4_ys88gwVlOV%{E5{U{Wx|(`GYpuI z`vUt?WjXnrIw}CR3t7%}UgtYRP-$cc{XN$dmFh$wrBeCI&NR*8E6gss2LrGUI`Avd z5TR7xVb$xJCKiHxcs2Ty6%G@vgLgN8JiOh890Wao7sk}psd&o*fisd*RrRY zdLmX<$^-$}K>d`j3g|=1tR(w~lo4vHl6+ag;6y{CLLm_6r04PHkRL2f#cK}|zldh+ zXkM#ceV6cSJ6(bkCL?87iOd78qjL^GCssQFW$}1uB;zXroYgd@%sE9EkZHqXzPN#I zlV20h($+o(0JVp+%8uZ3i{VuZ_=5rZY3tH?BdI9jsmLjQr=HfV97E*?wLRb5&{z7O z9&yL6@Rf?%>SL#4cJ?K{obfj5ibtH)3U1;Aizc+*=BPIIWf;|b4#hbnt(hDlh$<)< zbJ)j45Uxa6*(X6mVJve(7#qUhi?};k4MGZ;NEwJ!o*a|N zMbmzF9Q!!-bj(KrT3b3SUE9E3rC?&NTA$Fcf!i=uXM?0MB`J>orEnGL%DkLXw?$K| zOaG~4TEPZ_?IwDVZc$r;!iIo-L(9P8URWh31_%hcXK4j$G7njwB}Tia;C8&cQDwH$ zzsF7wj}bjI{WA}Q!UNN-(VhT=$t*X5v>0g)u#6gIyc}@p!Z#6uX1&M6xpp}e3vXRq zmajg%8#RXN&)d5PO6SgZk@_=Z^AW#_@;U%IUuSUH?mgUu?IhNe1UeM7?wsqc>ZOmz z{UgXzZ+t}oF#9K^USSohRA7ytUt!@O2K`wdxVWiv>b~ir!IBbmMN1PvTkjX7S8{`< zhK7aTNU@+I;h_K{)8zjWWwDbl$cSPPB+P*Iemj@a^)-VQ?1)*SB4)-V7|uMd!*oNX z>P}3hs8Q#mnur&HKnVR&VjO5`gsB6FJdZHk46 zOcD!&MLAx!7?(F|5mbm8*hjKHR003vKpFFJ-j4;aVo|HRk0CyG>Eg1Y$MKUk+_+l) zHlgZ$LAY;}>0Gicf(vg2f*Uw9S$5^>MV1w$4OIqD>slc_8Tm0$U&MxegA{aFVq$}O z!8#p?V@y|C>1QQ>Xw zRO?TIo8wr|7h_eyBuF_^F-l{%Au_g*0LClLj+g$0c4G$A0XqXT`WX0`QIOfF+pore zjWsp{;VO%yK}Cz;`Mp-3(j@HtLS4;5cvN>d3|tZz2Ig|URTphn`{&xS^C%a8lDYAG zGUaScoYyRetmWqguO;X5BmUwA!H0YBx6hnZxOD^B;E`yWk{Z*-UyAi_-}73_8nNVf z3lQKrD}tlXk5RXos`^k+kMfNc(+pBrn`uqp0&5#*jVA(C7AB4v?2K6V|)i3*b9_A^b&|TR(bga580nHWO{4u9U zPF)*H^p_^$lOu%>4njrPM5JTqlzKHJTWLN|J1lmO;nq^2I^yNnPYEfNlfa+uN^_}d z`}7$xXhf<@KwRaz(e@x_DK$;b2@s9?9K`CsiE=grS8|8D!WkNNYvkW&rZz^76>}on52F` z7JsnXMT&wVIs1E{Jpzb?7&CL;7pLNN2ATAUq8nb$KxMB0m;kR`I`Z`h+>b{d^!vgI z%Y%nF-7+3CJ0MU~j9wyQko9JMtRNKj2MRW)4lz;6f_3r1q6Y;mXSQF9ns$%W2-6(&7d5UY#Tzfr30E>2xA0|>h5yd>h0A}#a|Pqu2mp|tJc z%-G_RZh4IWhVtPB>HPj(uv|hvTUd2%NR|>!8Z^`$m%_0np1~k8?mLZ60m&ZQv&Ib*%@cyE` zqOEC%?01@IDGg);10H+}YbNlrOD`T-Z$SAb18<1KzZHU6e=EEHpzZ%B>A(QL(;tDC z^`8PTpjq%A*Z&lN0sg0dT>n!521qP`>;F;!X8Zpn0RKbo{TBh4^{)lsKcN3b`(gYo zJOQkv%z%7cMnF6=BO5?B0%)(ly^4RUz3s0JoPXBuUm(!~n*M&5YcjC_^t<0087m;l z__q-kU@l|&d##E81*rdYlK*iiGXRuUW`H`z$o$*?_q!Ys0PgpCF|z~2#lLl>{#tVd zXwd($LH}W!W&=odzpcr?+ctk!e**l#zu#B^Z-1{j@vp`EKfC;2?;a~)BLQj$0V*p% zLj?370{Te*$egTytK|CEPS-z%xqkulJB=Dp)A&zBzq6ELLaSut;-F0{?BXD*=%D9d#KlD`s`w8RrqQUNoWzRf*mYLVlH;!9ZG|Njn14;6;7(gPAn_JN= zc?149X~#ss1Nj6>J`9Mnp#%HI^KyT>SjC&(@nl?+iSE4mx-8wOV`xnK{!R;E8`FQ? z@0|5VF(5DZ-=`Riu#K?2pL?0vN{WqPaZn3XySXOS9EIzo11W7;xxn2kGKkH(rKbQ5*Ag1!J{q zqW9nF>x0F)(r;G?ccI+A-nXhvgx!RUd#6aTC!(;{o$EKGO9dQ6UKNB6E)S=LWg+HK z8{CayG0+dJ%UWX^1%57UMluQxrt;2^rFoBVRI1#S;wY*)*_l`Gq|!Y;Nr>4v)A770 zzsYsG?es7xV;!;4?A(#Exg1ga>VC*!+<(#bBtE?^T5_Tzy0-kV_Uv&s;h4R$n<<`c z=N)sDp3lDMm_4(soqaeA?xQO{8yPq9DBytfHJN@!c^O%U!A6W2bF53YvO3Fto8N|- zqfAGZgO9ArdFrt4YJ|a5yg$N;H-wWkViX9bjzUE&pnf%q*L#EAr#!CX?x>~qYK%O= z)R-@0Jz|pcIYgY#@zZeip*P21f0~pgoFxYf+?l~ib!Yoo z3)j8gvv4UfX>gewXc9jHX*3f#fzcr+d70!uj4R)8bnkbak$4FM66E>?_jUDqROOpw zhsUk8@w92Jd9!>UU7!mN>6~xr@n%G?&t!%L(Mz)h2%bq69q{ESk+#T-N6lMZ>sa=O zaius@gyNY{zJ=!~_HW1aWW@Z%^{R7xnqi|P;kYpMDs-PyO;9f%TkI9$nn1=v?{h}K zKk>9o@{kGSNHHnsqoQmw|H>G+Q&BG@Yq4N`fQTJ~i?L{i@4`Xv>4e6{54{3U6vY}0 zcit(xHH2|R;^Qe8hS%QfK&Pe&R-k165t}Y>4)y?g3t=!qg#g{k-ru+aG(%3mv&N)A zIdWINAf8VL-h1Ta)w-SfB^a+YrR?&txX@XO19w&T_!Nf(B1#|u(rT27$2eS?$?mCr z^`f1rGr_U64mS`o&Kt(wX99iIxhnwts>#nNp`B{6%K@%?IbOlGSV>}ekIDm;Lcq0n7DX`iu`%pS7Nd}iZQrAzlVV{z zimkljWU$N1IP4{l`kGuy)a^Hia#Z zlaf%gk$Xl{3|3eczrOn95=mKW2l|q@grM06y{0Ki@#*mUe0vpLUn}aUnVoMZT**l| z`8LTNVQ52|swt9t+&?;}?aPK#kw3O`(KJN|&!wfxY;;vrvs*8C4vgkPDW6&fLS3fG zUXj=zl_pFbFfcE2H#uy}&03Ei2#((~*49Hj)m-i10hIg&0|&A!!MfEE9x*+LQNrq% z=@6?JBoQdmzInOn?lHjQM13PN{4g1Xr3m^y@KMw)el>$e^E|o@#lOGyNOgf|HJrjo z1NBWUBkJ<`6XKk|EbAvpLx`s}j&DNkhY{KobqkRFYJ5pX93&!J(IT$#9 zzHZU6q+~c%pxnbnNI@77bgOL3O%Sf|T=$%-W;F`OLvn@>bM6{2jQcz&-9VO2tb@stjV!UUV76c*ROYfqx$m8t(MqmP z&?eH#6KnHo%?w_8u9oNZ+e4k`BZEPagFl?U)G&riRcFB9 zae-crbFV9MQV&uYhHzyBBx>rG?;+_WhK5If-TyE3_yw9k{F%VOslX;@gL$ zP0rM2AQkP5kXsGPGjl;YJSf@hV~|i-cU~MA2bvg-C?iG2T)KT{0?UgJDNsrmMhbk^ z!YCi(Uf)77=;wbqJcbd^5q}WEXBKtf%@nDdkFMcR1_vzCN4RnX^mUbiz?XFey{?X%a+%RWsZZFe0_$R{SVSnWgMnvZURg5Y*%{^`%@J6__IU; z6*nvWeWrH|#&P61_rY&?$lb)Z`s}p5L~7w4HT|?dZ^wV#|H!6(u5+y+?<(?W3#Gj_ z?`-X8+eC|FMd!uKVZwOX63Ag-Qsy0%HJJ3vNkik4#LE?XaajVPaYI2 zx%U@0ox>Xl@yFh1FkQa>Vjuxow4Z+s|1AzQOb@wJn1uwkOB7zPyccJ@kh~n0SpIU7 z6h7_pT}}a=H`ux;`Gszklx!|r`+%1^$5;*{&3Y4ce)8Eu@k0m9SLxaDX*FQ7cazXt z6$(#TYB%z0%U|g2bo`hm#dg6e0Hq+eUb zUq~^MYcF4*q)e8S!8p7yBAfxMnedp6Zz2aJ53lF%bDVZ7BP>B4mztjks)O$zi4~0N z8kmS7_VR1!jI90>tK4w~GfoJ&gO1A6*vqdLx>(o98%QHU$&?Bp&TRd;5g%-yXHZTL zGMSDZ2u0B?T2M~qA9E8l0z}GVn zOzj!#vVdp$AQAEzvnS+orfP+{V?N0TZgoZLW;D5T**>}q5()d}WGHdrw&2}hM zz0lA?n2@R4OMjZ z9AK+7mE68>76<%dqB@R<4YT~_VeW0Sy|1sFb=CVJiMhYIe&Ic$d0gUtmpuSehPfJW zhv~eFnC}Z6y?~P)r8D4c7n#R^yF;cA4bzBXSB5GvcA;H#w#8Jz>yi_w-~sVD!C$2k z>+qHmwW7k~$}?d^P!$0QCdH_rGQXk~mrn&_wB9n>sBPq2=L$~cM=-x|Je#H5sM`~g z_9bw>{_I{UYTjZ*^@o!qXB$Vv2`<7R}`$yzY*y z%(9u2^Q+!FT~}KKZTL+La4e@wTlMTRA(+@~|Cy5?vCE>1IZxcuaw z-S0nyG{i7>rx089gCK`&PwBG-OG1bKvh3%yn}SK^EG`Fwo*YkqHc zFX>i#4aYKBrU=w$#=;9*$K@+gO%eKc0eDT#-YYYq2Q_`-)}tT-WZ?6fwfaVPVEAo_ zOVEg;`XkdK;eH713l^F600vxMXaBf_I{e0=4wUA-s}m%x41-Tt0t0=#nh_;7;l&+_ zUxtZgN2a=1T3}|Gu(cqYGy9%Plk({!iDLt!t#_fIV1)cKK*E3MQpAO83lg$|AYzCc zyPCMwSiMvzcu^qqyukRKlV!C>?Xa_FW^~JNO;CR4lYgg!HJ=++j3tdxXiQ3qC9UZnji?2WYFEvJhjs8 z6TcuB$qOvJKaRndE9KnjoX&Y^$yZKF%vNSnb=V(UFDPSl6YP=?(MW1|mlth*e2sF8 zj+V}zMWoy?*bM`b9g+#Q)Vw_c9Lrf|Zj1&ZX)j@SW+mQQ4n zcFXQ4C-zrlrcoT0L>}#Ckqq;v2Xh!(c)BY|S?Ht9yGcExF3M?%RIRqR54OBOmL*m+ zc&P>}ZsD`i(y`!Z)EHU=;E8OAQ!}w~hv+8ddWX>4hW^q$oeRv|;jB`y=kITwv+8H* z8*}Q*6*Ph3kJ4Y!5EqQ73{=+H_Nhk*x}5K|ZBuZyDpY{GM2z)9fxkYQu6@=<)Ci)R z6zd=9hNz`-4-aKZqz(#V`@SddTqJBeSKaiGwv^_l3T~J>bw%5=F$u+@!Cs6ZLZT&P zg9sUqbivUgom@XUZM1Q;HjDFZWG#0@_13rSwy)hHt%8EB8zCI9M-rWaCcTafvl`@A zPK(Y2O@^wByj>_5LkPpp;6*G@)IkT6U(VivUnAo5u{~~SxX+zRoSjx=nO0kn-4Z8V zFlFmf9T=Twn7VAV5w8zgqt-ul=Vt>>pIg|Ag0O`zNo>_J`O0uledfRQLa)Vd+0e z?*B}$1UOj$%=o`eulxh%U%0d1h9w37<;ld%2IzAGaAp9*62P7XAd3M^7!0pR)-BFI&Xrir5tP-V0v2F z5+5Pbj_=x zcj@SKaPoF0(+&yo-^-p?HQ`NE(O6&QB?Px{SkkV(4Bpo5@2`m=o_tIU@2p(+pT}Mb zLf@aBmSxcegMc*%Wcl;Z8ZYUl$dYFbU~4`SEqJy~|6nNq$a5JV#J* z*B|fuz0m_7IaSe$jvM1-FPel+|Fx)T+3Yt?gtvl@eAT3O_?$MOWy)6)r4^`98g7q{ ztO7sA)?ijBbSaZe*Re&25xt1uHB_3Qyhd#81wH)Jj$FAtfStTyU){iM0T2HBh|3ls zJ|YR%y8>wHG>Be&WMQk$gv=^CM%Bm(lVdf}f@Zm+|L`CTrj83zQJi(8>is>w2HirJ`cA7>0Jl zlKVN&(=EEr6|~js_7aLDO!ncFRONM-l}Wzn$bV;&fF?08ndP<~6tJa+?a1u3|0QYXk^%W|@f2rAR8FHnb!PG%a747E8DVl`uQ>jS= zDsbK{s4#ifJMc?D_2~iRdXIZ-z8FIe=cVOs-{Wpja^X4uCnbrOL?G3ENts;75g(=Y z9`)sG3r~&qo@iUm!+W{-(4SWzsXw_kN04GvEJCHuzO_4js=jGa)KR~ zO>Iz{5`=_8zTv?p8MuE}(jk)N;x`{qynQlK*Ea}VfFCwlt^=imr#b+cUo`JDjDL(_ zn#U0fjVspD2sBo_vve^NU{HjY**MW*dYg*R3ct|FY9kofBeHK&_4>KqW(lLi0&U`l zJ`#AIvh1$64U@fSlXQoY;%cVNcYx+7CeumHd@A1(>pPB9>UUD!SUlVy+;h&}XF?~w zG?U3Ioo605Q8%5Sz$(-EuC!;6D;ySwB{6Lu{tAaz@cka*B8pg*&mY7|fy<&qHB@xw znF9Qf1k}tsiB$4o;hA&oWc4 zDbVz0CK%A@t(`a~2v3?xR3pC-(QS4@EHRT1K|#(Wn|jnb6W78^FN>?}DP$g=vu|6c_U~bC^8LG{#F6>8Ect8a8S$i0p`fV$IFugH}tTA){3sTG6eY2bWz3Yi%|=0xByR-AL^ z=tPNp+oOp@K=d_K!p8<(quuP$k}yMA4!HMT*dnyh7$ixJ@lplCQ?+dGb!Rmoc@ofx z;Qk3BuodC;DH^o4yw=GZ=&{{ca_+yULtCQm{#D#QNm6(AYsi@o85s< z(e54N_-|K%E|4hX|eL24&=ugB~SwZG99XSL1Yx_jRi;=-y@$tfMbsp6O=$q22dg z5D8|+FyoEM;Xv5#XI88OytthWRv&VHw+cnEwh&aJQW_zO{*H;q`D}{nFV9J^NF0y3 z<>#*u{wSnG#e`-JJr%y+LdYQeE)wEyi&aA@AV(QST0V?7iF4hPjS$b_++do#i}nq<$dS(H^?6xIFbj` zxH;6@-AW(5p^)5UrJlQ7eC2#a^-ztcUiS?&Gy!6$urz}cN#bFUz$mL5;zLfo?3Y8v z3YbFTe2<5w2@9dGENCaG!^Wb0FZ{6fm0FZIa$$p`-sTHI$i)scH=f|6Pai1u(72+pk# zslo?&Qd=&M4r*{=A4JzX)wMn}%)PpozV)w~e5O5_es^OLHA*3igaiDx@bKO(jY}(x zDQ#tMNyl7Rh!(TayewpmMUI(Y4wuNduybMDOrw1&Xnk+)``SJ=ugdGq#?xh?+hn#V zU}};XvbOOJc*t>e<9pD#BI^R@@RAb$P^9cUC=-FKobeAKy$lQAW#_h>t;(5m4r@;{ zED^@=KtYNK;jg6^j!ZH7;pZhoP@(w>U>*MC7YIKMXJJX#9e6E`X%kRk{Hb!tiSmLw zTx~>Lvy0(0@=$B>&NW4ulJ}*jjehd>H9AaC%C{eY5FJ-tBuJl<&w15;y&d8 zZ$9mcd-ZpdD0$AE=02*d?|-(Knw@YS4Vdyl0Qt$tJ+mib(tsbR@ugqqYq%y(8Q$0l z7c__R4=wh6AgB*PlBT}AbtJN8qx1x(X2$Q_Bu?9Bur)yI<^9vZP#6i;^RJu zx>jt7*&~YuIm|1B`S1+J)PpmIg2%#xnOuNfKkXr!Bj7jSS8MRwLFw?J&&a#rbR3r-=+DJ&nJ@B#gnwU! zI9KZM9($8x5ix~bRaEJ53G7=CNeFA^OTku^c2vZshgGr(4JHU_q>iBbK5qjFtB?et zy;q0n(5qFP_IM#vhKnB)rHn~n`^6ztwPm2kzef?5_Mu;GJWN^jb`ZlOh>E*@v?alBJ>$roBPG7)uFKr5wvaGoGNwLTAQUY{o6VEQcyS)BtDHp-LyV; z)`@=a0N=lC@0v6J826Im%;1WE-06~Eo_4zqw0i=_kd;H>q! z)4(~w-r3IuOS4xgv||QaU(!Y#CngYvwY!y)ep)aR?UC2SFVslIC#5s7Qqq0}*}j?( zp0JTA+1xA1#@D$(M~Mo`buG&7&WBKJY00ksM$LSIf)ZGw5W$Lu!m>8)Qj~2oPN315 zm))FDpXv-fLZ7Ao?lhjWx=+DSMwYHnO^7aijmMG@zkjAe+&4E1=pzaI9Aa2kThkuo zC)eHfl$9VrptJkYU+gUSeyGuI{`$nrU;nxPE?xl_BZs^<0~=%gs>LQT5>Xj{+ZwOy z_39UvM^WI-Q!g6}7tVhxzL8;F1wmh&^|}P zHf&0Me{5xHrwng1GBfC+?VCY91pkMr11`K((80$CF1LmURiNmkn$EOWC~Z{0A)e{> zyofE&rUA~n<~GA_he}*n(Gb-+8w|C3$3VLLR-ROw1e+|C@Ff>5E1l%JTssVtGyAgg zydNLKlO1nru8j&w#MBQxo}A|-M8!Ra&W9^M=Tqbk;Yp_!@66>f*-d}rLa4rx?EVa4 zL7y^)FbkD_ZVN>wdLNUJ2CBQ;VUZpdax*sHhOkwXrD3iHdD$QB;mSXwt9v#b;yXCg zGVU+W4Jnjn&;7Q?MTpjInUb%++ge)q=)giy`7${PPx!M(xmM?mqN1@_UYe<1(kG78}_690p^DW8b7VA zoj7sl$)3J8XGC!7**@MHJX6E~-ZbqJt_Bw1+_6q}6K)Y>z>7A4`rxWwnD#}ES&lz9 z$`?6iF?R-IVse3LefR^vhO~)@nzaH8|ML|@L)FTe&(Zc^kZK>hq3U9=F{;6P1J36M_C{QXa%BSqeW6VJP=s4R+qmsTWNkf5gad-DUfkCK)(MHLx7VBvqJzcf0u1 z(k@>g)B2ZPV6tPcDM)i*be_m?Ludm}EVXF)Bf)1p8+p~C?6|0xry$6`QIa9~C_X>s zBb%V0Z|V{Y(Iz5YycGG_dV&OL>_o zLNVVF{5&`Ze>CRky>yU74lyA&enDrRp9yJ&>M^T&e)L+e*QRoIeSTAhhC$(*!xw1} zqx@ZmPRB#J>{m^qE44WE$=kxsO4g)blH}AbMO>R?6qEwsn7kQ&JwOKMceiO)$>3EF zgTgk&UmWYX6S`nrBhPbv#t9)!`lN2_XF;z~pbT6M+G9zM)*SOzIzFj{f0_Kb>V^={DMc1IdHk1U0e%< z8R>mlc$fgHwAp9eOe=T3 zqS#SVuyR0Geb?QALo>79q#4Ki2mG$k;qb|nhn~2q;y@m5DVTw4r>o9Eh?f7>5c5v~ zdsf+F4q3v_akgbXFHnc3mOAZ+N<8>vEDuA{5~yUSdk zh;OH+WGxq3cp;@03CqadT`n)2FpE6*&?#cq6w%L|gF1kT_4%w>)bj@##E#_1(`wnr zXF4D=+Ma@c&j$ZzOwRv^4gTl!G9VP{&ondJpV?x3CiXw0%Ks%h3>Yi^P3!)zbsPO5 zs{#M?pX@OEpTMnu&kp~;;&m7R@k4-dVkW>aGdnwAu#yhYbp(h%nZLvO#r<#fH)$+EGi9vxMpMmlv6POt%V(bJ*4~Rru_>hK(7QK zrU@`w{ih=bKv@57@d1on|4ss;`+Fyc|9UL;&kp)mP=FevKOp`C6wB|DBf#M9{|-vCjx74i#33 zGPL1}6BOiIa146SI_IgfL$PKqA^aH84Nu5^MSa)k2f%>aU&q!us=P$1 zCAMFwf}D8!W!HDQYFlMsS3yIno42&3vaQc321@rT4?h!M6SkC*_X8S*mO+<;r!Udv z_s>|%M);gD~-QX;5fDJYe zQC%6N2^c1DVeua9VSIl7IMq*DVI=?(C(jT1!8(9@mR?6cl<`$jzsW0{-vkVjlN{R% zcpXkIa=S7gQRfD?S9?EkMbZ7t^xga`Bmsv9(!}dbb9(9JoQJbYDyi5Ao9dS?F-rvj zvoyo)*LM4GxSjRN_^?FU z8aW;15Z0L>B-o06@*pDi5%CwIMZ+rJynE2NPUope)gHdu4k}BM-rt22|5v$JY(Zh!K|#03t9TIOFD<3Vs_8Fdt#TN&&CK431;=O5`{CQ5F!xv26{U% zEf-=?$3`y2L7&U<7899+1=NzTglz5(k{{D{pUeh4u|q=KSy;y6E0NgX4h6S49n0k8 z=dJh<4GK=V3qERBu<0j$Q))w@z4iA2@3*nqzoBY}Ts!rsEh6uqO5V+=l}Z988J+e{ zWCN2%&K0j)J`rNbJQr$_qOmBdYmt1!7hN|;hrQUTB%wUwLKYwv&9*Vx6;EMTR^+KC zL{JT|$n|x@v|N6QXU$-mR8bY*qB1VivT!tU94>pODItdR5vKAQP90q##*ksCH4>tP zJLgfy0_I2Vp{e-3B)xrn0rN9|PzRbKXdoigvmmiaT;g1w05HRt5LOmq?P5xTvn@GYLX z|6a)tj1poRbd5MmltU(QR$N}W^FVWK3X!_+}hCcusWz`%~X*iCy(|aW(>5=9J zSVBXW=BWjl`Kox5bWMKy?YMk4~0@qFqXn>_3BtA2U7I!$z)YooxL7Qu?uqMGX$qH z*X=Gr@1{&iHnq2Y@22U&V$rs8ALX)e=XC_TohlLa0^whxcqq!!-e*!0(ghika}siW z#i!bs&ML&CQ-v~TuiEFULN>5J99t$Wr`U|>RyJhPa~&KE!$!gVkmpMk!XuPA)$nG`SDGr= z@Mq()vJu!UT9(treTK@-nT@JOnl$TCccsRRDv`+XG6H5(;WUHuWuX-9sA4zTHhB?> z6_F*6mbQ{z1tPRTGKuDoO>L`B+a$#WxN|%}{Ze$(V5USwBEl-_c!OIa&V(b6IBPJK zq+A$xgfmIwmiU5T2n~-+0Pfi@B-JeF``dA{Vggvw&SJKHd#TXX3Dx--Eq>RaJnLA6 z_Bx$A{QW{uA}%X8ip$O(y68horOJ<2u**f8pjBj{Xc0|@WDzC~ znKEwJFwOoHR?CkI67E**l7Q<;h{;)hj7wze_nlmJ(TRy*gx-uPnM`v@QujcdSMCW} zjXW^23Qa_@gCadJP^wP`kT^Ny1JFs{X9C0OX>&tB+9n18%$2!e8ciMO+Au8oqtGDe zB1iWUjSa7RpCs@TOahHZ(Qdu=I3h%YM2Z~UVJ7Jz5<=&_h3E{&>{_sT<8pn88 z>h&o#l?;)K&`6)plyP@6b2H=6OBUpfmZ=8bp4Lg2Ju?#MfyN^vPIHU*vy9~|MzN78 z)JEyCN9Bo?gEZX%=PbFAN$wlejr#G)So+8JAqKlnmq2h+TVEd|#cndqFo zE8Gt^K1^H{vUnx~$#ja8Gu0is>^ZTnC@VVj6Yy}PjTX+Ftakn=c++7n*L|C&2(;hAbhH(yUkF6IdCN#b0E^4Ah64g8S4LRcwqMTAV^QxMub>SUdBRD5vWaAr=>loKjv( zZw4gc0xOwXd=Q-Z<=&g<{S0paU+S66mx*B~!+ULMet7CN)&s%pY=W3Mx2H`_b>nuA zy6;B;qlc&S^L9;IRjKG?kqYbH4UWqmng=RItIuXX&PiFe%@2b><@ysx&)kIOUy15^ zP?2xC6};*?J63Ki;hJo%IDh`Qe$cX8Z`t!gAyVBja_s@tRz_C!L!uDrg3m4Ud#Wrh zq#NP=$(Ps%i`76OIrJsc)&2sANGLOeEYE}wrb~Mj`{Gk5DAOllO09gBh%<3ML>F)? zms7kB^3n-yh@!GyI_6zG?X!+B?k%t4=c`PO=U#DozoL#1OvudDV$4IRKG+OFM1quf#*+W2m?IvrBIhEztNE()2h9SjuCuDp-Cw{=^*Q@ zX8Kk5D0D{^!QjcAGPs8DBgtZiMXUj*MmpFD66#lY7HrxAKH_%6N~qGeXif>EQUdDffk>R zfWF|YH)5X1Ww=-W_XtNw5(ylfJBq2;YMS=-yfPg5K#H z(tb*7<@mRx@X-z9XojBU8dtw&B&iF#owD|KlxM=K`?9u#uwm?M?uTO-_t7!7brCyT z%nYqcCOgx7f2h$%g(qoVG@KSV4p8LF+mUd-Y9E+o_`&Neh|Gq7)VdubQuv8s1E?XE`?IS%38&pCqzg_8 zW3D_@1U0m$_xGaJScU~VFBDsXdK91lW4&u{CR^~I7Jb8p27s^r<4>7Jp^E-Huw{@| zS}Qqhe#{EXKNaM;!hz0k5s&ZSBks(qKX6L(OqAJ#JYdIr5sEBYhr>E9PZcm{uy6tb z`5Q?TFBNAC=|8;=zw|HCZpw6d^YFUY#@Gxna9Znjak;(k^j2+X=dYSLUSGTomC%@Q zYOBmS%eW@2={9k2&g@JC3NyPkBLib?1{vvOWp*X$5_wtb1jsrOEL7dhmWh02D>)jE zGj0Z=6s_|1I;yfe75!OZ^=o(bIO=@^_!icY0S$_fmJCjC*`yjC+JP{Pvb`|vv5CDI zSjc~xzyz#q^Z^$=D~w)&8Qd_+MXMcNeCXgZO%E6GZX+S8B@R^%3U^6h&z4f8EKjoB zEVU9#J!eO5ps)ZR-vgyeb+&4FTcImC=$V2=z-SgT=u72VfF-1qCPL_9|9i@#q~0No z1T^S3tE|fCpv?RrAgN1uI+xEe(2DteT+P9vAef(LzcD+dFw~#oI3UZT?BELBmUN4>cO&>2B-+_8 zVLWm|1P|?soR^6d&k~HE9Z<+sxV1nm|^aVXfcd|=XPBqmdMmj#|EOxiv zo5<{!csLhOY;}l26qc*q#mfLS^&2aRtytXh`>E(%q}=m^!sU)y(d|l?5hmFjJO&fSo6t~FWr#WlEVAh_$qHMkSp-8B&0-Q9z`2X`m9 zySuvtw}d;Bbl+ZQ?_S+|pS{j`?)_^D@XVUuS7Qvuud3d+ERP?k2Y|ywANEg48PLf1 z?q8-Z#m_0(7zd zL*FFxFCXB)Rx|w1`X+y^%s&Z=h4H5|GLZEAy>Aj2B-4M}s`+1PtN)9>Ngycvf4BMn zmwl6*|Dd3MM?OH|?tj}i`Fj+4c-_TbS;1X822TxBjD>dtTDQ$kVK2TciG2lHq!7Kp zh#KWf(+k!W^tJO9F45p;VsW3E@PS4sVUfq|SnYATHM|Wiz z+1IPuQhL?+?{WCytoA&=2!A%j`k|5mCFn~!X-=+T*^~B~hP)+lAR>b7HNVWU zu~Q1Vie#(TjZNz3u>`%@OF8p0MZ*=tmy5gDb3)g*U!PEnvsNJ(TAN5#E z=AklOut1VObj3`($e`pvqs~RVTBfxuKlbRG&5B%09~4#Y5E17gjKTAxcSBfeIknL9 zWr2J!*mZDlXACQK&wUswdlb&G2hWKiu|S&4&W)%f-JYLPY78HObnc=Lki;X-@XbJ{ z^CSNx1p8L2SCBp>=IK4259ff(d3(Dz_H5vme1tw8Bp8f|G`5+qxCFYA3yw!QM{Kp@ zRm9s1wtz4VR)oMzqIUWcM}Zs)V+s+rA?S9Bv>j@%_;I~JRy_PVRFzf&e8jr`eILY_ zj`<&@!+H9Ale`;GhUS-V`H zxcdD#A_#9e8WCR7qDa3Ye|@+BlNO!M@fF?`xlvc+W*MTsaHVuDK(bGRT@}CVf~n{h z%WY7LAZ5noG7Se$|Iiv**xqK+rq?lwyoANH+jLJ!4K0`N4#Kq|*GP-+0@~$$UKia; zQe0M;gAx!bj; zVc^o0;Pj^BBsob10=5%O)v9)Eu5%<9%lDG=3k!+(W9HIc0I6^5e1XhDs%s9)K$oFt!6^y%SP3`ZG!5J}?^y?7ZGJR_9>p70SCLe}kyDFTxH12sbdbvYD0OT!B@9LJoiuEG5D95qg#@x#O^yOzW)~oOqS@ zd#|F*vj0-Qyh3YqSTk6og~HY=kJDXaCk|;C>!O zlnVoyu3=I?>sv=T`HFb#*KlQt`7p}vA5`K!5ZROGm!wPv8;l*y8)he(a`zWwfJc~q z4*CTMxqO1rTL#rG+}gCLHU^Kt;{MoG0?80gW^LL*DWElpXzOb@yG7<}We^iDjh$eZz6!wsd5;pt31hhJOp zxgP9|AA8k%F6xYBb>a+G&!hBM1A4{s_BR2`{dQ|jw{3@S$m&Qpb{;Cj3ymNah-7CY zLt>-!sEi@ZlQr*R64u2OM4lv+MUPJwmQMMTP2?`1BPH)?(fk=w(k3QEepAxrp?h3aU5zDD@}63SWl+F8Rn=td z-2(a5_I?At^Y9XD;$GoFNnXyANT^-}HN(!NA_&DZMMp<+;*w>cgPo%tHpTmp8Y9Q- zbKdPYTkVa&zPLUl{SyXf#rNkP?G`o;HDE{p2s8%xAyM~kQH|$;^%0$*>gQ_ z*3uq$PWNp|F|%{gwMh?K=EHT#?vd_Qzouj?@4)FZ+trhc%G6lL=hp58mxHTgaTtd< z`UV?}d}>a6A2@4A>`xP@^hIjK7oA$%EgT1m9!;eHXLZsi3=s!?Tr&&xXi&R!_Ocys zduQs-YDLTQSyC7;U;ERCVe18e`Mu-v_op1t`mzmAl&B5fj}Uwv&{+rfU8da1P&WaB zG8Sga1RrLC`p;OirQkG7MM-YM5hnYmj0*jy`*MiI4@9kfD)-R}h#LtS;l=T@sjQJv zsn;kK*XYTyfLC9kwQ?=w#bbxfb+agXsh6tkM?{r^oczn}Z9geS>>^Vl{D2!~0IjAW zlmg2n)+V1-Sx%8qLQHBPH=+P8VY8e|PRRW_WtwPYim&_0byd7!h$b*L^L8HkHsu$bX1%=I!o@TFneYS?;zE2 zz}TSZ5@6fwSZ%JzzZzB3;xS++&fkkyy-8>YMwQCI%fvy}D7R6_!>qs=urM6uFsO7> z|I`a}d*x|&;}puYd>b<^prB-Q1p;kJ0IDLNSCcE>vmUq_#`z6|%wlC{t=j(MhiRor z$n3OHsRiC<%J|^ime)xZ`FEK^?+`p!7lmMjL{CrwXKeK7)rK7kgCFsr^aj1HpasiF z&}30~3+*H=<`@d0snG04P8R()YH1sOD9dW3r4gFt$Clx%5Sej0;uEFPHqfi9orR4A zb$0KdXxa9l95V~(4eYbX-d#U9%V`TG=6(rbZbA=;jSP~=OBkhdUkq(HtwXUw;=j{E z?|!09^aph@gGejtL=&)F1cyNk4D5wK);?&qASq|U39LEcEHQ57)|YjI{NS5xI<$ht z-UxYwy~jLF6`> z;$?kBqb+?qxau~!m5Sj@hYo<-4BBWKR2YFpjiuVZZ|`uOP@O!XnV%)9et(yMF)!;&bhVkutU!6K~| zNj-nDP))en_C)H?h?3;$p+pm<6e=I9QHz_AJq(H15&Fh05jGam8_7f zG$B1mG=N5%6DHh`%ze<#dYdU>cR9Wi4PCSLjE7)h9ga@&)wpBXaV5l8?_yZlCtuPW z9J5=SFNyXA{0J-`UI9XUyWh^oBgmVwGkGcg9N1Ix&8(}6M$_-k=51{)3x1hZ3z(#H zoFdL#N0HS0J0|x0uFtbso@i7)IyK4Nxw$L;)gc-YX}nQT&?pNsMv_OKiB?LSEs9XV zkuz@}7I3X)IhJS4RAVme8zJX~sPopx&6c)m;Wn#t@s&vA^0Y<9@_0)>Bz1^ymOjjJ zWR)oE)MyX+M_f@tp)RHlWmqpnDZMvQIlrTtZfM9@@ngAnFxQ+tvwY4)ri!M6F_Ii~ zA%w1+SI~&$+D{iV?8?B6S>x9(#Oa>?^q`<^+H`4qYYzwA z;=As>YAjUJLV2870@Lu=3!S4oE*T!>+3B7r_@$2q8|Ss!d!gykPuoJ@)Woghnak(K ziO+f?l|dlVar^U9)+o!AZe0`CIEr=~T?N0|l07jOcRzgKv*ANG6~)9QaW8+#iTu{f z=c(D6H)cCc^^+cQ$xqv*fAgK4#UY`u7qF3^lCDPcO zC1xR0DSDHYjzDc?Ea`VOOU{6ONFQHL^Cx!VuM_X3MwO8D>T zJL|ryDy9)NySJM!g;tXxDHzKt=sYX5DC!Qn*Oa-LR>B`krY+jf0`BgX>>pPNPf)h> zU|N}vt0niv-JS6+THlR6caQrFTlpcB5G0tL9xSA7at(#|(o_>u%oP$0W_Ry3`Ur_$Y3G2S&X1@d8Dmx8no@L^*wH zno`UqNC^49u!nL%MZF^~=iP-M(L7*;Pg~Fjy+%u9>_IY|2n=z7)Hck>`Ot+_+Hyej z=7RKFIXQUZx7*|Ao@h(T1FNrdmHgh7ot}>lR?&(jXY&RpImakt6nf9wdvlxB=TaprX%FO;bX!%FW%)bIH^7{71HV!~z zDrUyt0*6AtQAXf9pNIgA|2x8ozXx3ZmsX=c7f$5-hhWO(|5cgMFo*W?C7MYtyn0t_1;?etq4;VsMSSFP7KU)f%DfHsuWNu=}ZSn7Cud~$o<8gqJ(QuC_S&g$s)uKm>46< zCf~PYpybFlW80s;Xs)C&Cv0UtYyX4;ynN)mg7sePj zqv+dg5M6o3JI|phs?}0{NR^@bk-+@8R&n&g9WR!QiycZ`UFuh2M&!;ngr;GcW#w-U zEzpzIbTf6lKeSjqEcbHQMk83h{M>LcPhu}5#%l?H?gl_bDw75|>8N&YmUt><$8ve4 z1UnBBz~f66vduBo5Ziaa;YM2Tj*U82f6BY(cB4Ag%^ z*(E)^LP5{b^NPzZ(Gt5Qg~)|b$08KT9Es)fv6uqJB&|nySvQGKooR@8(AT-WVRW7X zPv(u5m@F-ZeFDWPy&Tdw-u-a+)(xnjgbk>vfB?S%4M*S9Qeg}1==-{jh9W!A!i}9P z2giZ}Jh-(Gfy-UQ)a@K(BMZbcxF zNIo(!6%f|bWA)XDXlneOkn^nyy4ILRTgZXjZ{8(@%B`G=d<09gT(im%$1O_|Mu2R8t;T<$s1Twi4P9h{jBt|8p zQT;YAiqKuQV)_>r`~Z4z?iCXR8{zC&GR>m$l$`W~5#9c=)DgbBV^u?W?57r}Sm9Na zv{lf}kb(W8;go2C!?y!BS=obp;=R3V`v-Ef?18IK>Sp{>-dS0uCmo45s~(8mMOR)0 z60IYspRmaL(L&c+F{?JEgU~5UFIg5KK?{}=nGgtIsJ7|7>C*tb#w5-nis7-CB(7TN<&K$?-PexC?~U__IA9Dh z?mb|e-lc4nvVxxDa*66otXmGZaRHBgPkiN>5U41Tm*CqwPHi=95yuv*M~q!@AvR>^C>H7qAqYr6Q4Tv z$r<52T~{)t?`J$^rY^~;PCX@RIqx!A=LDhq>O|H-`XTaTPL3^}CtL*sXw=JK)#}Jk zy({DNioSuCvK=)I1wAUBysx@vxhfv~AUeuRe(YH*Wz(&7Wk4xPbiTOhhSY1lhWrQ< zTB}Ut&~@$VO_Vr0b_pFld+NMKyoeyQ86xej2OpD8bjdb{)N3k5;nNVdc8!QbuIfl5`TZNF zXbhO^fH2r%v1~=rapltIte~*g#*&s16UZnK8f7LDmQHdeA4=mLb6-Vo(9ZNU$8O%Q z<*lZOGAE;3J)xe|wg(op(d*N@`E);Z0Mh9d^_65fct1k%A$90d!(5=whGL9n4T)2J zMwP%|tp!bIm-SQ0kx4#fiXfO16!RSGL8I$?3<9CMt0lrJF1shsH4dnXj(trWrt!+> zF^nP_O;BwjkbKaB-S`MlPcVRxlKk-0Qi_p_?vZZQ>%;B%<9)l^sT5~rWLA$E+&enN zu_%$YtRvR%AX+#|Y8Vct4FXlltJPyfx|0&EW+}|}Jws1R=chqay+xNB=UjWlmGL}U znIr6qn+sY!U=UMwwEi6lyyeZNf{j$>%1=CFs4%FC7_KSFHOX&b%ROh$DZ;^LIbksA zuX@u{a1)HgPm)pu=7Nj*o=47)DwvbrArkn`>NG)cCnCkGx-j;kuovZM#=}xIPou}v zmGzS?k$%74h|a#zQRLga{5o@(%%(jg79k4*{$p(A0KY{6IUYY?gJyoo<*kD!=~)vE z#g;|fNIGqd*$A95br5bxLpf!+s<(_hR;sgH3+c0;ssyz*TWM?hysalV z5UMp^IK6oyAAY*c=$X9@z=_!LA?y{LhN zgawNDAQ)u=6nf3NHuRf%*@S0cFh&5yo5e3HU)izvcw_kT;o0~mkRga1{@81T1Sp8w`B#cyGqe+*LqfKC3u2>w~g z_;;{>sLnDo10~LZM!>&JoPnz1tn5HLW#CW+&?lIa<1Zat_){77-wXGLn3#a&YQRs~ zb#~ya04EU>(4(D|9Vl8499#I$*5Hgpz}?bj5ND8JcyDWOWNiP-*B$tdu<<7cN<(u8 zV|pPob2EK=efB?*?*6@DfB5{L9@3mY4Yz-KN&}_OnVEsw^gyTgpQh4`f9-_HzgU!? z+4F~>n1J@=oWMo->6Fg?OMVEbEB;dl9;h?U#`>3yy#U8c=$Zb^efxJR{~;(2Mxaj9 zFL|b4rqaNH6DDAYKLz30S^sY(&p+zozvS|Pb0us{z&r*n7I3HpxM4uWBo=0Rj{j)8 zEeMoHQdW?lG;?tH$i={5|EZ!A zCr~5`@cVor3Uq+@3pCn)pR;~{v%fbcumCvz4UX7V9kJP2L|J=NbBSccJ{c#idHU=H zaY#GudoAF@%DleREQc|x#w+vtP}T+YC4HqXO!sjYre}{18%#SpdEDK*DLm|5-TRIA6YJ4}I-k_Tr6mAN z5vE~Ow3->!Lu*S3#t}?R&FMS0S6ipluAM1s7gsV|7^$Z8u}1?Vo#}RwidD4fYP_lx z7Qtv=^1yfW(-B)Ge>5!7%{!miH_$poZ`B!P7z9e&d@JM`U!Q6f$K>=h`7FVg?}w>$ zk`%q?raYQt*DUF!!EoPdply>U!E>#lO0GPSC?Rt?|rtJ@@UbuZR{&D zzSh~AgXGC<>G)FFs=MG42MPLmW~FLn`!@Wlg3lZi-#DIXqUqkr{xP`LN!mGFCR46E z3M0lIY~SYU(W`c7#Ffw+<-wRU+^g?iFC9+MnK>wZASQUC@x&#?4}3wQ_woC@^!^I= z(vXu*CNbu)eW)|`tbsZh8uI#xHw1n71Gi;)#b&2$t&6|Jj|AH*x#({;nLN9nn*S$*N2|a_>V`C(zeRRqAku=Ym%INqx7K$8<>_Yid zZUiUOPCd|vC81B5`SBMTX6f_kdc7#zc0Q=@CxJUtQ_o27<0S{K%r5II|UDx2zY!}M? z6b(0*Wu(nBG$>$V!Tb^-H=7pzk>q_G=z-Xi{ix#sl{JL|%x*aGxoB!|^PTGw$XE7lzbU+RVMn|8{J z&mZPn*RLfr;vN|_@N+}9(Y6$-S&p^>-rOd&{IO$T%f}IJGJ0!W z4cCN?1vBU7L2*^$-SYPlpc9%fR|Gm4apwh>>|GE=#;I5}m(eQia^+Nfl+Z&m1_5CvkHO@(14 zg^JWCp%A>Thd3?@_4ZIm>C2&&eNJL$x%N3_74sJ(+t(fHEwsZP4JBA>=Oc_r*&jj) zpby$Xu1B#0YNME!(d6pkW=HF+Zk0OEA6UAOj*6R)&v|Bhf(;srH3o|4st%EJB){gI zvN$`un&svNnh++}v*m)H_kU2MfO5>k6YKV5eKJgTNN{gBS2CPf&AZC6wgJr7UhR`k zG{+?*ZESG|(~A3MdUd%nZN8{&z1PJ*Z#)DTct;RBs+}N+(#$p6*5S5{;x2IBELoWO zGdlWY>wL|^#F!5cGtsKgRVdKH&g8L35?5JsO2-})dG6J9eADqFLn3A%5H)NXXe|Du zQUqrr7WE`DgDM`pFBKhuGFIPt$z*VNUjC^O1iqgCe4?_4blClj00A$PSWW}MRkbi& z)cch^XAjPej97J$bH@OIPsWUD2~gYqhw&(JjTCE_l4(3xkXM03SH*4OT^{h5`I<;iF&t_#C< zOT*tn`pQ#JlInGhF(@@D+7((@qF+$CqILpMdSKByWXX=G-!nqq^7hZ`yTLoSLAwPv zCeNgK#2ngJKa*KQAlN`z+nAbWtuhXg-Je)j({$|8dF25xVmJIWat3XAT2eQ@)-4ju zj}9!JO%|K0<**R1NexD_!C2dmyzHlanJ<*VlS4jwF6IvkWR)*8QVnc|YNO;8wz=;(!0$^A(Qh9E z1V_;X=s!z2QEj#RD2PYV1{BkIYtgH^Hs@VX`ZeBUL47$P)w%YvB)_&Mg3PiyAXA&J zGd{CLb26rCM04+()?62hksxSZ|VbofKA<&?ZbYSu>v|)mBfeH7Cbna3* zKe7g(5m)%x2eVb?+xuI_0`#iE2pDye#zl!q0UJo6@0K<7mV_mm8DkQ!7UThsk7d*P zZV3cB%3yJV2?P?|#*!R#SIj?%Vq#rAc7q9FMY1}Z#8Aau_Q+6^h)I8>1lzM}G8T#( za^Yz<1QSxF)G>rlJoD7?4cg5PdL-MbR6UXZ01GS+N31l)9j26y6lXjT;_u2F8Tw#c zhI~EL=LH_YRzkE{xb;wS`MF-De&j*9M#J{%S`DGEX*XA($rn`C=m~Zxv3_^{?A1eM z{(7va&C6{Oy;VEJ3fr&LukCCfB4xKO7p#xBKj|0>L@u z`}oC7R-66$d=Y1G`ZIGWm}i}LsESkzAjC~*cFQsww-(j<6$IN%>^>QJue(9=;P2;# z#@X9X>l&i8zCi4F;l)x_=nUA>XMB0_`ZVh=KI7!Ux6P4KUT-ti6?L?SwV0tz|yhKO7U0Gmn0OP9}0q~;bU4x*RN1&OW-20!oV@(ea zsiJkkWfhWbhRm(GFS=@TkL4!gMyVHczy$gp<^uSKldd=j~a2`2WlQ}~q? zK@V%L^gz_bNR2t(+Q|*cCAv68zN9I#Fv;$Z5wE2i4g_%hhjrblJet_e=m!!p%oxlZ zhB6CKQfu` z^yL*`gU~aN<0o{>*pz+v<}=CwI(x77!Fq77c9R#q-OGqPmf+^h13?hIwYxrdPh)_> z=c8r*$`pxwqW)Jy3Ieh!T4kb2eF_xiBYsB|3I1fUnTu%-6L~R)?d4b2`O13`60~zy zzI9$d50=D8P9U-%XE9xU#+-tl4w$XJ8f8}FMY5e)I)@)F8}Ve zEo{*f#7gsae$GNYL1q#0j0l8eyl}~3E18?J?o(UYT)R0?x( zMeJY()~ZPj4w*Bt4N=t@a0x-rm>HE*(|R`~^?`v;sOp&)@QPBm+|y*XFJVYeQ!-y; zPhfozo_SF44JeQcl}bk5fwX_sRqden-$7>VuK0dc#?U$G0A8k_pdSZMxC#>^%(bZm zm-WRItc~%D6a53@6I~YwbKz?KKSfeNCEmZ&fPYmy|8>{-NfQ9PwflvjfJzjtSuWxGnhg;@fU*Zq2fr$|SG`?dc0sz&ZS%BY+i5bYMfYQ-`pZ;?!f0+RD zza}8RR`icSu>g4k5HSGQ+30@`HvpX$fo_HX4j?)D>+sp{kp9Hw4Z!q|36|f6fj}!o z08ml`0K^^uV7$zXKrIp$pxfh5L%P43$}s(Ni4DN7O#8z+{j}s`X8}rhvjZQ2M3fom z`^W|W0tld~;r}gq^(*WD7!xOubOCpZl?llEfJlu6IFa(xl9CxHXYyCa1Vl&wlnebj z0{;*bC(vmUnBy$$j6n1WL}@^}#{|rA7T}&TviwJeC8YWDApCRs`7eiM{v16r{RgDR z1XMg{{9{l+8FnBX{;Pxfo#lVJQ2%Hj`km!Wtn};@7S4bo9Jjw`E zRQh=xU=RhaBk;wqiv@$|&!hAAg@8en9rzq*i2Cc7fJX=i(ERh)^Zx@p@z;grcl>`B zh-YQ|cRcYF$P@7gFd$KT;OT4TWK)b~MyckWtE)fB4I2%jd7uRNF5Jk9Ze0)HPbd??79%QZracb@Hx$XptS;VH?m~l zt})pzT_neDK7qwhFnWIBl)TDGa7>aPr}Z`Oj<}BBosI7in(Z>k<7Xp8svN?o}D}+f2(!>E)`Hgk`%kGyai41y}yL<;np#lBPb}kq|tM*-t)9 zJQ^%DDB;)1d!DlI)TbRhJjS?WkCClbBy>BO$p>F7rbpLKzTpvdOA#(DC>NGCZGH$* z9;~XZrmsXcHMGW$YsXidCeu_tp{7BHeqUxxuluTmS(=!=u znw8r&o+7-+fomq@;o+IHh+{_2FPEDw;?*K^ilEC=5F)5~m9>;*Xbkc_PVC%;WxXi-XIV8qn?dUc}rY5GEqRB0@G@Sk!B{r+RHldhz`C@k(kBK zCkXLCjevmGf>U3y&% z0>v)G0aeQj0>0}g3PtvLQlPej?0!`;$(DV_bqR4&*l!;wCIRtL24=8KCh7-+&=#ss zj?h7E5d7?9)X7DGAWDYu@+t_M!Ns6h zReWE@Y?up%M4n>uYB?NTyH}cqb!5fD;C`$|wNVxY8O=1@Fn~1Me4M9(K=Z9bZ*c347y)9kp9f(2{W+p{Ry>okIV|d}$O6kso5pq#0p7d7<1o!XbW6^9lM?j8zxU zyV9$M77C>AR}9A#eJ+RUP9E|GiR5!-gh}egv~|_pDfZwrY0z|`c9bzWOuagRA>nmU|?i(CWf#;2X!99!7M zKbHu47u>mhm~0oL(H$KzXc=BxsH(N*Tp3N?bNB#Qc@BYjKdk|yvJ;xRX3g(8UsF|7 z?~+1k>~1`BcvZ*t=-NSQxpDroSaGoD>d8VW#Nxhv17$qXxJ+JL7Kn8lZxrn zqZ7{*a%WuohU~)ikomW^d|0Dg00J4n+(L$AL`Xsr_BaN!Ae)S1a;QgLQ9_)U!qeTn z#|HPKelr-A?2%t#{fIGV)?A_P?-M_w;kVwMAzT9Dsvp-6L)UJ+E? zZd~cmg*%1kK#j3hy)>>y*>ovJ&C$R3XpkBUTbKAZFZDS9GOWYqUa}w^c}|UscL?S~ z$>>P|Bw8@0cZ>k(L^#S2z5D)Qv0D-Z&agG~{ZR|dV-iVYBr7o=x?YKq7Ip%A04s*c zNr#oS^VI+$8+`u)t9=@vzHSz2$u??>jOY=nw~I2i`;8 z7}Ts(ukMcu4+OCd4cTnk-hq0H_!K|BtL1zprQzRvU(5OZAQi(fuypR!?K5E(f+REi zxk{;S+>wsNJZ0>{&JGt#8oUxlMRx(ME{;mu##h4dnnwZtIF6Xz^IS^yq4ZFDkXUAS zvXm2t+S41Uoa3!?S?ir_83Oc_!Qmt1DF0)T&B)6^pE#L@7WkG{(bYhkxNh!4a=Hz0 zZIZFI$?t8fUBr_zZ}S_`B+7*p75Kklz#pb(P4~8>itr>`4<)3~Zq050SNDF!mW!5%F^%nE z`uu^JX2bk*&uG}uY3^8J5Xnvl>@%np4N7wqh^_#i0sN}-Y~{{Ws!1uXgBO$b!LC>X zwZ-T2B`fvxNDRU4N2@5WB)%Gi?zrUB>JErS54vb5vyBn2O+^S#_=l`;1M^9~AvELf zgl8l8=ND2jdaN*O!JNWxw6$i?Pyr*g9vF*2K@=ZXYfZ&*%Ba;h!#J8FpW8ZzSnm^hPRQPlZFCIaj&z1Uv5fKz?ZBdhE{en_16ppU%oUr z&xhGr6sss9bWY@|w5ho7rhHs9vOHE-7-`V!kb={k5M;yU=Tm8Eu)=A|vIq{yCdf~E z%k1wpV|V}h^&aI-QyFs{jJ@-Nr8u&ijDP>zyEw!gu!1*ip=LH`R7XYI_APD;eAsP% z4AW&UL+pl6ojeR|SR!P7uTq|gCr#D?Tl9e_M7GFH z`7t3W&oG;&ATEB3YV+O-Z$vS}?Nr+Rd<-6u6 zK`JnUD}`oy#HrLb5qzX?rlqreW-nCfW=$?pE&~HjgXWxnC3nP%-}3p)ldS?*-V{w? zm!|QyCV%+SBzf5qG0bV!K@?;)VgKM0LodtZ{MYA9!`BfX6tRt+P%XF!12;v|(8+vT zv=?G*myH0{Hgr4b_!rO#Rn(4wqSs7e2m!kWKs7(t9gChx@OLUGe^_lS+c(7*VENPn zCNVwbfSfR`l);4`w{ER`O0~@jO-T7}YG*c1nl;35AGgD!TgU8Lfx3;IT_+f~5$8Pf z!N(0iwVpk^Mf?i1_3v?XmP*l7-eeGcu)HCZ^-a>;U&&n)LLG`!B6A=Z6LW}H05I6s{Vs6 z%h>dZSW;ex%ATO8V}4dm=-jmVrLKrUc<1C~q)Xcn3$!cY^W8D1RoD-E1fuXP54a{g z4~qmfaJQzE0H+)Vf2Rjzx|z1H`yqS-OeL&UxgqoXDku{{s-=3Nukm$ZcWyxpbuJGM zmsHQIS>ks6S=c>d2eCR-4m{Bt{`{d+v;$TQV!_{m7Dt0-xte*JfLJCo3Ng@EPE&gp^lXFQc+0!_jXOHelu z4uqCA=?slJa~tZO6I7XR*`ok#VM4iCTQrjBI3ES~RNtGa}f0%jZM z`QM)$pIihpnI`B9W>IQlms4CNb>8V!1gaVfdX+|14QHYjhkyu|ahvZ%>1nB*g z(1!G&BrHM*=W^R$-DVT&B5*TkwbsLq3rOhDYkxDD{+R#&6&bQ<>MeasI-hDC>dBwHR zboVR%)CPd!A)LvMvk7>2i2OXq1Z#xYaDQ2b&3c~E$|F|ca|~6a7HJ`OaMTP`K!69SNS&;Fumyow2%h*st!bq!UbijTEGA58Vlu_l zMNo4@zMj%hq?AHRX^fp(-ks74vkT&@6Y`xQxekZ=KAk6KF(gRRsM#yX_%~{u z&`&cm%rQRTY|5=iTWlZ0r#_Cjix+hhKM{6oSxR6&m)+`jF1|H2%R|tCO%=niRh>(! zfW7bHUFlnwIUh z!j*()+2-08AE!5m7%hPr;e3#^SAgz_@Q1E3Oke&PmwP{7YP@H__DvISQ|+3x{G_u? zIdjarH6m1n)0L5gk9NhnHN+9U^PKdtl0+<@oLB=etAl10^N0nHb;69;!Yapv(&a>R zK(8lz?a=uns~ckTB-tc6l1Wf3YwfCH1(1bssox%$JRi%ARC$_-o0nXELhQI>!*^Aq zLzGD8cuz^N@rk&|vIz`K%!i%*nD#Zj-VPUw(vOi0VNJ2=GxwC;C${?_942H_l4eeH zY@a^RPs{n_mRz8RhVPdsOfNlbBo^Ne(lG&bFyb7Xdg+=KO9{+COB8bB%t~^Du0ydn$B=h3e-bV zde-jyr|z(-bK z5dpvqtN{I|75N`Pap0=|*$(|jC=O)3%)q8#CLpnA2X<%zQ7;p)4#dm|tOo)9%8-DS zq(2MkKOk`yR!({rU^hAw5REhb>{n(7hWN8i2J9UE&w2AdSfziF$N!Ot0}mzuJ5Y)2 zmlplc)?f}`yZO%$ndljr{<5w6NyM4y|EzTI>rC)Fo&GCC99S{~hWP8e#UT2Bs`r)= z2+>*pM&19SM%-WL&EH@1@8BH3`S0g~rEFIRQ95YvvZWCDc1=dBO&4a)?|Xc}IfiTq zVNUhFr0w;%2um171W&)g&}8%&bc}xNdrXzFU&L3yUooUbhVUbe`(9e{bX-R+ zX9_F((2W_9hwC4^7_myyrpuhvL*X)ZiMsnIj~42yGN$iYJkl#Cz7^wRZV|F>7j%W@dDbC7-;LuGtkyF&J`e_>A>f_!7kHm1=MQiJKwm(T!_oSkrf{F0+I0 zJ9h-ul#5(DN+D~9+wNESF+JWLC8j?A$6Xt@C(LjMt$?*J@_V_*u~MS#=xX^T{p9*% z7u%`FL~Op1<5Cgd9|L%z4I6OtR2KDwv7eX_hfD^!R1rdrl%tP^<fulVG#G--D)WQ+zGFeV{$O)F`WubfNNTJ@y45lKE{goLzyp^^s*q=%lwzlxN z6QenlKZ+ta6BNk?XK)2!bZZ|4Y&>WvOtouzqA1~-p5}Jee&l#MFtlNQr{)x$wn=L8 znLD!t`lMmwj*=zI6k+(z=z(GNN6ZyMGTSu0rcC2#h5K)M)${Q7M2 zNKPDUL_8yRVj6m$HVLq(Y#1jbXZJ<=$$_uoGGVLb80swydGXeL!EhwTO3ciQXRQtHfy=DH&a_qKA6RJ z)Wa5q^`oM$Z=rZ&?Z?52?Z;WVXWIY%ql9DjO{^LRNhc8|ePmy9NK>YJX-vqoT|Cng z=Cz|VKxkb_Vt;U(dc)-8>C7PBxUAJ}-lKYu{b1zQm{)7}R^FEtVTl8NBXY|Zv+2G; z;v?Zi+n{Qh2Q~WbuIDNYLK#KcigJUe!g<$Mg@GokB$fRi?p&WzNuFP!bS_C3i#Gphud{5i+U;RXIq~CzJtdu!SSSgBW7n76%@1AVrVS2PB$DPe z;M7Iiupox9!jYdOgLp2>6W{y05*1h)`zGWF>l~~YS3@9z_X+M@`UyA-d;_nU!tBXFUn4bS#^d>dF*(aTkrkQ<+3pjQtqE{ z+66yfa;Pf*jDBC}yZ1dkk|g15R<2PhldG8z-gF(ITe_LVbb?q6!F1w#OvC(&+j@tn z*^8<6*>X>@s^4G)VbB6^?@5pVdA;CU!)2mpAuI`*l&ud(MnY9Cf>(PFwjW@)A-LmH ztUairAbUjkv&>dj*Lx&XUb4*jqqn2g8)m*g)Xmu#{BW@nEq1 zuf9YGb4X$L33>5@nZxVne&uST&@hk><%WSs%AB>xTvtLBPqZj^)1q5g@<3aEW3=3N z=JtX1`ql#@G5KAxapYvRXt5fJ3%V*BOwWUt>Xv&ihL$9ZEIKF#&oQF&|3lnc2GzB# zTf4Zsy9IZ5m*DPBaCf)h?(XjHfnWiGyE`PfYjFE!vev$5-Tm$Cb57m0>lQy|K~3Nt zee~YPtoHQQUhqK>UISw9grYlx*-<9d${pIP3Q+bBy4e(Nh48s~Eo(JaLh!u_T2qE8 ztMyFBf^-C{EquUR!VQpa9lk4KrJuqPuqM~*CEO1LFs9}mC(Y41`b2UOA5$e3m9OInU0B!JDz8V>O?f*mt15sTP80GQmFclUi|zxDz)IaC)#}~&x#c= zGQ$#tXZcKpmEb?gnH~@dZ>!7}hyAz)EM!0aq!h}q2kxe5K&Xg}v?fjtp>2zp7S%MJ zW4eOVCu;Y8E4F5JbY8oN>lg@+rXE3%+Ovg+_FeDhYJ_Tgv$8o7#ZQDhaW-6zXbnmV zK-P-_+_s8WO}6kZro(ulO$94EaqTI$Dr z%;275bCh%~HYT`Gs~+`hdTa9vlr=aiN%LX}yCy9;Qu=E6`NO=vy6YhxFleGR+o`gz zrpcW&MjWWL67P{M+3r-8RYK09lJ?##tjHs6EJ$;$F^`pMp_@0siL{c$-*j@qrY2gL zRCK>vODO^e(vp^{YnFxR^}Oba#G^4{VRD3DW?sL^G?T9~qE?XTaBqIObwm|PIj>P4 zt-`BjHqj(plLl8rV^?8ffZB0M`d8u+pEHEN+ z0`Ym4l&J6Ql^-GvJo&I;msas~%2WkgH9p3P&t0!Dq$-WS4EPAt20rY&3<@HhtqtNp zgl`xV!XbIeS3_$1w?kw}Ge+VuPU6!;r&ZR2HUvHu!+kdmLr1Bkj&TSr5juFEc3v7< zrH&EA-O*9+&~rpq;#({_T1r&i%;`GxO*NC|QocFq$@`#Jue@W3iN;^77LigwwlI;^ z9ikdQ^^H{4Q_q%9PRSpf*8196X(piy?kI>{)M3r5^?V=USNo-JEdeuHJr#UO$6SIG z%rE}NqiItm8UljWgA1NFt(x9+a$<9D)CGB;^J0XxX&THry|Hx&&HCq*N3PrX_FL%6UZ3#QfHjw62C4J*Jg3wesxRqX%HmXzombk;(@ z2)j?{mG^Z^7eW&VEr|74BeahA|(yw23+97P?Wz65h~ zwep2gR z?x4;46yO&@SaVmIxl9f%)OYO2x5g5zu%Bve5lQN|HWS8`Z$L*sC<*A2I)1jodQ4&H zW;WaBZMse8fE7aQl}4BPLqLnmXJsfjWXX6tsXBw5{KvfWM;SRO%>E*Tsfaj`r^LBJ z4O>3sRO9wgD>!%%32y`YQf-53v!`L3%Lv|sLzm{Evy8d4S=-mhr*S|_qh-O z{WRabU^Gzb8eC5kxK15Wvv}kmy_L`{KtF6NLv3QV+r{D?qZuP-D36TW(z+ze;B;#E zGQdX^9c^QcG}rY)>)?FkwVNoz6Ypn0`EbXk?j(vYGXiblfbtn7NZHWT?d`2>ad%yu z)++VZNORafL-mfd-rXWv>af=3BllhK`={mC$Kr8Us-)YTu|)7-NuXxrqYh~$A%k!m z@f_6!8eDYk)C4VlDwkpW5@?$@K-8<6D~Kn1 z63x+kbH2~oft%-II~+;+0@?6X)iNP$LqUwkTw`PEkZD=2N+X9$raQr?KxBK=FzDn* zY?IkcR4Mce>Gb5N=1UoXdZbjKt5j#KI+L@Fl%twql%1EwR5_rXoQg0gjIt{%qVfjh zbYr}sta7r0Lir&PV60*@MdfoLF-5uFk2~Kwb`p)1^B>g{^!WVaqg|d3QEA_PQF~s83KOEdd`RQ8|~yqr|SK#{riXzo{he zgfzJLgC0RYdojJ}#7efsw{kt>$kRLZWVgsUTO|~g;uE?XovtfgxZEh6l&GMpaIwnW zlWV&^GA>q>QcFAjxfD*^Jh>7L`sNQ2r7WRGOKZ_%`WB5@L&JKem%t=|-S)^geKu6s zvg~{P^rrx_!O<6MDIuW2CGYN>q=Pg_HppRc2uB)B?^azI+e}3m>9zxyS^NaMN>;t9 za7(+wL<*<8oXVKYkX>(#_f#e<@b8G@IA~siY0+@9(drZ~D*_Q6dd| z@{*8R2#dYddAKfdtOrjB>`eRT27ov&%BKXTR*E44qF^NDEt=l3QzTPW=QoI*5iS@T znU0EkS13qWgBOJOv3bdWh4t1ZY^)2VzucK3C{IJ2;r2kxumU?-VmJ7^V#I zGv^82yQ|%ssq&tuw)gwEK*W;NepJXL;e8ixed{7XFI77v-faac>a=;d;upAH1J9H( z(!8#-T`p(1%ZuizLev{^cJx4IP>5FCCDYGoJgVFy8i{}o7Zpk&_|1H>7cq4d z(UBk=oAUS@+p-9nb3U5JYEG4n^I0{ zm)G0j(Rt+?Anl?Vj4|L}3jTmY+5Zq*|0mW0mOlmmKTd-J4w?Tc_ydIEUjjeNpMpOi z2jGwIe+mA8)91hB_@AfH|M)rUpVkDx$@E|E19Z#$e_{qqfRdO2W5W7pO-z8I02vxYtpACkey7m?S`2@^ZEPI$oPa~?|0s$XaIF95 zfc-~``t4l$Cv3n8pap<)+yHwBCxH4e0Vvqd2Cb}YfY!B~e`~G?!0Pe4>GV(7fD1q@ z0LzmF;HF^(I7xm24bGp2137v%j0S8;KT85Ezkm2Lel~6X+lylQ9r5|~Q29$$EC55s&tB2YOziYrfU17lYq$Ut z>u35AC)eLRq1b*mR6n0^e=Q2I69IfSDN8{g);C_8F`QsM<1Ho}Hvivt$IAiL=j@oVL>!i50>v|=T(skCoK=cD*7}d@^ zBE{4-4X$UjSO_HTq%-8@WjC-7M|d6KK#&6bk&fjZ7pR2xoA{GlchcwUp@*KlFCCqP z>$i)MzUS-u0wb^EC2lV3UUxZ<4IlZAJ!-1eef&Sp7b@x`o@t9^C7tVU-iW@HaG>cx z`O_FZd%R3NeT~A0OC~aEGiAlXiG4cJKR)$#Y1E3b#atEdSj<7y9^X>_7Gkrn%!@OO z{=|qS)$-X#r{)Z!aP`X1kZ@H0{8Qw-Bg_5Wjlj2Z8a{Yl4HH=TO7Yq@Hy;|(Md8sI z<@-TjlfdImd&P>Yl5abmJ)Ot7UiZS6HJ-biT*a`3^G09Zy6ix@6w{3LM_{{JOoGa6 zI;*?h-9-`e_YPKe7ZcGZ!$5Ak z+ZaC5aoD-zQ3-L)eFFOB~k?T^~BS7vZpeZL3tLQt#tGJ!&9&J>-eG4Pb5XSr54F>29zeD1p<dRepboaz0vAYlN0@x& zb@cbcSea%AU%ygI^15ed=(nf{N=};Cz9?0{YgI~47Ra3!k>bf4&_h&Jp)0bWN(&%@ zF44Xia4J5%Jd;)x;!~|Q$j<^q<*uE$4)uzRjL z`mK%VSl<5D<^gz+U<>3MFtK&p3j5?LFiPKEq0O_9W31SR`kux}o}M40FO+AXH{UNU z>+u-KXSaajg867$t_PIrKe+d^GafGgaAn7n_3ex9Z8E5woV_t`*TVdOU=uYW8ci%h zOP#RjO()wKyb_EfKapK;(Zr0*ttOfjK$|jUiuQNZLGvWlo#}L z+q^=Xy(g;Vn2k?DW_znZ;+|U@#S5c~^EX%^Y#~YmT;-52K83l-EVpf7e$EHclt8XI z*^_V7mczE;3L_4+C(|MP+?CbOh$5nxIjRz9w1$IbH%%aZcuGl#57Kg>8qu z*JZ+@AyahOq@Aq3d$zTDP;;%ichrKSNwlKrYy4WiYNoDe%k;2k z?FvrDD7h5Pdwa7J5O^WJqqgXs8dv=>{szy(aHKlpLQlaVWr!;`?cb2Ub`IP~r)XRB zlhtiWw8;nZc&1-H`#{>;-wB+?GEi7(Mbrm{qcBSH{3a2Pc9;u)Np(;kD*KM7Tw164wpB3ona83l^r{b zT3o1r9NlZkPzYn_8+!7OsF06 z=;@fKbDA$3z4Wh?I`XZ%88W{(w3*L@wI&U5v{{Sr>|hLWxftdqAM(R?Z0zcgKhc(T z{s;{cQ56ukV|z4p6xbLbBt}_!e0A00R}OT8tjQbfxE$0~ET<7BND&hQEWSyMR2bHU;17K`d9=?Jq}I+cak5WT2Dx0cflDM4UA}X0}(Ku$?|D-*_AWa zcM<;xZ5Lf8#JMqz6|~7xWn?(++h-?=5v$k`l^$~lK9RWEdSZ~!S;gY#XHivPHE{1E zPQ!Y?)I4lTi$fLDMp+fGIQ-XHEGpdRyIHi}D^-#g3sMB)W?U@s#y#)J5L#TXt9{j-t|CHkj?8lqj>dyjSDK{LLa5AZbg4 z($L-G>yqKyXYa>L_<*mnT}q{!SqmdU50^>0+}T^3*T}TaSUTXe;F}-7ROf&jR>7#z zTN%Aj@1ujoauaIJPR2K)EM%9QLyQuWD-&d>{rfz7a2uqez^g*1-1nb8E?eky7=Su$rl zZhPQ^1P*36nT)ks1FOv2c)juZ#=88x967i3{XrbnHIN{Z#XsL+UY zZj*^UG4UxTC?&kUGOexnXSp+0gPE%~Brk~Xr0Uux>R-sMI>!0$lGJ>uGDw2;-Z{JJ z0HOMMx9=!fjCO+h>rtnM(--(L8qY0gFjb!uMb$-w0f7=kQ1c?vQu^Cr)h5I?6$B(W z^o|i+wBm0*u?E}H|$IG7_G1(?wWUbp_jAphPKh8!L z@6D{BMi$FqN@Jtk=Xt7nXxr9A@S&|%ZO255k9yYoXfU*lr?h8t#2y0&m_}wkxN;KG zQQVA=8_wWqj>8OII?uQqATi&tH=Vc3`e3#v59JM0Z;A&Vd^XOs9IVL4$}B~y@H6}p zvgsnZzQcUzsGWLdq&8>ThJK?*1JAvd%1RtfzdM^+wc!vT#>ZxNonj4V2u{kWpxsQq zB|kLYHR8?1OlzQvTb~N@3B5iSf^tXVD-(n0Sx=tVxiPoYK9L%37j6ujAM>5wCw~;v z#)F+7GoK z`1m>{qH|w|ntjqpWeA*UA+(@BWP+$jTzooo)X7h+v8M%^-unXC^U4E+r@>y$Sl~G0 zDDtg%?i=doe3sGCGggLS5W0FZY~K>Y87#`sQ%kp9&4J+pD{`N_^~)MH@MRc7`?;!n@klE}+S_UN zZA~|O4IGBah!ge9gWux~ia^QN7*GW{ue&}`9`dEL?sBOJ!&|0fCnR5mXN)8-galbb z=Ry~KfGPW!n+&7kBi8N^#^ZEP40QCCUYoH8@Qi&1##p{;QP7O3unpStYBIR=8w>yk z7pu?!!-y#SN^L#7n4oVPv4wb1$;J0>IKf7&YfZ%fJ(hWPmT%o>;!s0oL~dR3Qyx5- zRsTEF;KNEV|FNl&S91D0_0!_iO;QMTAu{R|u?yt}n^DA~n(KCsYzdnbF?`?5P9XM^ zmQ7iu*5Oe>mYPPjSd0F`)~O<^lpDI-xlBO-r#_&H4DBsb0&>b(o%vsN3ZQ0+qt|^>9|H2 z9{>TC{~lxIAZ`#K6~!~-K>g$B4jqCUN9-LDTEcsQvSCLpqoOZ}hU&NU+L*;}L-pn1 z=H9w{-{XV=Ya2?+Mm#mGKihrsxK2~PZV^xE9DWLG)NRWH-B!c!lP({Fc6jGCa9EiU z5JwCZYi_LVwkX)q5J7@$y-HgdS}~?3cD+*znt_CNJxb#&nW5F-+IOZM+knm}sRd$q z)wnVv)#6(HW!Ac4URkpmb_ILQjw(rdWGIZvSD>u7r|MDkjhpEz00LFIU?6XLwSdyB zETbrO3M7=MXT~+}#Ym@pP<{HILZQDXkQVcGioz(Ap_cc_UZ$DCw%tEY8_UQt7-bj|+UtX~H2G)evEA;YOa(KEJR^ z^*cPmjc6!hs0v_o@qLLA3fYiR0fo`sdUTaN2TkW>emoqC-Ino84_lFj3sNX62w!n+ z9gDH9HDjF76l}m*;pZayF}a_$+xN;7IR2EuHX|blJB&Dbv~JTljv=dI<=S1nAXE+} zxI=(sQ4Ji%hOYZCg+H-*#tZPP4jvx(apY8Amv`EzVvb({(X*|vEB3iBPWGA*@xfT! zTdF6B;=3P|@s9S@?3E@Jn?a3l(4}ZT#BJs~Q1!*=GITmicO;DVF^o6ByBLNQ(s&`v zmM8ZK`r;68K&LgavlGzg!zE5TJHiCra~dLbimsxxB3sYIAll-eNpvA$fXdbrG{t0n zwSjcSAh^D4zz1oWTT}TyZcUVX;RGvp)f|kNB|(i=_O@9w(SEmq>U_UgpjGQ8tF9V; z>FQdU^}}r|r(YD8W)^+f{b;Hl&(KgG*TyNN9&)Pu0;g|=UaA`lxC@8~#H9l+V zhR>A0cDOYNSf>wOFgeuuIl-O}v_eOyT>+z6#3oC+JIpW4*?lp0-y__r2>7Y9HWNZi zmY|gjvSclf^~ZgM+1!m4oWhe)qT>({?%WeNH42&;H^Ps3UJSf`AYI>zfD%58ID)fX z-Y$?iOXBiVm5hx1_s6Hj7AyFcJ+Tx%HC$SV2T&$^9Nx}l%1IE@dho8#ZY_pv8t?BR zoN9bh5FvG;Fw9K2*`E%VR#CHoZh`uorfASI1z4mx<49JxH;+eN@q2rWB@t7uQc3WT zqDkI|Fcy{@ABJy{u!d643)fzGZG|{*!WE{>4$yzQ|K!UVdKt!2`fCgMf;W&}KIm zi&)B;7{l{`o<9?dYl(M5+iJ9-aCQR1-)FSWRt{9^C{QAF_(=DWz>u87DQ|_@VIOM_`=<9XU=# z@V$~gf}9$51Z;~n%B#gM(mG~?pC7lxKrVF+snt{+RJ7$&y&tH50Btb>jz6tzyw0(=Na=oVI={zt?Hsc>l3hYXewNnEu{o}Ys&Th8 z>Zy?J8qctlwnCLonI-SpIBO_@YFAjL)t*;%Gi)5mIjXCpg0V6m8HCuw~j<*m< zT{T42^y&cOQTF+x@~Q>!gxTeZ5gtNql-`*~PTG7tJy&Mh$4^+nWUO^KKQJRG&S}?_ z$C0ke>19o#lNcW1W$%wF5y?5*t1C7SI5NW5-8s7NKeMMsuBbD1S7Gjg@AaxU@mo`z z!s?|bN%6ONx8`BjS`7#duGi`Fm>s^L#r5l#EKMSR5pCqWKQ{VqU0>xYD~FswVLnC3 z@QPvpv^zDd_b-VbAlm#NLgfF1__6*;@Ywz&cx-C&0iAm_9$7IWTju0SF&}dH_r}EPzQ4NO<}=ZhtRE`yI0S zwHy3ppni@B01o}?>hP0#u(19y)d7ts{zmHY#~f$+9W4H}HT|V1rk|YSXHx}602cx* zI3~b?`0Sod!Vw?I;aGGDwn?J_-zc|f* zmoYX5$QXM!h`!FLXa9jHoP!C;Z}iAOL-~BL7gm5-C<+LHaV@$tk5sCtkl2jUa_1rV z;V4UcUe>jF$#TSViQO7`U01dAjPGvEX){*u)vb#wyL(k{l729A*Zs$pe(mo4mgSFA z=O0(e1f!QfywO@6grdP;t3PV>N3$E1vMy3bmD-6Ldi%eXl>X?>oW?C_s~~3wt67fC zJT>&G*Bhr#U5%X=)$|W-oX7Uf_=3KwhT21?J$9JAlhB!?pCjMJ^<>hiV{`a!(zi&S z*NbCwtmRnNGlcI|Q}XuJvqiT?eO@%<0Nu5*>(S$}kMimuNjmK~7v7Y(4f#F!lnzur z^bIb%E^RH2ed_h{vTBIgva4)2$;;>RqHiIm1kbSsR4qEYwfICelbNy${mt3m<1fKZ zcWKhMsRvN|kwsW?d~*W_yUI(tPe5aNXm%aIJtym{$2A@*r9OzjlDZGEkGI@(wYN*3 zWg*A{1$+~tu-oFxrU6 zKDej83Q<2&DO8AL)A<=c?2)hGG+8q4D0hak3YcWP(*=6!se_c&uL|iV#23z`_s|J^U%1!66U$7P79I6PNI(Ol~!gKylGah5e8dol1j5{u}9=( zI5=qDI>h_Rp5=#@f^Ren-i)=%3foOmbJ6S8+g37yUqdmG1F=;#6ln|-nu-4I=#4cn_;mpwE z<0m(`wk07ygM9J#wj8H(Z6->+PVdTf;WDX8HL@lo&6#fLWBcBEVPr*%iF63L7<5z% zJqh0ojAw3Ca^X?G4s0JI=LXKrg+)=ObHq{2`BF})VSQwXO+HlyPq>0A>~yHl6B!NN zAdx435x|^|Ell_-t~R0?K?FPcp0)Uj+05Nl*w~z zV(NLc@iGe13uSYoco7i@FP~+st7FSFpA-4-ognL!XJRO-5h32$)Gh=~_L^HA*q+mtB%R7|_CbzC zJ6{yRO8&l)ROOCyqlQCQB~na0L5)9sJC^U+{!R{}YofXD$J|P1DJvS1#x1TuM>{p* z!^LDm9?)k`mq|GA14if@8`ZXVBFGzz{AM9%(*;dGnnXUwC-2qJ7o)$&pZ@-%R_v=_ zKc&m!mo4rzl{Pf&O;OM^!OTDcjdK~d3@-V;Qu0qc?~E#!_l(=t$Jlr5z8|vk=yv8)}g}qyeP0B&ar_%J3p=id8KTnihC|*hbL4YAG!co&asOy;GhJBpV znzTa}ej-ApWMkG|Pg@LbVau9}5#+Z5+)9*F+0cuLwvs+xwOLELC-+v1c!6S5m)Id1 z;BrNL9DZDbBbZC1%%{tQqv6sXudm-M4W37@j&XG@j9tjYxeF^rGclR=meJoW`!C-B z?N7sjuyM2UmXA3k4So_Tlw)=2dbbxVvRx@Xh|LLw3G>$WsZ&lEdOAvUjAd!_R*Tpz z8^2INhOY9#a_CViRs%9m-S69YUv=%tO&6=y<5o;9tOK8l!vSUyxkO~FjmBJm7hyxdRjq1K2^`OKV@nMM&a`l>gS~_2M0pW6<9WR+ zTnP(kB;8+xIZhQxSAfYXT3FR%<0S17th^7CISdVrP$FyP4`w;&3KQ!Ev!;t~w{nHQ z*vfV;{$4hLvd&^U;607Z$)G@U`sn$d?JfuQIHDclmM}@Dt^#To6nV9z1MY4)!{Wf@ zaYs3IT9I3+YTesIy6y|sHyL0XejGH~eXbWa5Opi-VPz@|;WN12P>@Bb;cZbGusKLN zn6TUj_=;eA^7#s?ThWT(@(`M%mW0nW*b3F;e6b~3OWMvPJXP8#bPI8;O{wrOm;%R(#>N7v4a zu8f3X9+TQtEH)006^(XKU!NBs`ASs#wjeVGSJaQ|tJ6$8qVhWw7e7Iq@s5E7sSYUI zFW|Eqx3(?OWu}F7*eL|iGv?%&-tZY?H#4@Z&xk&HD(o`i;|#SU*l$(PSAa5O<_>1v zBuID`aer5VK1T{AklZvz`Wmve#1NVX;fxCjfv({dzRDR_+Cur1I1Bb^6Kgmy6fT^e zuP-d=&J4q%4C#9;pvz;^l7kQo5^~0rZEnNn4I(=YZtG1e?*+%>t7zv)Pi{~`LFZL< zLaKDxTs?c{GqtxR4R8B#mq%Okwto=qri@tD05m(eg2z_b^#m8eJ(c)%rj(N&xlUE72 zK*&LWnHu4NMQRKx(jt?Xz_-F+Duhluadke^4(JY4XN8$o*wuyXBxzbIb0y6kq3l(F z=FOA4oyQb0L|9iLo@Lo#9^tznHSr(O63wMCR%1Mg%i>O$UV!%y>IhdN-H%~!#!;8m z2u8|~^X_}?tRNrhJ*!6?^$3oa=slJpqULS5;p*&DU3O)fMC4mlDbr`K6(kv_uVFCD z+`TorzH;v5*0xPOR=o!L{tEbLbFk~CZtLxt>^FKje`p!BOD&bymq{Bqk`w~ zFR{CC7^-D5C!orJW6lAsxf4TYnq1UP2$c!))%oh%Q25aBTrJz@^vMC?ld4Mv>g@OW zCH)Dw=PTgmPs$KrDj%ysm-oT%O5T>*o`~<`xUCcs`fUe^LaWh=cIkF11GpjMM1VW( z`!!G3vTHf|%a=3@_`*9!X^cS0v1hSbHlXk_?9}jG)?pduMnw}X03q@tV1`$+kKdQQ z6$R2&jh#V;gsE7)T3Ag`TQ3+RSna|~zTTOz=#Dw4OR6$|%!C?ZRqxm+dT;$5UDUjO zu>|Yctc$L|56rXnZPI(5g~Jwfn%t=$-6DZqU6~~%1W3YkBA`XS_$?>v?SrYq;;oa%#-4?A+mJTlt4a><8mRIoW`KyySu7U{xsfaMuayQ5QhUo#9mIM(s<4V*la(mWuC_azIXOtM(V)~F zcG!Em&a7se@Gk=(xXAIbA}LaOST&fJTW&UGz0{N0e28&YwdJgiK@}Hsy7n~84&^a( zo==o`{SFe3T>W`5!!0m`K~)h=d>Cz6(yiTKW$;s))TLoV$()Jqi|d?}ttuDj6IXge zs@8eMw``fsN-0tDqNoxMxguyOk8u3@3g0UX1&@NsP4w*g!N+si#t$0n?VvJ$BHSC! z+QY_VAiJg&JpwTqE~#FmZ=r3gR~1Qo*u>e?CXm2J!dUvkHjX7bB5ZMIJ23Oj`HW}0rVkD_8K4dpc!U8ck2-nF+)R8rY% z43#A;H59f&v2$X(sy4l^)mFLWU`);>kuhrLNMBp$TJ>`FGt|fwx>#|%RFsACv0MXo6IFi@Qaw-wRoJ$pDqMNIJZ<{9kMumr1Xhg1>I|d+9*{R#FtZ+ z&q=kSfdO^&gD4e{;W-?jD;o)YZJQ+cN*QA;UU&Phb=@U1#T`q-DzhQRn6h}ufo*7V zeNx_yVbkGrl5N$4_z{y(2=IA5=|`vc??3eVJyuN{^rj2Ll4WJX+L(NbYa@vBFia^P zvy_ly$?`J0=Ikj#bO2ml4pf^$dWd` z5JYY3Q6ZG8ZTFhix}^Sbkytmx;SdM0QLtFDU73kF-`t7bRGgDvs8CU)kEb>(L6l2^8AFE zsC@L65@;bELtNzvbCX`7e)%cDM%wY@CQo|>x0R}tkJk)r1kSMCVPS# z^!fmi)WXZuT%nKZfyqGKC9BoKjCmMc(i*&{<__-8$%3V;s5r-H3uKy&@bj ztwW@Yyw3<=snLiJlRWf;@oe3zCy4A!iDZSfR%VEJ5fuXOQ6==yCqy30G@fhfLD=n6 zt^yc&XtpZTZac17iwKEYq3E03pEp9^dEM>vP2eiUtLR(N4K#* z@xd4A5Y5wkgh%#-F@mCwO31XN3>sE>M!&;EvKWg7q_Xf%))l|`&C!G5-wM9UfmMQh zeBW}gz`EF^hOzAs#=uHc?u*%kicZB{tflapInl~z_mX4G5=@eL_(uHv)-f+qoP;4R z+%p{1bKEZx)0s001f=rVcvVz&XXD-lb6caqRP17XKBO_@*NB_X9tCO(L|Pd1YVr&! zBsT-U5_(~=U%Asx8|a8kTXJg_6+^+vl;_lRGMnHQ5{n*1G^7mBa^r0Cn41Xqea{nA#!) zj7OtW2J9_{%I*?}YigW5=~+Z+t`aJUS8ARtz66}vw(L%@)$j!|hX|REoFUvb^BC!S zt0cY8EHUgSLlaIa9*xsTV0E3%mQ};2t!fiUsvpfhod@|$u{c;gGF`!KJD-$osaiT$ zBySqy|D6i76yvs+n(1b|LFa8*O?JO`w2bfET2SDl`_t3vM}R#`1OZ&(U&0#ppVZ|K zsp@|MYXH4Ze?b?3hzWT8x6lP(_5i%)e+ymyBsKqKqhkMsfBvP7>Q^y;ku+HVJ|(7~ zLiEqfEI>ls&%mmmT`mCm{`BnZf16|BPo4F5#*SY@^OvfAW>NtfAN-Vj0fqoTM_T~i z_?7DQcN+tKC$#<=!9Q>D|BpiJ|Erh7f8cQZule@JW&SC;vT(Ao{kMnXWt~Y=xH|;^+O_wM>D@ck_N|B;bp;F~@q$}S?5YDh%Lox1>TBqc@u;+BI ztKmI}jd4x#NEQwCW-<=;AEeg!K*ej0{lV)7OC(si{8Oz&3h-f8h)mtHk0WtHAzrL_ z6pZ5D`TUQERxpqEmn`ruwEpT*$6rGb%sTTG^7w2cO;d&VTooBL_GFH>Z1zH!2Gj`n z$GqIv8PrlH>tR7`D#qhs?~0_Mq^ntD<7);C7Kv|J+v2w++KZXl^eZrprJ&y?DP`yYBNYZ<6GeadXu5UxWn5!!bd+|;e1w{` z-q_A*zpXrZA+>|F{lT~GNu(ZDFv3_Rt%BBNM~rFnjQtp@Bt%EXACtKZJwyj%)v(hp zPc43HeAUBm8OEg2*#3Tm4w1nAe66SDiQ1SnjT?Uo=cR;hUah&liBN}E*dkgY=&0dX zynbp4OK&A9{M)uY9G`Kt6dNB(6q~MrhWda2Xb2psh(Uu#q4U=1c}SiJWK(}%X{b4z z^Uw;y_jGGEkXjfeCA9J=%yCj%Gd;rQoG1sqyk~Lnfq+uRcNAKdQLlZR*wiX!Wh(ie zIBlVrv7+%ml46roNkNFW)6TxPZ~36q#rS^v0vg;Q2{zlhkc1{8OUw!%?R;^>3Q2X* zhQ@~bQ7Bs_Fk>W5Y1`z88_~8&dyBQb$mLD7{%iKVo#RByv``I1n4;A~SF1BzP+os!!5uNN?yOcdIEEP4PZ5M{v`v#O&#gaGn=(lgEXA z@MDOHkT^s(JT|6>sJlfEBqDrl6&sH`aZt~`I}hlI@RAx7aH=84w;)^dC3tT&0z^|TMfqNQp)mnyJg9W6VAKrn z>)>jZ%W0&&Kau*XL5FSlE9EUxMjR(E~l*XZkLw5Hh~6XC3m7Gc!JA+AUX9zu9{)Cpf$ z7)}S0)X1tL9>l(ljVQ|AW~QO&Htt`vLPH}Px9eNiumhs%+PY!IapoK8)bMpYFoqhy ztplAn^M(}%LQ3LA*LFlbqS0$el;5SOL7xRTsOU}Ch3V|uY%=wtWgy_JWbj9^D2DO@ zMI9SOg9)*cGhKO_PvA%|u~(9X^q2>-e;DZbnO^{iKMP%uzgFEcj0{acn+_Tv=`4%`ON z!CBd!Z{Re$mJdN-vRg|J0-g8r1m+<;3z$r3G+1y!w9U=Sb(5CA=tf~TrI}vJqi=R) zV_I+H0%Z3RKi20-&8q5=Z_$x9OikBd+%|1-;Zvn6!&+^A>_=(pr_lCL1P5P?7asFU zzqTS)(p!Tmx%UkE$GgpWUZ%y|u#17N;jj0wsovMpe(pE-# zt$xBrZG<9#8rN<+$nIo_O zqDsxymNj>x97J#Q5RiXZkpUIV>w9uLMoH)J2^5Ebi>jnOviJJ7Ez2z>t&;b*E^5nq zG#gJgWfk*+B%r_+fm?o%~``OYXf-O!RL&nA7+3KJxSO4imqiZh=N5Ur5+OB zjCt@|I*m(>0%`SJ5B3lfP&$<~W;r9R4wR)Vwy@eGUrZ>oOnj`$%1?r0zq{z0KN@C-8M+=G0fJ{CU4uBixN zTN?_lCVo~s$S~0+JybJ10pwjw<>U_!HRTZO_*9?eK6CVuQ3#0u8j(ISY###^aqBiv zMR498mSF+%3J}o<3#x(l&6^{!;YYyOvRpzW%%8)eJ`25}qf(s0t5Cz6YEanL()trxgJU1v%ru(`4wL08$LNt0<&j#-b=K|j7GG82hy z#(}n@-2l^-x6+LcA&c4rtjDcr_4(*))dv$FyzbyolXdTImc(n_bP)dK>{|Jtem%2Q zr*|YDvrrrqbhE=qXF`!k)QUHAvL+X&1ts??*GpiC@mdyAiq^ffZ%|fKSqwXKhC!t1yx|xZMaviWHT1Q8~sB0`U-6Q1aYx{y`PAhz^&4JdFt35 zhANx*Fh1_;)TldgCx&Oqj_t^u2*ZkEJroi9s@hT;6GGU9vWJ%xqHPN40>r=!y zDhmFIDMsC&l5YdO*%h6r~||fU5t14qH_FM`n>R&krsnNi$=Tq+YuN zE?pP;2X-qh3ablJ`K@@nn5@d!F2Xg7khJusIt2U$b|=adVeF=2so+QTiMQO-&<_q( z`J|J7pV(I13iJZLAUpWR_kZSoIdu>Un*c6+nI4MJ)xvf1xLs=uIE#0 z0bOF~q}Kk-{f(Og)jV2a@;u3r${ zxf(CZ+8;Ybp~BH;(A^+2d+H^NmJkRagKF-9yB>2g>a)*=Ir%_8^iXe?5zd#&&2yn& zCH54Pp*6FHa2s4X3MV&UcR&*wQQVbo(Zc~wY1-?%dYRQfm%v9ON7V} zSwHiAc%cuD7MWFZ4IKWi-MeRXXttv()>Syqvf)Z!jgmGw1Wq}j5Q`fzK~mu?-`y|v z6`jjBt{QG9ffq~$COxXraVWN1N`p^DGv`Gf7MO#G|6=rDdKXVl!R1g`Le3{$l)31n z;fnK}$0~J?C6RYwzC%mrP$>J;!x2Y5Nawa!LCI^qH{-m=M;!gqA6%iXxYhweU9Uo- z>yviNk%N>U=i+GjFAy;rg`*I61HSB6K;X!mh1>Av3Kc9EDkDSR50nCXPr6Arr+32Y-&uyd?yOxHaB zT5Sr6Vn1P>k;)ZAh!RyET8UJc`oqnIquxbFXeOD3>9x5~%G?Q&0*G;*Cgf%sohK*M zaIHV))nhp)Jo@aIJOU{cSIq$YDpPLA6%Sd=DE?hKRJ3)tw&fx}6JAWEEeXzqnrNWG z8cSI;DalY|R#^{heHqFgFV*MXBU}gZGmRZkIp(4pfLryFzmU4}hSSW?k>qS_I;Vq$ zasQz@ACFV6d^Yjpo?!h&1caqazpZivy?)z4quJ5mvU8LC0o^!5eZN?n)HxxOs)48#=Cdl4p zHX%G&%*r4!Dw=AxN_2nL;G@_mP!I{2@jeg^3}fFq!<%H&>||u7*;r7H;2D-T_xnnx z+#@($Opr%Evb~gwx}%*-xSu1_v@e}Y=nW-f!A0|~xrA}w+)$VV3>#!$CYQ3u+1)-i zVjSr>0+$%mLsMFZRBct~BTHS$C`T-{Yj)Lro9F%4%y;|HI@FCPs~INH7KHw*v}t}c z!>G68Ygh4V2E5d&ZW;Zro^2MM+BKU^FbtS=Az*`6E$~o**O3(mKw=s#OE`w%(5iT$ z=-t9w8OP%$J?}n(sF*5JW8mRPX`;eree4&Hy*D6l6?$BqZ`5#&Rdi_4SzN?^HPP~C z^Lnv!%q7Gf@0k=zI^I z9nc+gWey=bTfyKl=}S~T+H7V%O8(D`?IDy7X8#tTb)6>bA7+V+!+PQ1}d<$kK0Lp_6AE5fs zGB5)icFN{1Hir1D^c=t5|IemgfDab%j{jO;`X@Z#cmC!dURCCw_yPcB{2yjjW;TE` zl;Ll~Jp6mJ>aUUglf3kYS(TXy-~(p;hgX%E84x+}w;2n6`}qFK?D%Vn|5VT)R@FZW z`iE2X@2}{ujjF#E+n+09`4!p60|PxE zrU9_XS=a$F4S(BO`a?YZ%VGN25B^jW1K`$T1=zzG0oln+0O6F8o*5864X6qr^)mi_ z5Sl-#V*d;8EZfiS^rxzr7}x;;5rE_a4qCukV`2tiga8A_0C3a-FkXL`@A==~b-x>6290mZn3n2LZ^gS~J5JwDvb;Zi~x7GB=IQ`{{`sc&qSHlG4i~Kau|4dc~ z1fcv3n+DjOf8mx`|Gw_@pH|dAoB02l0P{DdGyFGf#=o9`zt_M&Y{ne_FN(Jv_AoLy zngjwMmJz^_@7kfaYHWLIL*%ut6R#1~r`BID;Gt)vVaOHND5$^?c;)wX(Y+m$pUuaF zZy|&ef`m7F%IDSn>UnE$b9K;v*1v7)#-{hlE@fwWwDW7><(})!!Sdmr-fikY{e3=u z6s#rnr5cYWNff|l+%QEMWwuDf(SajV7^_%zc?!a3cAsAll1-+B9az(EO(;TMg_clS zN9=s*>3dmyX3CSLV^ehyIZRi-*esuf9*;U974&S%ccp-yzujwmHwhV8K+mvp%%vyU zepr$E+OSSTY8*^QYj;5PtuQ~ad2QerLhl2Ti1P?ZO4;C{FtIz@r*P3E+ROd}5f3H> zD>CQ<=aQy(RhI;-dYMvnd;24FbPZ~xYnnXq&Vm|2Hkud-gc=p2JdKlzgeU>puJdmQ zOo|fg0%BUFne>TT9y;eopU5mo5{E0fv*C1%p@5W($SP|B>LYaQ95-ThY;X!~ZkdkA z3-%AGf{U2HQ>{041_sZF+xf)Y3DydALv6OSADoQk+wNqJ-nUzJ&pabZs-rPpe<9*0 zCydbWK4*fJ2b*|2ZompHdo2bd}u_&@JYa2~EiK}7~@I*U>$I!-<bF=!4Dx|Tf%5rCbWjGSY8s3n-^m^|UJ>9L&cJn> z@oh6YoISiau`evVeLSMB*E^<wF6U~$K zxt~$ZB9?$QKGy4AzYmw_|8~%^A5PIjm4wT;gp&lBD)@O=f=h>!znW*x@^aM`&mj)* z2Y$q>WySYONxW0iWK&&a3^R8F5SwPwa(a4Ri(njPoTUbbUoYMmfuNxsSq@Cc> zuOUhmZ=Y?3+5!{?h{Mpr&@0{f74=+?hb|NCgIC|?IYncWQ2@^@H#;QNe zr6@pSBbrQuwzUY0uae_fAI!j=8szxEqB{~WF^{){D>UzK$uPf zQlt;K7g?ngw0PQscmrJ-QIsVDYUdOF6 z6gX7_)AFMbxFB*5b>qZE9@YWxJrrpi=!g^j5Ocxh)Xq4AcK(!~RveD8HI(ZtXpfn& z04Osj4mvn)h?EFV>})hcMS90~m3X=8&JUI&Q&FK>fpaC_wCBVvW@7f3 z;7wyQh(t`Ry#h>e0<3tc;bW7PqHaG}$=E;C(Ux3jI6 zVz`RER5_lB;HKw~W2o)%sDATmjbKn^H^*GD_EQ9cE(#8J=Tac0kGPl(qC-=g&v+E> zz5vRxe;or=JdS|IpvU)6U?g5mnAc!v)9g~)hSAU_`~Kd)q6DFox)JG$kvY~%3GTIH z$wYzwseN&r{73Pgdw$D3i`JR^ia06dgyEPqaXoslaVjjZHi9@c@b`@m3s&OHRNOVD zN%p(xU6qwGpV;Vge65>G#}W)iPErVDYi(^XKKE#u{8%&my39Z%Z0}SHs#Z$qpa$pO zx?I6q$+kH97_mVgVDm1+M%7JPQ_I(?mJV4D?)_O|rF-n=z}{Z)reUqR+|-Kqr9(%n zR$^Go_P#3!vQ+;*-Yi%sg+L03;|>K?Mr!(!My+Iy0C20XE7%2xl+G@cIO}knAsz=r zqbGRt7DEqtUtScLZKJ+}f2akH?h@%Iq2@j2&$>6W?9?!lcv3q>jSb9+5#{5@Iu;oe z>%|qhePwnhWp$MJnD`a@fpx}?%mn)`%9=mwr6?{4mZpSm%3Vv>b$}2gvZZ|pg3YH3 z)Z$jS9aP5_Rk)qAgtM`j2=fB2VD$AV!+V#&)R{U=Xv}+!*{bnqSr^&L!J9^a_EO|| zWaxbdsZtR)HY({xPOW;I@_6HN&R$F0GEN@ro?uE&zZ;EqYHQH%<<-?KIltN{$t20K zW$bx2RmN*FB!*%-PNoP6yQk{UM+d>`Dr*`aSERiE;?(1@ZUEju&SFv9lwx^)P%-s> zM7l+ffXgVljiBl7e)@B3m~rvlCdo)6cTiyWn`kdk6uYrBR zNo?_wtVw7AJC$VwCEc?fr#$%AGfKSqQefm`azoBQ*Q!1YkN2dI??+vCN}{B1rAv6v zTJ-U=OM?g1(iVo0#dB~YNhiTWQ)dK_j6sdMfa1?Qqmdr?u2p7tnjM7cWD&e%sx-#p z>SzMiWL)ckiBjW!Y!chwG5)asXa#mm#&>xU#zm+@|I zkG~35kAUxV+hgXb$v6~$xkE{$G+L3%Tli7uOGr;)%%LOBd5!aZqVzrUoUEk}=a|{-@6DRG(*;!;b`*3kV<%tLTcGA1q`8CXGyxE0zxLC$$%S`!MHnuuPGa0h@s! zRuOnvWk~&SYEs{=lUFh&h18MOqMq?i){ls>hCh@)`7U1by{B+Y24{xmm&zzuN04ei z&-vwV&K7PP2XQ^EED_P%0RGl_MGj{Yw#&3#N`S3M{PXT_c^ zGCW1XP!4JESpJYVEwT8auA=Q58-FYe46RxB9_rY$~%8g}Qn2lo)wU7SGwJNXe64D)W$CN#Y}x#mPuMI3^NLE9$Wo-_1=I!!4@78eCq- z?d!zdsLX;-%u0;f@oY)VEhUZ#cg!pZiwr>d8Wa|WhKhs>H&aJ6&(I>|6dYEH;N;0T zFe8EnCEU7w&T^SiJ}Em1|LpXoZg`|E7h=dt+D25tUg<=F1Lpj>aS(7ks^-f^5)Y5m zJ&tb7O|^b%_|XOpnnBNlRI%Mc*0sbp=aYSS_BwjPwlr9*D$ocqPp24NOsaB)&K%jH zU}LegcyZ=Bi}-9bb`_HM8AJ)b0v6UsbOkVUl@EFc5ml!r=Qdxq)K>3?!mb(z!GlFu zPkqf#iY^|!M#*fl%%lX6P-R#6w=n8%AnD@tgB{qG3yvTCd^rf2c}=&y`EPFhkq}_u z@9o@Jk~n(wh{MXPd+=ll;mO=TtP#~mOjEo}%5&ia>&&b4Mi79p19AFEw8>?;Nr`Rk z&GV@ZvVQw!YX%j6NYMWl2>M<#fEC=6iBcCmMSMz^L;$JhfIvWGj8GmwST-*(B{pYd zE0mON>W9i>Q!zoUx13kr>IyrT1`624VuJ9+LHN1 zfAskr%7#5eY|UN1JeQS5?{&N`-=Z>mCVk_9$Lpk9d^=t-^=Pv~G}!}kcxKTCDx>T; z{NM#@ibJz!L&HEVluK2j7WjPE(z`jo^Nwn}SlTRSLwH(Wwi1 zF);DTOAd8-9h;@&r9-y@Pk;TLAiMBIJn}tC4iwe+Y|8~1(H2MN_pH>;U*gCNc0$>% zc*|tzdpdmVOW6vLMhy0JmO0WHk=&)fzJwFXi3&x}_adXt-I#b=jW$_B=D)ldby{7l zLOh&g51?c^!_(O`77w&+ZH9txR-b`L22_YM3_hysTMqMkJr@`8%!M;0TMDLunzr$I z6!vOqzaPv{AV$ULk^D4JBTua`Y!j> zD@A!%yRi0LTL+O98;|6%SRaX{z?;}be1fU*eHtChR&I?bzrcFsQ2>9!*;!X@T` zQ`Knc%jC?%;{70E#B$b#;xu(Canx9bkRET;&K%i$IE{gQ@7*-Jpj8eEatke64uwP& zw*}3-a+w?Y;&ibzkEIZE=U|STq9+d(E`b7A@Y`MS+!?)nusUqZT)f=PxhAv>RF{ME z%pI`;23`YCG!fpzEDg0-Mhlk`0Z#_7IDHxo*#T0$zz5%M$&@^uX3ETmz3b;$2Nwj6 zW9@aqT4I|Vzf!-r*KPyP zC=gGLy2jK+vSGJxk;`c9?ep|2YtwlcYR(hOJBWTml{kLvlTucw2qq`>zFHGzF6Nf3 zvwd+Pr66(6f4ebgq*CnYoDgcf#h+HgN!QLK>35AEGJe0n}-NPreUNM#T*=YS95%r~ZEptJ4(4qlD~i z0Z?maCjc)>g)ct_!Nlihu+*3{sxa4yjQ@V`4I$eE8*)^{c<1 zi|#li2MG<~A(cZ(8A-CtlBHq};{P^La`^|TX znDK{)J#xwuqE9TZ^D)thCR}%Y5fsredNDT-^X6qq3s|IP57!Sr4hz0}GLno>P-%TP zJ|;Yk^wXuAIH=xND^5X=jA3t5aA5GGkdtUJbl~mHXNripAX8ErqvO*Z*VD_?Rpras z4m&<;>+gR#Hoe-p+}Na0`AnL`{WvrGG;Ln37&yp40XiwAwxxf$w)>z*50{jy8bIE4 z`p~9uSy3`k!m)#)<8znG88IIBWqM8wkyY#KnL0bnk?^mrRcQf5fUZ|wO2s3PM>8!=|n7Gl; z7blkaOXlUi(G+I3(sdoo3lP& z1&T$Aw+FU3zWm5Ii^@kS7jaE{kiP|8%9>RkhiyRe29r*{N;f2H z3H%63NjvTx?J>zgqU`!XOS-d!vUw4B&>GDtjV6%ZCqb;6LQM>E<^|JQp2G!BcQ3WI z2X?2m@I!HrFV7H_BNau#9JvX&auT^c9che7-W0FATF&8k70dfS$g(2&``}NT4*m0G z+oxM0iaV>KXHdF5p||*|Yvs&MW8Jl7%M!M4j=@nCk=C3c44f|wU1|K3Xi7lPBcVyP zE`0;j3?f_F>nYLL>icDGdliGg2in-KBg;j^v@pxN*5+h;05zs8rVBlWv^vvD+W1~~A~YeYHP?ISlpY(DS;dNq z(qN2LA5AgiDdW>=3*@eJ&C36c32q!)p7Wlhzmcu?2;R=Shf`q}cUTKA5Z zp2+3#<=g)2<;bVaovXU*a~ivi@u~?^nS{kSlw5>`hIfw_Rqh&v+r6P4;0T6M4NrCp zd1KT3Xtn%d;6^9-cHk_t?iLPv(N-nysbEGuPPXTs(kVq%?x%( zz+wc&(-bD@ZAcY4q`g3lRV6qr-s|HzH19opY%o({jgYu25gMz%2{TASmBM_X2JsJ7 znGu2x@u9+uh3k|f!4C4F{CF95c3V$HaYHO&0j@rCgi2xx)y;ZPVd<^d-kPdUblpGs zE=pBxjI=e@w{hlh@^Wy{`&Dxc<4o#n-WNRr1NC=U<8^J(m(cAoJkXjkWBlYbi3spG z&8it2uKrD$Aw^UyirgMtV^pj#yqL>Ll7=OMD@PcSLM=x8MI{ytoqmkw>6no+i2|<6 zW}zHF9v79Hm09Tq&tQGQb%dadt6rGrp0;qh7KG=0?FyE$`ZGz`UR+)QHaWm=@pV=D6vmOyHEKpXg4a~$8VPKuy&G#eobqH{!%xM8$Hp;lUe zwzAqe^ZEn(L|5h3VYQXa;u@bvGmyToX!;7Y=>p`OJi~jrl26=p7Nk{So}ZLl$dIh! zos&4y8L%gDgeo{N9jH|X_2%h%ZR*-cZjnv3Qf%n@=&)^qsMPc0L*2QBi@YUY==wMq z7FZ_JxAPM%#aaqh?7p2(B3*+t0|q2U8*<;n!0dH-m$p%1c#;F+$P`i^U(&Y+Lq~!4 z6JVba=!c-9AQrR*S!avFTsuq!|wga`(z z5=_R|t2WC|$78~7uZT0`?!DRi} z65oC|KdZ(@>M#MJ6@*?H&*!+}%P=$7OxLtDQfh2_8eN-8z@X>RHBjr3x`!brZ)3XA zA-^sVq)MLpqW1*{3L?0R*fjjkyBn=55rFO-q2##B;_ryv`K;s@Myz?UV# z9r6Pe^8>vvV;&7jCx1TGd|P7={0~yDt++YkL|f4?zJ%f9u&y*>UMdvxX{NQ)Ebl7$ z+?bbJm(8e*lEO7fvIZhjgW>SR2aXTLy=Sb5m5n(B?lqQvISGxYZBjyDX0rm zHhlV0Mm6AWlsS>O5!&RgU{$ahZjwL>l?%41>0})MgT}hNs44%bqQ=Ydk^`P(Dt>_q z4)x)x4`|hP4{l~ez0rEP*F`gKs##1E`&moMim5{+j=jWG`h)cB9PUP4=$w&;r~^yD z32bgFJhc|+!$R@t4vi9;?26}zD(%Yl4`WJ6gM}9!zYg}V&1Iz22t!E@hBr$>M+g-m zo>9x&U-iu1#^0$P7aOhG1FhL;d%%6~Ma%A0OjqpxEO&0pMUP*tPkg@M!v*;P45yK5 zBI?|pE4DimWu@9jZ`N-#7&_4dE`ECpw#Wdn(!!v^1SNw#NHh!S(Jt7p015yK=NAxz3Y{KCqMUrzX@q^&X;|I;|(txF$@;ySYdE%;IL zk0X4|vmm>A>#F9Mz>VcJx4kV|8zgm(7|T|F@7u~RJest^sFa0cC6Kii_=XgMI%yS& zG6-&^0bo4XUYI%EVj@7pAF)mtyG&!q4Ha@SfjhuLJ<&?K^AM$pVGQwT2@z={E*F}^ zSqALV23Z(aNGgRHZqbrIwdWVrc~O-YdXzV0D|IyIWyA_ki(QO5%`50CXuznVN`!Y% zwSShypJ+*q%*);OWHf;+RLxXHEMm{-^mXDW_r1w|n!Y)Jo@=F$rP~)|Wz`RKTb*b{9P-@>jUD^G2QUaakGmOjUGVuy1jB7cMl zH8pt`R*SvYtXT{u6_^fV`%c=^o~pY%gK_u1NkQP==XTLiAqx^(D%@dn-|2X1LjJJ) z^a=uf>pfjFTZRf1B21djM$Exh>6och6sm!-;;Vd8g6Unh-(u5zDoLi+Nf*%Vlmp>4WRDB zCQZZl0{1#>(kr5{HZGvzKZ-C&Z_4CUwy}WNEkU)>K8E7T<8tlMaPnOx(LVp+y$2c5 zUm%t6Tr5SXWc%noBO$y?nX#@w3=xtuS8Xon0OQ->pXzsWwvSvKxz64C!hq$i zBWK8u&wakxZ0A})gYuR2K(};rL6{s?PqJ@Uk%_MfGogVsz6|k;u`yMgo20`HBPz(^ z9LyPgTL5UT3NgcEtMa_-gJCrsWH_#cU>T@aFvwD|6-HHt6P=(4!&tf_gsH+XL1gB8 zWLsAC2q)-h&PFf}Wp`y~=~Do07Pz(Voi2Y#`Kt07p1Q)$$IkIF z#ol+9n``3Y+!xt;O{m7D{v-OSeFxmRetRAR3U($4yiQ}VTFvs4E9O2&oe|Mi&Ud^X zfJuo6)7ZyVXP-IFjIQ{me5N1EXz;xi{2{Xl7vvL|)aLqa%nCd5a>mon!1Z3-p3 z;22@ZYRd2ko;gOgA8D_6ze(DSab9FVG;&i>p_0T@ve8`pu+1QQ6)8bJ+Hw|TF}Xiv zKF*PvF8%w=?fLE34()ZCvf+wWTk1{590*Qb))EF_7RH=VWJ@R}GiLZIDzB3@(o7rs z1TPw5&_h)9@VMQ*J0RHMZlIdjv2^WaeB+nOZS{yHRB+-37|j>MFuZq^bo@tfC@b@o zx1;pN_DwL5hN1^EOGJ+hG>+ZDQmSiKgE=pS+Y%9gb?uo0q+y^yg^YTa--X$L-0~@q z6}yDp=!GpnzLLH2jR}&Yza|6OzO}PkEh;eX}QmO zjhN|iqSon&ji<>GFvX>1V_ir0*QVQyb1 z;Jvtb-k?ix_nwRfOIGXIGMiC@lX*zvAS3}2YECvIZml&#Hk~LA0+SbZX@~>MXS%9I z-=ZGENQ-=2&aD$m#txd?i+zJKJwFG%_0XhaagmuTOYTn1$;DB!Pq8HlLfifC2f!~K zCANr4h*CmCa2N@$t6Tv+&Xq5G=9;fY1 z$^iR11w>zv3K}^$xm`l;%ZRSB)PDzT1RMF-9yo3fTYu?Wy}vU$9B6^n9h6F7O91d zbIzl|!9U2SfgxAdsc6vnY=N&>NNKPy!l5cMf;%u%&nGv#yh1ewwq<;3= zAV)BIyZ~bIK{L`YrzhjG7l@7gW8p1@Fj|TO+WiwyU9&i0A{uWRynRs29M-HjB9KX7 z)AuA*vMipS&Nf6de6C>L5Z=wIj?EZ1r-2^AJkWvia~CJHgk0Txx>cGn`=pTi+~=r9 z_c_hpZ3q`*>~3M(t}8JaOtW2+c>{`kh)Qjc(DP!;uK_*v#w(fQOtHijl-YEt&db^t-N3{7z53ac8F@F`-HMWMCtME*wjB9hK^G-LI`_ zJZ~mGUah`OK7NiIooi!elW(`>>De3O(W>6~!rTym76^2n1W zvXlOkc`Ej~PeLRi*YTTnx1e|~oaMG?H=na8U#A_uygXXA>5`*#aCY*v z1k=4M40bD)L{tzi*2z-z9HWpR5sxo(S}AnW{^8h$Pi5%h<1=ueL^2aVLHJ2Ykd1J5 z$;Z#frOBhdLx=jke)xPcvOKVC`D{Yl+BMo?$?>-F>Pxp8BQBm}J8IMg$dwLg__)6? zW0{AZkG1a6i{$gu-NU@h{FZa51wl7U$a_-Y5qNhtze=$y)1|9P-X6osv%hnU!#olGK7wYV%0m&` zsh2(wS3}x5bL>HvI-&BadP_SNtew$Zs0$9ZGgICf(W-$(1LC%TQZjJZcFT0=T)Sw| z6bJSWNLTeu7m2CI)JtKzDnw1u&EPE`Y8iHiW&WXH5bB+j6ZWTAUDm^w`u3PCWZG}! zYhRQNY=ho0G_QPLCG34pLC%L7^DohwOGzJStdj8QfLsEK}dpgf4kyP`?Auu1Xi(N2V?)Vd4|Jr&rk8*T0)VKU(qWJ*4 zBn~4>f3hWrkbqI~4FhwJQ-9`lwxGR2PCjP%GYM-5m~$hqW2V z{25CKcfiK?a^Nv?K?)v5V{&fAWBwtaq%YuxKcsnDDg<>;p$o>TVq-&BC36STk&b2i zT=Ha8eyqM!fOspF?0{3u@x5vVsL=_;w4y$w=>Rpzv92ZZFj|ByP|seN%e54_@k#&ch3V=}``AfJKNv4J0$ zUIa#8le*Db+W3gW22C;5v|mn>4F0mNwJ1|LITgLPPA?>uv>}aTBqYoYLj(Z;%?2SC zbtCqe-}ek{b0vTMzDT^BliMG)P)6^==xBwJpW0hjF$GaYLhM%~ZUlWK!iY1Z5_}j= z>X-z zk{EmLjp;bn zv>e`rNts#(t5tN=bi*btgWdU4G?E6lGgnc*5IRp~Nzu*%Iik*BeD|V|8ZNuzd&7F$ zm7#uCa53Afp~4}qNM*?JZ$0MThm;(x1pdv&iWGhq^T`QQgX9l6Narb;pi?5D!`gZD zvsX+>PtujO7+zN9P@}o;2{)0x*#=&oq<`EEzJ4N5uPJoM?lBCPR`K}}GClk3@?P=5 z5>9LIha29ib~t8aV^If%thVSDa|y(FgiKiLS!)|;rOrcLN=}}@j1!Eyya{;;V}N1| zaDYazru;r!D;Ws# z@`F_bO$!7t;zenTvAe~_@zdPAuuvW9L~%8T3%OD_XT+&kU>4Kz28KimNYiaIhfY`@ z*}jSE6cAJ5QEO1eh;&l4f6Are{t$kwFgZqXB`kS5AH+`vqq0m9_cEXFoF13#vzj~$eL z1PB&wMfFq;ty)7m>VFiTNr3qjMqjh4fxlGqnK4&l|LC%T=eL=O5$bu$1X)+^oQ7P)ND#Q@Gwl$J z!Zz;Nm5jbl4bYRgJDQ3?&wU@MUQ8osLO*$N_w@O)ru}up`faz<|3mpny>J>uP8Sy} z{FwIay8lO9EU9x@6oQk}iJ;bX9lNT=qn9{XMFPXiUDKq)Po^$bFEQ{UXgP`$t6yFu zL$_sh8a6R!?z>mpecW0!HW;jzT+7ZtW+8=g0&I^66mo0qCn>kDbLV1?A%b=y=^>Fi zi42hTCr+K58IRL4ruf?dGF>2}hRDJ#6gJ~>FsLviwj|&@0Y_qHQM`(C>WDIy&q9|y zoG^OHpz3fw7y?GcY`@MYmONGkAOs~0AKXt59>>b{hl*b~3(e=NKxGV9##hJphR^o0 z;m;nAdqG}HBrB}SuWzHlOiY&#wUva96fCH?bC{6s6kJ2SmX$&K!{YXV8oQ^MB`Vsf z>6Q({%2Tiwa^!K3xU>Z0u*NEL3MoVL0&k!L7Ey;Rnd7&q_~QcLzWvBu;xwO}xC@tr zM-&OfUw0}#3%Q|n@mCJ#$w+#{r!Sw8xZ}sqnzoeyVR#8kj6Xj+_PJ zN-XBZB$0M^%pJ1vb254wPUYDC;1#;5(lqdPm@Pzb?S3Ak8acQ*+s5`{84dyp74!j< zndZ~?>49GPS;mEeDUr(T%4-k0iYMzb^ClEtd(N+?TuL+dIW}q%fQ}0vG~aUM5Ou6a zZLhcrlBghfFA7E{Mf^qwg-b0$epDFX7);oG5nWESZwI?ncJG!^?nHXgMKM42<40CT z_WJy0$>ZA5d{nR{hBtat8IM3>B?Tcp8NU6_Z_XiSJM3`_PfvaJuZLS_Un`LmC{o`TX1+~8eJP{ zU+o^1bsuAaPkwi~vQmcO}RNwp_a7Z$Rh>f^=pmt*jffU|b6Y9p~ zFMeS15vksPpbeAM8G~i7AFg<|ZM#LrI-JlPgDOWfoG+CCOl{>Na{R;>%QZrS6 zcRXsy4eJWhL)ZQZo|C0TjD2>K^W&ro8HnuU=*JP+AWbr@*5fn9TJT4VY^}s}B{U4L z@M2e3G2NO@kP2#T-MVZ@8>Nt-wMMBD6ng_uePQp{bS%{$CjRJOehzfyaa z0{hdnb}L2XJ#rVxn)_6*H?lxiSHeeJ-DfSN2QQLFq>dJ~cMh^@8D%Uu=EyE5-fSj% z_(JdsjDR|R=5OeGFGk`D{q^9}A-MD0*qy@ws5mGclVi^G-S;TAg?yq)Jf@vENI3)Z z9KI8l%FuQP@G^oJuYHR$prZGKFdi_<=!?95)+~D#^BSZ>FV1qz`y3NuPfJElXg(Q2 zgAi-zI4IY(NrP*TvLmtH9Rq08?(rc^g374XaDD1S4dxCU-93_8fVlLxEOEmOj#AG7 zCClv$L-+c6!_mOOSpo{6t@uFNrh+8eNZpB&VGh2U_L8%Akocqo%=tY}tS$RCj;Vp4 zl)iU=fJIw^HS)-~8dNn1fFc_{Fyp$StxTtcA`(ZlTTm|)(pI4+?$BEdS&vZ>nFpA} z$Ywc;d$kK@=@*LR*)w6QT?h6L(jlXK?!8haFOa478?2ZT{W(J*$LP`0drgO^s&r~0 zCsznzcYDF;EmSp_Fcd{1$eUPieuv=#*>`ihi4?z!YM_Ysu?zLu^nXyGz{ z3c_dUp)gj55%t=kMk4tEsqn)FursbBof;kF1c@CaXJOyM04Y0eplGVkXI3uaN<=ZD zl=8zBVRMN5vqTzBTL_{%K6;G$nc3}NDMqy3FzSeX1p~#b<1X&2Qc8#gPO2(yYvt*b z93*q3OBJpTEd-ZSvOBge4yA{WWQA>5p7Cgd;jb^BdPb81E%18EHO0&b9rk*yl5`^l z9K(mD%2!~63Wt*~u=~)rKqD}|pidAfZNz;S4xGHs>otx5QBMvTwM<* zBR|8k$hfd-P zr0u}2`f7kT(24Zar7Sj$eOLp;b{s3JQl!w;_Z*e;AO*|w5Q9`2rz12-2frhMG&*(I z58wfJy+NAId2@UV4hQ4YwY@<2vGNU7{wQ%$%D0_t&D!)Tbv&p{!jeGBSKCMJn{B8} zdyhe$?~DodmDH&uz#PHM%EYydnXl7Qhn}&>wu(E5_bK*JBJ!bZyznpEg-MWs= zM#rNEC!Dxjd)G~C+w#W((3wc0w2;fSafIAn`|$B{k0rREqW%t>&&RT*AGbW_WK8$;6F zdQe*4T^yagH&Yq)?F{d(b;2g#u?Z+S?Gim;;^)NmZb`NEW1w4s3hSDhDQ{1r zRFZ=-V_$|QxK{NSH6TxTU_@&VSu73!$9DmSE04&;H|DWTR8VmUO z&$m?sT>toefV1(xU;p}j|4z_lrT_I7|64)#w_Ny7L6?>Ox1ID~3c5dw`jdM4hoH;M z0XV!5_+Six1iGJ!E(?Ib@HfIvexBa{H;V2*{j0 zRn$)=1v4Owj~S4I#|ogKFan|snE)sTW_ExS&hdBQApXD{u>A$1;@49A)9f*^0GKoY z?fV}^F#(EU{h6Wm-ze&@xEa6hi$4{`006Hr{TwM)0BQsfM9ByMLoogvDFDQVmFaIz z3}pB#O2x0c^v_kX(gUzC06GkS8vT=?0Z7N>08Aq@BRef%wEo`tWBIG;`+2ASkD3?( z)5Qc>Q|y2?!T<;mWdH=L{+dRXzpbc$j~e>bzW!7cBLe_Z1L%QFfa&7^j1(Y&l9q)Y zu%QB&KDNIPTl4S1C%<~>pNiu6$=I@gJ zvOoQgPX05elOC|3fAy)Ks|oP9`IXzr&IZ^y{CkJ#FQ)GI6Z-f1{{NF#^Itxy@%#JC z?~nNpS~~{^$A8>O)QMRgcn=;phv+E|+guHPBMx4EIhJ(+M5|Bc5|?8hq-p1hcbMd= zRw`U|yLC%Aj5kz$j)@RP*fJy8*d(EF+N+p}Ini?9oAvDaefN3!*xU8%@_yu&B`*&5 z8w(zg^~MVIgMYllYq zZ4_t^9tmx8PEEYq*2YE+d7c(`+XBqiV@rV+VxaNSr5#8pgMl+)Hg!$tMjsedHdJ{& zr}UfZT3gAdw*XOkzYfDn3X5-{+NOEGqvpmlM$aEcY~#jv2=1m&9v;o zLC1P~9}IBQg}M40nkYjhGMg$$&dTMp$l&fi^9Jq>we|vM zs?Wk##hO^u>1{FG^tBa&ccC&lLtRtuJm~SEsxv(Yr{orx{D=TVHy-E zJG#17^X&cu99X-qD&MD?^5O?@^||(p)5&K-|9zqm5cS@6*2^-|v3ru|dZPl%QDOY| zvI?Z8r>nYS4Iq!Fed!W8t1i4x59&Vk-0okjRdo z!R2NZXI3s28Cd8AI7eCC)?^C6F`RsP!=DL%E+cmqKf$)5o?#O_LRZT5-rge07_NUc z30(b9FN0uS_e_QTl*3TG!>&5{NuZZ(&1BD9L@dKK`M&w3v*f5m35J0udCF@h)Tg@c zph-b8!@BJ=dP>p~0;x*>^T`*?&(&0}efB=OaH#KU!`bvHX|e@&>qi#wuP90|J6DM< z;~?6N2&VrJb#EP1*S2kY1Hs)jxVvkB;O_434ncyuyF0<%-QC^YHMm2t@K$!ty=Q-? z&VKjas{Ors@2^#}idxlb^fBjL{CXR$lTO-6$|>epLIz$Stp@q(m3f`e;1k}|x!kXv zKA)HJY6k_LOt9E+grH-uI+d*D6tJz5bgsrRWs~AM?zbz%3o|1K*|*?8-`tlsB^4d2 ze!}Alqh4{Ikmb3Icba$V+C;JVeE)HiO5XbdjBr(IjY4~aN=^30^;8OH(UQ(_ndzx^ z#*)&FM1oV495;AzW$A-Ay=Vv>(npCLZxx{sF=VfFs}60tTZX8eK)dBDGDz@Io4KG< zj|Qk`?XR!R6slwAM6#9;xHQvX4a&5i;{Bl}td4eY1FfeMgQ1vZlQ8BSmrR0NA`so{ zimO*F8pRqv_K1Gx%e1cwoH`#+J#tpVkvtPz!HJU3?r3_0>`1kZVVwOAsex@ZwVAMH zkXB{WXNx4dc+Bmi9n7BMb0KV5!1^-tthk&oY~dR~L4=(;adYn>uMahIZL-*oPv}d^ zr8ID5q9SEF7lJvMVE*p%^whOv%$TK>IOc(F%GsPjlIHvkMIOO#pzyhIm`?S{;7u7h z$4TQXdUIrROett0ZNao;#=ZYEbWiz#{rg(YEU>X~=PXmdb>h#pU2YLk z4_8HRQ8HYq!qfArXD)_u6vncy;|7p$tb;p~_4!a0X5LR8CyvJs#XA!DokH!@s4#0- z+3>QSvpYl<_$_4^9@zJ_pVyJT_IhEfPI(hoe&j0j<9I@>^uUxRkiH-u6M$J1;|-VO z4W*`xH`aZ;|K?N?QJ8{miP~~MU>)%#ewUlO5`d^z!^7>RBzn($Qh4NwZjKR1Zi0 z-nPB7WrB|+VCe-I^<#%qFM=tvDf~e5_El6jx({hr8&63o4uXOFKDTb|Zv{)66;2~# zxqFh^JF}}Nz1T}1#_f?8p-I^GsTFVP&4eA9jqUq;^h-bGUPzXtV?*0oIRR+cvbu=Q14=u^V|x4((_$7+f(c=NFPK54^G#G!-JK_>PH-WZjZOx zk2t7QYp?qsq||=XKdXNX`~W&1#3%6T;NbN7_Sx+9;tT!hAUKvCl_R2k{|vbM+sRru z1HveSr`Esn48&{q!e0N@gAIQ+1@nTdWQla5hEWkr_~vI<{YZ z?jsl%tHhX)mJau66b#DLV;QK?uLI52leLq>*K)NcZ-ws=lt=qa4-C>1AUH^uuwrYM zE7z2%#_7{mBYrN!oT39a=^xu@`|H$&95Zy8m6X0xaV4)$NSMm^&ojU>XBaFzJ@NHe zR9@>F^&^4iF)>EsJJqN>9TPNxEa!gf{`4seud-z$sip|mK?zCHdf$2~5ksC+UXyd8 zmxjFd=>W21m+31CmT8^Klfl|qi%w)hPvOl35xmAjUIJdA?_Kt6ymkS3S&F?navgB9 zOn09lR`B$~VJYmiwX-_<6A?O;m^{8jNaUe>V+c`085n;O<4pKH@w3!-9b^nhqz%ly z%F{8P)o8(23s9i1MA}Q&rPI4^xX(yo_y%(4sQq}4Q1yt8bV|I2Utb5MyVP*Lj5^+R zx=2xy&(_TB7(zIR4Nr%}BK@F`DDk0<9vvotY8`wH3t`<|l!LIhhhmO~~ zZ#)L>hd0N(6NI@gLI8r-FY)uU@VvjSq1r_X%1LPm{SJ8iXS8+cxn80m47F*^S>@L? zyh`U3q$5xz1{I3pV#d>_ubBfLR7LBX8MQ*rmnAX`s669IU-QUAELh*4qIvkM+a8Jw zpDUDoZIt*$cV9iIh729X#m@x^=T+{Mh35zzm`W2o+#!DRz?MFyFW3rn7=m`3K!%7vzL-f4=;o(`NF zWz2LU#PUQF%SiK&TRVmDBuX5?7{=yRHFz#H#VE{Ul>mnesY$Yzt$02~BeNGn2g@+P z&$^&{uid$Ks`ayTY38ATBtlBg{z$87UQ9BYrAR?tqb5w_5SHgQo)FciO7{Cb;>c3>=b^9|S3E5KJdw`OAX1lioM5+?R>QV| zk1sDWLl>-TSD}Nu9WTBP-A!l_h8zp$BZ*S2?RjAXbq~hgZrz9MW{^{#jZFXoO`ab(Ixo%!Dcj?7stIFQcrclNbczO?f14zAI0#PcZH5m`p3 zo4m9%L<=|SqOIh-fVHccl=x3lX(DIxu;Y9KUTKhiL)I~qq`-BVMoHbc#LanY5D@)( zcv-A1d@W{X$Uh82h70*Es>m)#5<)BX2^-3H>eCPd?OT;#i+E^+kr94db4lV$Ux)i} zowmD&L)A9j)L^`FQwQ9>@`yq0^E}S(*QU&zYF=J;YflGYGFp)z9<2k|`xHN4^g1q2 zYQC^T2z@?dNANn?5zPi8C-|6}&A4pS+axcth$L+S3NmX!M9dtzvRso`Zv-U1CS<#P zLKl_nBV=W39-HEBl*5i4Rrsw0KX{E!@qh`9ZqA51Gdz+hles8A_^9Z%mVIOXCspPf z*63To#y1)1AGyvQ$10XhoxLFXa!b7#6ZlD7Uj_pcO^=@DGAw%_CDcjCbtlXMCwO*s ztKG5AP+BNxb7|F9ST;Lx)rZhBBvMw?-N8MJt71qApjWJ`+BG-wXAMdLX^qjo^AH

R*%YKM`zNpTMBM|8) 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

bdK~bFHxexOkBY)W2p9)@lryy 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Ð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 z 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 z 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

pp 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

+_qy4dE*n*MQ-V#v|iw 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 z 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 z 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 lMM)hHE++*Ey3hLE`hQmb` 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

lKAKgBpn4bUQ!KUfSsMqXu@koeR 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%0DY$ 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 $ojyw|( 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 z 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 z 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�O^4d?~ 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 ?GPJjX@j+d&e=S0?jy({}q=Ft8X(b$(!`16bY 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�M5E;!j)WpGXO=O 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

%{fCG{VN}x~`T8J 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%0D{Uql2HbT)iU4#076wB$sPcNnmm#|00mj*Ea#Fs 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 literal 0 HcmV?d00001 diff --git a/KLSadd_insertion/chap01.tex b/KLSadd_insertion/chap01.tex new file mode 100644 index 0000000..d2b4c10 --- /dev/null +++ b/KLSadd_insertion/chap01.tex @@ -0,0 +1,1542 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\pagenumbering{roman} + +\large + +\chapter{Definitions and miscellaneous formulas} +\label{Definitions} + + +\section{Orthogonal polynomials}\index{Orthogonal polynomials} +\par\setcounter{equation}{0} +\label{orthogonal polynomials} + +A system of polynomials $\left\{p_n(x)\right\}_{n=0}^{\infty}$ with degree$[p_n(x)]=n$ for all +$n\in\{0,1,2,\ldots\}$ is called orthogonal on an interval $(a,b)$ with respect to the weight +function $w(x)\geq 0$ if +\begin{equation} +\label{orth1} +\int_a^bp_m(x)p_n(x)w(x)\,dx=0,\quad m\neq n,\quad m,n\in\{0,1,2,\ldots\}. +\end{equation} +Here $w(x)$ is continuous or piecewise continuous or integrable, and such that +\begin{equation} +0<\int_a^bx^{2n}w(x)\,dx<\infty +% \constraint{ $n\in\{0,1,2,\ldots\}$ } +\end{equation} +More generally, $w(x)\,dx$ may be replaced in this definition by a positive measure +$d\alpha(x)$, where $\alpha(x)$ is a bounded nondecreasing function on $[a,b]\cap\mathbb{R}$ +with an infinite number of points of increase, and such that +\begin{equation} +0<\int_a^bx^{2n}\,d\alpha(x)<\infty +% \constraint{ $n\in\{0,1,2,\ldots\}$ } +\end{equation} +If this function $\alpha(x)$ is constant between its (countably many) jump points then we have +the situation of positive weights $w_x$ on a countable subset $X$ of $\mathbb{R}$. Then the +system $\{p_n(x)\}_{n=0}^{\infty}$ is orthogonal on $X$ with respect to these weights as follows: +\begin{equation} +\label{orth2} +\sum_{x\in X}p_m(x)p_n(x)w_x=0,\quad m\neq n,\quad m,n\in\{0,1,2,\ldots\}. +\end{equation} +The case of weights $w_x$ ($x\in X$) on a finite set $X$ of $N+1$ points yields orthogonality +for a finite system of polynomials $\{p_n(x)\}_{n=0}^N$: +\begin{equation} +\label{orth3} +\sum_{x\in X}p_m(x)p_n(x)w_x=0,\quad m\neq n,\quad m,n\in\{0,1,2,\ldots,N\}. +\end{equation} +The orthogonality relations (\ref{orth1}), (\ref{orth2}) or (\ref{orth3}) determine the +polynomials $\{p_n(x)\}_{n=0}^{\infty}$ up to constant factors, which may be fixed by a +suitable normalization. We set: +\begin{equation} +\label{norm1} +\sigma_n=\int_a^b\left\{p_n(x)\right\}^2w(x)\,dx,\quad n=0,1,2,\ldots, +\end{equation} +\begin{equation} +\label{norm2} +\sigma_n=\sum_{x\in X}\left\{p_n(x)\right\}^2w_x,\quad n=0,1,2,\ldots +\end{equation} +or +\begin{equation} +\label{norm3} +\sigma_n=\sum_{x\in X}\left\{p_n(x)\right\}^2w_x,\quad n=0,1,2,\ldots,N, +\end{equation} +respectively and +\begin{equation} +\label{polynomial} +p_n(x)=k_nx^n+\,\textrm{lower order terms},\quad n=0,1,2,\ldots. +\end{equation} +Then we have the following normalizations: + +\begin{enumerate}\itemsep2.5mm +\item $\sigma_n=1$ for all $n=0,1,2,\ldots$. In that case the system of polynomials is called +orthonormal. If moreover $k_n>0$, for instance, then the polynomials are uniquely determined. +\item $k_n=1$ for all $n=0,1,2,\ldots$. In that case the system of polynomials is called +monic. Also in this case the polynomials are uniquely determined. +\end{enumerate} +Polynomials $\{p_n(x)\}_{n=0}^{\infty}$ with degree$[p_n(x)]=n$ for all $n\in\{0,1,2,\ldots\}$ +which are orthogonal with respect to a (piecewise) continuous or integrable weight function +$w(x)$ as in (\ref{orth1}) are called continuous orthogonal polynomials.\\ +Polynomials $\{p_n(x)\}_{n=0}^N$ with degree$[p_n(x)]=n$ for all $n\in\{0,1,2,\ldots,N\}$ and +possibly $N\rightarrow\infty$ which are orthogonal with respect to a countable subset $X$ of +$\mathbb{R}$ as in (\ref{orth2}) or (\ref{orth3}) are called discrete orthogonal polynomials.\\ +By using the Kronecker delta, defined by +\begin{equation} +\label{Kronecker} +\,\delta_{mn}:=\left\{\begin{array}{ll}0, &m\neq n,\\[5mm] +1, & m=n,\end{array}\right.\quad m,n\in\{0,1,2,\ldots\}, +\end{equation} +orthogonality relations can be written in the form +\begin{equation} +\label{orth4} +\int_a^bp_m(x)p_n(x)w(x)\,dx=\sigma_n\,\delta_{mn},\quad m,n\in\{0,1,2,\ldots\} +\end{equation} +or (with possibly $N\rightarrow\infty$) +\begin{equation} +\label{orth5} +\sum_{x\in X}p_m(x)p_n(x)w_x=\sigma_n\,\delta_{mn},\quad m,n\in\{0,1,2,\ldots,N\}, +\end{equation} +respectively. + +\section{The gamma and beta function} +\par\setcounter{equation}{0} +\label{gamma function} + +For $\textrm{Re}\,z>0$ the gamma function can be defined by the +gamma integral $\EulerGamma@{z}$ +\begin{equation} +\label{DefGamma}\index{Gamma function} +\Gamma(z):=\int_0^{\infty}t^{z-1}\e^{-t}\,dt,\quad\textrm{Re}\,z>0. +\end{equation} +This gamma function satisfies the well-known functional equation +\begin{equation} +\label{GammaFunctional} +\Gamma(z+1)=z\Gamma(z) +% \constraint{ $\Gamma(1)=1$ } +\end{equation} +which shows that $\Gamma(n+1)=n!$ for $n\in\{0,1,2,\ldots\}$. +For non-integral values of $z$, the gamma function also satisfies the reflection formula +\begin{equation} +\label{GammaReflection} +\Gamma(z)\Gamma(1-z)=\frac{\pi}{\sin(\pi z)},\quad z\notin\mathbb{Z}. +\end{equation} +Hence we have $\Gamma(1/2)=\sqrt{\pi}$, which implies that +\begin{equation} +\label{IntExp} +\int_{-\infty}^{\infty}\e^{-x^2}\,dx=2\int_0^{\infty}\e^{-x^2}\,dx +=\int_0^{\infty}t^{-1/2}\e^{-t}\,dt=\Gamma(1/2)=\sqrt{\pi}. +\end{equation} +More general we have +\begin{equation} +\label{IntHermite} +\int_{-\infty}^{\infty}\e^{-\alpha^2x^2-2\beta x}\,dx +=\sqrt{\frac{\pi}{\alpha^2}}\,\e^{\beta^2/\alpha^2}, +% \constraint{ +% $\alpha,\beta\in\Real$ & +% $\alpha\neq 0$ } +\end{equation} +Further we have Legendre's duplication formula +\begin{equation} +\label{GammaDuplication} +\Gamma(z)\Gamma(z+1/2)=2^{1-2z}\sqrt{\pi}\,\Gamma(2z) +% \constraint{ +% $z\in\Complex$ & +% $2z\neq 0,-1,-2,\ldots$ } +\end{equation} +and Stirling's asymptotic formula +\begin{equation} +\label{GammaAsymptotic} +\Gamma(z)\sim\sqrt{2\pi}\,z^{z-1/2}\e^{-z},\quad\textrm{Re}\,z\rightarrow\infty. +\end{equation} +For $z=x+iy$ with $x,y\in\mathbb{R}$ we also have +\begin{equation} +\label{GammaAsymptotic2} +\Gamma(x+iy)\sim\sqrt{2\pi}\,|y|^{x-1/2}\e^{-|y|\pi/2},\quad|y|\rightarrow\infty +\end{equation} +and for the ratio of two gamma functions we have the asymptotic +formula +\begin{equation} +\label{GammaAsymptotic3} +\frac{\Gamma(z+a)}{\Gamma(z+b)}\sim z^{a-b},\quad +% \constraint{ +% $a,b\in\Complex$ & +% $|z|\rightarrow\infty$ } +\end{equation} + +For $\textrm{Re}\,x>0$ and $\textrm{Re}\,y>0$ the beta function can be defined +by the integral +\begin{equation} +\label{DefBeta}\index{Beta function} +\textrm{B}(x,y):=\int_0^1t^{x-1}(1-t)^{y-1}\,dt +% \constraint{ +% $\textrm{Re}\,x>0$ & +% $\textrm{Re}\,y>0$ } +\end{equation} +The connection between the beta function and the gamma function is +given by the relation +\begin{equation} +\label{BetaGamma} +\textrm{B}(x,y)=\frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)} +% \constraint{ +% $\textrm{Re}\,x>0$ & +% $\textrm{Re}\,y>0$ } +\end{equation} +There is another beta integral due to Cauchy, which can be written as +\begin{equation} +\label{Cauchy} +\frac{1}{2\pi}\int_{-\infty}^{\infty}\frac{dt}{(r+it)^{\rho}(s-it)^{\sigma}} +=\frac{(r+s)^{1-\rho-\sigma}\Gamma(\rho+\sigma-1)}{\Gamma(\rho)\Gamma(\sigma)} +\end{equation} +for $\textrm{Re}\,r>0$, $\textrm{Re}\,s>0$ and $\textrm{Re}(\rho+\sigma)>1$. + +\section{The shifted factorial and binomial coefficients} +\par\setcounter{equation}{0} +\label{pochhammer symbol} + +The shifted factorial -- or Pochhammer symbol -- is defined by +\begin{equation} +\label{Pochhammer}\index{Shifted factorial} +(a)_0:=1\quad\textrm{and}\quad (a)_k:=\prod_{n=1}^k(a+n-1) +% \constraint{ $k=1,2,3,\ldots$ } +\end{equation} +This can be seen as a generalization of the factorial since +$$(1)_n=n!,\quad n=0,1,2,\ldots.$$ + +The binomial coefficient can be defined by +\begin{equation} +\label{binomialcoeff}\index{Binomial coefficient} +\binom{\alpha}{\beta}:=\frac{\Gamma(\alpha+1)}{\Gamma(\beta+1)\Gamma(\alpha-\beta+1)}. +\end{equation} +For integer values of the parameter $\beta$ we have +$$\binom{\alpha}{k}:=\frac{(-\alpha)_k}{k!}(-1)^k,\quad k=0,1,2,\ldots$$ +and when the parameter $\alpha$ is an integer too, we have +\begin{equation} +\binom{n}{k}:=\frac{n!}{k!\,(n-k)!} +% \constraint{ +% $k=0,1,2,\ldots,n$ & +% $n=0,1,2,\ldots$ } +\end{equation} +The latter formula can be used to show that +$$\binom{2n}{n}=\frac{\left(\frac{1}{2}\right)_n}{n!}4^n,\quad n=0,1,2,\ldots.$$ + +\section{Hypergeometric functions} +\par\setcounter{equation}{0} +\label{hypergeometric functions} + +The hypergeometric function $\mbox{}_rF_s$ is defined by the series +\begin{equation} +\label{DefHyp}\index{Hypergeometric function} +\hyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{z}:= +\sum\limits_{k=0}^{\infty}\frac{(a_1,\ldots,a_r)_k}{(b_1,\ldots,b_s)_k} +\frac{z^k}{k!}, +\end{equation} +where +$$(a_1,\ldots,a_r)_k:=(a_1)_k\cdots(a_r)_k.$$ +Of course, the parameters must be such that the denominator factors in the +terms of the series are never zero. When one of the numerator parameters +$a_j$ equals $-n$, where $n$ is a nonnegative integer, this hypergeometric +function is a polynomial in $z$. Otherwise the radius of convergence $\rho$ of +the hypergeometric series is given by +$$\rho=\left\{\begin{array}{ll} +\displaystyle \infty & \quad\textrm{if}\quad r < s+1\\[5mm] +\displaystyle 1 & \quad\textrm{if}\quad r = s+1\\[5mm] +\displaystyle 0 & \quad\textrm{if}\quad r > s+1.\end{array}\right.$$ + +A hypergeometric series of the form (\ref{DefHyp}) is called +balanced\index{Hypergeometric function!Balanced} or +Saalsch\"{u}tzian\index{Hypergeometric function!Saalsch\"{u}tzian} +if $r=s+1$, $z=1$ and $a_1+a_2+ \ldots +a_{s+1}+1=b_1+b_2+ \ldots +b_s$. + +Many limit relations between hypergeometric orthogonal polynomials are based on the observations that +\begin{equation} +\label{hypsub} +\hyp{r}{s}{a_1,\ldots,a_{r-1},\mu}{b_1,\ldots,b_{s-1},\mu}{z} +=\hyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{z}, +\end{equation} +\begin{equation} +\label{hyplim1} +\lim\limits_{\lambda\rightarrow\infty} +\hyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_s}{\frac{z}{\lambda}} +=\hyp{r-1}{s}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_s}{a_rz}, +\end{equation} +\begin{equation} +\label{hyplim2} +\lim\limits_{\lambda\rightarrow\infty} +\hyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{\lambda z}= +\hyp{r}{s-1}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1}}{\frac{z}{b_s}} +\end{equation} +and +\begin{equation} +\label{hyplim3} +\lim\limits_{\lambda\rightarrow\infty} +\hyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{z} +=\hyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{\frac{a_rz}{b_s}}. +\end{equation} + +Mostly, the left-hand side of (\ref{hypsub}) occurs as a limit case where some numerator +parameter and some denominator parameter tend to the same value. + +All families of discrete orthogonal polynomials $\{P_n(x)\}_{n=0}^N$ are +defined for $n=0,1,2,\ldots,N$, where $N$ is a positive integer. In these +cases something like (\ref{hypsub}) occurs in the hypergeometric representation when $n=N$. +In these cases we have to be aware of the fact that we still have a polynomial (in that case of +degree $N$). For instance, if we take $n=N$ in the hypergeometric representation (\ref{DefHahn}) +of the Hahn polynomials, we have +$$Q_N(x;\alpha,\beta,N)=\sum_{k=0}^N\frac{(N+\alpha+\beta+1)_k(-x)_k}{(\alpha+1)_kk!}.$$ +So these cases must be understood by continuity. + +In cases of discrete orthogonal polynomials, we need a special notation for +some of the generating functions. We define +$$\left[f(t)\right]_N:=\sum_{k=0}^N\frac{f^{(k)}(0)}{k!}t^k,$$ +for every function $f$ for which $f^{(k)}(0)$, $k=0,1,2,\ldots,N$ exists. As +an example of the use of this $N$th partial sum of a power series in $t$ we +remark that the generating function (\ref{GenKrawtchouk2}) for the +Krawtchouk polynomials must be understood as follows: the $N$th partial sum +of +$$\e^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}= +\sum_{k=0}^{\infty}\frac{t^k}{k!}\sum_{m=0}^x\frac{(-x)_m}{(-N)_mm!} +\left(-\frac{t}{p}\right)^m$$ +equals +$$\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n$$ +for $x=0,1,2,\ldots,N$. + +The classical exponential function $\e^z$ and the trigonometric functions +$\cos z$ and $\sin z$ can be expressed in terms of hypergeometric functions +as +\begin{equation} +\label{exp} +\e^z=\hyp{0}{0}{-}{-}{z}, +\end{equation} +\begin{equation} +\label{cos} +\cos z=\hyp{0}{1}{-}{\frac{1}{2}}{-\frac{z^2}{4}} +\end{equation} +and +\begin{equation} +\label{sin} +\sin z=z\,\hyp{0}{1}{-}{\frac{3}{2}}{-\frac{z^2}{4}}. +\end{equation} + +Further we have the well-known Bessel function of the first kind $J_{\nu}(z)$, which can be +defined by +\begin{equation} +\label{Bessel}\index{Bessel function} +J_{\nu}(z):=\frac{\left(\frac{1}{2}z\right)^{\nu}}{\Gamma(\nu+1)}\, +\hyp{0}{1}{-}{\nu+1}{-\frac{z^2}{4}}. +\end{equation} + +\section{The binomial theorem and other summation formulas} +\par\setcounter{equation}{0} +\label{summation formulas} + +One of the most important summation formulas for hypergeometric series is +given by the binomial theorem: +\begin{equation} +\label{binomial}\index{Binomial theorem}\index{Summation formula!Binomial theorem} +\hyp{1}{0}{a}{-}{z}=\sum_{n=0}^{\infty}\frac{(a)_n}{n!}z^n=(1-z)^{-a}, +% \constraint{ $\quad |z|<1$ } +\end{equation} +which is a generalization of Newton's binomium +\begin{equation} +\label{Newton} +\hyp{1}{0}{-n}{-}{z}=\sum_{k=0}^n\frac{(-n)_k}{k!}z^k +=\sum_{k=0}^n\binom{n}{k}(-z)^k=(1-z)^n,\quad n=0,1,2,\ldots. +\end{equation} + +We also have Gauss's summation formula +\begin{equation} +\label{Gauss}\index{Gauss summation formula}\index{Summation formula!Gauss} +\hyp{2}{1}{a,b}{c}{1}= +\frac{\Gamma(c)\Gamma(c-a-b)}{\Gamma(c-a)\Gamma(c-b)} +% \constraint{ $\textrm{Re}(c-a-b)>0$ } +\end{equation} +and the Vandermonde or Chu-Vandermonde summation formula +\begin{equation} +\label{ChuVandermonde} +\index{Vandermonde summation formula}\index{Summation formula!Vandermonde} +\index{Chu-Vandermonde summation formula}\index{Summation formula!Chu-Vandermonde} +\hyp{2}{1}{-n,b}{c}{1}=\frac{(c-b)_n}{(c)_n},\quad n=0,1,2,\ldots. +\end{equation} + +On the next level we have the summation formula +\begin{equation} +\label{PfaffSaalschutz} +\index{Saalsch\"{u}tz summation formula}\index{Summation formula!Saalsch\"{u}tz} +\index{Pfaff-Saalsch\"{u}tz summation formula}\index{Summation formula!Pfaff-Saalsch\"{u}tz} +\hyp{3}{2}{-n,a,b}{c,1+a+b-c-n}{1}=\frac{(c-a)_n(c-b)_n}{(c)_n(c-a-b)_n}, +\quad n=0,1,2,\ldots, +\end{equation} +which is called the Saalsch\"{u}tz or Pfaff-Saalsch\"{u}tz summation formula. + +For a very-well-poised ${}_5F_4$ we have the summation formula +\begin{eqnarray} +\label{wellpoised}\index{Summation formula!for a very-well-poised ${}_5F_4$} +& &\hyp{5}{4}{1+a/2,a,b,c,d}{a/2,1+a-b,1+a-c,1+a-d}{1}\nonumber\\ +& &{}=\frac{\Gamma(1+a-b)\Gamma(1+a-c)\Gamma(1+a-d)\Gamma(1+a-b-c-d)} +{\Gamma(1+a)\Gamma(1+a-b-c)\Gamma(1+a-b-d)\Gamma(1+a-c-d)}. +\end{eqnarray} +The limit case $d\rightarrow -\infty$ leads to +\begin{equation} +\label{wellpoisedlimit} +\hyp{4}{3}{1+a/2,a,b,c}{a/2,1+a-b,1+a-c}{-1} +=\frac{\Gamma(1+a-b)\Gamma(1+a-c)}{\Gamma(1+a)\Gamma(1+a-b-c)}. +\end{equation} + +Finally, we mention Dougall's bilateral sum +\begin{equation} +\label{Dougall1}\index{Dougall's bilateral sum}\index{Summation formula!Dougall} +\sum_{n=-\infty}^{\infty}\frac{\Gamma(n+a)\Gamma(n+b)}{\Gamma(n+c)\Gamma(n+d)} +=\frac{\Gamma(a)\Gamma(1-a)\Gamma(b)\Gamma(1-b)\Gamma(c+d-a-b-1)} +{\Gamma(c-a)\Gamma(d-a)\Gamma(c-b)\Gamma(d-b)}, +\end{equation} +which holds for $\textrm{Re}(a+b)+1<\textrm{Re}(c+d)$.\\ +By using +$$\Gamma(n+a)\Gamma(n+b)=\frac{\Gamma(a)\Gamma(1-a)\Gamma(b)\Gamma(1-b)} +{\Gamma(1-a-n)\Gamma(1-b-n)},\quad n\in\mathbb{Z},$$ +Dougall's bilateral sum can also be written in the form +\begin{eqnarray} +\label{Dougall2} +& &\sum_{n=-\infty}^{\infty}\frac{1}{\Gamma(n+c)\Gamma(n+d)\Gamma(1-a-n)\Gamma(1-b-n)}\nonumber\\ +& &{}=\frac{\Gamma(c+d-a-b-1)}{\Gamma(c-a)\Gamma(d-a)\Gamma(c-b)\Gamma(d-b)} +\end{eqnarray} +for $\textrm{Re}(a+b)+1<\textrm{Re}(c+d)$. + +\section{Some integrals} +\par\setcounter{equation}{0} +\label{integals1} + +For the ${}_2F_1$ hypergeometric function we have Euler's integral representation +\begin{equation} +\label{Eulerint}\index{Euler's integral representation for a ${}_2F_1$} +\index{Hypergeometric function!Euler's integral representation} +\hyp{2}{1}{a,b}{c}{z}=\frac{\Gamma(c)}{\Gamma(b)\Gamma(c-b)} +\int_0^1t^{b-1}(1-t)^{c-b-1}(1-zt)^{-a}\,dt, +\end{equation} +where $\textrm{Re}\,c>\textrm{Re}\,b>0$, which holds for $z\in\mathbb{C}\setminus(1,\infty)$. +Here it is understood that $\arg t=\arg(1-t)=0$ and that $(1-zt)^{-a}$ has its +principal value. + +We also have Barnes' integral representation +\begin{equation} +\label{Barnes}\index{Barnes' integral representation} +\index{Hypergeometric function!Barnes' integral representation} +\frac{\Gamma(a)\Gamma(b)}{\Gamma(c)}\,\hyp{2}{1}{a,b}{c}{z}=\frac{1}{2\pi i} +\int_{-i\infty}^{i\infty}\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(-s)}{\Gamma(c+s)}(-z)^s\,ds +\end{equation} +for $|z|<1$ with $\arg(-z)<\pi$, where the path of integration is deformed +if necessary, to separate the decreasing poles $s=-a-n$ and $s=-b-n$ from the +increasing poles $s=n$ for $n\in\{0,1,2,\ldots\}$. Such a path always exists if +$a,b\notin\{\ldots,-3,-2,-1\}$. + +Secondly, we have the Mellin-Barnes integral or Barnes' first lemma +\begin{eqnarray} +\label{Mellin-Barnes1}\index{Mellin-Barnes integral}\index{Barnes' first lemma} +& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty}\Gamma(a+s)\Gamma(b+s)\Gamma(c-s)\Gamma(d-s)\,ds\nonumber\\ +& &{}=\frac{\Gamma(a+c)\Gamma(a+d)\Gamma(b+c)\Gamma(b+d)}{\Gamma(a+b+c+d)} +\end{eqnarray} +for $\textrm{Re}(a+b+c+d)<1$, where the contour must also be taken in a such a +way that the increasing poles and the decreasing poles remain separate. By using +analytic continuation, one can avoid the condition $\textrm{Re}(a+b+c+d)<1$. The +Barnes integral (\ref{Mellin-Barnes1}) can be seen as a continuous analogue of +Gauss' summation formula (\ref{Gauss}). + +We also have a continuous analogue of the Pfaff-Saalsch\"utz summation +formula (\ref{PfaffSaalschutz}) given by the integral, which is also +called Barnes' second lemma\index{Barnes' second lemma}, +\begin{eqnarray} +\label{Mellin-Barnes2} +& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} +\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(1-d-s)\Gamma(-s)}{\Gamma(e+s)}\,ds\nonumber\\ +& &{}=\frac{\Gamma(a)\Gamma(b)\Gamma(c)\Gamma(1+a-d)\Gamma(1+b-d)\Gamma(1+c-d)} +{\Gamma(e-a)\Gamma(e-b)\Gamma(e-c)} +\end{eqnarray} +with $d+e=a+b+c+1$, where the contour must be taken in a such a way that +the increasing poles and the decreasing poles stay separated. + +A continuous analogue of the summation formula (\ref{wellpoised}) for a very-well-poised +${}_5F_4$ is given by Bailey's integral (see also \cite{Bailey35}) +\begin{eqnarray} +\label{Bailey1}\index{Bailey's integral} +& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} +\frac{\Gamma(1+a/2+s)\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(d+s)\Gamma(b-a-s)\Gamma(-s)} +{\Gamma(a/2+s)\Gamma(1+a-c+s)\Gamma(1+a-d+s)}\,ds\nonumber\\ +& &{}=\frac{\Gamma(b)\Gamma(c)\Gamma(d)\Gamma(b+c-a)\Gamma(b+d-a)} +{2\,\Gamma(1+a-c-d)\Gamma(b+c+d-a)} +\end{eqnarray} +which can also be written in a more symmetric form +\begin{eqnarray} +\label{Bailey2} +& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} +\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(d+s)}{\Gamma(a+2s)}\nonumber\\ +& &{}\mathindent\times\frac{\Gamma(-s)\Gamma(b-a-s)\Gamma(c-a-s)\Gamma(d-a-s)}{\Gamma(-a-2s)}\,ds\nonumber\\ +& &{}=\frac{2\,\Gamma(b)\Gamma(c)\Gamma(d)\Gamma(b+c-a)\Gamma(b+d-a)\Gamma(c+d-a)}{\Gamma(b+c+d-a)} +\end{eqnarray} +and also in the following form due to Wilson (see also \cite{Wilson80}) +\begin{eqnarray} +\label{Bailey3} +& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} +\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(d+s)\Gamma(a-s)\Gamma(b-s)\Gamma(c-s)\Gamma(d-s)} +{\Gamma(2s)\Gamma(-2s)}\,ds\nonumber\\ +& &{}=\frac{2\,\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b+c)\Gamma(b+d)\Gamma(c+d)}{\Gamma(a+b+c+d)}, +\end{eqnarray} +where the contours must be taken in a such a way that the increasing poles and the +decreasing poles remain separate. + +We also mention the integral +\begin{equation} +\label{Slater} +\frac{1}{2\pi i}\int_{-i\infty}^{i\infty}\Gamma(a+s)\Gamma(b-s)z^{-s}\,ds +=\Gamma(a+b)\frac{z^a}{(1+z)^{a+b}}. +\end{equation} +Again the contour must be taken in such a way that the increasing poles of $\Gamma(b-s)$ and +the decreasing poles of $\Gamma(a+s)$ remain separate. + +The integrals (\ref{Mellin-Barnes1}) through (\ref{Bailey3}) are all special cases of a more +general formula (id est formula (4.5.1.2) in \cite{Slater}), which has more interesting and +useful special cases such as +\begin{equation} +\label{Slater1} +\frac{1}{2\pi i}\int_{-i\infty}^{i\infty}\frac{\Gamma(a+s)\Gamma(b-s)}{\Gamma(c+s)\Gamma(d-s)}\,ds +=\frac{\Gamma(a+b)\Gamma(c+d-a-b-1)}{\Gamma(c+d-1)\Gamma(c-a)\Gamma(d-b)}, +\end{equation} +where the contour must be taken in a such a way that the increasing poles and the decreasing poles +remain separate and +\begin{eqnarray} +\label{Slater2} +& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} +\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(-s)\Gamma(b-a-s)\Gamma(c-a-s)} +{\Gamma(a+2s)\Gamma(-a-2s)}\,ds\nonumber\\ +& &{}=\frac{1}{2}\Gamma(b)\Gamma(c)\Gamma(b+c-a), +\end{eqnarray} +where the contour must be taken in a such a way that the increasing poles and the decreasing poles +remain separate. + +If $a,b,c,d$ are positive or $b=\overline{a}$ and/or $d=\overline{c}$ and the real parts are +positive, Wilson's integral (\ref{Bailey3}) can be written in the form +\begin{eqnarray} +\label{Wilson1}\index{Wilson's integral} +& &\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\,dx\nonumber\\ +& &{}=\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b+c)\Gamma(b+d)\Gamma(c+d)}{\Gamma(a+b+c+d)}. +\end{eqnarray} +The limit case $d\rightarrow\infty$ leads to +\begin{equation} +\label{Wilson2} +\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)}{\Gamma(2ix)}\right|^2\,dx +=\Gamma(a+b)\Gamma(a+c)\Gamma(b+c). +\end{equation} + +\section{Transformation formulas for generalized hypergeometric functions} +\par\setcounter{equation}{0} +\label{transformation formulas} + +In this section we list a number of transformation formulas which can be used to +transform hypergeometric representations and other formulas into equivalent +but different forms. + +First of all we have Euler's transformation formula: +\begin{equation} +\label{Eulertrans}\index{Euler's transformation formula} +\index{Transformation formula!Euler} +\hyp{2}{1}{a,b}{c}{z}=(1-z)^{c-a-b}\,\hyp{2}{1}{c-a,c-b}{c}{z}. +\end{equation} + +Another transformation formula for the ${}_2F_1$ series, which is also due to Euler, is +\begin{equation} +\label{PfaffKummer}\index{Pfaff-Kummer transformation formula} +\index{Transformation formula!Pfaff-Kummer} +\hyp{2}{1}{a,b}{c}{z}=(1-z)^{-a}\,\hyp{2}{1}{a,c-b}{c}{\frac{z}{z-1}}. +\end{equation} +This transformation formula is also known as the Pfaff or Pfaff-Kummer transformation formula. + +As a limit case of the Pfaff-Kummer transformation formula we have Kummer's transformation +formula for the confluent hypergeometric series: +\begin{equation} +\label{Kummer}\index{Kummer's transformation formula}\index{Transformation formula!Kummer} +\hyp{1}{1}{a}{c}{z}=\e^z\,\hyp{1}{1}{c-a}{c}{-z}. +\end{equation} + +If we reverse the order of summation in a terminating ${}_1F_1$ series, we +obtain a ${}_2F_0$ series; in fact we have +\begin{equation} +\label{reverse1} +\hyp{1}{1}{-n}{a}{x}=\frac{(-x)^n}{(a)_n}\,\hyp{2}{0}{-n,-a-n+1}{-}{-\frac{1}{x}}, +\quad n=0,1,2,\ldots. +\end{equation} +If we apply this technique to a terminating ${}_2F_1$ series, we find +\begin{equation} +\label{reverse2} +\hyp{2}{1}{-n,b}{c}{x}=\frac{(b)_n}{(c)_n}(-x)^n\,\hyp{2}{1}{-n,-c-n+1}{-b-n+1}{\frac{1}{x}}, +\quad n=0,1,2,\ldots. +\end{equation} + +On the next level we have Whipple's transformation formula for a terminating balanced +${}_4F_3$ series: +\begin{eqnarray} +\label{Whipple}\index{Whipple's transformation formula}\index{Transformation formula!Whipple} +& &\hyp{4}{3}{-n,a,b,c}{d,e,f}{1}\nonumber\\ +& &{}=\frac{(e-a)_n(f-a)_n}{(e)_n(f)_n}\hyp{4}{3}{-n,a,d-b,d-c}{d,a-e-n+1,a-f-n+1}{1} +\end{eqnarray} +provided that $a+b+c+1=d+e+f+n$. + +\section{The $q$-shifted factorial} +\par\setcounter{equation}{0} +\label{qshifted factorial} + +The theory of $q$-analogues or $q$-extensions of classical formulas and +functions is based on the observation that +$$\lim\limits_{q\rightarrow 1}\frac{1-q^{\alpha}}{1-q}=\alpha.$$ +Therefore the number $(1-q^{\alpha})/(1-q)$ is sometimes called the +\emph{basic number} $[\alpha]$. For $q\neq 0$ and $q\neq 1$ we define +\begin{equation} +\label{basic} +[\alpha]:=\frac{1-q^{\alpha}}{1-q}, +\end{equation} +which implies that +\begin{equation} +\label{basicdef} +[0]=0,\quad [n]=\frac{1-q^n}{1-q}=\sum_{k=0}^{n-1}q^k,\quad n=1,2,3,\ldots. +\end{equation} + +Now we can give a $q$-analogue of the Pochhammer symbol $(a)_k$ defined by +(\ref{Pochhammer}): +\begin{equation} +\label{qsh}\index{q-Shifted factorial@$q$-Shifted factorial} +(a;q)_0:=1\quad\textrm{and}\quad (a;q)_k:=\prod_{n=1}^k(1-aq^{n-1}) +% \constraint{ $k=1,2,3,\ldots$ } +\end{equation} +It is clear that +\begin{equation} +\label{limitqsh} +\lim\limits_{q\rightarrow 1}\frac{(q^{\alpha};q)_k}{(1-q)^k}=(\alpha)_k. +\end{equation} +The symbols $(a;q)_k$ are called $q$-shifted factorials. For negative subscripts we define +\begin{equation} +\label{qsh1} +(a;q)_{-k}:=\frac{1}{\displaystyle\prod_{n=1}^{k}(1-aq^{-n})},\quad a\neq q,q^2,q^3,\ldots,q^k, +\quad k=1,2,3,\ldots. +\end{equation} +Now we have +\begin{equation} +\label{qsh2} +(a;q)_{-n}=\frac{1}{(aq^{-n};q)_n}=\frac{(-qa^{-1})^n}{(qa^{-1};q)_n} +q^{\binom{n}{2}},\quad n=0,1,2,\ldots. +\end{equation} + +If we replace $q$ by $q^{-1}$, we obtain +\begin{equation} +\label{qsh3} +(a;q^{-1})_n=(a^{-1};q)_n(-a)^nq^{-\binom{n}{2}},\quad a\neq 0. +\end{equation} + +We can also define +$$(a;q)_{\infty}=\prod_{k=0}^{\infty}(1-aq^k),\quad 0<|q|<1.$$ +This implies that +\begin{equation} +\label{qsh4} +(a;q)_n=\frac{(a;q)_{\infty}}{(aq^n;q)_{\infty}},\quad 0<|q|<1, +\end{equation} +and, for any complex number $\lambda$, +\begin{equation} +\label{qsh5} +(a;q)_{\lambda}=\frac{(a;q)_{\infty}}{(aq^{\lambda};q)_{\infty}},\quad 0<|q|<1, +\end{equation} +where the principal value of $q^{\lambda}$ is taken. + +Finally, we list a number of transformation formulas for the $q$-shifted +factorials, where $k$ and $n$ are nonnegative integers: +\begin{equation} +\label{qsh6} +(a;q)_{n+k}=(a;q)_n(aq^n;q)_k, +\end{equation} +\begin{equation} +\label{qsh7} +\frac{(aq^n;q)_k}{(aq^k;q)_n}=\frac{(a;q)_k}{(a;q)_n}, +\end{equation} +\begin{equation} +\label{qsh8} +(aq^k;q)_{n-k}=\frac{(a;q)_n}{(a;q)_k},\quad k=0,1,2,\ldots,n, +\end{equation} +\begin{equation} +\label{qsh9} +(a;q)_n=(a^{-1}q^{1-n};q)_n(-a)^nq^{\binom{n}{2}},\quad a\neq 0, +\end{equation} +\begin{equation} +\label{qsh10} +(aq^{-n};q)_n=(a^{-1}q;q)_n(-a)^nq^{-n-\binom{n}{2}},\quad a\neq 0, +\end{equation} +\begin{equation} +\label{qsh11} +\frac{(aq^{-n};q)_n}{(bq^{-n};q)_n}=\frac{(a^{-1}q;q)_n}{(b^{-1}q;q)_n} +\left(\frac{a}{b}\right)^n +% \constraint{ +% $a\neq 0$ & +% $b\neq 0$ } +\end{equation} +\begin{equation} +\label{qsh12} +(a;q)_{n-k}=\frac{(a;q)_n}{(a^{-1}q^{1-n};q)_k}\left(-\frac{q}{a}\right)^k +q^{\binom{k}{2}-nk},\quad a\neq 0,\quad k=0,1,2,\ldots,n, +\end{equation} +\begin{eqnarray} +\label{qsh13} +& &\frac{(a;q)_{n-k}}{(b;q)_{n-k}}=\frac{(a;q)_n}{(b;q)_n} +\frac{(b^{-1}q^{1-n};q)_k}{(a^{-1}q^{1-n};q)_k}\left(\frac{b}{a}\right)^k,\nonumber\\ +& &{}\mathindent\mathindent\mathindent a\neq 0,\quad b\neq 0,\quad k=0,1,2,\ldots,n, +\end{eqnarray} +\begin{equation} +\label{qsh14} +(q^{-n};q)_k=\frac{(q;q)_n}{(q;q)_{n-k}}(-1)^kq^{\binom{k}{2}-nk}, +\quad k=0,1,2,\ldots,n, +\end{equation} +\begin{equation} +\label{qsh15} +(aq^{-n};q)_k=\frac{(a^{-1}q;q)_n}{(a^{-1}q^{1-k};q)_n}(a;q)_kq^{-nk}, +\quad a\neq 0, +\end{equation} +\begin{eqnarray} +\label{qsh16} +& &(aq^{-n};q)_{n-k}=\frac{(a^{-1}q;q)_n}{(a^{-1}q;q)_k} +\left(-\frac{a}{q}\right)^{n-k}q^{\binom{k}{2}-\binom{n}{2}},\nonumber\\ +& &{}\mathindent\mathindent\mathindent a\neq 0,\quad k=0,1,2,\ldots,n, +\end{eqnarray} +\begin{equation} +\label{qsh17} +(a;q)_{2n}=(a;q^2)_n(aq;q^2)_n, +\end{equation} +\begin{equation} +\label{qsh18} +(a^2;q^2)_n=(a;q)_n(-a;q)_n, +\end{equation} +\begin{equation} +\label{qsh19} +(a;q)_{\infty}=(a;q^2)_{\infty}(aq;q^2)_{\infty},\quad 0<|q|<1, +\end{equation} +\begin{equation} +\label{qsh20} +(a^2;q^2)_{\infty}=(a;q)_{\infty}(-a;q)_{\infty},\quad 0<|q|<1. +\end{equation} + +We remark that by using (\ref{qsh18}) we have +\begin{equation} +\label{qsh21} +\frac{1-a^2q^{2n}}{1-a^2}=\frac{(a^2q^2;q^2)_n}{(a^2;q^2)_n} +=\frac{(aq;q)_n(-aq;q)_n}{(a;q)_n(-a;q)_n}. +\end{equation} + +\section{The $q$-gamma function and $q$-binomial coefficients} +\par\setcounter{equation}{0} +\label{qgamma function} + +The $q$-gamma function is defined by +\begin{equation} +\label{DefqGamma}\index{q-Gamma function@$q$-Gamma function} +\Gamma_q(x):=\frac{(q;q)_{\infty}}{(q^x;q)_{\infty}}(1-q)^{1-x},\quad 01$ the $q$-gamma function can be defined by +\begin{equation} +\label{DefqGamma2} +\Gamma_q(x)=\frac{(q^{-1};q^{-1})_{\infty}}{(q^{-x};q^{-1})_{\infty}} +q^{\binom{x}{2}}(q-1)^{1-x},\quad q>1. +\end{equation} + +The $q$-binomial coefficient is defined by +\begin{equation} +\label{DefqBinomial1}\index{q-Binomial coefficient@$q$-Binomial coefficient} +\genfrac{[}{]}{0pt}{}{n}{k}_q:=\frac{(q;q)_n}{(q;q)_k(q;q)_{n-k}}=\genfrac{[}{]}{0pt}{}{n}{n-k}_q, +\quad k=0,1,2,\ldots,n, +\end{equation} +where $n$ denotes a nonnegative integer. + +This definition can be generalized in the following way. For arbitrary +complex $\alpha$ we have +\begin{equation} +\label{DefqBinomial2} +\genfrac{[}{]}{0pt}{}{\alpha}{k}_q:=\frac{(q^{-\alpha};q)_k}{(q;q)_k} +(-1)^kq^{k\alpha-\binom{k}{2}}. +\end{equation} +Or more general, for all complex $\alpha$ and $\beta$ and $0<|q|<1$ we have +\begin{equation} +\label{DefqBinomial3} +\genfrac{[}{]}{0pt}{}{\alpha}{\beta}_q:=\frac{\Gamma_q(\alpha+1)}{\Gamma_q(\beta+1)\Gamma_q(\alpha-\beta+1)} +=\frac{(q^{\beta+1};q)_{\infty}(q^{\alpha-\beta+1};q)_{\infty}} +{(q;q)_{\infty}(q^{\alpha+1};q)_{\infty}}. +\end{equation} + +For instance this implies that +$$\frac{(q^{\alpha+1};q)_n}{(q;q)_n}=\genfrac{[}{]}{0pt}{}{n+\alpha}{n}_q.$$ + +Note that +$$\lim\limits_{q\rightarrow 1}\genfrac{[}{]}{0pt}{}{\alpha}{\beta}_q +=\frac{\Gamma(\alpha+1)}{\Gamma(\beta+1)\Gamma(\alpha-\beta+1)}=\binom{\alpha}{\beta}.$$ + +Finally, we remark that +\begin{equation} +\label{qqn} +\frac{1}{(q;q)_n}=\sum_{k=0}^n\frac{q^k}{(q;q)_k},\quad n=0,1,2,\ldots, +\end{equation} +which can easily be shown by induction, and that +\begin{equation} +\label{aqn} +(a;q)_n=\sum_{k=0}^n\genfrac{[}{]}{0pt}{}{n}{k}_qq^{\binom{k}{2}}(-a)^k,\quad n=0,1,2,\ldots, +\end{equation} +which is a special case of (\ref{qbinomialn}). + +\section{Basic hypergeometric functions} +\par\setcounter{equation}{0}\label{hypergeometric} +\label{qhypergeometric functions} + +The basic hypergeometric or $q$-hypergeometric function $\mbox{}_r\phi_s$ is defined by the series +\begin{eqnarray} +\label{DefBasHyp}\index{Basic hypergeometric function} +& &\qhyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{z}\nonumber\\ +& &{}:=\sum\limits_{k=0}^{\infty}\frac{(a_1,\ldots,a_r;q)_k}{(b_1,\ldots,b_s;q)_k} +(-1)^{(1+s-r)k}q^{(1+s-r)\binom{k}{2}}\frac{z^k}{(q;q)_k}, +\end{eqnarray} +where +$$(a_1,\ldots,a_r;q)_k:=(a_1;q)_k\cdots(a_r;q)_k.$$ +Again we assume that the parameters are such that the denominator factors +in the terms of the series are never zero. If one of the numerator +parameters $a_j$ equals $q^{-n}$, where $n$ is a nonnegative integer, this +basic hypergeometric function is a polynomial in $z$. Otherwise the radius of +convergence $\rho$ of the basic hypergeometric series is given by +$$\rho=\left\{\begin{array}{ll} +\displaystyle \infty & \quad\textrm{if}\quad r < s+1\\[5mm] +\displaystyle 1 & \quad\textrm{if}\quad r = s+1\\[5mm] +\displaystyle 0 & \quad\textrm{if}\quad r > s+1.\end{array}\right.$$ + +The special case $r=s+1$ reads +$$\qhyp{s+1}{s}{a_1,\ldots,a_{s+1}}{b_1,\ldots,b_s}{z}= +\sum\limits_{k=0}^{\infty}\frac{(a_1,\ldots,a_{s+1};q)_k}{(b_1,\ldots,b_s;q)_k} +\frac{z^k}{(q;q)_k}.$$ +This basic hypergeometric series was first introduced by Heine in 1846; therefore it is +sometimes called Heine's\index{Heine's series} series. A basic hypergeometric series of +this form is called balanced\index{Basic hypergeometric function!Balanced} +or Saalsch\"{u}tzian\index{Basic hypergeometric function!Saalsch\"{u}tzian} if $z=q$ and +$a_1a_2 \cdots a_{s+1}q=b_1b_2 \cdots b_s$. + +The $q$-hypergeometric function is a $q$-analogue of the hypergeometric function +defined by (\ref{DefHyp}) since +$$\lim\limits_{q\rightarrow 1} +\qhyp{r}{s}{q^{a_1},\ldots,q^{a_r}}{q^{b_1},\ldots,q^{b_s}}{(q-1)^{1+s-r}z} +=\hyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{z}.$$ +This limit will be used frequently in chapter~\ref{BasicHyperOrtPol}. In all +cases the hypergeometric series involved is in fact a polynomial so that +convergence is guaranteed. + +In the sequel of this paragraph we also assume that each (basic) hypergeometric +function is in fact a polynomial. We remark that +$$\lim\limits_{a_r\rightarrow\infty} +\qhyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{\frac{z}{a_r}}= +\qhyp{r-1}{s}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_s}{z}.$$ +In fact this is the reason for the factors +$(-1)^{(1+s-r)k}q^{(1+s-r)\binom{k}{2}}$ in the definition (\ref{DefBasHyp}) +of the basic hypergeometric function. + +Many limit relations between basic hypergeometric orthogonal polynomials +are based on the observations that +\begin{equation} +\label{qhypsub} +\qhyp{r}{s}{a_1,\ldots,a_{r-1},\mu}{b_1,\ldots,b_{s-1},\mu}{z}= +\qhyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{z}, +\end{equation} +\begin{equation} +\label{qhyplim1} +\lim\limits_{\lambda\rightarrow\infty} +\qhyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_s}{\frac{z}{\lambda}} +=\qhyp{r-1}{s}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_s}{a_rz}, +\end{equation} +\begin{equation} +\label{qhyplim2} +\lim\limits_{\lambda\rightarrow\infty} +\qhyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{\lambda z}= +\qhyp{r}{s-1}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1}}{\frac{z}{b_s}}, +\end{equation} +and +\begin{equation} +\label{qhyplim3} +\lim\limits_{\lambda\rightarrow\infty} +\qhyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{z} +=\qhyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{\frac{a_rz}{b_s}}. +\end{equation} + +Mostly, the left-hand side of (\ref{qhypsub}) occurs as a limit case when some numerator +parameter and some denominator parameter tend to the same value. + +All families of discrete orthogonal polynomials $\{P_n(x)\}_{n=0}^N$ are +defined for $n=0,1,2,\ldots,N$, where $N$ is a positive integer. In these +cases something like (\ref{qhypsub}) occurs in the basic hypergeometric representation +when $n=N$. In these cases we have to be aware of the fact that we still have a polynomial +(in that case of degree $N$). For instance, if we take $n=N$ in the basic hypergeometric +representation (\ref{DefqHahn}) of the $q$-Hahn polynomials, we have +$$Q_N(q^{-x};\alpha,\beta,N|q)=\sum_{k=0}^N +\frac{(\alpha\beta q^{N+1};q)_k(q^{-x};q)_k}{(\alpha q;q)_k(q;q)_k}q^k.$$ +So these cases must be understood by continuity. + +\section{The $q$-binomial theorem and other summation formulas} +\par\setcounter{equation}{0} +\label{qsummation formulas} + +A $q$-analogue of the binomial theorem (\ref{binomial}) is called the $q$-binomial theorem: +\begin{equation} +\label{qbinomial}\index{q-Binomial theorem@$q$-Binomial theorem} +\index{Summation formula!q-Binomial theorem@$q$-Binomial theorem} +\qhyp{1}{0}{a}{-}{z}=\sum_{n=0}^{\infty}\frac{(a;q)_n}{(q;q)_n}z^n= +\frac{(az;q)_{\infty}}{(z;q)_{\infty}},\quad 0<|q|<1,\quad |z|<1. +\end{equation} +For $a=q^{-n}$ with $n$ a nonnegative integer we find +\begin{equation} +\label{qbinomialn} +\qhyp{1}{0}{q^{-n}}{-}{z}=(zq^{-n};q)_n,\quad n=0,1,2,\ldots. +\end{equation} +In fact this is a $q$-analogue of Newton's binomium (\ref{Newton}). +Note that the case $a=0$ of (\ref{qbinomial}) is the limit case ($n\rightarrow\infty$) of (\ref{qqn}). + +Gauss's summation formula (\ref{Gauss}) and the Vandermonde or Chu-Vandermonde +summation formula (\ref{ChuVandermonde}) have the following $q$-analogues: +\begin{equation} +\label{qChuVandermonde1}\index{q-Gauss summation formula@$q$-Gauss summation formula} +\index{Summation formula!q-Gauss@$q$-Gauss} +\qhyp{2}{1}{a,b}{c}{\frac{c}{ab}}=\frac{(a^{-1}c,b^{-1}c;q)_{\infty}} +{(c,a^{-1}b^{-1}c;q)_{\infty}},\quad 0<|q|<1,\quad\left|\frac{c}{ab}\right|<1, +\end{equation} +\begin{equation} +\label{qChuVandermonde2}\index{q-Vandermonde summation formula@$q$-Vandermonde summation formula} +\index{Summation formula!q-Vandermonde@$q$-Vandermonde} +\index{q-Chu-Vandermonde summation formula@$q$-Chu-Vandermonde summation formula} +\index{Summation formula!q-Chu-Vandermonde@$q$-Chu-Vandermonde} +\qhyp{2}{1}{q^{-n},b}{c}{\frac{cq^n}{b}}=\frac{(b^{-1}c;q)_n}{(c;q)_n},\quad n=0,1,2,\ldots +\end{equation} +and +\begin{equation} +\label{qChuVandermonde3} +\qhyp{2}{1}{q^{-n},b}{c}{q}=\frac{(b^{-1}c;q)_n}{(c;q)_n}b^n,\quad n=0,1,2,\ldots. +\end{equation} +By taking the limit $b\rightarrow\infty$ in (\ref{qChuVandermonde1}) we also obtain a summation +formula for the ${}_1\phi_1$ series: +\begin{equation} +\label{sum1phi1}\index{Summation formula!for a ${}_1\phi_1$} +\qhyp{1}{1}{a}{c}{\frac{c}{a}}=\frac{(a^{-1}c;q)_{\infty}}{(c;q)_{\infty}},\quad 0<|q|<1. +\end{equation} +By taking the limit $c\rightarrow\infty$ in (\ref{qChuVandermonde2}) we obtain a summation +formula for a terminating ${}_2\phi_0$ series: +\begin{equation} +\label{sum2phi0}\index{Summation formula!for a terminating ${}_2\phi_0$} +\qhyp{2}{0}{q^{-n},b}{-}{\frac{q^n}{b}}=\frac{1}{b^n},\quad n=0,1,2,\ldots. +\end{equation} +By taking the limit $a\rightarrow\infty$ in (\ref{sum1phi1}) we obtain +\begin{equation} +\label{sum0phi1}\index{Summation formula!for a ${}_0\phi_1$} +\qhyp{0}{1}{-}{c}{c}=\frac{1}{(c;q)_{\infty}},\quad 0<|q|<1. +\end{equation} + +On the ${}_3\phi_2$ level we have the summation formula +\begin{equation} +\label{qPfaffSaalschutz} +\index{q-Saalschutz summation formula@$q$-Saalsch\"{u}tz summation formula} +\index{Summation formula!q-Saalschutz@$q$-Saalsch\"{u}tz} +\index{q-Pfaff-Saalschutz summation formula@$q$-Pfaff-Saalsch\"{u}tz summation formula} +\index{Summation formula!q-Pfaff-Saalschutz@$q$-Pfaff-Saalsch\"{u}tz} +\qhyp{3}{2}{q^{-n},a,b}{c,abc^{-1}q^{1-n}}{q}=\frac{(a^{-1}c,b^{-1}c;q)_n} +{(c,a^{-1}b^{-1}c;q)_n},\quad n=0,1,2,\ldots, +\end{equation} +which is a $q$-analogue of the Saalsch\"utz or Pfaff-Saalsch\"utz summation formula +(\ref{PfaffSaalschutz}). + +On the ${}_6\phi_5$ level we have the Jackson summation formula +\begin{eqnarray} +\label{qJackson1}\index{Jackson's summation formula}\index{Summation formula!Jackson} +\index{Summation formula!for a very-well-poised ${}_6\phi_5$} +& &\qhyp{6}{5}{q\sqrt{a},-q\sqrt{a},a,b,c,d}{\sqrt{a},-\sqrt{a},ab^{-1}q,ac^{-1}q,ad^{-1}q}{\frac{aq}{bcd}}\nonumber\\ +& &{}=\frac{(aq,ab^{-1}c^{-1}q,ab^{-1}d^{-1}q,ac^{-1}d^{-1}q;q)_{\infty}} +{(ab^{-1}q,ac^{-1}q,ad^{-1}q,ab^{-1}c^{-1}d^{-1}q;q)_{\infty}},\quad\left|\frac{aq}{bcd}\right|<1 +\end{eqnarray} +for a non-terminating very-well-poised ${}_6\phi_5$. We also have the summation formula +\begin{eqnarray} +\label{qJackson2} +& &\qhyp{6}{5}{q\sqrt{a},-q\sqrt{a},a,b,c,q^{-n}}{\sqrt{a},-\sqrt{a},ab^{-1}q,ac^{-1}q,aq^{n+1}}{\frac{aq^{n+1}}{bc}}\nonumber\\ +& &{}=\frac{(aq,ab^{-1}c^{-1}q;q)_n}{(ab^{-1}q,ac^{-1}q;q)_n},\quad n=0,1,2,\ldots +\end{eqnarray} +for a terminating very-well-poised ${}_6\phi_5$, which is also due to Jackson. +By taking the limit $c\rightarrow 0$ we obtain +\begin{eqnarray} +\label{qJackson3} +& &\qhyp{6}{4}{q\sqrt{a},-q\sqrt{a},a,b,0,q^{-n}}{\sqrt{a},-\sqrt{a},ab^{-1}q,aq^{n+1}}{\frac{q^n}{b}}\nonumber\\ +& &{}=\frac{(aq;q)_n}{(ab^{-1}q;q)_n}b^{-n},\quad n=0,1,2,\ldots. +\end{eqnarray} +If we take the limit $b\rightarrow 0$ we obtain +\begin{eqnarray} +\label{qJackson4} +& &\qhyp{6}{3}{q\sqrt{a},-q\sqrt{a},a,0,0,q^{-n}}{\sqrt{a},-\sqrt{a},aq^{n+1}}{\frac{q^{n-1}}{a}}\nonumber\\ +& &{}=(-1)^na^{-n}q^{-\binom{n+1}{2}}(aq;q)_n,\quad n=0,1,2,\ldots. +\end{eqnarray} + +\section{More integrals} +\par\setcounter{equation}{0} +\label{integrals2} + +In this section we list some $q$-extensions of the beta integral. +For instance, we will need the following integral: +\begin{equation} +\label{int1} +\int_0^{\infty}x^{c-1}\frac{(-ax,-bq/x;q)_{\infty}}{(-x,-q/x;q)_{\infty}}\,dx +=\frac{\pi}{\sin(\pi c)}\,\frac{(ab,q^c,q^{1-c};q)_{\infty}}{(bq^c,aq^{-c},q;q)_{\infty}}, +\end{equation} +which holds for $00$ and $\left|aq^{-c}\right|<1$. +If we set $b=1$ in (\ref{int1}), we find that +\begin{equation} +\label{int2} +\int_0^{\infty}x^{c-1}\frac{(-ax;q)_{\infty}}{(-x;q)_{\infty}}\,dx +=\frac{\pi}{\sin(\pi c)}\,\frac{(a,q^{1-c};q)_{\infty}}{(aq^{-c},q;q)_{\infty}} +\end{equation} +for $00$ and $\left|aq^{-c}\right|<1$, +and by taking the limit $c\rightarrow 1$ in (\ref{int1}), we obtain +\begin{equation} +\label{int3} +\int_0^{\infty}\frac{(-ax,-bq/x;q)_{\infty}}{(-x,-q/x;q)_{\infty}}\,dx +=-\ln q\,\frac{(ab,q;q)_{\infty}}{(bq,a/q;q)_{\infty}} +\end{equation} +for $00$ and non-real parameters occur in conjugate pairs, then +\begin{eqnarray} +\label{OrthIWilson} +& &\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, +\end{eqnarray} +where +\begin{eqnarray*} +& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ +& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). +\end{eqnarray*} +If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates +occur with positive real parts, then +\begin{eqnarray} +\label{OrtIIWilson} +& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ +& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} +{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} +\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ +& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecWilson} +-\left(a^2+x^2\right){\tilde{W}}_n(x^2) +=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), +\end{equation} +where +$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecWilson} +xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvWilson} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=W_n(x^2;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] +\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1WilsonI} +& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) +-W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1WilsonII} +& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ +& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{eqnarray} + +\newpage + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2WilsonI} +& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) +(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) +W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2WilsonII} +& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ +& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodWilson} +& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ +& &{}=\left(\frac{\delta}{\delta x^2}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenWilson1} +\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson2} +\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson3} +\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. +\end{equation} + +\begin{eqnarray} +\label{GenWilson4} +& &(1-t)^{1-a-b-c-d}\nonumber\\ +& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} +{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} +The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the +Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: +\begin{equation} +\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson +polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, +$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following +way: +\begin{equation} +\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson +polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Remarks} +Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then +\begin{eqnarray} +\label{OrtContHahn} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) +p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} +{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecContHahn} +(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), +\end{equation} +where +$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecContHahn} +xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvContHahn} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] +\displaystyle D(x)=(a+ix)(b+ix). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1ContHahnI} +& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, +b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1ContHahnII} +\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) +p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2ContHahnI} +& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, +b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2ContHahnII} +& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ +& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ +& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodContHahn} +& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ +& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenContHahn1} +\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenContHahn2} +\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenContHahn3} +& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} +{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials are obtained from the Wilson polynomials given by +(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, +$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit +$t\rightarrow\infty$ in the following way: +$$\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the +continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ +and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. +\end{equation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials +by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous +Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray} + +\subsection*{Remark} +Since we have for $k-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have +\begin{eqnarray} +\label{OrtHahn} +& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHahn} +-xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), +\end{equation} +where +$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] +\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHahn} +xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvHahn} +n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] +\displaystyle D(x)=x(x-\beta-N-1). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1HahnI} +& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1HahnII} +\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2HahnI} +& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ +& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2HahnII} +& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ +& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), +\end{eqnarray} +where +$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodHahn} +& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenHahn1} +\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenHahn2} +& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenHahn3} +& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} +{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Hahn} +If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we obtain the Hahn polynomials. Hence +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ +And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we also obtain the Hahn polynomials: +$$\lim_{\gamma\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ +Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in +the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit +$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take +$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials +by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials +if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the +dual Hahn polynomials given by (\ref{DefDualHahn}). + +\noindent +Since +$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ +we obtain the dual orthogonality relation for the Hahn polynomials from the +orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} +Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ +& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. +\end{eqnarray*} + +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, +\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, +\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, +\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, +\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, +\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, +\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, +\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, +\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, +\cite{Zarzo+}. + + +\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefDualHahn} +R_n(\lambda(x);\gamma,\delta,N)= +\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\lambda(x)=x(x+\gamma+\delta+1).$$ + +\subsection*{Orthogonality relation} +For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have +\begin{eqnarray} +\label{OrtDualHahn} +& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDualHahn} +\lambda(x)R_n(\lambda(x)) +=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), +\end{equation} +where +$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] +\displaystyle C_n=n(n-\delta-N-1). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDualHahn} +xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvDualHahn} +-ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] +\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualHahnI} +& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1DualHahnII} +\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= +-\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualHahnI} +& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ +& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualHahnII} +& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ +& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), +\end{eqnarray} +where +$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} +{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ + +\newpage + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDualHahn} +\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) +=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], +\end{equation} +where +$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenDualHahn1} +(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn2} +& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ +& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{eqnarray} + +\begin{equation} +\label{GenDualHahn3} +\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N +\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn4} +& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, +\quad\textrm{$\epsilon$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Dual Hahn} +If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we obtain the dual Hahn polynomials: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we also obtain the dual Hahn polynomials: +$$\lim_{\alpha\rightarrow\infty} +R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition +(\ref{DefRacah}) of the Racah polynomials and take the limit +$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials +if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). +\end{equation} + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual +Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) +of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). + +\noindent +Since +$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ +we obtain the dual orthogonality relation for the dual Hahn polynomials +from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ +& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. +\end{eqnarray*} + +\subsection*{References} +\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, +\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, +\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. + + +\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMP} +P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, +\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMP} +\frac{1}{2\pi}\int_{-\infty}^{\infty} +\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 +P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx +{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, +% \constraint{ +% $\lambda > 0$ & +% $0 < \phi < \pi$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMP} +& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] +P_n^{(\lambda)}(x;\phi)\nonumber\\ +& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMP} +xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ +\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), +\end{equation} +where +$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvMP} +& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ +& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MPI} +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) +P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MPII} +\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} +=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2MPI} +& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ +\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ +& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2MPII} +\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= +-(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) +P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), +\end{equation} +where +$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMP} +\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} +\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. +\end{equation} + +\newpage + +\subsection*{Generating functions} +\begin{equation} +\label{GenMP1} +(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= +\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. +\end{equation} + +\begin{equation} +\label{GenMP2} +\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= +\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenMP3} +& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials +given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, +$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the +definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit +$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: +$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ + +\newpage + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the +Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +\begin{equation} +\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek +polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +and then let $\lambda\rightarrow\infty$: +\begin{equation} +\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remark} +Since we have for $k-1$ and $\beta>-1$ we have +\begin{eqnarray} +\label{OrtJacobi1} +& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ +& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. +\end{eqnarray} +For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have +\begin{eqnarray} +\label{OrtJacobi2} +& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ +& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecJacobi} +xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} +{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) +\end{eqnarray} +where +$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{eqnarray} +\label{dvJacobi} +& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ +& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Jacobi} +\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2JacobiI} +& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ +\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2JacobiII} +& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ +& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodJacobi} +(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= +\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenJacobi1} +\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= +\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{eqnarray} +\label{GenJacobi2} +& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi3} +& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi4} +& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi5} +& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2} +\end{eqnarray} +with $\gamma$ arbitrary. + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by +substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +$$\lim_{t\rightarrow\infty} +\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} +{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) +by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ +in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take +$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have +$$\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi +polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials +if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: +\begin{equation} +\lim_{\alpha\rightarrow-\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials +by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: +$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} +(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ +In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ +and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the +following connection with the Meixner polynomials given by (\ref{DefMeixner}): +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by +(\ref{DefPseudoJacobi}) in the following way: +$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ + +\noindent +The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials +given by (\ref{DefGegenbauer}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, +\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, +\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, +\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, +\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, +\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, +\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, +\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, +\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, +\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, +\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, +\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, +\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, +\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, +\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, +\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, +\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, +\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, +\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, +\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, +\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, +\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, +\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, +\cite{Zayed}. + +\section*{Special cases} + +\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} +\index{Ultraspherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with +$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: +\begin{eqnarray} +\label{DefGegenbauer} +C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ +&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} +{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtGegenbauer} +& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ +& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, +\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecGegenbauer} +2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecGegenbauer} +xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), +\end{equation} +where +$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvGegenbauer} +(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Gegenbauer} +\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2GegenbauerI} +(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= +-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) +\end{equation} +or equivalently +\begin{eqnarray} +\label{shift2GegenbauerII} +& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ +& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodGegenbauer} +(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= +\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenGegenbauer1} +(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer2} +R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} +\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenGegenbauer3} +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} +=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer4} +\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenGegenbauer5} +& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenGegenbauer6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} +{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or +ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remarks} +The case $\lambda=0$ needs another normalization. In that case we have the +Chebyshev polynomials of the first kind described in the next subsection. + +\noindent +The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials +given by (\ref{DefJacobi}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, +\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, +\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, +\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, +\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, +\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, +\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, +\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, +\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, +\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, +\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, +\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. + +\subsection{Chebyshev}\index{Chebyshev polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Chebyshev polynomials of the first kind can be obtained from the Jacobi +polynomials by taking $\alpha=\beta=-\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevI} +T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} +=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} +\end{equation} +and the Chebyshev polynomials of the second kind can be obtained from the +Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevII} +U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} +=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtChebyshevI} +\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= +\left\{\begin{array}{ll} +\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] +\cpi\,\delta_{mn}, & n=0. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{OrtChebyshevII} +\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relations} +\begin{equation} +\label{RecChebyshevI} +2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. +\end{equation} + +\begin{equation} +\label{RecChebyshevII} +2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. +\end{equation} + +\subsection*{Normalized recurrence relations} +\begin{equation} +\label{NormRecChebyshevI} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ + +\begin{equation} +\label{NormRecChebyshevII} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$U_n(x)=2^np_n(x).$$ + +\subsection*{Differential equations} +\begin{equation} +\label{dvChebyshevI} +(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). +\end{equation} + +\begin{equation} +\label{dvChebyshevII} +(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Chebyshev} +\frac{d}{dx}T_n(x)=nU_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2ChebyshevI} +(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2ChebyshevII} +\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] +=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formulas} +\begin{equation} +\label{RodChebyshevI} +(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. +\end{equation} + +\begin{equation} +\label{RodChebyshevII} +(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenChebyshevI1} +\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI2} +R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} +\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevI3} +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevI5} +& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevI6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{equation} +\label{GenChebyshevII1} +\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII2} +\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} +\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevII3} +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevII5} +& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevII6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Remarks} +The Chebyshev polynomials can also be written as: +$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ +and +$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ +Further we have +$$U_n(x)=C_n^{(1)}(x)$$ +where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) +polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. + +\subsection*{References} +\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, +\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, +\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, +\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, +\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, +\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. + +\subsection{Legendre / Spherical}\index{Legendre polynomials} +\index{Spherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: +\begin{equation} +\label{DefLegendre} +P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLegendre} +\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLegendre} +(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLegendre} +xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), +\end{equation} +where +$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLegendre} +(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLegendre} +P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLegendre1} +\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre2} +\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre3} +\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenLegendre4} +& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenLegendre5} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{References} +\cite{Abram}, \cite{Alladi}, \cite{AlSalam90}, \cite{Bhonsle}, \cite{Brafman51}, +\cite{Carlitz57II}, \cite{Chihara78}, \cite{Danese}, \cite{Dattoli2001}, +\cite{DilcherStolarsky}, \cite{ElbertLaforgia94}, \cite{Erdelyi+}, \cite{Grad}, +\cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Rainville}, +\cite{Szego75}, \cite{Temme}, \cite{Zayed}. + +\newpage + +\section{Pseudo Jacobi}\index{Pseudo Jacobi polynomials}\index{Jacobi polynomials!Pseudo} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefPseudoJacobi} +P_n(x;\nu,N)&=&\frac{(-2i)^n(-N+i\nu)_n}{(n-2N-1)_n}\,\hyp{2}{1}{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}}\\ +&=&(x+i)^n\,\hyp{2}{1}{-n,N+1-n-i\nu}{2N+2-2n}{\frac{2}{1-ix}},\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtPseudoJacobi} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_m(x;\nu,N)P_n(x;\nu,N)\,dx\nonumber\\ +& &{}=\frac{\Gamma(2N+1-2n)\Gamma(2N+2-2n)2^{2n-2N-1}n!}{\Gamma(2N+2-n)\left|\Gamma(N+1-n+i\nu)\right|^2}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecPseudoJacobi} +xP_n(x;\nu,N)&=&P_{n+1}(x;\nu,N)+\frac{(N+1)\nu}{(n-N-1)(n-N)}P_n(x;\nu,N)\nonumber\\ +& &{}\mathindent{}-\frac{n(n-2N-2)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}\nonumber\\ +& &{}\mathindent\mathindent\times(n-N-1-i\nu)(n-N-1+i\nu)P_{n-1}(x;\nu,N). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecPseudoJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{(N+1)\nu}{(n-N-1)(n-N)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{n(n-2N-2)(n-N-1-i\nu)(n-N-1+i\nu)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}p_{n-1}(x), +\end{eqnarray} +where +$$P_n(x;\nu,N)=p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvPseudoJacobi} +(1+x^2)y''(x)+2\left(\nu-Nx\right)y'(x)-n(n-2N-1)y(x)=0, +\end{equation} +where +$$y(x)=P_n(x;\nu,N).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1PseudoJacobi} +\frac{d}{dx}P_n(x;\nu,N)=nP_{n-1}(x;\nu,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2PseudoJacobiI} +& &(1+x^2)\frac{d}{dx}P_n(x;\nu,N)+2\left[\nu-(N+1)x\right]P_n(x;\nu,N)\nonumber\\ +& &{}=(n-2N-2)P_{n+1}(x;\nu,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2PseudoJacobiII} +& &\frac{d}{dx}\left[(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_n(x;\nu,N)\right]\nonumber\\ +& &{}=(n-2N-2)(1+x^2)^{-N-2}\e^{2\nu\arctan x}P_{n+1}(x;\nu,N+1). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodPseudoJacobi} +P_n(x;\nu,N)=\frac{(1+x^2)^{N+1}\expe^{-2\nu\arctan x}}{(n-2N-1)_n} +\left(\frac{d}{dx}\right)^n\left[(1+x^2)^{n-N-1}\expe^{2\nu\arctan x}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{eqnarray} +\label{GenPseudoJacobi} +& &\left[\hyp{0}{1}{-}{-N+i\nu}{(x+i)t}\,\hyp{0}{1}{-}{-N-i\nu}{(x-i)t}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(n-2N-1)_n}{(-N+i\nu)_n(-N-i\nu)_nn!}P_n(x;\nu,N)t^n. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials follow from the continuous Hahn polynomials given by +(\ref{DefContHahn}) by the substitutions $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray*} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray*} + +\subsection*{Remarks} +Since we have for $k 0$ & +% $0 < c < 1$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMeixner} +(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ +& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMeixner} +xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ +\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), +\end{equation} +where +$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvMeixner} +n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), +\end{equation} +where +$$y(x)=M_n(x;\beta,c).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MeixnerI} +M_n(x+1;\beta,c)-M_n(x;\beta,c)= +\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MeixnerII} +\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2MeixnerI} +c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift2MeixnerII} +\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= +\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMeixner} +\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenMeixner1} +\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= +\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner2} +\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= +\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner3} +(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) +of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: +$$\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +To obtain the Meixner polynomials from the dual Hahn polynomials we have to take +$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of +the dual Hahn polynomials and let $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials +if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: +\begin{equation} +\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. +\end{equation} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials +if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). +\end{equation} + +\subsection*{Remarks} +The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) +in the following way: +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Meixner polynomials are also related to the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) in the following way: +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{Alvarez+}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyIsmail76}, +\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Bavinck98}, +\cite{BavinckHaeringen}, \cite{Campigotto+}, \cite{Chihara78}, \cite{Cooper+}, +\cite{Erdelyi+}, \cite{FoataLabelle}, \cite{Gabutti}, \cite{GabuttiMathis}, \cite{Gasper73I}, +\cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{IsmailLetVal88}, +\cite{IsmailLi}, \cite{IsmailMuldoon}, \cite{IsmailStanton97}, \cite{JinWong}, +\cite{Karlin58}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rahman78I}, \cite{ValentAssche}, +\cite{Viennot}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Krawtchouk}\index{Krawtchouk polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefKrawtchouk} +K_n(x;p,N)=\hyp{2}{1}{-n,-x}{-N}{\frac{1}{p}},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtKrawtchouk} +& &\sum_{x=0}^N\binom{N}{x}p^x(1-p)^{N-x} K_m(x;p,N)K_n(x;p,N)\nonumber\\ +& &{}=\frac{(-1)^nn!}{(-N)_n}\left(\frac{1-p}{p}\right)^n\,\delta_{mn},\quad0 < p < 1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecKrawtchouk} +-xK_n(x;p,N)&=&p(N-n)K_{n+1}(x;p,N)\nonumber\\ +& &{}\mathindent{}-\left[p(N-n)+n(1-p)\right]K_n(x;p,N)\nonumber\\ +& &{}\mathindent\mathindent{}+n(1-p)K_{n-1}(x;p,N). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+\left[p(N-n)+n(1-p)\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+np(1-p)(N+1-n)p_{n-1}(x), +\end{eqnarray} +where +$$K_n(x;p,N)=\frac{1}{(-N)_np^n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvKrawtchouk} +-ny(x)&=&p(N-x)y(x+1)\nonumber\\ +& &{}\mathindent{}-\left[p(N-x)+x(1-p)\right]y(x)+x(1-p)y(x-1), +\end{eqnarray} +where +$$y(x)=K_n(x;p,N).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1KrawtchoukI} +K_n(x+1;p,N)-K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1) +\end{equation} +or equivalently +\begin{equation} +\label{shift1KrawtchoukII} +\Delta K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2KrawtchoukI} +& &(N+1-x)K_n(x;p,N)-x\left(\frac{1-p}{p}\right)K_n(x-1;p,N)\nonumber\\ +& &{}=(N+1)K_{n+1}(x;p,N+1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2KrawtchoukII} +\nabla\left[\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)\right]= +\binom{N+1}{x}\left(\frac{p}{1-p}\right)^xK_{n+1}(x;p,N+1). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodKrawtchouk} +\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)= +\nabla^n\left[\binom{N-n}{x}\left(\frac{p}{1-p}\right)^x\right]. +\end{equation} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenKrawtchouk1} +\left(1-\frac{(1-p)}{p}t\right)^x(1+t)^{N-x}= +\sum_{n=0}^N\binom{N}{n}K_n(x;p,N)t^n. +\end{equation} + +\begin{equation} +\label{GenKrawtchouk2} +\left[\expe^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}\right]_N= +\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenKrawtchouk3} +& &\left[(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{-N}{\frac{t}{p(t-1)}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\gamma)_n}{n!}K_n(x;p,N)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +If we take $\alpha=pt$ and $\beta=(1-p)t$ in the definition (\ref{DefHahn}) of the Hahn +polynomials and let $t\rightarrow\infty$ we obtain the Krawtchouk polynomials: +$$\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials follow from the dual Hahn polynomials given by +(\ref{DefDualHahn}) if we set $\gamma=pt$, $\delta=(1-p)t$ and let $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) can be found from the Krawtchouk +polynomials by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a). +\end{equation} + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Krawtchouk polynomials +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}. +\end{equation} + +\subsection*{Remarks} +The Krawtchouk polynomials are self-dual, which means that +$$K_n(x;p,N)=K_x(n;p,N),\quad n,x\in\{0,1,2,\ldots,N\}.$$ +By using this relation we easily obtain the so-called dual orthogonality +relation from the orthogonality relation (\ref{OrtKrawtchouk}): +$$\sum_{n=0}^N\binom{N}{n}p^n(1-p)^{N-n} K_n(x;p,N)K_n(y;p,N)= +\frac{\displaystyle\left(\frac{1-p}{p}\right)^x}{\dbinom{N}{x}}\delta_{xy},$$ +where $0 < p < 1$ and $x,y\in\{0,1,2,\ldots,N\}$. + +\noindent +The Krawtchouk polynomials are related to the Meixner polynomials given by (\ref{DefMeixner}) +in the following way: +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, +\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, +\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, +\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, +\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Laguerre}\index{Laguerre polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefLaguerre} +L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLaguerre} +\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= +\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLaguerre} +(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLaguerre} +xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), +\end{equation} +where +$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLaguerre} +xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). +\end{equation} + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Laguerre} +\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2LaguerreI} +x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2LaguerreII} +\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLaguerre} +\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLaguerre1} +(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= +\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre2} +\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre3} +(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by +(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +$$\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) +if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: +$$\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition +(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain +the Laguerre polynomials: +$$\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre +polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be +written as: +$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ +In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. +Therefore they can be defined for all $\alpha$. + +\noindent +The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\noindent +The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\noindent +In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook +polynomials. + +\subsection*{References} +\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, +\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, +\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, +\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, +\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, +\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, +\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, +\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, +\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, +\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, +\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, +\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, +\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, +\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, +\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, +\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, +\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, +\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, +\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. + + +\section{Bessel}\index{Bessel polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefBessel} +y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ +&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, +\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBessel} +& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ +& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBessel} +& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ +& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ +& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecBessel} +xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), +\end{eqnarray} +where +$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvBessel} +x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Bessel} +\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2BesselI} +x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) +\end{equation} +or equivalently +\begin{equation} +\label{shift2BesselII} +\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodBessel} +y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenBessel} +\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a +\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. +\end{equation} + +\subsection*{Limit relation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials +and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: +$$\lim_{\alpha\rightarrow -\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ + +\subsection*{Remarks} +The following notations are also used for the Bessel polynomials: +$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ +However, the Bessel polynomials essentially depend on only one parameter. + +\noindent +The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi +polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the +pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: +$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, +\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, +\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. + + +\section{Charlier}\index{Charlier polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefCharlier} +C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtCharlier} +\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= +a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecCharlier} +-xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecCharlier} +xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), +\end{equation} +where +$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvCharlier} +-ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1CharlierI} +C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift1CharlierII} +\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2CharlierI} +C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift2CharlierII} +\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodCharlier} +\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenCharlier} +\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials +and let $\beta\rightarrow\infty$ we find the Charlier polynomials: +$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials can be found from the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials +if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). +\end{equation} + +\subsection*{Remark} +The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, +\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, +\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, +\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, +\cite{Zeng90}. + + +\section{Hermite}\index{Hermite polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefHermite} +H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtHermite} +\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx +=2^nn!\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHermite} +H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHermite} +xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), +\end{equation} +where +$$H_n(x)=2^np_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvHermite} +y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Hermite} +\frac{d}{dx}H_n(x)=2nH_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2HermiteI} +\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2HermiteII} +\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodHermite} +\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenHermite1} +\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenHermite2} +\left\{\begin{array}{l} +\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] +\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite3} +\left\{\begin{array}{l} +\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] +\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite4} +\left\{\begin{array}{l} +\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= +\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] +\displaystyle\frac{xt}{\sqrt{1+t^2}}\, +\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} +=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} +\end{array}\right. +\end{equation} +with $\gamma$ arbitrary. + +\begin{equation} +\label{GenHermite5} +\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) +=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, +\end{equation} +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and +then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: +$$\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by +taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by +(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials can be obtained from the Laguerre polynomials given by +(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) +of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite +polynomials. In fact we have +$$\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ + +\subsection*{Remarks} +The Hermite polynomials can also be written as: +$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} +\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\noindent +The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\subsection*{References} +\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, +\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, +\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, +\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, +\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, +\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, +\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, +\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, +\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, +\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, +\cite{Weisner59}, \cite{Wyman}. + +\end{document} diff --git a/KLSadd_insertion/chap14.tex b/KLSadd_insertion/chap14.tex new file mode 100644 index 0000000..0b5f396 --- /dev/null +++ b/KLSadd_insertion/chap14.tex @@ -0,0 +1,5734 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\pagenumbering{roman} +\addtocounter{chapter}{13} + +\chapter{Basic hypergeometric orthogonal polynomials} +\label{BasicHyperOrtPol} + + +In this chapter we deal with all families of basic hypergeometric orthogonal polynomials +appearing in the $q$-analogue of the Askey scheme on the pages~\pageref{qscheme1} and +\pageref{qscheme2}. For each family of orthogonal polynomials we state the most important +properties such as a representation as a basic hypergeometric function, orthogonality +relation(s), the three-term recurrence relation, the second-order $q$-difference equation, +the forward shift (or degree lowering) and backward shift (or degree raising) operator, a +Rodrigues-type formula and some generating functions. Throughout this chapter we assume +that $01$ and $b,c,d$ are real or one is real and the other two are complex conjugates,\\ +$\max(|b|,|c|,|d|)<1$ and the pairwise products of $a,b,c$ and $d$ have +absolute value less than $1$, then we have another orthogonality relation +given by: +\begin{eqnarray} +\label{OrtAskeyWilsonII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c,d|q)p_n(x;a,b,c,d|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 11$ and $b$ and $c$ are real or complex conjugates, +$\max(|b|,|c|)<1$ and the pairwise products of $a,b$ and $c$ have +absolute value less than $1$, then we have another orthogonality relation +given by: +\begin{eqnarray} +\label{OrtContDualqHahnII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c|q)p_n(x;a,b,c|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10$) in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we +obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): +\begin{equation} +\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). +\end{equation} + +\subsubsection*{Big $q$-Jacobi $\rightarrow$ Jacobi} +If we set $c=0$, $a=q^{\alpha}$ and $b=q^{\beta}$ in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and let $q\rightarrow 1$ we find the Jacobi +polynomials given by (\ref{DefJacobi}): +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},0;q)=\frac{P_n^{(\alpha,\beta)}(2x-1)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} +If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we +find +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},-q^{\gamma};q)=\frac{P_n^{(\alpha,\beta)}(x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsection*{Remarks} +The big $q$-Jacobi polynomials with $c=0$ and the little +$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related +in the following way: +$$P_n(x;a,b,0;q)=\frac{(bq;q)_n}{(aq;q)_n}(-1)^na^nq^{n+\binom{n}{2}}p_n(a^{-1}q^{-1}x;b,a|q).$$ + +\noindent +Sometimes the big $q$-Jacobi polynomials are defined in terms of four +parameters instead of three. In fact the polynomials given by the definition +$$P_n(x;a,b,c,d;q)=\qhyp{3}{2}{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}$$ +are orthogonal on the interval $[-d,c]$ with respect to the weight function +$$\frac{(c^{-1}qx,-d^{-1}qx;q)_{\infty}}{(ac^{-1}qx,-bd^{-1}qx;q)_{\infty}}d_qx.$$ +These polynomials are not really different from those given by +(\ref{DefBigqJacobi}) since we have +$$P_n(x;a,b,c,d;q)=P_n(ac^{-1}qx;a,b,-ac^{-1}d;q)$$ +and +$$P_n(x;a,b,c;q)=P_n(x;a,b,aq,-cq;q).$$ + +\subsection*{References} +\cite{NAlSalam89}, \cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{AtakKlimyk2004}, +\cite{AtakRahmanSuslov}, \cite{DattaGriffin}, \cite{FloreaniniVinetII}, +\cite{GasperRahman90}, \cite{GrunbaumHaine96}, \cite{Gupta92}, \cite{Hahn}, +\cite{Ismail86I}, \cite{IsmailStanton97}, \cite{IsmailWilson}, \cite{KalninsMiller88}, +\cite{KoelinkE}, \cite{Koorn90II}, \cite{Koorn93}, \cite{Koorn2007}, \cite{Miller89}, +\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{NoumiMimachi90III}, +\cite{NoumiMimachi91}, \cite{Spiridonov97}, \cite{SrivastavaJain90}. + + +\section*{Special case} + +\subsection{Big $q$-Legendre} +\index{Big q-Legendre polynomials@Big $q$-Legendre polynomials} +\index{q-Legendre polynomials@$q$-Legendre polynomials!Big} +\par + +\subsection*{Basic hypergeometric representation} The big $q$-Legendre polynomials are big $q$-Jacobi polynomials +with $a=b=1$: +\begin{equation} +\label{DefBigqLegendre} +P_n(x;c;q)=\qhyp{3}{2}{q^{-n},q^{n+1},x}{q,cq}{q}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBigqLegendre} +& &\int_{cq}^{q}P_m(x;c;q)P_n(x;c;q)\,d_qx\nonumber\\ +& &{}=q(1-c)\frac{(1-q)}{(1-q^{2n+1})} +\frac{(c^{-1}q;q)_n}{(cq;q)_n}(-cq^2)^nq^{\binom{n}{2}}\,\delta_{mn},\quad c<0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBigqLegendre} +(x-1)P_n(x;c;q)&=&A_nP_{n+1}(x;c;q)-\left(A_n+C_n\right)P_n(x;c;q)\nonumber\\ +& &{}\mathindent{}+C_nP_{n-1}(x;c;q), +\end{eqnarray} +where +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n+1})(1-cq^{n+1})}{(1+q^{n+1})(1-q^{2n+1})}\\ +\\ +\displaystyle C_n=-cq^{n+1}\frac{(1-q^n)(1-c^{-1}q^n)}{(1+q^n)(1-q^{2n+1})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecBigqLegendre} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$P_n(x;c;q)=\frac{(q^{n+1};q)_n}{(q,cq;q)_n}p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvBigqLegendre} +& &q^{-n}(1-q^n)(1-q^{n+1})x^2y(x)\nonumber\\ +& &{}=B(x)y(qx)-\left[B(x)+D(x)\right]y(x)+D(x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=P_n(x;c;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=q(x-1)(x-c)\\ +\\ +\displaystyle D(x)=(x-q)(x-cq).\end{array}\right.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodBigqLegendre} +P_n(x;c;q)&=&\frac{c^nq^{n(n+1)}(1-q)^n}{(q,cq;q)_n} +\left(\mathcal{D}_q\right)^n\left[(q^{-n}x,c^{-1}q^{-n}x;q)_n\right]\\ +&=&\frac{(1-q)^n}{(q,cq;q)_n}\left(\mathcal{D}_q\right)^n +\left[(qx^{-1},cqx^{-1};q)_nx^{2n}\right].\nonumber +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenBigqLegendre1} +\qhyp{2}{1}{qx^{-1},0}{q}{xt}\,\qhyp{1}{1}{c^{-1}x}{q}{cqt} +=\sum_{n=0}^{\infty}\frac{(cq;q)_n}{(q,q;q)_n}P_n(x;c;q)t^n. +\end{equation} + +\begin{equation} +\label{GenBigqLegendre2} +\qhyp{2}{1}{cqx^{-1},0}{cq}{xt}\,\qhyp{1}{1}{c^{-1}x}{c^{-1}q}{qt} +=\sum_{n=0}^{\infty}\frac{P_n(x;c;q)}{(c^{-1}q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Legendre $\rightarrow$ Legendre / Spherical} +If we set $c=0$ in the definition (\ref{DefBigqLegendre}) of the big +$q$-Legendre polynomials and let $q\rightarrow 1$ we simply obtain the Legendre +(or spherical) polynomials given by (\ref{DefLegendre}): +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;0;q)=P_n(2x-1). +\end{equation} +If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we +find +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;-q^{\gamma};q)=P_n(x). +\end{equation} + +\subsection*{References} +\cite{Koelink95I}, \cite{Koorn90II}. + + +\section{$q$-Hahn}\index{q-Hahn polynomials@$q$-Hahn polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefqHahn} +Q_n(q^{-x};\alpha,\beta,N|q)=\qhyp{3}{2}{q^{-n},\alpha\beta q^{n+1},q^{-x}} +{\alpha q,q^{-N}}{q},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +For $0<\alpha q<1$ and $0<\beta q<1$, or for $\alpha>q^{-N}$ and $\beta>q^{-N}$, we have +\begin{eqnarray} +\label{OrtqHahn} +& &\sum_{x=0}^N\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta q)^{-x} +Q_m(q^{-x};\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=\frac{(\alpha\beta q^2;q)_N}{(\beta q;q)_N(\alpha q)^N} +\frac{(q,\alpha\beta q^{N+2},\beta q;q)_n}{(\alpha q,\alpha\beta q,q^{-N};q)_n}\, +\frac{(1-\alpha\beta q)(-\alpha q)^n}{(1-\alpha\beta q^{2n+1})} +q^{\binom{n}{2}-Nn}\,\delta_{mn}. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqHahn} +-\left(1-q^{-x}\right)Q_n(q^{-x})&=&A_nQ_{n+1}(q^{-x})-\left(A_n+C_n\right)Q_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+C_nQ_{n-1}(q^{-x}), +\end{eqnarray} +where +$$Q_n(q^{-x}):=Q_n(q^{-x};\alpha,\beta,N|q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n-N})(1-\alpha q^{n+1})(1-\alpha\beta q^{n+1})}{(1-\alpha\beta q^{2n+1})(1-\alpha\beta q^{2n+2})}\\ +\\ +\displaystyle C_n=-\frac{\alpha q^{n-N}(1-q^n)(1-\alpha\beta q^{n+N+1})(1-\beta q^n)}{(1-\alpha\beta q^{2n})(1-\alpha\beta q^{2n+1})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqHahn} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(q^{-x};\alpha,\beta,N|q)= +\frac{(\alpha\beta q^{n+1};q)_n}{(\alpha q,q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqHahn} +& &q^{-n}(1-q^n)(1-\alpha\beta q^{n+1})y(x)\nonumber\\ +& &{}=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{eqnarray} +where +$$y(x)=Q_n(q^{-x};\alpha,\beta,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=(1-q^{x-N})(1-\alpha q^{x+1})\\ +\\ +\displaystyle D(x)=\alpha q(1-q^x)(\beta-q^{x-N-1}).\end{array}\right.$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qHahnI} +& &Q_n(q^{-x-1};\alpha,\beta,N|q)-Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-\alpha q)(1-q^{-N})} +Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1qHahnII} +\frac{\Delta Q_n(q^{-x};\alpha,\beta,N|q)}{\Delta q^{-x}} +&=&\frac{q^{-n+1}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-q)(1-\alpha q)(1-q^{-N})}\nonumber\\ +& &{}\mathindent{}\times Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q). +\end{eqnarray} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qHahnI} +& &(1-\alpha q^x)(1-q^{x-N-1})Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}\mathindent{}-\alpha(1-q^x)(\beta-q^{x-N-1})Q_n(q^{-x+1};\alpha,\beta,N|q)\nonumber\\ +& &{}=q^x(1-\alpha)(1-q^{-N-1})Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qHahnII} +& &\frac{\nabla\left[w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;\alpha q^{-1},\beta q^{-1},N+1|q)Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q), +\end{eqnarray} +where +$$w(x;\alpha,\beta,N|q)=\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta)^{-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodqHahn} +& &w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=(1-q)^n\left(\nabla_q\right)^n\left[w(x;\alpha q^n,\beta q^n,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenqHahn1} +& &\qhyp{1}{1}{q^{-x}}{\alpha q}{\alpha qt}\,\qhyp{2}{1}{q^{x-N},0}{\beta q}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(\beta q,q;q)_n}Q_n(q^{-x};\alpha,\beta,N|q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenqHahn2} +& &\qhyp{2}{1}{q^{-x},\beta q^{N+1-x}}{0}{-\alpha q^{x-N+1}t}\, +\qhyp{2}{0}{q^{x-N},\alpha q^{x+1}}{-}{-q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha q,q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}Q_n(q^{-x};\alpha,\beta,N|q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ $q$-Hahn} +The $q$-Hahn polynomials follow from the $q$-Racah polynomials by the substitution +$\delta=0$ and $\gamma q=q^{-N}$ in the definition (\ref{DefqRacah}) of the +$q$-Racah polynomials: +$$R_n(\mu(x);\alpha,\beta,q^{-N-1},0|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ +Another way to obtain the $q$-Hahn polynomials from the $q$-Racah +polynomials is by setting $\gamma=0$ and $\delta=\beta^{-1}q^{-N-1}$ in the definition +(\ref{DefqRacah}): +$$R_n(\mu(x);\alpha,\beta,0,\beta^{-1}q^{-N-1}|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ +And if we take $\alpha q=q^{-N}$, $\beta\rightarrow\beta\gamma q^{N+1}$ and $\delta=0$ in the +definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the +$q$-Hahn polynomials given by (\ref{DefqHahn}) in the following way: +$$R_n(\mu(x);q^{-N-1},\beta\gamma q^{N+1},\gamma,0|q)=Q_n(q^{-x};\gamma,\beta,N|q).$$ +Note that $\mu(x)=q^{-x}$ in each case. + +\subsubsection*{$q$-Hahn $\rightarrow$ Little $q$-Jacobi} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqHahn}) of the $q$-Hahn +polynomials and take the limit $N\rightarrow\infty$ we find the little $q$-Jacobi polynomials: +\begin{equation} +\lim _{N\rightarrow\infty} Q_n(q^{x-N};\alpha,\beta,N|q)=p_n(q^x;\alpha,\beta|q), +\end{equation} +where $p_n(q^x;\alpha,\beta|q)$ is given by (\ref{DefLittleqJacobi}). + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials +by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the +$q$-Hahn polynomials and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} +The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of +the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: +\begin{equation} +\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} +If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials +and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by +(\ref{DefqKrawtchouk}): +\begin{equation} +\lim_{\alpha\rightarrow 0} +Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} +The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +can be obtained from the $q$-Hahn polynomials by the substitution $\alpha=p$ and +$\beta=0$ in (\ref{DefqHahn}): +\begin{equation} +Q_n(q^{-x};p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Hahn} +The Hahn polynomials given by (\ref{DefHahn}) simply follow from the $q$-Hahn +polynomials given by (\ref{DefqHahn}), after setting $\alpha\rightarrow q^{\alpha}$ +and $\beta\rightarrow q^{\beta}$, in the following way: +\begin{equation} +\lim_{q\rightarrow 1}Q_n(q^{-x};q^{\alpha},q^{\beta},N|q)=Q_n(x;\alpha,\beta,N). +\end{equation} + +\subsection*{Remark} +The $q$-Hahn polynomials given by (\ref{DefqHahn}) and the dual $q$-Hahn +polynomials given by (\ref{DefDualqHahn}) are related in the following way: +$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ +with +$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ +or +$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ +where +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlvarezRonveaux}, \cite{AndrewsAskey85}, +\cite{AskeyWilson79}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, +\cite{Dunkl78II}, \cite{Fischer95}, \cite{GasperRahman84}, +\cite{GasperRahman90}, \cite{Hahn}, \cite{KalninsMiller88}, +\cite{Koelink96I}, \cite{KoelinkKoorn}, \cite{Koorn89III}, \cite{Koorn90II}, +\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{Rahman82}, +\cite{Stanton80II}, \cite{Stanton84}, \cite{Stanton90}. + + +\section{Dual $q$-Hahn}\index{Dual q-Hahn polynomials@Dual $q$-Hahn polynomials} +\index{q-Hahn polynomials@$q$-Hahn polynomials!Dual} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefDualqHahn} +R_n(\mu(x);\gamma,\delta,N|q)= +\qhyp{3}{2}{q^{-n},q^{-x},\gamma\delta q^{x+1}}{\gamma q,q^{-N}}{q},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\mu(x):=q^{-x}+\gamma\delta q^{x+1}.$$ + +\newpage + +\subsection*{Orthogonality relation} +For $0<\gamma q<1$ and $0<\delta q<1$, or for $\gamma>q^{-N}$ and $\delta>q^{-N}$, we have +\begin{eqnarray} +\label{OrtDualqHahn} +& &\sum_{x=0}^N\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x}{(q,\gamma\delta q^{N+2},\delta q;q)_x} +\frac{(1-\gamma\delta q^{2x+1})}{(1-\gamma\delta q)(-\gamma q)^x}q^{Nx-\binom{x}{2}}\nonumber\\ +& &{}\mathindent{}\times R_m(\mu(x);\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=\frac{(\gamma\delta q^2;q)_N}{(\delta q;q)_N}(\gamma q)^{-N} +\frac{(q,\delta^{-1}q^{-N};q)_n}{(\gamma q,q^{-N};q)_n}(\gamma\delta q)^n\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecDualqHahn} +& &-\left(1-q^{-x}\right)\left(1-\gamma\delta q^{x+1}\right)R_n(\mu(x))\nonumber\\ +& &{}=A_nR_{n+1}(\mu(x))-\left(A_n+C_n\right)R_n(\mu(x))+C_nR_{n-1}(\mu(x)), +\end{eqnarray} +where +$$R_n(\mu(x)):=R_n(\mu(x);\gamma,\delta,N|q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\left(1-q^{n-N}\right)\left(1-\gamma q^{n+1}\right)\\ +\\ +\displaystyle C_n=\gamma q\left(1-q^n\right)\left(\delta -q^{n-N-1}\right). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecDualqHahn} +xp_n(x)&=&p_{n+1}(x)+\left[1+\gamma\delta q-(A_n+C_n)\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+\gamma q(1-q^n)(1-\gamma q^n)\nonumber\\ +& &{}\mathindent\mathindent{}\times(1-q^{n-N-1})(\delta-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$R_n(\mu(x);\gamma,\delta,N|q)=\frac{1}{(\gamma q,q^{-N};q)_n}p_n(\mu(x)).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDualqHahn} +q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x) ++D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\mu(x);\gamma,\delta,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-\gamma q^{x+1})(1-\gamma\delta q^{x+1})} +{(1-\gamma\delta q^{2x+1})(1-\gamma\delta q^{2x+2})}\\ +\\ +\displaystyle D(x)=-\frac{\gamma q^{x-N}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)} +{(1-\gamma\delta q^{2x})(1-\gamma\delta q^{2x+1})}.\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualqHahnI} +& &R_n(\mu(x+1);\gamma,\delta,N|q)-R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-\gamma\delta q^{2x+2})}{(1-\gamma q)(1-q^{-N})} +R_{n-1}(\mu(x);\gamma q,\delta,N-1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1DualqHahnII} +& &\frac{\Delta R_n(\mu(x);\gamma,\delta,N|q)}{\Delta\mu(x)}\nonumber\\ +& &{}=\frac{q^{-n+1}(1-q^n)}{(1-q)(1-\gamma q)(1-q^{-N})}R_{n-1}(\mu(x);\gamma q,\delta,N-1|q). +\end{eqnarray} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualqHahnI} +& &(1-\gamma q^x)(1-\gamma\delta q^x)(1-q^{x-N-1})R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}\mathindent{}+\gamma q^{x-N-1}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)R_n(\mu(x-1);\gamma,\delta,N|q)\nonumber\\ +& &{}=q^x(1-\gamma)(1-q^{-N-1})(1-\gamma\delta q^{2x})R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualqHahnII} +& &\frac{\nabla\left[w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\right]}{\nabla\mu(x)}\nonumber\\ +& &{}=\frac{1}{(1-q)(1-\gamma\delta)}w(x;\gamma q^{-1},\delta,N+1|q)\nonumber\\ +& &{}\mathindent{}\times R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q), +\end{eqnarray} +where +$$w(x;\gamma,\delta,N|q)=\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x} +{(q,\gamma\delta q^{N+2},\delta q;q)_x}(-\gamma^{-1})^x q^{Nx-\binom{x}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodDualqHahn} +& &w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=(1-q)^n(\gamma\delta q;q)_n +\left(\nabla_{\mu}\right)^n\left[w(x;\gamma q^n,\delta,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_{\mu}:=\frac{\nabla}{\nabla\mu(x)}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenDualqHahn1} +& &(q^{-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},\delta^{-1}q^{-x}}{\gamma q}{\gamma\delta q^{x+1}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenDualqHahn2} +& &(\gamma\delta qt;q)_x\cdot\qhyp{2}{1}{q^{x-N},\gamma q^{x+1}}{\delta^{-1}q^{-N}}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N +\frac{(q^{-N},\gamma q;q)_n}{(\delta^{-1}q^{-N},q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Hahn} +To obtain the dual $q$-Hahn polynomials from the $q$-Racah polynomials we have to +take $\beta=0$ and $\alpha q=q^{-N}$ in (\ref{DefqRacah}): +$$R_n(\mu(x);q^{-N-1},0,\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q),$$ +with +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ +We may also take $\alpha=0$ and $\beta=\delta^{-1}q^{-N-1}$ in (\ref{DefqRacah}) to obtain +the dual $q$-Hahn polynomials from the $q$-Racah polynomials: +$$R_n(\mu(x);0,\delta^{-1}q^{-N-1},\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q).$$ +And if we take $\gamma q=q^{-N}$, $\delta\rightarrow\alpha\delta q^{N+1}$ and $\beta=0$ in the +definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the dual +$q$-Hahn polynomials given by (\ref{DefDualqHahn}) in the following way: +$$R_n(\mu(x);\alpha,0,q^{-N-1},\alpha\delta q^{N+1}|q)=R_n({\tilde \mu}(x);\alpha,\delta,N|q),$$ +with +$${\tilde \mu}(x)=q^{-x}+\alpha\delta q^{x+1}.$$ + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} +The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +can be obtained from the dual $q$-Hahn polynomials by the substitution $\gamma=p$ +and $\delta=0$ in (\ref{DefDualqHahn}): +\begin{equation} +R_n(\mu(x);p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). +\end{equation} +Note that $\mu(x)=q^{-x}$ in this case. + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} +The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can +be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ +in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: +\begin{equation} +\lim_{\gamma\rightarrow 0} +R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q). +\end{equation} + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual Hahn} +The dual Hahn polynomials given by (\ref{DefDualHahn}) follow from the dual $q$-Hahn +polynomials by simply taking the limit $q\rightarrow 1$ in the definition (\ref{DefDualqHahn}) +of the dual $q$-Hahn polynomials after applying the substitution +$\gamma\rightarrow q^{\gamma}$ and $\delta\rightarrow q^{\delta}$: +\begin{equation} +\lim_{q\rightarrow 1}R_n(\mu(x);q^{\gamma},q^{\delta},N|q)=R_n(\lambda(x);\gamma,\delta,N), +\end{equation} +where +$$\left\{\begin{array}{l} +\displaystyle\mu(x)=q^{-x}+q^{x+\gamma+\delta+1}\\[5mm] +\displaystyle\lambda(x)=x(x+\gamma+\delta+1). +\end{array}\right.$$ + +\subsection*{Remark} +The dual $q$-Hahn polynomials given by (\ref{DefDualqHahn}) and the +$q$-Hahn polynomials given by (\ref{DefqHahn}) are related in the following way: +$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ +with +$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ +or +$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ +where +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ + +\subsection*{References} +\cite{AlvarezSmirnov}, \cite{AndrewsAskey85}, \cite{AskeyWilson79}, +\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, +\cite{KoelinkKoorn}, \cite{Nikiforov+}, \cite{Stanton84}. + + +\section{Al-Salam-Chihara}\index{Al-Salam-Chihara polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefAlSalamChihara} +Q_n(x;a,b|q)&=&\frac{(ab;q)_n}{a^n}\, +\qhyp{3}{2}{q^{-n},a\e^{i\theta},a\e^{-i\theta}}{ab,0}{q}\\ +&=&(a\e^{i\theta};q)_n\e^{-in\theta}\,\qhyp{2}{1}{q^{-n},b\e^{-i\theta}} +{a^{-1}q^{-n+1}\e^{-i\theta}}{a^{-1}q\e^{i\theta}}\nonumber\\ +&=&(b\e^{-i\theta};q)_n\e^{in\theta}\,\qhyp{2}{1}{q^{-n},a\e^{i\theta}} +{b^{-1}q^{-n+1}\e^{i\theta}}{b^{-1}q\e^{-i\theta}},\quad x=\cos\theta.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +If $a$ and $b$ are real or complex conjugates and $\max(|a|,|b|)<1$, then we have the following orthogonality relation +\begin{equation} +\label{OrtAlSalamChiharaI} +\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx +=\frac{\,\delta_{mn}}{(q^{n+1},abq^n;q)_{\infty}}, +\end{equation} +where +$$w(x):=w(x;a,b|q)=\left|\frac{(\e^{2i\theta};q)_{\infty}} +{(a\e^{i\theta},b\e^{i\theta};q)_{\infty}}\right|^2 +=\frac{h(x,1)h(x,-1)h(x,q^{\frac{1}{2}})h(x,-q^{\frac{1}{2}})}{h(x,a)h(x,b)},$$ +with +$$h(x,\alpha):=\prod_{k=0}^{\infty}\left(1-2\alpha xq^k+\alpha^2q^{2k}\right) +=\left(\alpha\e^{i\theta},\alpha\e^{-i\theta};q\right)_{\infty},\quad x=\cos\theta.$$ +If $a>1$ and $|ab|<1$, then we have another orthogonality relation given by: +\begin{eqnarray} +\label{OrtAlSalamChiharaII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqMeixner} +& &q^{2n+1}(1-q^{-x})M_n(q^{-x})\nonumber\\ +& &{}=c(1-bq^{n+1})M_{n+1}(q^{-x})\nonumber\\ +& &{}\mathindent{}-\left[c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right]M_n(q^{-x})\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^n)(c+q^n)M_{n-1}(q^{-x}), +\end{eqnarray} +where +$$M_n(q^{-x}):=M_n(q^{-x};b,c;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqMeixner} +xp_n(x)&=&p_{n+1}(x)+ +\left[1+q^{-2n-1}\left\{c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+cq^{-4n+1}(1-q^n)(1-bq^n)(c+q^n)p_{n-1}(x), +\end{eqnarray} +where +$$M_n(q^{-x};b,c;q)=\frac{(-1)^nq^{n^2}}{(bq;q)_nc^n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqMeixner} +-(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=M_n(q^{-x};b,c;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=cq^x(1-bq^{x+1})\\ +\\ +\displaystyle D(x)=(1-q^x)(1+bcq^x).\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qMeixnerI} +& &M_n(q^{-x-1};b,c;q)-M_n(q^{-x};b,c;q)\nonumber\\ +& &{}=-\frac{q^{-x}(1-q^n)}{c(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1qMeixnerII} +\frac{\Delta M_n(q^{-x};b,c;q)}{\Delta q^{-x}} +=-\frac{q(1-q^n)}{c(1-q)(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qMeixnerI} +& &cq^x(1-bq^x)M_n(q^{-x};b,c;q)-(1-q^x)(1+bcq^x)M_n(q^{-x+1};b,c;q)\nonumber\\ +& &{}=cq^x(1-b)M_{n+1}(q^{-x};bq^{-1},cq;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qMeixnerII} +& &\frac{\nabla\left[w(x;b,c;q)M_n(q^{-x};b,c;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;bq^{-1},cq;q)M_{n+1}(q^{-x};bq^{-1},cq;q), +\end{eqnarray} +where +$$w(x;b,c;q)=\frac{(bq;q)_x}{(q,-bcq;q)_x}c^xq^{\binom{x+1}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqMeixner} +w(x;b,c;q)M_n(q^{-x};b,c;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;bq^n,cq^{-n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} +\begin{equation} +\label{GenqMeixner1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{bq}{-c^{-1}qt} +=\sum_{n=0}^{\infty}\frac{M_n(q^{-x};b,c;q)}{(q;q)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenqMeixner2} +& &\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-b^{-1}c^{-1}q^{-x}}{-c^{-1}q}{bqt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(bq;q)_n}{(-c^{-1}q,q;q)_n}M_n(q^{-x};b,c;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Jacobi $\rightarrow$ $q$-Meixner} +If we set $b=-a^{-1}cd^{-1}$ (with $d>0$) in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we +obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): +\begin{equation} +\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials +by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the +$q$-Hahn polynomials and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q).$$ + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained +from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting +$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition +(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit +$c\rightarrow\infty$: +\begin{equation} +\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be +obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ +in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: +\begin{equation} +M_n(x;0,c;q)=C_n(x;c;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ Al-Salam-Carlitz~II} +The Al-Salam-Carlitz~II polynomials given by (\ref{DefAlSalamCarlitzII}) +can be obtained from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) +by setting $b=-ac^{-1}$ in the definition (\ref{DefqMeixner}) of the +$q$-Meixner polynomials and then taking the limit $c\rightarrow 0$: +\begin{equation} +\lim_{c\rightarrow 0}M_n(x;-ac^{-1},c;q)= +\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ Meixner} +To find the Meixner polynomials given by (\ref{DefMeixner}) from the $q$-Meixner polynomials given by +(\ref{DefqMeixner}) we set $b=q^{\beta-1}$ and $c\rightarrow (1-c)^{-1}c$ and let $q\rightarrow 1$: +\begin{equation} +\lim_{q\rightarrow 1}M_n(q^{-x};q^{\beta-1},(1-c)^{-1}c;q)=M_n(x;\beta,c). +\end{equation} + +\subsection*{Remarks} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) and the little +$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related in the +following way: +$$M_n(q^{-x};b,c;q)=p_n(-c^{-1}q^n;b,b^{-1}q^{-n-x-1}|q).$$ + +\noindent +The $q$-Meixner polynomials and the quantum $q$-Krawtchouk polynomials +given by (\ref{DefQuantumqKrawtchouk}) are related in the following way: +$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamVerma82II}, \cite{AlSalamVerma88}, \cite{AlvarezRonveaux}, +\cite{AtakAtakKlimyk}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, \cite{GasperRahman90}, +\cite{Hahn}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Smirnov}. + + +\section{Quantum $q$-Krawtchouk} +\index{Quantum q-Krawtchouk polynomials@Quantum $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Quantum} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefQuantumqKrawtchouk} +K_n^{qtm}(q^{-x};p,N;q)= +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{-N}}{pq^{n+1}},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtQuantumqKrawtchouk} +& &\sum_{x=0}^N\frac{(pq;q)_{N-x}}{(q;q)_x(q;q)_{N-x}}(-1)^{N-x}q^{\binom{x}{2}} +K_m^{qtm}(q^{-x};p,N;q)K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{(-1)^np^N(q;q)_{N-n}(q,pq;q)_n}{(q,q;q)_N} +q^{\binom{N+1}{2}-\binom{n+1}{2}+Nn}\,\delta_{mn},\quad p>q^{-N}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecQuantumqKrawtchouk} +& &-pq^{2n+1}(1-q^{-x})K_n^{qtm}(q^{-x})\nonumber\\ +& &{}=(1-q^{n-N})K_{n+1}^{qtm}(q^{-x})\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n-N})+q(1-q^n)(1-pq^n)\right]K_n^{qtm}(q^{-x})\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^n)(1-pq^n)K_{n-1}^{qtm}(q^{-x}), +\end{eqnarray} +where +$$K_n^{qtm}(q^{-x}):=K_n^{qtm}(q^{-x};p,N;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecQuantumqKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+ +\left[1-p^{-1}q^{-2n-1}\left\{(1-q^{n-N})+q(1-q^n)(1-pq^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+p^{-2}q^{-4n+1}(1-q^n)(1-pq^n)(1-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$K_n^{qtm}(q^{-x};p,N;q)=\frac{p^nq^{n^2}}{(q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvQuantumqKrawtchouk} +-p(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=K_n^{qtm}(q^{-x};p,N;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=-q^x(1-q^{x-N})\\ +\\ +\displaystyle D(x)=(1-q^x)(p-q^{x-N-1}).\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1QuantumqKrawtchoukI} +& &K_n^{qtm}(q^{-x-1};p,N;q)-K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{pq^{-x}(1-q^n)}{1-q^{-N}}K_{n-1}^{qtm}(q^{-x};pq,N-1;q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1QuantumqKrawtchoukII} +\frac{\Delta K_n^{qtm}(q^{-x};p,N;q)}{\Delta q^{-x}}= +\frac{pq(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}^{qtm}(q^{-x};pq,N-1;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2QuantumqKrawtchoukI} +& &(1-q^{x-N-1})K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}\mathindent{}+q^{-x}(1-q^x)(p-q^{x-N-1})K_n^{qtm}(q^{-x+1};p,N;q)\nonumber\\ +& &{}=(1-q^{-N-1})K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2QuantumqKrawtchoukII} +& &\frac{\nabla\left[w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;pq^{-1},N+1;q)K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q), +\end{eqnarray} +where +$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q,p^{-1}q^{-N};q)_x}(-p)^{-x}q^{\binom{x+1}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodQuantumqKrawtchouk} +w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^n,N-n;q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenQuantumqKrawtchouk1} +& &(q^{x-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},pq^{N+1-x}}{0}{q^{x-N}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenQuantumqKrawtchouk2} +& &(q^{-x}t;q)_x\cdot\qhyp{2}{1}{q^{x-N},0}{pq}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(pq,q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} +The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of +the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: +$$\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q).$$ + +\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~II} +If we set $p=a^{-1}q^{-N-1}$ in the definition (\ref{DefQuantumqKrawtchouk}) +of the quantum $q$-Krawtchouk polynomials and let $N\rightarrow\infty$ we +obtain the Al-Salam-Carlitz~II polynomials given by +(\ref{DefAlSalamCarlitzII}). In fact we have +\begin{equation} +\lim_{N\rightarrow\infty}K_n^{qtm}(x;a^{-1}q^{-N-1},N;q)= +\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). +\end{equation} + +\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) easily follow from +the quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +in the following way: +\begin{equation} +\lim_{q\rightarrow 1}K_n^{qtm}(q^{-x};p,N;q)=K_n(x;p^{-1},N). +\end{equation} + +\subsection*{Remarks} +The quantum $q$-Krawtchouk polynomials given by +(\ref{DefQuantumqKrawtchouk}) and the $q$-Meixner polynomials given by +(\ref{DefqMeixner}) are related in the following way: +$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ + +\noindent +The quantum $q$-Krawtchouk polynomials are related to the affine +$q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +by the transformation $q\leftrightarrow q^{-1}$ in the following way: +$$K_n^{qtm}(q^x;p,N;q^{-1})=(p^{-1}q;q)_n\left(-\frac{p}{q}\right)^nq^{-\binom{n}{2}} +K_n^{Aff}(q^{x-N};p^{-1},N;q).$$ + +\subsection*{References} +\cite{GasperRahman90}, \cite{Koorn89III}, \cite{Koorn90II}, \cite{Smirnov}. + + +\section{$q$-Krawtchouk}\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} For $n=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{DefqKrawtchouk} +K_n(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}\\ +&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{-pq^{n+N+1}}.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqKrawtchouk} +& &\sum_{x=0}^N\frac{(q^{-N};q)_x}{(q;q)_x}(-p)^{-x}K_m(q^{-x};p,N;q)K_n(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{(q,-pq^{N+1};q)_n}{(-p,q^{-N};q)_n}\frac{(1+p)}{(1+pq^{2n})}\nonumber\\ +& &{}\mathindent{}\times (-pq;q)_Np^{-N}q^{-\binom{N+1}{2}} +\left(-pq^{-N}\right)^nq^{n^2}\,\delta_{mn},\quad p>0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqKrawtchouk} +-\left(1-q^{-x}\right)K_n(q^{-x})&=&A_nK_{n+1}(q^{-x})-\left(A_n+C_n\right)K_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+C_nK_{n-1}(q^{-x}), +\end{eqnarray} +where +$$K_n(q^{-x}):=K_n(q^{-x};p,N;q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n-N})(1+pq^n)}{(1+pq^{2n})(1+pq^{2n+1})}\\ +\\ +\displaystyle C_n=-pq^{2n-N-1}\frac{(1+pq^{n+N})(1-q^n)}{(1+pq^{2n-1})(1+pq^{2n})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqKrawtchouk} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$K_n(q^{-x};p,N;q)=\frac{(-pq^n;q)_n}{(q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqKrawtchouk} +& &q^{-n}(1-q^n)(1+pq^n)y(x)\nonumber\\ +& &{}=(1-q^{x-N})y(x+1)-\left[(1-q^{x-N})-p(1-q^x)\right]y(x)\nonumber\\ +& &{}\mathindent{}-p(1-q^x)y(x-1), +\end{eqnarray} +where +$$y(x)=K_n(q^{-x};p,N;q).$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qKrawtchoukI} +& &K_n(q^{-x-1};p,N;q)-K_n(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1+pq^n)}{1-q^{-N}}K_{n-1}(q^{-x};pq^2,N-1;q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1qKrawtchoukII} +\frac{\Delta K_n(q^{-x};p,N;q)}{\Delta q^{-x}}= +\frac{q^{-n+1}(1-q^n)(1+pq^n)}{(1-q)(1-q^{-N})}K_{n-1}(q^{-x};pq^2,N-1;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qKrawtchoukI} +& &(1-q^{x-N-1})K_n(q^{-x};p,N;q)+pq^{-1}(1-q^x)K_n(q^{-x+1};p,N;q)\nonumber\\ +& &{}=q^x(1-q^{-N-1})K_{n+1}(q^{-x};pq^{-2},N+1;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qKrawtchoukII} +& &\frac{\nabla\left[w(x;p,N;q)K_n(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;pq^{-2},N+1;q)K_{n+1}(q^{-x};pq^{-2},N+1;q), +\end{eqnarray} +where +$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q;q)_x}\left(-\frac{q}{p}\right)^x.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqKrawtchouk} +w(x;p,N;q)K_n(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^{2n},N-n;q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenqKrawtchouk} +& &\qhyp{1}{1}{q^{-x}}{0}{pqt}\,\qhyp{2}{0}{q^{x-N},0}{-}{-q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}K_n(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ $q$-Krawtchouk} +The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) can be obtained from +the $q$-Racah polynomials by setting $\alpha q=q^{-N}$, $\beta=-pq^N$ and +$\gamma=\delta=0$ in the definition (\ref{DefqRacah}) of the $q$-Racah polynomials: +$$R_n(q^{-x};q^{-N-1},-pq^N,0,0|q)=K_n(q^{-x};p,N;q).$$ +Note that $\mu(x)=q^{-x}$ in this case. + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} +If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials +and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by +(\ref{DefqKrawtchouk}): +$$\lim_{\alpha\rightarrow 0} +Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q).$$ + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we +obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} +By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we +obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ Krawtchouk} +If we take the limit $q\rightarrow 1$ in the definition (\ref{DefqKrawtchouk}) of the $q$-Krawtchouk +polynomials we simply find the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) in the +following way: +\begin{equation} +\lim_{q\rightarrow 1}K_n(q^{-x};p,N;q)=K_n(x;(p+1)^{-1},N). +\end{equation} + +\subsection*{Remark} +The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) and the +dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) are +related in the following way: +$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ +with +$$\lambda(n)=q^{-n}-pq^n$$ +or +$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ +with +$$\lambda(x)=q^{-x}+cq^{x-N}.$$ + +\subsection*{References} +\cite{AlvarezRonveaux}, \cite{AskeyWilson79}, \cite{AtakRahmanSuslov}, +\cite{Campigotto+}, \cite{GasperRahman90}, \cite{Nikiforov+}, +\cite{NoumiMimachi91}, \cite{Stanton80III}, \cite{Stanton84}. + + +\newpage + +\section{Affine $q$-Krawtchouk} +\index{Affine q-Krawtchouk polynomials@Affine $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Affine} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefAffqKrawtchouk} +K_n^{Aff}(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}\\ +&=&\frac{(-pq)^nq^{\binom{n}{2}}}{(pq;q)_n}\, +\qhyp{2}{1}{q^{-n},q^{x-N}}{q^{-N}}{\frac{q^{-x}}{p}},\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAffqKrawtchouk} +& &\sum_{x=0}^N\frac{(pq;q)_x(q;q)_N}{(q;q)_x(q;q)_{N-x}}(pq)^{-x}K_m^{Aff}(q^{-x};p,N;q)K_n^{Aff}(q^{-x};p,N;q)\nonumber\\ +& &{}=(pq)^{n-N}\frac{(q;q)_n(q;q)_{N-n}}{(pq;q)_n(q;q)_N}\,\delta_{mn},\quad 01$, then we have another orthogonality relation given by: +\begin{eqnarray} +\label{OrtContBigqHermite2} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}H_m(x;a|q)H_n(x;a|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1-1 +\end{eqnarray} +and +\begin{eqnarray} +\label{OrtqLaguerre2} +& &\sum_{k=-\infty}^{\infty}\frac{q^{k\alpha+k}}{(-cq^k;q)_{\infty}}L_m^{(\alpha)}(cq^k;q)L_n^{(\alpha)}(cq^k;q)\nonumber\\ +& &{}=\frac{(q,-cq^{\alpha+1},-c^{-1}q^{-\alpha};q)_{\infty}} +{(q^{\alpha+1},-c,-c^{-1}q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn}, +\quad\alpha>-1,\quad c>0. +\end{eqnarray} +For $c=1$ the latter orthogonality relation can also be written as +\begin{eqnarray} +\label{OrtqLaguerre3} +& &\int_0^{\infty}\frac{x^{\alpha}}{(-x;q)_{\infty}}L_m^{(\alpha)}(x;q)L_n^{(\alpha)}(x;q)\,d_qx\nonumber\\ +& &{}=\frac{1-q}{2}\,\frac{(q,-q^{\alpha+1},-q^{-\alpha};q)_{\infty}} +{(q^{\alpha+1},-q,-q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn},\quad\alpha>-1. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqLaguerre} +-q^{2n+\alpha+1}xL_n^{(\alpha)}(x;q)&=&(1-q^{n+1})L_{n+1}^{(\alpha)}(x;q)\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]L_n^{(\alpha)}(x;q)\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^{n+\alpha})L_{n-1}^{(\alpha)}(x;q). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqLaguerre} +xp_n(x)&=&p_{n+1}(x)+q^{-2n-\alpha-1}\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+q^{-4n-2\alpha+1}(1-q^n)(1-q^{n+\alpha})p_{n-1}(x), +\end{eqnarray} +where +$$L_n^{(\alpha)}(x;q)=\frac{(-1)^nq^{n(n+\alpha)}}{(q;q)_n}p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqLaguerre} +-q^{\alpha}(1-q^n)xy(x)=q^{\alpha}(1+x)y(qx)-\left[1+q^{\alpha}(1+x)\right]y(x)+y(q^{-1}x), +\end{equation} +where +$$y(x)=L_n^{(\alpha)}(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qLaguerreI} +L_n^{(\alpha)}(x;q)-L_n^{(\alpha)}(qx;q)=-q^{\alpha+1}xL_{n-1}^{(\alpha+1)}(qx;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qLaguerreII} +\mathcal{D}_qL_n^{(\alpha)}(x;q)=-\frac{q^{\alpha+1}}{1-q}L_{n-1}^{(\alpha+1)}(qx;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qLaguerreI} +L_n^{(\alpha)}(x;q)-q^{\alpha}(1+x)L_n^{(\alpha)}(qx;q)=(1-q^{n+1})L_{n+1}^{(\alpha-1)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qLaguerreII} +\mathcal{D}_q\left[w(x;\alpha;q)L_n^{(\alpha)}(x;q)\right]= +\frac{1-q^{n+1}}{1-q}w(x;\alpha-1;q)L_{n+1}^{(\alpha-1)}(x;q), +\end{equation} +where +$$w(x;\alpha;q)=\frac{x^{\alpha}}{(-x;q)_{\infty}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqLaguerre} +w(x;\alpha;q)L_n^{(\alpha)}(x;q)= +\frac{(1-q)^n}{(q;q)_n}\left(\mathcal{D}_q\right)^n\left[w(x;\alpha+n;q)\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenqLaguerre1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-x}{0}{q^{\alpha+1}t} +=\sum_{n=0}^{\infty}L_n^{(\alpha)}(x;q)t^n. +\end{equation} + +\begin{equation} +\label{GenqLaguerre2} +\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{q^{\alpha+1}}{-q^{\alpha+1}xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x;q)}{(q^{\alpha+1};q)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenqLaguerre3} +(t;q)_{\infty}\cdot\qhyp{0}{2}{-}{q^{\alpha+1},t}{-q^{\alpha+1}xt} +=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenqLaguerre4} +& &\frac{(\gamma t;q)_{\infty}}{(t;q)_{\infty}}\,\qhyp{1}{2}{\gamma}{q^{\alpha+1},\gamma t}{-q^{\alpha+1}xt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Laguerre} +If we substitute $a=q^{\alpha}$ and $x\rightarrow -b^{-1}q^{-1}x$ in the definition +(\ref{DefLittleqJacobi}) of the little $q$-Jacobi polynomials and then take the limit +$b\rightarrow -\infty$ we find the $q$-Laguerre polynomials given by (\ref{DefqLaguerre}): +$$\lim_{b\rightarrow -\infty}p_n(-b^{-1}q^{-1}x;q^{\alpha},b|q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained +from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting +$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition +(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit +$c\rightarrow\infty$: +$$\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ + +\subsubsection*{$q$-Laguerre $\rightarrow$ Stieltjes-Wigert} +If we set $x\rightarrow xq^{-\alpha}$ in the definition +(\ref{DefqLaguerre}) of the $q$-Laguerre polynomials and take the limit +$\alpha\rightarrow\infty$ we simply obtain the Stieltjes-Wigert polynomials given +by (\ref{DefStieltjesWigert}): +\begin{equation} +\lim_{\alpha\rightarrow\infty}L_n^{(\alpha)}\left(xq^{-\alpha};q\right)=S_n(x;q). +\end{equation} + +\subsubsection*{$q$-Laguerre $\rightarrow$ Laguerre / Charlier} +If we set $x\rightarrow (1-q)x$ in the definition (\ref{DefqLaguerre}) +of the $q$-Laguerre polynomials and take the limit $q\rightarrow 1$ we obtain +the Laguerre polynomials given by (\ref{DefLaguerre}): +\begin{equation} +\lim_{q\rightarrow 1}L_n^{(\alpha)}((1-q)x;q)=L_n^{(\alpha)}(x). +\end{equation} + +If we set $x\rightarrow -q^{-x}$ and $q^{\alpha}=a^{-1}(q-1)^{-1}$ (or +$\alpha=-(\ln q)^{-1}\ln (q-1)a$) in the definition (\ref{DefqLaguerre}) of the +$q$-Laguerre polynomials, multiply by $(q;q)_n$, and take the limit +$q\rightarrow 1$ we obtain the Charlier polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\,(q;q)_nL_n^{(\alpha)}(-q^{-x};q)=C_n(x;a), +\end{equation} +where +$$q^{\alpha}=\frac{1}{a(q-1)}\quad\textrm{or}\quad\alpha=-\frac{\ln (q-1)a}{\ln q}.$$ + +\subsection*{Remarks} +The $q$-Laguerre polynomials are sometimes called the +generalized Stieltjes-Wigert polynomials. + +If we replace $q$ by $q^{-1}$ we obtain the little $q$-Laguerre +(or Wall) polynomials given by (\ref{DefLittleqLaguerre}) in the following +way: +$$L_n^{(\alpha)}(x;q^{-1})=\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^{n\alpha}}p_n(-x;q^{\alpha}|q).$$ + +\noindent +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the $q$-Bessel polynomials +given by (\ref{DefqBessel}) are related in the following way: +$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ + +\noindent +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the +$q$-Charlier polynomials given by (\ref{DefqCharlier}) are related in the +following way: +$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ + +\noindent +Since the Stieltjes and Hamburger moment problems corresponding to the +$q$-Laguerre polynomials are indeterminate there exist many different weight +functions. + +\subsection*{References} +\cite{NAlSalam89}, \cite{AlSalam90}, \cite{Askey86}, \cite{Askey89I}, \cite{AskeyWilson85}, +\cite{AtakAtakI}, \cite{ChenIsmailMuttalib}, \cite{Chihara68II}, \cite{Chihara78}, +\cite{Chihara79}, \cite{Chris}, \cite{Exton77}, \cite{GasperRahman90}, \cite{GrunbaumHaine96}, +\cite{Ismail2005I}, \cite{IsmailRahman98}, \cite{Jain95}, \cite{Moak}. + + +\section{$q$-Bessel} +\index{q-Bessel polynomials@$q$-Bessel polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefqBessel} +y_n(x;a;q)&=&\qhyp{2}{1}{q^{-n},-aq^n}{0}{qx}\\ +&=&(q^{-n+1}x;q)_n\cdot\qhyp{1}{1}{q^{-n}}{q^{-n+1}x}{-aq^{n+1}x}\nonumber\\ +&=&\left(-aq^nx\right)^n\cdot\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-\frac{q^{-n+1}}{a}}.\nonumber +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqBessel} +& &\sum_{k=0}^{\infty}\frac{a^k}{(q;q)_k}q^{\binom{k+1}{2}}y_m(q^k;a;q)y_n(q^k;a;q)\nonumber\\ +& &{}=(q;q)_n(-aq^n;q)_{\infty}\frac{a^nq^{\binom{n+1}{2}}}{(1+aq^{2n})}\,\delta_{mn},\quad a>0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecqBessel} +-xy_n(x;a;q)=A_ny_{n+1}(x;a;q)-(A_n+C_n)y_n(x;a;q)+C_ny_{n-1}(x;a;q), +\end{equation} +where +$$\left\{\begin{array}{l}\displaystyle A_n=q^n\frac{(1+aq^n)}{(1+aq^{2n})(1+aq^{2n+1})}\\ +\\ +\displaystyle C_n=aq^{2n-1}\frac{(1-q^n)}{(1+aq^{2n-1})(1+aq^{2n})}.\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqBessel} +xp_n(x)=p_{n+1}(x)+(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$y_n(x;a;q)=(-1)^nq^{-\binom{n}{2}}(-aq^n;q)_np_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqBessel} +& &-q^{-n}(1-q^n)(1+aq^n)xy(x)\nonumber\\ +& &{}=axy(qx)-(ax+1-x)y(x)+(1-x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=y_n(x;a;q).$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qBesselI} +y_n(x;a;q)-y_n(qx;a;q)=-q^{-n+1}(1-q^n)(1+aq^n)xy_{n-1}(x;aq^2;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qBesselII} +\mathcal{D}_qy_n(x;a;q)=-\frac{q^{-n+1}(1-q^n)(1+aq^n)}{1-q}y_{n-1}(x;aq^2;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qBesselI} +aq^{x-1}y_n(q^x;a;q)-(1-q^x)y_n(q^{x-1}x;a;q)=-y_{n+1}(q^x;aq^{-2};q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qBesselII} +\frac{\nabla\left[w(x;a;q)y_n(q^x;a;q)\right]}{\nabla q^x}= +\frac{q^2}{a(1-q)}w(x;aq^{-2};q)y_{n+1}(q^x;aq^{-2};q), +\end{equation} +where +$$w(x;a;q)=\frac{a^xq^{\binom{x}{2}}}{(q;q)_x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqBessel} +w(x;a;q)y_n(q^x;a;q)=a^n(1-q)^nq^{n(n-1)}\left(\nabla_q\right)^n\left[w(x;aq^{2n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^x}.$$ + +\subsection*{Generating functions} +\begin{eqnarray} +\label{GenqBessel1} +& &\qhyp{0}{1}{-}{0}{-aq^{x+1}t}\,\qhyp{2}{0}{q^{-x},0}{-}{q^xt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{y_n(q^x;a;q)}{(q;q)_n}t^n,\quad x=0,1,2,\ldots. +\end{eqnarray} + +\begin{equation} +\label{GenqBessel2} +\frac{(t;q)_{\infty}}{(xt;q)_{\infty}}\,\qhyp{1}{3}{xt}{0,0,t}{-aqxt}= +\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q;q)_n}y_n(x;a;q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Bessel} +If we set $b\rightarrow -a^{-1}q^{-1}b$ in the definition (\ref{DefLittleqJacobi}) of +the little $q$-Jacobi polynomials and then take the limit $a\rightarrow 0$ we obtain +the $q$-Bessel polynomials given by (\ref{DefqBessel}): +$$\lim_{a\rightarrow 0}p_n(x;a,-a^{-1}q^{-1}b|q)=y_n(x;b;q).$$ + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we +obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): +$$\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q).$$ + +\subsubsection*{$q$-Bessel $\rightarrow$ Stieltjes-Wigert} +The Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) can be obtained +from the $q$-Bessel polynomials by setting $x\rightarrow a^{-1}x$ in the definition +(\ref{DefqBessel}) of the $q$-Bessel polynomials and then taking the limit +$a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty}y_n(a^{-1}x;a;q)=(q;q)_nS_n(x;q). +\end{equation} + +\subsubsection*{$q$-Bessel $\rightarrow$ Bessel} +If we set $x\rightarrow -\frac{1}{2}(1-q)^{-1}x$ and $a\rightarrow -q^{a+1}$ in the definition +(\ref{DefqBessel}) of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ +we find the Bessel polynomials given by (\ref{DefBessel}): +\begin{equation} +\lim_{q\rightarrow 1}y_n(-\textstyle\frac{1}{2}(1-q)^{-1}x;-q^{a+1};q)=y_n(x;a). +\end{equation} + +\subsubsection*{$q$-Bessel $\rightarrow$ Charlier} +If we set $x\rightarrow q^x$ and $a\rightarrow a(1-q)$ in the definition (\ref{DefqBessel}) +of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ we find the Charlier +polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\frac{y_n(q^x;a(1-q);q)}{(q-1)^n}=a^nC_n(x;a). +\end{equation} + +\subsection*{Remark} +In \cite{Koekoek94} and \cite{Koekoek98} these $q$-Bessel polynomials were called +\emph{alternative $q$-Charlier polynomials}. + +\noindent +The $q$-Bessel polynomials given by (\ref{DefqBessel}) and the $q$-Laguerre +polynomials given by (\ref{DefqLaguerre}) are related in the following way: +$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ + +\subsection*{Reference} +\cite{DattaGriffin}. + + +\section{$q$-Charlier}\index{q-Charlier polynomials@$q$-Charlier polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefqCharlier} +C_n(q^{-x};a;q)&=&\qhyp{2}{1}{q^{-n},q^{-x}}{0}{-\frac{q^{n+1}}{a}}\\ +&=&(-a^{-1}q;q)_n\cdot\qhyp{1}{1}{q^{-n}}{-a^{-1}q}{-\frac{q^{n+1-x}}{a}}.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqCharlier} +& &\sum_{x=0}^{\infty}\frac{a^x}{(q;q)_x}q^{\binom{x}{2}}C_m(q^{-x};a;q)C_n(q^{-x};a;q)\nonumber\\ +& &{}=q^{-n}(-a;q)_{\infty}(-a^{-1}q,q;q)_n\,\delta_{mn},\quad a>0. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqCharlier} +& &q^{2n+1}(1-q^{-x})C_n(q^{-x})\nonumber\\ +& &{}=aC_{n+1}(q^{-x})-\left[a+q(1-q^n)(a+q^n)\right]C_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+q(1-q^n)(a+q^n)C_{n-1}(q^{-x}), +\end{eqnarray} +where +$$C_n(q^{-x}):=C_n(q^{-x};a;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqCharlier} +xp_n(x)&=&p_{n+1}(x)+\left[1+q^{-2n-1}\left\{a+q(1-q^n)(a+q^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+aq^{-4n+1}(1-q^n)(a+q^n)p_{n-1}(x), +\end{eqnarray} +where +$$C_n(q^{-x};a;q)=\frac{(-1)^nq^{n^2}}{a^n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqCharlier} +q^ny(x)=aq^xy(x+1)-q^x(a-1)y(x)+(1-q^x)y(x-1), +\end{equation} +where +$$y(x)=C_n(q^{-x};a;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qCharlierI} +C_n(q^{-x-1};a;q)-C_n(q^{-x};a;q)=-a^{-1}q^{-x}(1-q^n)C_{n-1}(q^{-x};aq^{-1};q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qCharlierII} +\frac{\Delta C_n(q^{-x};a;q)}{\Delta q^{-x}}=-\frac{q(1-q^n)}{a(1-q)}C_{n-1}(q^{-x};aq^{-1};q). +\end{equation} + +\newpage + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qCharlierI} +C_n(q^{-x};a;q)-a^{-1}q^{-x}(1-q^x)C_n(q^{-x+1};a;q)=C_{n+1}(q^{-x};aq;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qCharlierII} +\frac{\nabla\left[w(x;a;q)C_n(q^{-x};a;q)\right]}{\nabla q^{-x}} +=\frac{1}{1-q}w(x;aq;q)C_{n+1}(q^{-x};aq;q), +\end{equation} +where +$$w(x;a;q)=\frac{a^xq^{\binom{x+1}{2}}}{(q;q)_x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqCharlier} +w(x;a;q)C_n(q^{-x};a;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;aq^{-n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} +\begin{equation} +\label{GenqCharlier1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{0}{-a^{-1}qt} +=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(q;q)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenqCharlier2} +\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{-a^{-1}q}{-a^{-1}q^{-x+1}t} +=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(-a^{-1}q,q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be +obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ +in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: +\begin{equation} +M_n(x;0,c;q)=C_n(x;c;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} +By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we +obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): +$$\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q).$$ + +\subsubsection*{$q$-Charlier $\rightarrow$ Stieltjes-Wigert} +If we set $q^{-x}\rightarrow ax$ in the definition (\ref{DefqCharlier}) of the +$q$-Charlier polynomials and take the limit $a\rightarrow\infty$ we obtain +the Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) in the +following way: +\begin{equation} +\lim_{a\rightarrow\infty}C_n(ax;a;q)=(q;q)_nS_n(x;q). +\end{equation} + +\subsubsection*{$q$-Charlier $\rightarrow$ Charlier} +If we set $a\rightarrow a(1-q)$ in the definition (\ref{DefqCharlier}) +of the $q$-Charlier polynomials and take the limit $q\rightarrow 1$ we obtain the +Charlier polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}C_n(q^{-x};a(1-q);q)=C_n(x;a). +\end{equation} + +\subsection*{Remark} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) and the +$q$-Laguerre polynomials given by (\ref{DefqLaguerre}) are related in the +following way: +$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ + +\subsection*{References} +\cite{AlvarezRonveaux}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, +\cite{Hahn}, \cite{Koelink96III}, \cite{Nikiforov+}, \cite{Zeng95}. + + +\section{Al-Salam-Carlitz~I}\index{Al-Salam-Carlitz~I polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefAlSalamCarlitzI} +U_n^{(a)}(x;q)=(-a)^nq^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{\frac{qx}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAlSalamCarlitzI} +& &\int_a^1(qx,a^{-1}qx;q)_{\infty}U_m^{(a)}(x;q)U_n^{(a)}(x;q)\,d_qx\nonumber\\ +& &{}=(-a)^n(1-q)(q;q)_n(q,a,a^{-1}q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn},\quad a<0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecAlSalamCarlitzI} +xU_n^{(a)}(x;q)=U_{n+1}^{(a)}(x;q)+(a+1)q^nU_n^{(a)}(x;q) +-aq^{n-1}(1-q^n)U_{n-1}^{(a)}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecAlSalamCarlitzI} +xp_n(x)=p_{n+1}(x)+(a+1)q^np_n(x)-aq^{n-1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$$U_n^{(a)}(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvAlSalamCarlitzI} +(1-q^n)x^2y(x)&=&aq^{n-1}y(qx)-\left[aq^{n-1}+q^n(1-x)(a-x)\right]y(x)\nonumber\\ +& &{}\mathindent{}+q^n(1-x)(a-x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=U_n^{(a)}(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1AlSalamCarlitzI-I} +U_n^{(a)}(x;q)-U_n^{(a)}(qx;q)=(1-q^n)xU_{n-1}^{(a)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1AlSalamCarlitzI-II} +\mathcal{D}_qU_n^{(a)}(x;q)=\frac{1-q^n}{1-q}U_{n-1}^{(a)}(x;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2AlSalamCarlitzI-I} +aU_n^{(a)}(x;q)-(1-x)(a-x)U_n^{(a)}(q^{-1}x;q)=-q^{-n}xU_{n+1}^{(a)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2AlSalamCarlitzI-II} +\mathcal{D}_{q^{-1}}\left[w(x;a;q)U_n^{(a)}(x;q)\right]= +\frac{q^{-n+1}}{a(1-q)}w(x;a;q)U_{n+1}^{(a)}(x;q), +\end{equation} +where +$$w(x;a;q)=(qx,a^{-1}qx;q)_{\infty}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodAlSalamCarlitzI} +w(x;a;q)U_n^{(a)}(x;q)=a^nq^{\frac{1}{2}n(n-3)}(1-q)^n +\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;a;q)\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenAlSalamCarlitzI} +\frac{(t,at;q)_{\infty}}{(xt;q)_{\infty}}= +\sum_{n=0}^{\infty}\frac{U_n^{(a)}(x;q)}{(q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Laguerre $\rightarrow$ Al-Salam-Carlitz~I} +If we set $x\rightarrow aqx$ and $b\rightarrow ab$ in the definition +(\ref{DefBigqLaguerre}) of the big $q$-Laguerre polynomials and take the +limit $a\rightarrow 0$ we obtain the Al-Salam-Carlitz~I polynomials given by +(\ref{DefAlSalamCarlitzI}): +$$\lim_{a\rightarrow 0}\frac{P_n(aqx;a,ab;q)}{a^n}=q^nU_n^{(b)}(x;q).$$ + +\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} +If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) +of the dual $q$-Krawtchouk polynomials and take the limit +$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials +given by (\ref{DefAlSalamCarlitzI}): +$$\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= +\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q).$$ +Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} +The discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) can easily be obtained from the +Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the +substitution $a=-1$: +\begin{equation} +U_n^{(-1)}(x;q)=h_n(x;q). +\end{equation} + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Charlier / Hermite} +If we set $a\rightarrow a(q-1)$ and $x\rightarrow q^x$ in the definition +(\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I polynomials and take the +limit $q\rightarrow 1$ after dividing by $a^n(1-q)^n$ we obtain the Charlier +polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\frac{U_n^{(a(q-1))}(q^x;q)}{(1-q)^n}=a^nC_n(x;a). +\end{equation} + +If we set $x\rightarrow x\sqrt{1-q^2}$ and $a\rightarrow a\sqrt{1-q^2}-1$ +in the definition (\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I +polynomials, divide by $(1-q^2)^{\frac{n}{2}}$, and let $q$ tend to $1$ we +obtain the Hermite polynomials given by (\ref{DefHermite}) with shifted +argument. In fact we have +\begin{equation} +\lim_{q\rightarrow 1}\frac{U_n^{(a\sqrt{1-q^2}-1)}(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x-a)}{2^n}. +\end{equation} + +\subsection*{Remark} +The Al-Salam-Carlitz~I polynomials are related to the Al-Salam-Carlitz~II +polynomials given by (\ref{DefAlSalamCarlitzII}) in the following way: +$$U_n^{(a)}(x;q^{-1})=V_n^{(a)}(x;q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AlSalamChihara76}, \cite{AskeySuslovII}, +\cite{AtakRahmanSuslov}, \cite{Chihara68II}, \cite{Chihara78}, \cite{DattaGriffin}, +\cite{Dehesa}, \cite{DohaAhmed2005}, \cite{GasperRahman90}, \cite{Ismail85I}, +\cite{IsmailMuldoon}, \cite{Kim}, \cite{Zeng95}. + + +\section{Al-Salam-Carlitz~II}\index{Al-Salam-Carlitz~II polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefAlSalamCarlitzII} +V_n^{(a)}(x;q)= +(-a)^nq^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},x}{-}{\frac{q^n}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAlSalamCarlitzII} +& &\sum_{k=0}^{\infty}\frac{q^{k^2}a^k}{(q;q)_k(aq;q)_k} +V_m^{(a)}(q^{-k};q)V_n^{(a)}(q^{-k};q)\nonumber\\ +& &{}=\frac{(q;q)_na^n}{(aq;q)_{\infty}q^{n^2}}\,\delta_{mn},\quad 00,\quad\textrm{with}\quad +\gamma^2=-\frac{1}{2\ln q}.$$ + +\subsection*{References} +\cite{Askey86}, \cite{Askey89I}, \cite{AtakAtakIII}, \cite{Chihara70}, \cite{Chihara78}, +\cite{Dehesa}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Stieltjes}, \cite{Szego75}, +\cite{ValentAssche}, \cite{Wigert}. + + +\section{Discrete $q$-Hermite~I} +\index{Discrete q-Hermite~I polynomials@Discrete $q$-Hermite~I polynomials} +\index{q-Hermite~I polynomials@$q$-Hermite~I polynomials!Discrete} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +The discrete $q$-Hermite~I polynomials are Al-Salam-Carlitz~I polynomials +with $a=-1$: +\begin{eqnarray} +\label{DefDiscreteqHermiteI} +h_n(x;q)=U_n^{(-1)}(x;q)&=&q^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-qx}\\ +&=&x^n\qhypK{2}{0}{q^{-n},q^{-n+1}}{0}{q^2,\frac{q^{2n-1}}{x^2}}\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDiscreteqHermiteI} +& &\int_{-1}^1(qx,-qx;q)_{\infty}h_m(x;q)h_n(x;q)\,d_qx\nonumber\\ +& &{}=(1-q)(q;q)_n(q,-1,-q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDiscreteqHermiteI} +xh_n(x;q)=h_{n+1}(x;q)+q^{n-1}(1-q^n)h_{n-1}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDiscreteqHermiteI} +xp_n(x)=p_{n+1}(x)+q^{n-1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$$h_n(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDiscreteqHermiteI} +-q^{-n+1}x^2y(x)=y(qx)-(1+q)y(x)+q(1-x^2)y(q^{-1}x), +\end{equation} +where +$$y(x)=h_n(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1DiscreteqHermiteI-I} +h_n(x;q)-h_n(qx;q)=(1-q^n)xh_{n-1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1DiscreteqHermiteI-II} +\mathcal{D}_qh_n(x;q)=\frac{1-q^n}{1-q}h_{n-1}(x;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2DiscreteqHermiteI-I} +h_n(x;q)-(1-x^2)h_n(q^{-1}x;q)=q^{-n}xh_{n+1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2DiscreteqHermiteI-II} +\mathcal{D}_{q^{-1}}\left[w(x;q)h_n(x;q)\right] +=-\frac{q^{-n+1}}{1-q}w(x;q)h_{n+1}(x;q), +\end{equation} +where +$$w(x;q)=(qx,-qx;q)_{\infty}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDiscreteqHermiteI} +w(x;q)h_n(x;q)=(q-1)^nq^{\frac{1}{2}n(n-3)} +\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;q)\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenDiscreteqHermiteI} +\frac{(t^2;q^2)_{\infty}}{(xt;q)_{\infty}}= +\sum_{n=0}^{\infty}\frac{h_n(x;q)}{(q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} +The discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) can easily be obtained from the +Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the +substitution $a=-1$: +$$U_n^{(-1)}(x;q)=h_n(x;q).$$ + +\subsubsection*{Discrete $q$-Hermite~I $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be found +from the discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) in the following way: +\begin{equation} +\lim_{q\rightarrow 1}\frac{h_n(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. +\end{equation} + +\subsection*{Remark} The discrete $q$-Hermite~I polynomials are related to the +discrete $q$-Hermite~II polynomials given by (\ref{DefDiscreteqHermiteII}) +in the following way: +$$h_n(ix;q^{-1})=i^n{\tilde h}_n(x;q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AtakRahmanSuslov}, +\cite{BergIsmail}, \cite{BustozIsmail82}, \cite{GasperRahman90}, \cite{Hahn}, +\cite{Koorn97}. + + +\newpage + +\section{Discrete $q$-Hermite~II} +\index{Discrete q-Hermite~II polynomials@Discrete $q$-Hermite~II polynomials} +\index{q-Hermite~II polynomials@$q$-Hermite~II polynomials!Discrete} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +The discrete $q$-Hermite~II polynomials are Al-Salam-Carlitz~II polynomials +with $a=-1$: +\begin{eqnarray} +\label{DefDiscreteqHermiteII} +{\tilde h}_n(x;q)=i^{-n}V_n^{(-1)}(ix;q) +&=&i^{-n}q^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},ix}{-}{-q^n}\\ +&=&x^n +\qhypK{2}{1}{q^{-n},q^{-n+1}}{0}{q^2,-\frac{q^2}{x^2}}\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDiscreteqHermiteIIa} +& &\sum_{k=-\infty}^{\infty}\left[{\tilde h}_m(cq^k;q) +{\tilde h}_n(cq^k;q)+{\tilde h}_m(-cq^k;q){\tilde h}_n(-cq^k;q)\right] +w(cq^k;q)q^k\nonumber\\ +& &{}=2\frac{(q^2,-c^2q,-c^{-2}q;q^2)_{\infty}}{(q,-c^2,-c^{-2}q^2;q^2)_{\infty}} +\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn},\quad c>0, +\end{eqnarray} +where +$$w(x;q)=\frac{1}{(ix,-ix;q)_{\infty}}=\frac{1}{(-x^2;q^2)_{\infty}}.$$ +For $c=1$ this orthogonality relation can also be written as +\begin{equation} +\label{OrtDiscreteqHermiteIIb} +\int_{-\infty}^{\infty}\frac{{\tilde h}_m(x;q){\tilde h}_n(x;q)}{(-x^2;q^2)_{\infty}}\,d_qx +=\frac{\left(q^2,-q,-q;q^2\right)_{\infty}}{\left(q^3,-q^2,-q^2;q^2\right)_{\infty}} +\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDiscreteqHermiteII} +x{\tilde h}_n(x;q)={\tilde h}_{n+1}(x;q)+q^{-2n+1}(1-q^n){\tilde h}_{n-1}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDiscreteqHermiteII} +xp_n(x)=p_{n+1}(x)+q^{-2n+1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$${\tilde h}_n(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvDiscreteqHermiteII} +& &-(1-q^n)x^2{\tilde h}_n(x;q)\nonumber\\ +& &{}=(1+x^2){\tilde h}_n(qx;q)-(1+x^2+q){\tilde h}_n(x;q)+q{\tilde h}_n(q^{-1}x;q). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1DiscreteqHermiteII-I} +\tilde{h}_n(x;q)-\tilde{h}_n(qx;q)=q^{-n+1}(1-q^n)x\tilde{h}_{n-1}(qx;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1DiscreteqHermiteII-II} +\mathcal{D}_q\tilde{h}_n(x;q)=\frac{q^{-n+1}(1-q^n)}{1-q}\tilde{h}_{n-1}(qx;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2DiscreteqHermiteII-I} +\tilde{h}_n(x;q)-(1+x^2)\tilde{h}_n(qx;q)=-q^nx\tilde{h}_{n+1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2DiscreteqHermiteII-II} +\mathcal{D}_q\left[w(x;q)\tilde{h}_n(x;q)\right] +=-\frac{q^n}{1-q}w(x;q)\tilde{h}_{n+1}(x;q). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDiscreteqHermiteII} +w(x;q)\tilde{h}_n(x;q)=(q-1)^nq^{-\binom{n}{2}} +\left(\mathcal{D}_q\right)^n\left[w(x;q)\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenDiscreteqHermiteII1} +\frac{(-xt;q)_{\infty}}{(-t^2;q^2)_{\infty}}=\sum_{n=0}^{\infty} +\frac{q^{\binom{n}{2}}}{(q;q)_n}{\tilde h}_n(x;q)t^n. +\end{equation} + +\begin{equation} +\label{GenDiscreteqHermiteII2} +(-it;q)_{\infty}\cdot\qhyp{1}{1}{ix}{-it}{it}=\sum_{n=0}^{\infty} +\frac{(-1)^nq^{n(n-1)}}{(q;q)_n}{\tilde h}_n(x;q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Al-Salam-Carlitz~II $\rightarrow$ Discrete $q$-Hermite~II} +The discrete $q$-Hermite~II polynomials given by +(\ref{DefDiscreteqHermiteII}) follow from the Al-Salam-Carlitz~II +polynomials given by (\ref{DefAlSalamCarlitzII}) by the substitution $a=-1$ +in the following way: +$$i^{-n}V_n^{(-1)}(ix;q)={\tilde h}_n(x;q).$$ + +\subsubsection*{Discrete $q$-Hermite~II $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be found +from the discrete $q$-Hermite~II polynomials given by +(\ref{DefDiscreteqHermiteII}) in the following way: +\begin{equation} +\lim_{q\rightarrow 1}\frac{{\tilde h}_n(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. +\end{equation} + +\subsection*{Remark} The discrete $q$-Hermite~II polynomials are related to the +discrete $q$-Hermite~I polynomials given by (\ref{DefDiscreteqHermiteI}) +in the following way: +$${\tilde h}_n(x;q^{-1})=i^{-n}h_n(ix;q).$$ + +\subsection*{References} +\cite{BergIsmail}, \cite{Koorn97}. + +\end{document} diff --git a/KLSadd_insertion/linetest.py b/KLSadd_insertion/linetest.py new file mode 100644 index 0000000..19de78a --- /dev/null +++ b/KLSadd_insertion/linetest.py @@ -0,0 +1,165 @@ +""" +TODO: Rewrite the whole thing so another human being can read it +jeez this is like my handwriting; it's nonsense to everyone but me +This started out as a test file but I just kept writing it +and writing it +and writing it +and now its the project +""" + +entireFile = "" +subsections = [] +index = 0 +headings = [] +sections = [] +mathPeople = [] +newCommands = [] +#can you tell I like lists? +name = "" +temp = "" +with open("KLSadd.tex", "r") as file: + entireFile = file.readlines() + for word in entireFile: + index+=1 + if("smallskipamount" in word): + newCommands.append(index-1) + if("mybibitem[1]" in word): + newCommands.append(index) + #1/27/16 RS added \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs + if("paragraph{" in word): + temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] + entireFile[entireFile.index(word): entireFile.index(word)+1] = temp + if("\\subsection*{" in word and "." in word): + subsections.append(index) + headings.append(word) + name = word[word.find(" ")+1:word.find("}")] + mathPeople.append(name) + name = "" + #1/29/16 get all of the new commands + comms = ''.join(entireFile[newCommands[0]:newCommands[1]]) + paras = [] + for i in range(len(subsections)-1): + str = ''.join(entireFile[subsections[i]: subsections[i+1]-1]) + paras.append(str) + sec = "" + for f in headings: + for i in f: + try: + int(i) + sec += i + except: + pass + if("." in i): + sec+=i + sections.append(sec) + + sec = "" + #sections now holds all sections + + numFile = "" + filenums = [] + for s in sections: + numFile = "" + if("." in s[0:2]): + numFile = s[0] + else: + numFile = s[0:2] + filenums.append(int(numFile)) + #filenums now has the file numbers like 1,9,14,etc + + #SO python is nothing like java, I have to read in the entire chapter + #file and then change it and THEN put it back into the chapter file + + #chapter 9 + with open("tempchap9.tex", "r") as ch9: + entire9 = ch9.readlines() + ch9.close() + #chapter 14 + with open("tempchap14.tex", "r") as ch14: + entire14 = ch14.readlines() + ch14.close() + + references9 = [] + footmiscIndex = 0 + index = 0 + beginIndex9= -1 + #now I have a list of the names, only store indices + #of the paragraph if its in a section with these names + #TODO make a method to do this + canAdd = False + for word in entire9: + index+=1 + if("begin{document}" in word): + beginIndex9 += index + if("footmisc" in word): + footmiscIndex+= index + #need to check subsection and section because + #KLSadd also fixes some subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1:word.find("}")] + if(w in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references9.append(index) + canAdd = False + canAdd = False + references14 = [] + index = 0 + footmiscIndex14 = 0 + beginIndex14 = -1 + for word in entire14: + index+=1 + if("begin{document}" in word): + beginIndex14 += index + if("footmisc" in word): + footmiscIndex14+= index + #need to check subsection and section because + #KLSadd also fixes some subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1:word.find("}")] + if(w in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references14.append(index) + canAdd = False + #references9 is now full of indexes to put fixed paragraphs + + #TODO make into a method + with open("newtempchap09.tex", "w") as temp9: + count = 0 + + #1/29/16 add hyperref, xparse, cite packages after the footmisc package + entire9[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + #1/29/16 add in the newcommands from KLSadd.tex + entire9[beginIndex9-1] += comms + #1/27/16 add \large\bf KLSadd: after every paragraph{ + for i in references9: + entire9[i-3] += "% RS: add begin" + entire9[i-3] += paras[count] + entire9[i-3] += "% RS: add end" + count+=1 + entire9[i-1] += paras[count] + + + str = ''.join(entire9) + temp9.write(str) + + + + #works, as far as I know, huzzah + #references14 is now full of indexes to put fixed paragraphs + with open("newtempchap14.tex", "w") as temp14: + entire14[footmiscIndex14] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + entire14[beginIndex14 -3] += comms + for i in references14: + entire14[i-3] += " RS: add begin" + entire14[i-3] += paras[count] + #entire14[i-3] += "% RS: add end" + count+=1 + str = ''.join(entire14) + temp14.write(str) + + + + + diff --git a/KLSadd_insertion/newtempchap09.pdf b/KLSadd_insertion/newtempchap09.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bec3d85a50c47d3eae72c71fd38c175ac81a2ab1 GIT binary patch literal 319561 zcma&NW2|UFvn{%8+qSK}Y}>YN+qP}nwry)K+s57Jy_1)hd?&f5Gk?rqo%F1pHEN7e zMJg{WO3O&c3Pn1EUmX^xu|H}<8%VvcZQ+E88qt*gd~X}%{C>pD7-yGQ&hJ@jZNB8QXjuyFp57gbKmV%2%v2=4qg9}Pi!qsI` zjtQE1uOFJX4+qB7_{#3hRGGoXSnU2H1Z7Fq-qXpJA?S&*UjyzBo*c5SYR+f1`AX00 z+)v&39r*rQ3DTKwO~B|73?JV(aJ+qEdfh7&2SymO&|lb?2oAB`7=;TtcF`6~9aIlK z@}`t4Nr-BZ`TJcC4wN9<2fxX~N9)Ct+LZVbw`nV^y7c>QmoUQcewQJ(HCq9CTraVN zlFiNDZN_2qeV6wExaoNlqwul?pB_~ljM$uCvF$F(syfvgjpNkHw3wDdxiMNBx{sA- z_2HANY4M>bb+X(LUPomSaj>FYTqyN@0GpPKA3~Yf8vl31{=NNIv^hBcGwdAy9drVM z|9jYh0sbw(|J;|8`9Jq%WMN|a-(IH?H3_>dQIy_GwL9^G)!?T1YzqYtTKOW{c_D0I z&UViEWpN@RN0h|KL%+RO(*p4TDjYEpgZ}K}nb#MQJTw-`{Wwu+M8cwMD8Y>ANzeN? z!iZJ-XRl<0T4U$NU>6c5QKW<+Py8OOua38OgZmTRMhIQU_9#3y;8c=GQTWRE$B{)6Hk&?XttAw%Hoo+4C!>qXbvKB|6TEgM zN##sUTYt$4B8v-;@74aM?9uPqi|xv7)G$2t0kR0WP2Ad+k+7AD3pZPptM3J{5vmJI zz4KWfW^A`6t8(DCr#qwHxQ_I+?${VTM&XCiC!SQ}VKqQh+;!y*_`;c-mlCh5>hpg_b&F=q7Wt zU{&uM)wA~9s@+rdDBwWI>Fw9hd-UMAR!c8;Dl64iv8bsy3?#T%Cjr}0VB-}*vD(1A z=e2J4d;b(hw^Ln3L_)XOJQu9w*!nw!oNy(L^E-|dxwmk#k@j{uZ8hbp{NmibqP^de z$Z)-h-PUp?GlNE{UZM^gUcc1P#o1J4A>Dc~_3wZ>{?;y)SgcYn)iOrk8|&Dl(!{W1 z>As?B;>j(Tg){fk@`V04XOHam6Q>SWMeKJVe;M=a)(!}8$93tnobMn#w*UfNw#3ZQ znxDLQ1$E1H)@0IV4(Fi7h8>q&n^v;RGb$DZw5>Ph>r=B8mx|jR)iUFrx4=iaUNTAuN zgNo;-xt2rDwk!M7AQO)XE2*>=J{&U41+=%X%;66qavxVic5?#1WEu4G75(d6zwz!M z?o8rZxxXRNm4sD9WB;h_Kg$wBH-|3Q$!BrRp2rB4znx*kj;@JLispEJzTwj#$Cm4`*dW zjB=3GZ(5Z{z&({vPDhtqm#CUFi3#M2DN#@&yX~QI`Ch*2gemwGNkm1;B-ba4h=+2p zSOVJ)FW$0A z4c>6e#V;5k{Vvk~$;Mm6mlk~Tb;-2@GfgFP_11LAP+FW@LnLntGV}L!oscTL+|<1) zd{X_S3}H0P<8;&9C<~^Us7L-I+k;Pj&^*Oturv2AI

z zw!P@V-Lf!~KoTg38C7+Yb2QLc818Y$f7((D1A*4pL){xo)E-KKCOEQPTmo*v zn=v@*i#u2;6LDbO8A1(xC{OHfVDST}Y#MrO`rxrqR z?aZYQ%`z;|G0el0-mwCht(VBKEDp&5`z?iGkR4rU03*!zORGcFS5@!y1fUWB%d=y7 zm7{jlYDHKMO+1@)JjhjjVCWG4a@N><8_BTDQM{})#f0Fv ztW~h({?>-uQgl)HEG>)Y4y z-MG75bJB)y+SmJa{)rDug0=@T*%LuV$zZ5)pV)Wf+uiw__{-}x_TcKp#0FCi2RqOhGBbTZ

=I0( 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%0AO3B=m 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 fzyD9Vx|z7Rd4Vi)2<$*k9&Qc0}} +\newcommand\Znonneg{\ZZ_{\ge0}} +\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} +\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} +\newcommand\LHS{left-hand side} +\newcommand\RHS{right-hand side} +\renewcommand\Re{{\rm Re}\,} +\renewcommand\Im{{\rm Im}\,} + +\NewDocumentCommand\mycite{m g}{% + \IfNoValueTF{#2} + {[\hyperlink{#1}{#1}]} + {[\hyperlink{#1}{#1}, #2]}% +} +\newcommand\mybibitem[1]{\bibitem[#1]{#1}\hypertarget{#1}{}} +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\addtocounter{chapter}{8} +\pagenumbering{roman} +\chapter{Hypergeometric orthogonal polynomials} +\label{HyperOrtPol} + + +In this chapter we deal with all families of hypergeometric orthogonal polynomials +appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal +polynomials we state the most important properties such as a representation as a +hypergeometric function, orthogonality relation(s), the three-term recurrence relation, +the second-order differential or difference equation, the forward shift (or degree lowering) +and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating +functions. In each case we use the notation which seems to be most common in the literature. +Moreover, in each case we mention the connection between various families by stating the +appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of +this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. +For notations the reader is referred to chapter~\ref{Definitions}. + +\section{Wilson}\index{Wilson polynomials} + +\par + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefWilson} +& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ +& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then +\begin{eqnarray} +\label{OrthIWilson} +& &\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, +\end{eqnarray} +where +\begin{eqnarray*} +& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ +& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). +\end{eqnarray*} +If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates +occur with positive real parts, then +\begin{eqnarray} +\label{OrtIIWilson} +& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ +& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} +{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} +\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ +& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecWilson} +-\left(a^2+x^2\right){\tilde{W}}_n(x^2) +=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), +\end{equation} +where +$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecWilson} +xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvWilson} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=W_n(x^2;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] +\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1WilsonI} +& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) +-W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1WilsonII} +& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ +& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{eqnarray} + +\newpage + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2WilsonI} +& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) +(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) +W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2WilsonII} +& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ +& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodWilson} +& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ +& &{}=\left(\frac{\delta}{\delta x^2}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenWilson1} +\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson2} +\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson3} +\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. +\end{equation} + +\begin{eqnarray} +\label{GenWilson4} +& &(1-t)^{1-a-b-c-d}\nonumber\\ +& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} +{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} +The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the +Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: +\begin{equation} +\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson +polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, +$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following +way: +\begin{equation} +\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson +polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Remarks} +Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then +\begin{eqnarray} +\label{OrtContHahn} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) +p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} +{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecContHahn} +(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), +\end{equation} +where +$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecContHahn} +xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvContHahn} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] +\displaystyle D(x)=(a+ix)(b+ix). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1ContHahnI} +& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, +b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1ContHahnII} +\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) +p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2ContHahnI} +& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, +b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2ContHahnII} +& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ +& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ +& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodContHahn} +& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ +& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenContHahn1} +\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenContHahn2} +\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenContHahn3} +& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} +{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials are obtained from the Wilson polynomials given by +(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, +$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit +$t\rightarrow\infty$ in the following way: +$$\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the +continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ +and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. +\end{equation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials +by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous +Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray} + +\subsection*{Remark} +Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ +Thus, under these assumptions, the continuous Hahn polynomial +$p_n(x;a,b,c,d)$ +is symmetric in $a,b$ and in $c,d$. +This follows from the orthogonality relation (9.4.2) +together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ +As a consequence, it is sufficient to give generating function (9.4.11). Then the generating +function (9.4.12) will follow by symmetry in the parameters. +% +\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{\large\bf KLSadd: Special cases}In the following special case there is a reduction to +Meixner-Pollaczek: +\begin{equation} +p_n(x;a,a+\thalf,a,a+\thalf)= +\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). +\end{equation} +See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the +Meixner-Pollaczek polynonmials are defined different from (9.7.1), +without a constant factor in front). + +For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have +\begin{eqnarray} +\label{OrtHahn} +& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHahn} +-xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), +\end{equation} +where +$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] +\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHahn} +xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvHahn} +n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] +\displaystyle D(x)=x(x-\beta-N-1). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1HahnI} +& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1HahnII} +\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2HahnI} +& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ +& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2HahnII} +& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ +& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), +\end{eqnarray} +where +$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodHahn} +& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenHahn1} +\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenHahn2} +& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenHahn3} +& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} +{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Hahn} +If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we obtain the Hahn polynomials. Hence +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ +And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we also obtain the Hahn polynomials: +$$\lim_{\gamma\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ +Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in +the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit +$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take +$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials +by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials +if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the +dual Hahn polynomials given by (\ref{DefDualHahn}). + +\noindent +Since +$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ +we obtain the dual orthogonality relation for the Hahn polynomials from the +orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} +Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ +& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. +\end{eqnarray*} +% RS: add begin\label{sec9.5} +% +\paragraph{\large\bf KLSadd: Special values}\begin{equation} +Q_n(0;\al,\be,N)=1,\quad +Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{95} +\end{equation} +Use (9.5.1) and compare with (9.8.1) and \eqref{50}. + +From (9.5.3) and \eqref{1} it follows that +\begin{equation} +Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. +\label{30} +\end{equation} +From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that +\begin{equation} +Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). +\label{44} +\end{equation} +% +\paragraph{\large\bf KLSadd: Symmetries}By the orthogonality relation (9.5.2): +\begin{equation} +\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), +\label{96} +\end{equation} +It follows from \eqref{97} and \eqref{45} that +\begin{equation} +\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} +=Q_n(x;-N-\be-1,-N-\al-1,N) +\qquad(x=0,1,\ldots,N). +\label{100} +\end{equation} +% +\paragraph{\large\bf KLSadd: Duality}The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: +% +\begin{equation} +Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). +\label{45} +\end{equation} +% +% RS: add end +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, +\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, +\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, +\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, +\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, +\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, +\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, +\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, +\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, +\cite{Zarzo+}. + + +\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefDualHahn} +R_n(\lambda(x);\gamma,\delta,N)= +\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\lambda(x)=x(x+\gamma+\delta+1).$$ + +\subsection*{Orthogonality relation} +For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have +\begin{eqnarray} +\label{OrtDualHahn} +& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDualHahn} +\lambda(x)R_n(\lambda(x)) +=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), +\end{equation} +where +$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] +\displaystyle C_n=n(n-\delta-N-1). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDualHahn} +xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvDualHahn} +-ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] +\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualHahnI} +& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1DualHahnII} +\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= +-\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualHahnI} +& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ +& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualHahnII} +& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ +& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), +\end{eqnarray} +where +$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} +{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ + +\newpage + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDualHahn} +\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) +=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], +\end{equation} +where +$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenDualHahn1} +(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn2} +& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ +& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{eqnarray} + +\begin{equation} +\label{GenDualHahn3} +\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N +\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn4} +& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, +\quad\textrm{$\epsilon$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Dual Hahn} +If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we obtain the dual Hahn polynomials: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we also obtain the dual Hahn polynomials: +$$\lim_{\alpha\rightarrow\infty} +R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition +(\ref{DefRacah}) of the Racah polynomials and take the limit +$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials +if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). +\end{equation} + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual +Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) +of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). + +\noindent +Since +$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ +we obtain the dual orthogonality relation for the dual Hahn polynomials +from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ +& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. +\end{eqnarray*} +% RS: add begin\label{sec9.6} +% +\paragraph{\large\bf KLSadd: Special values}By \eqref{44} and \eqref{45} we have +\begin{equation} +R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. +\label{47} +\end{equation} +It follows from \eqref{95} and \eqref{45} that +\begin{equation} +R_N(x(x+\ga+\de+1);\ga,\de,N) +=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). +\label{101} +\end{equation} +% +\paragraph{\large\bf KLSadd: Symmetries}Write the weight in (9.6.2) as +\begin{equation} +w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, +\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. +\label{98} +\end{equation} +Then +\begin{equation} +(\de+1)_N\,w_{N-x}(\ga,\de,N)= +(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). +\label{99} +\end{equation} +Hence, by (9.6.2), +\begin{equation} +\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} +=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). +\label{97} +\end{equation} +Alternatively, \eqref{97} follows from (9.6.1) and +\mycite{DLMF}{(16.4.11)}. + +It follows from \eqref{96} and \eqref{45} that +\begin{equation} +\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} +{R_N(x(x+\ga+\de+1);\ga,\de,N)} +=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). +\label{102} +\end{equation} +% +\paragraph{\large\bf KLSadd: Re: (9.6.11).}The generating function (9.6.11) can be written in a more conceptual way as +\begin{equation} +(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, +\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, +\label{2} +\end{equation} +where +\begin{equation} +\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, +\label{3} +\end{equation} +i.e., the denominator on the \RHS\ of (9.6.2). +By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in +terms of Hahn polynomials: +\begin{equation} +(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, +\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, +\label{4} +\end{equation} +where +\begin{equation} +w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, +\label{5} +\end{equation} +i.e., the weight occurring in the orthogonality relation (9.5.2) +for Hahn polynomials. +\paragraph{\large\bf KLSadd: Re: (9.6.15).}There should be a closing bracket before the equality sign. +% +% RS: add end +\subsection*{References} +\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, +\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, +\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. + + +\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMP} +P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, +\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMP} +\frac{1}{2\pi}\int_{-\infty}^{\infty} +\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 +P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx +{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, +% \constraint{ +% $\lambda > 0$ & +% $0 < \phi < \pi$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMP} +& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] +P_n^{(\lambda)}(x;\phi)\nonumber\\ +& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMP} +xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ +\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), +\end{equation} +where +$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvMP} +& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ +& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MPI} +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) +P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MPII} +\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} +=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2MPI} +& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ +\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ +& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2MPII} +\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= +-(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) +P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), +\end{equation} +where +$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMP} +\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} +\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. +\end{equation} + +\newpage + +\subsection*{Generating functions} +\begin{equation} +\label{GenMP1} +(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= +\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. +\end{equation} + +\begin{equation} +\label{GenMP2} +\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= +\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenMP3} +& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials +given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, +$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the +definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit +$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: +$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ + +\newpage + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the +Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +\begin{equation} +\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek +polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +and then let $\lambda\rightarrow\infty$: +\begin{equation} +\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remark} +Since we have for $k-1$ and $\beta>-1$ we have +\begin{eqnarray} +\label{OrtJacobi1} +& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ +& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. +\end{eqnarray} +For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have +\begin{eqnarray} +\label{OrtJacobi2} +& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ +& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecJacobi} +xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} +{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) +\end{eqnarray} +where +$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{eqnarray} +\label{dvJacobi} +& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ +& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Jacobi} +\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2JacobiI} +& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ +\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2JacobiII} +& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ +& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodJacobi} +(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= +\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenJacobi1} +\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= +\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{eqnarray} +\label{GenJacobi2} +& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi3} +& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi4} +& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi5} +& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2} +\end{eqnarray} +with $\gamma$ arbitrary. + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by +substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +$$\lim_{t\rightarrow\infty} +\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} +{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) +by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ +in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take +$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have +$$\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi +polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials +if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: +\begin{equation} +\lim_{\alpha\rightarrow-\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials +by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: +$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} +(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ +In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ +and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the +following connection with the Meixner polynomials given by (\ref{DefMeixner}): +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by +(\ref{DefPseudoJacobi}) in the following way: +$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ + +\noindent +The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials +given by (\ref{DefGegenbauer}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ +% RS: add begin\label{sec9.8} +% +\paragraph{\large\bf KLSadd: Orthogonality relation}Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\begin{split} +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP +&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. +\end{split} +\label{60} +\end{equation} + +In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be +$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: +\begin{equation} +\begin{split} +&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ +&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. +\end{split} +\label{122} +\end{equation} + +% +\paragraph{\large\bf KLSadd: Symmetry}\begin{equation} +P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). +\label{48} +\end{equation} +Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{\large\bf KLSadd: Special values}\begin{equation} +P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad +P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad +\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{50} +\end{equation} +Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{\large\bf KLSadd: Generating functions}Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. +% +\paragraph{\large\bf KLSadd: Bilateral generating functions}For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): +\begin{align} +&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac1{(1+r)^{\al+\be+1}} +\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), +\label{58}\sLP +&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} +\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). +\label{59} +\end{align} +Formulas \eqref{58} and \eqref{59} were first +given by Bailey \myciteKLS{91}{(2.1), (2.3)}. +See Stanton \myciteKLS{485} for a shorter proof. +(However, in the second line of +\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ +As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows +from \eqref{58} +by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ +to both sides of \eqref{58}. +In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi +polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. +See also the discussion in Askey \myciteKLS{46}{following (2.32)}. +% +\paragraph{\large\bf KLSadd: Quadratic transformations}\begin{align} +\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} +=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} +&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, +\label{51}\\ +\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} +=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} +&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. +\label{52} +\end{align} +See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. +Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. +% +\paragraph{\large\bf KLSadd: Differentiation formulas}Each differentiation formula is given in two equivalent forms. +\begin{equation} +\begin{split} +\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= +-(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ +\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= +-(n+\al)\,P_n^{(\al-1,\be+1)}(x). +\end{split} +\label{68} +\end{equation} +% +\begin{equation} +\begin{split} +\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= +(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ +\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= +(n+\be)\,P_n^{(\al+1,\be-1)}(x). +\end{split} +\label{69} +\end{equation} +Formulas \eqref{68} and \eqref{69} follow from +\mycite{DLMF}{(15.5.4), (15.5.6)} +together with (9.8.1). They also follow from each other by \eqref{48}. +% +\paragraph{\large\bf KLSadd: Generalized Gegenbauer polynomials}These are defined by +\begin{equation} +S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad +S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{70} +\end{equation} +in the notation of \myciteKLS{146}{p.156} +(see also \cite{K27}), while \cite[Section 1.5.2]{K26} +has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. +For $\al,\be>-1$ we have the orthogonality relation +\begin{equation} +\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx +=0\qquad(m\ne n). +\label{71} +\end{equation} +For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of +continuous $q$-ultraspherical polynomials, see \eqref{176}. + +If we define the {\em Dunkl operator} $T_\mu$ by +\begin{equation} +(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x +\label{72} +\end{equation} +and if we choose the constants in \eqref{70} as +\begin{equation} +S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad +S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, +x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{73} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. +\label{74} +\end{equation} +Formula \eqref{74} with \eqref{73} substituted gives rise to two +differentiation formulas involving Jacobi polynomials which are equivalent to +(9.8.7) and \eqref{69}. + +Composition of \eqref{74} with itself gives +\[ +T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, +\] +which is equivalent to the composition of (9.8.7) and \eqref{69}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) +=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). +\label{75} +\end{equation} +Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. +% +% RS: add end +\subsection*{References} +\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, +\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, +\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, +\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, +\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, +\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, +\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, +\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, +\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, +\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, +\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, +\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, +\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, +\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, +\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, +\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, +\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, +\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, +\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, +\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, +\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, +\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, +\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, +\cite{Zayed}. + +\section*{Special cases} + +\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} +\index{Ultraspherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with +$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: +\begin{eqnarray} +\label{DefGegenbauer} +C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ +&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} +{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtGegenbauer} +& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ +& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, +\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecGegenbauer} +2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecGegenbauer} +xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), +\end{equation} +where +$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvGegenbauer} +(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Gegenbauer} +\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2GegenbauerI} +(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= +-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) +\end{equation} +or equivalently +\begin{eqnarray} +\label{shift2GegenbauerII} +& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ +& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodGegenbauer} +(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= +\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenGegenbauer1} +(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer2} +R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} +\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenGegenbauer3} +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} +=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer4} +\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenGegenbauer5} +& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenGegenbauer6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} +{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or +ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remarks} +The case $\lambda=0$ needs another normalization. In that case we have the +Chebyshev polynomials of the first kind described in the next subsection. + +\noindent +The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials +given by (\ref{DefJacobi}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ +% RS: add begin\label{sec9.8.1} +% +\paragraph{\large\bf KLSadd: Notation}Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. +% +\paragraph{\large\bf KLSadd: Orthogonality relation}Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\frac{h_n}{h_0}= +\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad +h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad +\frac{h_n}{h_0\,(C_n^\la(1))^2}= +\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. +\label{61} +\end{equation} +% +\paragraph{\large\bf KLSadd: Hypergeometric representation}Beside (9.8.19) we have also +\begin{equation} +C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} +{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} +=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, +\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. +\label{57} +\end{equation} +See \mycite{DLMF}{(18.5.10)}. +% +\paragraph{\large\bf KLSadd: Special value}\begin{equation} +C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. +\label{49} +\end{equation} +Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{\large\bf KLSadd: Expression in terms of Jacobi}% +\begin{equation} +\frac{C_n^\la(x)}{C_n^\la(1)}= +\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad +C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). +\label{65} +\end{equation} +% +\paragraph{\large\bf KLSadd: Re: (9.8.21)}By iteration of recurrence relation (9.8.21): +\begin{multline} +x^2 C_n^\la(x)= +\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ +\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ ++\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). +\label{6} +\end{multline} +% +\paragraph{\large\bf KLSadd: Bilateral generating functions}\begin{multline} +\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ +(r\in(-1,1),\;x,y\in[-1,1]). +\label{66} +\end{multline} +For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. +The Poisson kernel for Gegenbauer polynomials can be derived in a similar way +from \eqref{59}, or alternatively by applying the operator +$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: +\begin{multline} +\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ +\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad +(r\in(-1,1),\;x,y\in[-1,1]). +\label{67} +\end{multline} +Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} +as a limit case of their formula for the Poisson kernel for continuous +$q$-ultraspherical polynomials. +% +\paragraph{\large\bf KLSadd: Trigonometric expansions}By \mycite{DLMF}{(18.5.11), (15.8.1)}: +\begin{align} +C_n^{\la}(\cos\tha) +&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} +=e^{in\tha}\frac{(\la)_n}{n!}\, +\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ +&=\frac{(\la)_n}{2^\la n!}\, +e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, +\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ +&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, +\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} +\end{align} +In \eqref{104} and \eqref{105} we require that +$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ +and conditional for $0<\la\le\thalf$. + +By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: +\begin{align} +C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, +\sin\big((2k+n+1)\tha\big) +\label{7}\\ +&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ +&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, +\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, +\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ +&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, +\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, +\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. +\label{106} +\end{align} +We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in +\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for +$0<\la\le\thalf$. +For $\la\in\Zpos$ the above series terminate after the term with +$k=\la-1$. +Formulas \eqref{7} and \eqref{106} are also given in +\mycite{Sz}{(4.9.22), (4.9.25)}. +% +\paragraph{\large\bf KLSadd: Fourier transform}\begin{equation} +\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, +\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, +e^{ixy}\,dy +=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). +\label{8} +\end{equation} +See \mycite{DLMF}{(18.17.17) and (18.17.18)}. +% +\paragraph{\large\bf KLSadd: Laplace transforms}\begin{equation} +\frac2{n!\,\Ga(\la)}\, +\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). +\label{56} +\end{equation} +See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) +or Feldheim \cite[(28)]{K3} (1942). +\begin{equation} +\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, +(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt +=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). +\label{46} +\end{equation} +Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with +\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. +\paragraph{\large\bf KLSadd: Addition formula}\begin{multline} +R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) +=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ +\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, +\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), +\label{108} +\end{multline} +where +\[ +R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad +\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} +{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. +\] +% +% RS: add end +\subsection*{References} +\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, +\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, +\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, +\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, +\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, +\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, +\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, +\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, +\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, +\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, +\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, +\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. + +\subsection{Chebyshev}\index{Chebyshev polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Chebyshev polynomials of the first kind can be obtained from the Jacobi +polynomials by taking $\alpha=\beta=-\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevI} +T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} +=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} +\end{equation} +and the Chebyshev polynomials of the second kind can be obtained from the +Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevII} +U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} +=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtChebyshevI} +\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= +\left\{\begin{array}{ll} +\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] +\cpi\,\delta_{mn}, & n=0. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{OrtChebyshevII} +\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relations} +\begin{equation} +\label{RecChebyshevI} +2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. +\end{equation} + +\begin{equation} +\label{RecChebyshevII} +2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. +\end{equation} + +\subsection*{Normalized recurrence relations} +\begin{equation} +\label{NormRecChebyshevI} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ + +\begin{equation} +\label{NormRecChebyshevII} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$U_n(x)=2^np_n(x).$$ + +\subsection*{Differential equations} +\begin{equation} +\label{dvChebyshevI} +(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). +\end{equation} + +\begin{equation} +\label{dvChebyshevII} +(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Chebyshev} +\frac{d}{dx}T_n(x)=nU_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2ChebyshevI} +(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2ChebyshevII} +\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] +=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formulas} +\begin{equation} +\label{RodChebyshevI} +(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. +\end{equation} + +\begin{equation} +\label{RodChebyshevII} +(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenChebyshevI1} +\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI2} +R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} +\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevI3} +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevI5} +& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevI6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{equation} +\label{GenChebyshevII1} +\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII2} +\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} +\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevII3} +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevII5} +& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevII6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Remarks} +The Chebyshev polynomials can also be written as: +$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ +and +$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ +Further we have +$$U_n(x)=C_n^{(1)}(x)$$ +where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) +polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. +% RS: add begin\label{sec9.8.2} +In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) +and $U_n$ of the second kind (9.8.36), +\begin{align} +T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} +=\cos(n\tha),\quad x=\cos\tha,\\ +U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} +=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, +\end{align} +we have Chebyshev polynomials $V_n$ {\em of the third kind} +and $W_n$ {\em of the fourth kind}, +\begin{align} +V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} +=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ +W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} +=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, +\end{align} +see \cite[Section 1.2.3]{K20}. Then there is the symmetry +\begin{equation} +V_n(-x)=(-1)^n W_n(x). +\label{140} +\end{equation} + +The names of Chebyshev polynomials of the third and fourth kind +and the notation $V_n(x)$ are due to Gautschi \cite{K21}. +The notation $W_n(x)$ was first used by Mason \cite{K22}. +Names and notations for Chebyshev polynomials of the third and fourth +kind are interchanged in \mycite{AAR}{Remark 2.5.3} and +\mycite{DLMF}{Table 18.3.1}. +% +% RS: add end +\subsection*{References} +\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, +\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, +\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, +\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, +\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, +\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. + +\subsection{Legendre / Spherical}\index{Legendre polynomials} +\index{Spherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: +\begin{equation} +\label{DefLegendre} +P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLegendre} +\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLegendre} +(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLegendre} +xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), +\end{equation} +where +$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLegendre} +(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLegendre} +P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLegendre1} +\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre2} +\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre3} +\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenLegendre4} +& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenLegendre5} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{References} +\cite{Abram}, \cite{Alladi}, \cite{AlSalam90}, \cite{Bhonsle}, \cite{Brafman51}, +\cite{Carlitz57II}, \cite{Chihara78}, \cite{Danese}, \cite{Dattoli2001}, +\cite{DilcherStolarsky}, \cite{ElbertLaforgia94}, \cite{Erdelyi+}, \cite{Grad}, +\cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Rainville}, +\cite{Szego75}, \cite{Temme}, \cite{Zayed}. + +\newpage + +\section{Pseudo Jacobi}\index{Pseudo Jacobi polynomials}\index{Jacobi polynomials!Pseudo} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefPseudoJacobi} +P_n(x;\nu,N)&=&\frac{(-2i)^n(-N+i\nu)_n}{(n-2N-1)_n}\,\hyp{2}{1}{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}}\\ +&=&(x+i)^n\,\hyp{2}{1}{-n,N+1-n-i\nu}{2N+2-2n}{\frac{2}{1-ix}},\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtPseudoJacobi} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_m(x;\nu,N)P_n(x;\nu,N)\,dx\nonumber\\ +& &{}=\frac{\Gamma(2N+1-2n)\Gamma(2N+2-2n)2^{2n-2N-1}n!}{\Gamma(2N+2-n)\left|\Gamma(N+1-n+i\nu)\right|^2}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecPseudoJacobi} +xP_n(x;\nu,N)&=&P_{n+1}(x;\nu,N)+\frac{(N+1)\nu}{(n-N-1)(n-N)}P_n(x;\nu,N)\nonumber\\ +& &{}\mathindent{}-\frac{n(n-2N-2)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}\nonumber\\ +& &{}\mathindent\mathindent\times(n-N-1-i\nu)(n-N-1+i\nu)P_{n-1}(x;\nu,N). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecPseudoJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{(N+1)\nu}{(n-N-1)(n-N)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{n(n-2N-2)(n-N-1-i\nu)(n-N-1+i\nu)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}p_{n-1}(x), +\end{eqnarray} +where +$$P_n(x;\nu,N)=p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvPseudoJacobi} +(1+x^2)y''(x)+2\left(\nu-Nx\right)y'(x)-n(n-2N-1)y(x)=0, +\end{equation} +where +$$y(x)=P_n(x;\nu,N).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1PseudoJacobi} +\frac{d}{dx}P_n(x;\nu,N)=nP_{n-1}(x;\nu,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2PseudoJacobiI} +& &(1+x^2)\frac{d}{dx}P_n(x;\nu,N)+2\left[\nu-(N+1)x\right]P_n(x;\nu,N)\nonumber\\ +& &{}=(n-2N-2)P_{n+1}(x;\nu,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2PseudoJacobiII} +& &\frac{d}{dx}\left[(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_n(x;\nu,N)\right]\nonumber\\ +& &{}=(n-2N-2)(1+x^2)^{-N-2}\e^{2\nu\arctan x}P_{n+1}(x;\nu,N+1). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodPseudoJacobi} +P_n(x;\nu,N)=\frac{(1+x^2)^{N+1}\expe^{-2\nu\arctan x}}{(n-2N-1)_n} +\left(\frac{d}{dx}\right)^n\left[(1+x^2)^{n-N-1}\expe^{2\nu\arctan x}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{eqnarray} +\label{GenPseudoJacobi} +& &\left[\hyp{0}{1}{-}{-N+i\nu}{(x+i)t}\,\hyp{0}{1}{-}{-N-i\nu}{(x-i)t}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(n-2N-1)_n}{(-N+i\nu)_n(-N-i\nu)_nn!}P_n(x;\nu,N)t^n. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials follow from the continuous Hahn polynomials given by +(\ref{DefContHahn}) by the substitutions $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray*} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray*} + +\subsection*{Remarks} +Since we have for $k 0$ & +% $0 < c < 1$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMeixner} +(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ +& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMeixner} +xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ +\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), +\end{equation} +where +$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvMeixner} +n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), +\end{equation} +where +$$y(x)=M_n(x;\beta,c).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MeixnerI} +M_n(x+1;\beta,c)-M_n(x;\beta,c)= +\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MeixnerII} +\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2MeixnerI} +c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift2MeixnerII} +\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= +\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMeixner} +\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenMeixner1} +\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= +\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner2} +\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= +\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner3} +(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) +of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: +$$\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +To obtain the Meixner polynomials from the dual Hahn polynomials we have to take +$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of +the dual Hahn polynomials and let $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials +if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: +\begin{equation} +\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. +\end{equation} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials +if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). +\end{equation} + +\subsection*{Remarks} +The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) +in the following way: +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Meixner polynomials are also related to the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) in the following way: +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ +% RS: add begin\label{sec9.9} +In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) +is considered +for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take +$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). +\] +Then $P_n$ can be expressed as a Meixner polynomial: +\[ +P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, +M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). +\] + +In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' +which turn out to be special Meixner polynomials: +$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. +% +\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +% RS: add end +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, +\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, +\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, +\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, +\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Laguerre}\index{Laguerre polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefLaguerre} +L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLaguerre} +\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= +\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLaguerre} +(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLaguerre} +xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), +\end{equation} +where +$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLaguerre} +xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). +\end{equation} + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Laguerre} +\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2LaguerreI} +x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2LaguerreII} +\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLaguerre} +\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLaguerre1} +(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= +\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre2} +\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre3} +(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by +(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +$$\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) +if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: +$$\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition +(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain +the Laguerre polynomials: +$$\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre +polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be +written as: +$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ +In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. +Therefore they can be defined for all $\alpha$. + +\noindent +The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\noindent +The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\noindent +In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook +polynomials. +% RS: add begin\label{sec9.11} +% +\paragraph{\large\bf KLSadd: Special values}By (9.11.1) and the binomial formula: +\begin{equation} +K_n(0;p,N)=1,\qquad +K_n(N;p,N)=(1-p^{-1})^n. +\label{9} +\end{equation} +The self-duality (p.240, Remarks, first formula) +\begin{equation} +K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) +\label{147} +\end{equation} +combined with \eqref{9} yields: +\begin{equation} +K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). +\label{148} +\end{equation} +% +\paragraph{\large\bf KLSadd: Symmetry}By the orthogonality relation (9.11.2): +\begin{equation} +\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). +\label{10} +\end{equation} +By \eqref{10} and \eqref{147} we have also +\begin{equation} +\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) +\qquad(n,x\in\{0,1,\ldots,N\}), +\label{149} +\end{equation} +and, by \eqref{149}, \eqref{10} and \eqref{9}, +\begin{equation} +K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) +\qquad(n,x\in\{0,1,\ldots,N\}). +\label{150} +\end{equation} +A particular case of \eqref{10} is: +\begin{equation} +K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). +\label{11} +\end{equation} +Hence +\begin{equation} +K_{2m+1}(N;\thalf,2N)=0. +\label{12} +\end{equation} +From (9.11.11): +\begin{equation} +K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. +\label{13} +\end{equation} +% +\paragraph{\large\bf KLSadd: Quadratic transformations}\begin{align} +K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, +R_m(x^2;-\thalf,-\thalf,N), +\label{31}\\ +K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, +x\,R_m(x^2-1;\thalf,\thalf,N-1), +\label{33}\\ +K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, +R_m(x(x+1);-\thalf,\thalf,N), +\label{32}\\ +K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, +(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), +\label{34} +\end{align} +where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use +(9.6.2), (9.11.2), (9.6.4) and (9.11.4). +% +\paragraph{\large\bf KLSadd: Generating functions}\begin{multline} +\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ +=\left(\frac{p-z+pz}p\right)^m +\left(\frac{q-z+qz}q\right)^n +(1+z)^{N-m-n} +K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). +\label{107} +\end{multline} +This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back +to Meixner \cite{K9}. +% +% RS: add end +\subsection*{References} +\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, +\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, +\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, +\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, +\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, +\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, +\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, +\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, +\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, +\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, +\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, +\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, +\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, +\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, +\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, +\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, +\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, +\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, +\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. + + +\section{Bessel}\index{Bessel polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefBessel} +y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ +&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, +\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBessel} +& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ +& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBessel} +& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ +& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ +& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecBessel} +xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), +\end{eqnarray} +where +$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvBessel} +x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Bessel} +\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2BesselI} +x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) +\end{equation} +or equivalently +\begin{equation} +\label{shift2BesselII} +\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodBessel} +y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenBessel} +\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a +\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. +\end{equation} + +\subsection*{Limit relation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials +and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: +$$\lim_{\alpha\rightarrow -\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ + +\subsection*{Remarks} +The following notations are also used for the Bessel polynomials: +$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ +However, the Bessel polynomials essentially depend on only one parameter. + +\noindent +The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi +polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the +pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: +$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, +\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, +\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. + + +\section{Charlier}\index{Charlier polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefCharlier} +C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtCharlier} +\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= +a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecCharlier} +-xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecCharlier} +xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), +\end{equation} +where +$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvCharlier} +-ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1CharlierI} +C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift1CharlierII} +\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2CharlierI} +C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift2CharlierII} +\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodCharlier} +\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenCharlier} +\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials +and let $\beta\rightarrow\infty$ we find the Charlier polynomials: +$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials can be found from the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials +if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). +\end{equation} + +\subsection*{Remark} +The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ +% RS: add begin\label{sec9.12} +\paragraph{\large\bf KLSadd: Notation}Here the Laguerre polynomial is denoted by $L_n^\al$ instead of +$L_n^{(\al)}$. +% +\paragraph{\large\bf KLSadd: Hypergeometric representation}\begin{align} +L_n^\al(x)&= +\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x +\label{182}\\ +&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} +\label{183}\\ +&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), +\label{184} +\end{align} +where $C_n$ in \eqref{184} is a +\hyperref[sec9.14]{Charlier polynomial}. +Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal +of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. +It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially +\myciteKLS{416}{(2.7.10)}. +% +\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{\large\bf KLSadd: Special value}\begin{equation} +L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. +\label{53} +\end{equation} +Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. +% +\paragraph{\large\bf KLSadd: Quadratic transformations}\begin{align} +H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), +\label{54}\\ +H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). +\label{55} +\end{align} +See p.244, Remarks, last two formulas. +Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. +% +\paragraph{\large\bf KLSadd: Fourier transform}\begin{equation} +\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, +e^{-y}\,y^\al\,e^{ixy}\,dy= +i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, +\label{14} +\end{equation} +see \mycite{DLMF}{(18.17.34)}. +% +\paragraph{\large\bf KLSadd: Differentiation formulas}Each differentiation formula is given in two equivalent forms. +\begin{equation} +\frac d{dx}\left(x^\al L_n^\al(x)\right)= +(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad +\left(x\frac d{dx}+\al\right)L_n^\al(x)= +(n+\al)\,L_n^{\al-1}(x). +\label{76} +\end{equation} +% +\begin{equation} +\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= +-e^{-x} L_n^{\al+1}(x),\qquad +\left(\frac d{dx}-1\right)L_n^\al(x)= +-L_n^{\al+1}(x). +\label{77} +\end{equation} +% +Formulas \eqref{76} and \eqref{77} follow from +\mycite{DLMF}{(13.3.18), (13.3.20)} +together with (9.12.1). +% +\paragraph{\large\bf KLSadd: Generalized Hermite polynomials}See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. +These are defined by +\begin{equation} +H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). +\label{78} +\end{equation} +Then for $\mu>-\thalf$ we have orthogonality relation +\begin{equation} +\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx +=0\qquad(m\ne n). +\label{79} +\end{equation} +Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. +If we choose the constants in \eqref{78} as +\begin{equation} +H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, + x\,L_m^{\mu+\half}(x^2) + \label{80} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_\mu H_n^\mu=2n\,H_{n-1}^\mu. +\label{81} +\end{equation} +Formula \eqref{81} with \eqref{80} substituted gives rise to two +differentiation formulas involving Laguerre polynomials which are equivalent to +(9.12.6) and \eqref{76}. + +Composition of \eqref{81} with itself gives +\[ +T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, +\] +which is equivalent to the composition of (9.12.6) and \eqref{76}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) +=-4(n+\al)\,L_{n-1}^\al(x^2). +\label{82} +\end{equation} +% +% RS: add end +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, +\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, +\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, +\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, +\cite{Zeng90}. + + +\section{Hermite}\index{Hermite polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefHermite} +H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtHermite} +\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx +=2^nn!\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHermite} +H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHermite} +xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), +\end{equation} +where +$$H_n(x)=2^np_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvHermite} +y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Hermite} +\frac{d}{dx}H_n(x)=2nH_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2HermiteI} +\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2HermiteII} +\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodHermite} +\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenHermite1} +\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenHermite2} +\left\{\begin{array}{l} +\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] +\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite3} +\left\{\begin{array}{l} +\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] +\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite4} +\left\{\begin{array}{l} +\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= +\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] +\displaystyle\frac{xt}{\sqrt{1+t^2}}\, +\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} +=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} +\end{array}\right. +\end{equation} +with $\gamma$ arbitrary. + +\begin{equation} +\label{GenHermite5} +\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) +=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, +\end{equation} +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and +then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: +$$\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by +taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by +(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials can be obtained from the Laguerre polynomials given by +(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) +of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite +polynomials. In fact we have +$$\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ + +\subsection*{Remarks} +The Hermite polynomials can also be written as: +$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} +\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\noindent +The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ +% RS: add begin\label{sec9.14} +% +\paragraph{\large\bf KLSadd: Hypergeometric representation}\begin{align} +C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} +\label{179}\\ +&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a +\label{180}\\ +&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), +\label{181} +\end{align} +where $L_n^\al(x)$ is a +\hyperref[sec9.12]{Laguerre polynomial}. +Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal +of the summation. Finally \eqref{181} follows by \eqref{180} and +(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it +was earlier given in \myciteKLS{416}{(2.7.10)}. +% +\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +% RS: add end +\subsection*{References} +\label{sec9.15} +% +\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{\large\bf KLSadd: Fourier transforms}\begin{equation} +\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= +i^n\,H_n(x)\,e^{-\half x^2}, +\label{15} +\end{equation} +see \mycite{AAR}{(6.1.15) and Exercise 6.11}. +\begin{equation} +\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= +i^n\,x^n\,e^{-\frac14 x^2}, +\label{16} +\end{equation} +see \mycite{DLMF}{(18.17.35)}. +\begin{equation} +\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= +H_n(x)\,e^{-x^2}, +\label{17} +\end{equation} +see \mycite{AAR}{(6.1.4)}. +% +\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, +\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, +\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, +\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, +\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, +\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, +\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, +\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, +\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, +\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, +\cite{Weisner59}, \cite{Wyman}. + +\end{document} diff --git a/KLSadd_insertion/newtempchap14.tex b/KLSadd_insertion/newtempchap14.tex new file mode 100644 index 0000000..880a78e --- /dev/null +++ b/KLSadd_insertion/newtempchap14.tex @@ -0,0 +1,6695 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\usepackage[pdftex]{hyperref} +\usepackage {xparse} +\usepackage{cite} +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\newcommand\sa{\smallskipamount} +\newcommand\sLP{\\[\sa]} +\newcommand\sPP{\\[\sa]\indent} +\newcommand\ba{\bigskipamount} +\newcommand\bLP{\\[\ba]} +\newcommand\CC{\mathbb{C}} +\newcommand\RR{\mathbb{R}} +\newcommand\ZZ{\mathbb{Z}} +\newcommand\al\alpha +\newcommand\be\beta +\newcommand\ga\gamma +\newcommand\de\delta +\newcommand\tha\theta +\newcommand\la\lambda +\newcommand\om\omega +\newcommand\Ga{\Gamma} +\newcommand\half{\frac12} +\newcommand\thalf{\tfrac12} +\newcommand\iy\infty +\newcommand\wt{\widetilde} +\newcommand\const{{\rm const.}\,} +\newcommand\Zpos{\ZZ_{>0}} +\newcommand\Znonneg{\ZZ_{\ge0}} +\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} +\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} +\newcommand\LHS{left-hand side} +\newcommand\RHS{right-hand side} +\renewcommand\Re{{\rm Re}\,} +\renewcommand\Im{{\rm Im}\,} + +\NewDocumentCommand\mycite{m g}{% + \IfNoValueTF{#2} + {[\hyperlink{#1}{#1}]} + {[\hyperlink{#1}{#1}, #2]}% +} +\newcommand\mybibitem[1]{\bibitem[#1]{#1}\hypertarget{#1}{}} +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\pagenumbering{roman} +\addtocounter{chapter}{13} + +\chapter{Basic hypergeometric orthogonal polynomials} +\label{BasicHyperOrtPol} + + +In this chapter we deal with all families of basic hypergeometric orthogonal polynomials +appearing in the $q$-analogue of the Askey scheme on the pages~\pageref{qscheme1} and +\pageref{qscheme2}. For each family of orthogonal polynomials we state the most important +properties such as a representation as a basic hypergeometric function, orthogonality +relation(s), the three-term recurrence relation, the second-order $q$-difference equation, +the forward shift (or degree lowering) and backward shift (or degree raising) operator, a +Rodrigues-type formula and some generating functions. Throughout this chapter we assume +that $01$ and $b,c,d$ are real or one is real and the other two are complex conjugates,\\ +$\max(|b|,|c|,|d|)<1$ and the pairwise products of $a,b,c$ and $d$ have +absolute value less than $1$, then we have another orthogonality relation +given by: +\begin{eqnarray} +\label{OrtAskeyWilsonII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c,d|q)p_n(x;a,b,c,d|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 11$ and $b$ and $c$ are real or complex conjugates, +$\max(|b|,|c|)<1$ and the pairwise products of $a,b$ and $c$ have +absolute value less than $1$, then we have another orthogonality relation +given by: +\begin{eqnarray} +\label{OrtContDualqHahnII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c|q)p_n(x;a,b,c|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10$) in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we +obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): +\begin{equation} +\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). +\end{equation} + +\subsubsection*{Big $q$-Jacobi $\rightarrow$ Jacobi} +If we set $c=0$, $a=q^{\alpha}$ and $b=q^{\beta}$ in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and let $q\rightarrow 1$ we find the Jacobi +polynomials given by (\ref{DefJacobi}): +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},0;q)=\frac{P_n^{(\alpha,\beta)}(2x-1)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} +If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we +find +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},-q^{\gamma};q)=\frac{P_n^{(\alpha,\beta)}(x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsection*{Remarks} +The big $q$-Jacobi polynomials with $c=0$ and the little +$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related +in the following way: +$$P_n(x;a,b,0;q)=\frac{(bq;q)_n}{(aq;q)_n}(-1)^na^nq^{n+\binom{n}{2}}p_n(a^{-1}q^{-1}x;b,a|q).$$ + +\noindent +Sometimes the big $q$-Jacobi polynomials are defined in terms of four +parameters instead of three. In fact the polynomials given by the definition +$$P_n(x;a,b,c,d;q)=\qhyp{3}{2}{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}$$ +are orthogonal on the interval $[-d,c]$ with respect to the weight function +$$\frac{(c^{-1}qx,-d^{-1}qx;q)_{\infty}}{(ac^{-1}qx,-bd^{-1}qx;q)_{\infty}}d_qx.$$ +These polynomials are not really different from those given by +(\ref{DefBigqJacobi}) since we have +$$P_n(x;a,b,c,d;q)=P_n(ac^{-1}qx;a,b,-ac^{-1}d;q)$$ +and +$$P_n(x;a,b,c;q)=P_n(x;a,b,aq,-cq;q).$$ + RS: add begin\label{sec14.4} +The continuous $q$-Hahn polynomials are the special case +of Askey-Wilson polynomials with parameters +$a e^{i\phi},b e^{i\phi},a e^{-i\phi},b e^{-i\phi}$: +\[ +p_n(x;a,b,\phi\,|\, q):= +p_n(x;a e^{i\phi},b e^{i\phi},a e^{-i\phi},b e^{-i\phi}\,|\, q). +\] +In \myciteKLS{72}{(4.29)} and \mycite{GR}{(7.5.43)} +(who write $p_n(x;a,b\,|\,q)$, $x=\cos(\tha+\phi)$) +and in \mycite{KLS}{\S14.4} (who writes $p_n(x;a,b,c,d;q)$, +$x=\cos(\tha+\phi)$) +the parameter +dependence on $\phi$ is incorrectly omitted. + +Since all formulas in \S14.4 are specializations of formulas in \S14.1, +there is no real need to give these specializations explicitly. +In particular, the limit (14.4.15) is in fact a limit from Askey-Wilson to +continuous $q$-Hahn. See also \eqref{177}. +% + +\subsection*{References} +\cite{NAlSalam89}, \cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{AtakKlimyk2004}, +\cite{AtakRahmanSuslov}, \cite{DattaGriffin}, \cite{FloreaniniVinetII}, +\cite{GasperRahman90}, \cite{GrunbaumHaine96}, \cite{Gupta92}, \cite{Hahn}, +\cite{Ismail86I}, \cite{IsmailStanton97}, \cite{IsmailWilson}, \cite{KalninsMiller88}, +\cite{KoelinkE}, \cite{Koorn90II}, \cite{Koorn93}, \cite{Koorn2007}, \cite{Miller89}, +\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{NoumiMimachi90III}, +\cite{NoumiMimachi91}, \cite{Spiridonov97}, \cite{SrivastavaJain90}. + + +\section*{Special case} + +\subsection{Big $q$-Legendre} +\index{Big q-Legendre polynomials@Big $q$-Legendre polynomials} +\index{q-Legendre polynomials@$q$-Legendre polynomials!Big} +\par + +\subsection*{Basic hypergeometric representation} The big $q$-Legendre polynomials are big $q$-Jacobi polynomials +with $a=b=1$: +\begin{equation} +\label{DefBigqLegendre} +P_n(x;c;q)=\qhyp{3}{2}{q^{-n},q^{n+1},x}{q,cq}{q}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBigqLegendre} +& &\int_{cq}^{q}P_m(x;c;q)P_n(x;c;q)\,d_qx\nonumber\\ +& &{}=q(1-c)\frac{(1-q)}{(1-q^{2n+1})} +\frac{(c^{-1}q;q)_n}{(cq;q)_n}(-cq^2)^nq^{\binom{n}{2}}\,\delta_{mn},\quad c<0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBigqLegendre} +(x-1)P_n(x;c;q)&=&A_nP_{n+1}(x;c;q)-\left(A_n+C_n\right)P_n(x;c;q)\nonumber\\ +& &{}\mathindent{}+C_nP_{n-1}(x;c;q), +\end{eqnarray} +where +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n+1})(1-cq^{n+1})}{(1+q^{n+1})(1-q^{2n+1})}\\ +\\ +\displaystyle C_n=-cq^{n+1}\frac{(1-q^n)(1-c^{-1}q^n)}{(1+q^n)(1-q^{2n+1})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecBigqLegendre} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$P_n(x;c;q)=\frac{(q^{n+1};q)_n}{(q,cq;q)_n}p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvBigqLegendre} +& &q^{-n}(1-q^n)(1-q^{n+1})x^2y(x)\nonumber\\ +& &{}=B(x)y(qx)-\left[B(x)+D(x)\right]y(x)+D(x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=P_n(x;c;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=q(x-1)(x-c)\\ +\\ +\displaystyle D(x)=(x-q)(x-cq).\end{array}\right.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodBigqLegendre} +P_n(x;c;q)&=&\frac{c^nq^{n(n+1)}(1-q)^n}{(q,cq;q)_n} +\left(\mathcal{D}_q\right)^n\left[(q^{-n}x,c^{-1}q^{-n}x;q)_n\right]\\ +&=&\frac{(1-q)^n}{(q,cq;q)_n}\left(\mathcal{D}_q\right)^n +\left[(qx^{-1},cqx^{-1};q)_nx^{2n}\right].\nonumber +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenBigqLegendre1} +\qhyp{2}{1}{qx^{-1},0}{q}{xt}\,\qhyp{1}{1}{c^{-1}x}{q}{cqt} +=\sum_{n=0}^{\infty}\frac{(cq;q)_n}{(q,q;q)_n}P_n(x;c;q)t^n. +\end{equation} + +\begin{equation} +\label{GenBigqLegendre2} +\qhyp{2}{1}{cqx^{-1},0}{cq}{xt}\,\qhyp{1}{1}{c^{-1}x}{c^{-1}q}{qt} +=\sum_{n=0}^{\infty}\frac{P_n(x;c;q)}{(c^{-1}q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Legendre $\rightarrow$ Legendre / Spherical} +If we set $c=0$ in the definition (\ref{DefBigqLegendre}) of the big +$q$-Legendre polynomials and let $q\rightarrow 1$ we simply obtain the Legendre +(or spherical) polynomials given by (\ref{DefLegendre}): +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;0;q)=P_n(2x-1). +\end{equation} +If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we +find +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;-q^{\gamma};q)=P_n(x). +\end{equation} + +\subsection*{References} +\cite{Koelink95I}, \cite{Koorn90II}. + + +\section{$q$-Hahn}\index{q-Hahn polynomials@$q$-Hahn polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefqHahn} +Q_n(q^{-x};\alpha,\beta,N|q)=\qhyp{3}{2}{q^{-n},\alpha\beta q^{n+1},q^{-x}} +{\alpha q,q^{-N}}{q},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +For $0<\alpha q<1$ and $0<\beta q<1$, or for $\alpha>q^{-N}$ and $\beta>q^{-N}$, we have +\begin{eqnarray} +\label{OrtqHahn} +& &\sum_{x=0}^N\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta q)^{-x} +Q_m(q^{-x};\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=\frac{(\alpha\beta q^2;q)_N}{(\beta q;q)_N(\alpha q)^N} +\frac{(q,\alpha\beta q^{N+2},\beta q;q)_n}{(\alpha q,\alpha\beta q,q^{-N};q)_n}\, +\frac{(1-\alpha\beta q)(-\alpha q)^n}{(1-\alpha\beta q^{2n+1})} +q^{\binom{n}{2}-Nn}\,\delta_{mn}. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqHahn} +-\left(1-q^{-x}\right)Q_n(q^{-x})&=&A_nQ_{n+1}(q^{-x})-\left(A_n+C_n\right)Q_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+C_nQ_{n-1}(q^{-x}), +\end{eqnarray} +where +$$Q_n(q^{-x}):=Q_n(q^{-x};\alpha,\beta,N|q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n-N})(1-\alpha q^{n+1})(1-\alpha\beta q^{n+1})}{(1-\alpha\beta q^{2n+1})(1-\alpha\beta q^{2n+2})}\\ +\\ +\displaystyle C_n=-\frac{\alpha q^{n-N}(1-q^n)(1-\alpha\beta q^{n+N+1})(1-\beta q^n)}{(1-\alpha\beta q^{2n})(1-\alpha\beta q^{2n+1})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqHahn} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(q^{-x};\alpha,\beta,N|q)= +\frac{(\alpha\beta q^{n+1};q)_n}{(\alpha q,q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqHahn} +& &q^{-n}(1-q^n)(1-\alpha\beta q^{n+1})y(x)\nonumber\\ +& &{}=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{eqnarray} +where +$$y(x)=Q_n(q^{-x};\alpha,\beta,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=(1-q^{x-N})(1-\alpha q^{x+1})\\ +\\ +\displaystyle D(x)=\alpha q(1-q^x)(\beta-q^{x-N-1}).\end{array}\right.$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qHahnI} +& &Q_n(q^{-x-1};\alpha,\beta,N|q)-Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-\alpha q)(1-q^{-N})} +Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1qHahnII} +\frac{\Delta Q_n(q^{-x};\alpha,\beta,N|q)}{\Delta q^{-x}} +&=&\frac{q^{-n+1}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-q)(1-\alpha q)(1-q^{-N})}\nonumber\\ +& &{}\mathindent{}\times Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q). +\end{eqnarray} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qHahnI} +& &(1-\alpha q^x)(1-q^{x-N-1})Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}\mathindent{}-\alpha(1-q^x)(\beta-q^{x-N-1})Q_n(q^{-x+1};\alpha,\beta,N|q)\nonumber\\ +& &{}=q^x(1-\alpha)(1-q^{-N-1})Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qHahnII} +& &\frac{\nabla\left[w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;\alpha q^{-1},\beta q^{-1},N+1|q)Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q), +\end{eqnarray} +where +$$w(x;\alpha,\beta,N|q)=\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta)^{-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodqHahn} +& &w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=(1-q)^n\left(\nabla_q\right)^n\left[w(x;\alpha q^n,\beta q^n,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenqHahn1} +& &\qhyp{1}{1}{q^{-x}}{\alpha q}{\alpha qt}\,\qhyp{2}{1}{q^{x-N},0}{\beta q}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(\beta q,q;q)_n}Q_n(q^{-x};\alpha,\beta,N|q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenqHahn2} +& &\qhyp{2}{1}{q^{-x},\beta q^{N+1-x}}{0}{-\alpha q^{x-N+1}t}\, +\qhyp{2}{0}{q^{x-N},\alpha q^{x+1}}{-}{-q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha q,q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}Q_n(q^{-x};\alpha,\beta,N|q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ $q$-Hahn} +The $q$-Hahn polynomials follow from the $q$-Racah polynomials by the substitution +$\delta=0$ and $\gamma q=q^{-N}$ in the definition (\ref{DefqRacah}) of the +$q$-Racah polynomials: +$$R_n(\mu(x);\alpha,\beta,q^{-N-1},0|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ +Another way to obtain the $q$-Hahn polynomials from the $q$-Racah +polynomials is by setting $\gamma=0$ and $\delta=\beta^{-1}q^{-N-1}$ in the definition +(\ref{DefqRacah}): +$$R_n(\mu(x);\alpha,\beta,0,\beta^{-1}q^{-N-1}|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ +And if we take $\alpha q=q^{-N}$, $\beta\rightarrow\beta\gamma q^{N+1}$ and $\delta=0$ in the +definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the +$q$-Hahn polynomials given by (\ref{DefqHahn}) in the following way: +$$R_n(\mu(x);q^{-N-1},\beta\gamma q^{N+1},\gamma,0|q)=Q_n(q^{-x};\gamma,\beta,N|q).$$ +Note that $\mu(x)=q^{-x}$ in each case. + +\subsubsection*{$q$-Hahn $\rightarrow$ Little $q$-Jacobi} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqHahn}) of the $q$-Hahn +polynomials and take the limit $N\rightarrow\infty$ we find the little $q$-Jacobi polynomials: +\begin{equation} +\lim _{N\rightarrow\infty} Q_n(q^{x-N};\alpha,\beta,N|q)=p_n(q^x;\alpha,\beta|q), +\end{equation} +where $p_n(q^x;\alpha,\beta|q)$ is given by (\ref{DefLittleqJacobi}). + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials +by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the +$q$-Hahn polynomials and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} +The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of +the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: +\begin{equation} +\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} +If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials +and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by +(\ref{DefqKrawtchouk}): +\begin{equation} +\lim_{\alpha\rightarrow 0} +Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} +The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +can be obtained from the $q$-Hahn polynomials by the substitution $\alpha=p$ and +$\beta=0$ in (\ref{DefqHahn}): +\begin{equation} +Q_n(q^{-x};p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Hahn} +The Hahn polynomials given by (\ref{DefHahn}) simply follow from the $q$-Hahn +polynomials given by (\ref{DefqHahn}), after setting $\alpha\rightarrow q^{\alpha}$ +and $\beta\rightarrow q^{\beta}$, in the following way: +\begin{equation} +\lim_{q\rightarrow 1}Q_n(q^{-x};q^{\alpha},q^{\beta},N|q)=Q_n(x;\alpha,\beta,N). +\end{equation} + +\subsection*{Remark} +The $q$-Hahn polynomials given by (\ref{DefqHahn}) and the dual $q$-Hahn +polynomials given by (\ref{DefDualqHahn}) are related in the following way: +$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ +with +$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ +or +$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ +where +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlvarezRonveaux}, \cite{AndrewsAskey85}, +\cite{AskeyWilson79}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, +\cite{Dunkl78II}, \cite{Fischer95}, \cite{GasperRahman84}, +\cite{GasperRahman90}, \cite{Hahn}, \cite{KalninsMiller88}, +\cite{Koelink96I}, \cite{KoelinkKoorn}, \cite{Koorn89III}, \cite{Koorn90II}, +\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{Rahman82}, +\cite{Stanton80II}, \cite{Stanton84}, \cite{Stanton90}. + + +\section{Dual $q$-Hahn}\index{Dual q-Hahn polynomials@Dual $q$-Hahn polynomials} +\index{q-Hahn polynomials@$q$-Hahn polynomials!Dual} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefDualqHahn} +R_n(\mu(x);\gamma,\delta,N|q)= +\qhyp{3}{2}{q^{-n},q^{-x},\gamma\delta q^{x+1}}{\gamma q,q^{-N}}{q},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\mu(x):=q^{-x}+\gamma\delta q^{x+1}.$$ + +\newpage + +\subsection*{Orthogonality relation} +For $0<\gamma q<1$ and $0<\delta q<1$, or for $\gamma>q^{-N}$ and $\delta>q^{-N}$, we have +\begin{eqnarray} +\label{OrtDualqHahn} +& &\sum_{x=0}^N\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x}{(q,\gamma\delta q^{N+2},\delta q;q)_x} +\frac{(1-\gamma\delta q^{2x+1})}{(1-\gamma\delta q)(-\gamma q)^x}q^{Nx-\binom{x}{2}}\nonumber\\ +& &{}\mathindent{}\times R_m(\mu(x);\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=\frac{(\gamma\delta q^2;q)_N}{(\delta q;q)_N}(\gamma q)^{-N} +\frac{(q,\delta^{-1}q^{-N};q)_n}{(\gamma q,q^{-N};q)_n}(\gamma\delta q)^n\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecDualqHahn} +& &-\left(1-q^{-x}\right)\left(1-\gamma\delta q^{x+1}\right)R_n(\mu(x))\nonumber\\ +& &{}=A_nR_{n+1}(\mu(x))-\left(A_n+C_n\right)R_n(\mu(x))+C_nR_{n-1}(\mu(x)), +\end{eqnarray} +where +$$R_n(\mu(x)):=R_n(\mu(x);\gamma,\delta,N|q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\left(1-q^{n-N}\right)\left(1-\gamma q^{n+1}\right)\\ +\\ +\displaystyle C_n=\gamma q\left(1-q^n\right)\left(\delta -q^{n-N-1}\right). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecDualqHahn} +xp_n(x)&=&p_{n+1}(x)+\left[1+\gamma\delta q-(A_n+C_n)\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+\gamma q(1-q^n)(1-\gamma q^n)\nonumber\\ +& &{}\mathindent\mathindent{}\times(1-q^{n-N-1})(\delta-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$R_n(\mu(x);\gamma,\delta,N|q)=\frac{1}{(\gamma q,q^{-N};q)_n}p_n(\mu(x)).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDualqHahn} +q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x) ++D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\mu(x);\gamma,\delta,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-\gamma q^{x+1})(1-\gamma\delta q^{x+1})} +{(1-\gamma\delta q^{2x+1})(1-\gamma\delta q^{2x+2})}\\ +\\ +\displaystyle D(x)=-\frac{\gamma q^{x-N}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)} +{(1-\gamma\delta q^{2x})(1-\gamma\delta q^{2x+1})}.\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualqHahnI} +& &R_n(\mu(x+1);\gamma,\delta,N|q)-R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-\gamma\delta q^{2x+2})}{(1-\gamma q)(1-q^{-N})} +R_{n-1}(\mu(x);\gamma q,\delta,N-1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1DualqHahnII} +& &\frac{\Delta R_n(\mu(x);\gamma,\delta,N|q)}{\Delta\mu(x)}\nonumber\\ +& &{}=\frac{q^{-n+1}(1-q^n)}{(1-q)(1-\gamma q)(1-q^{-N})}R_{n-1}(\mu(x);\gamma q,\delta,N-1|q). +\end{eqnarray} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualqHahnI} +& &(1-\gamma q^x)(1-\gamma\delta q^x)(1-q^{x-N-1})R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}\mathindent{}+\gamma q^{x-N-1}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)R_n(\mu(x-1);\gamma,\delta,N|q)\nonumber\\ +& &{}=q^x(1-\gamma)(1-q^{-N-1})(1-\gamma\delta q^{2x})R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualqHahnII} +& &\frac{\nabla\left[w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\right]}{\nabla\mu(x)}\nonumber\\ +& &{}=\frac{1}{(1-q)(1-\gamma\delta)}w(x;\gamma q^{-1},\delta,N+1|q)\nonumber\\ +& &{}\mathindent{}\times R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q), +\end{eqnarray} +where +$$w(x;\gamma,\delta,N|q)=\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x} +{(q,\gamma\delta q^{N+2},\delta q;q)_x}(-\gamma^{-1})^x q^{Nx-\binom{x}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodDualqHahn} +& &w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=(1-q)^n(\gamma\delta q;q)_n +\left(\nabla_{\mu}\right)^n\left[w(x;\gamma q^n,\delta,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_{\mu}:=\frac{\nabla}{\nabla\mu(x)}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenDualqHahn1} +& &(q^{-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},\delta^{-1}q^{-x}}{\gamma q}{\gamma\delta q^{x+1}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenDualqHahn2} +& &(\gamma\delta qt;q)_x\cdot\qhyp{2}{1}{q^{x-N},\gamma q^{x+1}}{\delta^{-1}q^{-N}}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N +\frac{(q^{-N},\gamma q;q)_n}{(\delta^{-1}q^{-N},q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Hahn} +To obtain the dual $q$-Hahn polynomials from the $q$-Racah polynomials we have to +take $\beta=0$ and $\alpha q=q^{-N}$ in (\ref{DefqRacah}): +$$R_n(\mu(x);q^{-N-1},0,\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q),$$ +with +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ +We may also take $\alpha=0$ and $\beta=\delta^{-1}q^{-N-1}$ in (\ref{DefqRacah}) to obtain +the dual $q$-Hahn polynomials from the $q$-Racah polynomials: +$$R_n(\mu(x);0,\delta^{-1}q^{-N-1},\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q).$$ +And if we take $\gamma q=q^{-N}$, $\delta\rightarrow\alpha\delta q^{N+1}$ and $\beta=0$ in the +definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the dual +$q$-Hahn polynomials given by (\ref{DefDualqHahn}) in the following way: +$$R_n(\mu(x);\alpha,0,q^{-N-1},\alpha\delta q^{N+1}|q)=R_n({\tilde \mu}(x);\alpha,\delta,N|q),$$ +with +$${\tilde \mu}(x)=q^{-x}+\alpha\delta q^{x+1}.$$ + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} +The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +can be obtained from the dual $q$-Hahn polynomials by the substitution $\gamma=p$ +and $\delta=0$ in (\ref{DefDualqHahn}): +\begin{equation} +R_n(\mu(x);p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). +\end{equation} +Note that $\mu(x)=q^{-x}$ in this case. + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} +The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can +be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ +in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: +\begin{equation} +\lim_{\gamma\rightarrow 0} +R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q). +\end{equation} + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual Hahn} +The dual Hahn polynomials given by (\ref{DefDualHahn}) follow from the dual $q$-Hahn +polynomials by simply taking the limit $q\rightarrow 1$ in the definition (\ref{DefDualqHahn}) +of the dual $q$-Hahn polynomials after applying the substitution +$\gamma\rightarrow q^{\gamma}$ and $\delta\rightarrow q^{\delta}$: +\begin{equation} +\lim_{q\rightarrow 1}R_n(\mu(x);q^{\gamma},q^{\delta},N|q)=R_n(\lambda(x);\gamma,\delta,N), +\end{equation} +where +$$\left\{\begin{array}{l} +\displaystyle\mu(x)=q^{-x}+q^{x+\gamma+\delta+1}\\[5mm] +\displaystyle\lambda(x)=x(x+\gamma+\delta+1). +\end{array}\right.$$ + +\subsection*{Remark} +The dual $q$-Hahn polynomials given by (\ref{DefDualqHahn}) and the +$q$-Hahn polynomials given by (\ref{DefqHahn}) are related in the following way: +$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ +with +$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ +or +$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ +where +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ + RS: add begin\label{sec14.5} +% +\paragraph{\large\bf KLSadd: Different notation}See p.442, Remarks: +\begin{equation} +P_n(x;a,b,c,d;q):=P_n(qac^{-1}x;a,b,-ac^{-1}d;q) +=\qhyp32{q^{-n},q^{n+1}ab,qac^{-1}x}{qa,-qac^{-1}d}{q,q}. +\label{123} +\end{equation} +Furthermore, +\begin{equation} +P_n(x;a,b,c,d;q)=P_n(\la x;a,b,\la c,\la d;q), +\label{141} +\end{equation} +\begin{equation} +P_n(x;a,b,c;q)=P_n(-q^{-1}c^{-1}x;a,b,-ac^{-1},1;q) +\label{142} +\end{equation} +% +\paragraph{\large\bf KLSadd: Orthogonality relation}(equivalent to (14.5.2), see also \cite[(2.42), (2.41), (2.36), (2.35)]{K17}). +Let $c,d>0$ and either $a\in (-c/(qd),1/q)$, $b\in(-d/(cq),1/q)$ or +$a/c=-\overline b/d\notin\RR$. Then +\begin{equation} +\int_{-d}^c P_m(x;a,b,c,d;q) P_n(x;a,b,c,d;q)\, +\frac{(qx/c,-qx/d;q)_\iy}{(qax/c,-qbx/d;q)_\iy}\,d_qx=h_n\,\de_{m,n}\,, +\label{124} +\end{equation} +where +\begin{equation} +\frac{h_n}{h_0}=q^{\half n(n-1)}\left(\frac{q^2a^2d}c\right)^n\, +\frac{1-qab}{1-q^{2n+1}ab}\, +\frac{(q,qb,-qbc/d;q)_n}{(qa,qab,-qad/c;q)_n} +\label{125} +\end{equation} +and +\begin{equation} +h_0=(1-q)c\,\frac{(q,-d/c,-qc/d,q^2ab;q)_\iy} +{(qa,qb,-qbc/d,-qad/c;q)_\iy}\,. +\label{126} +\end{equation} +% +\paragraph{\large\bf KLSadd: Other hypergeometric representation and asymptotics}\begin{align} +&P_n(x;a,b,c,d;q) +=\frac{(-qbd^{-1}x;q)_n}{(-q^{-n}a^{-1}cd^{-1};q)_n}\, +\qhyp32{q^{-n},q^{-n}b^{-1},cx^{-1}}{qa,-q^{-n}b^{-1}dx^{-1}}{q,q} +\label{138}\\ +&\qquad=(qac^{-1}x)^n\,\frac{(qb,cx^{-1};q)_n}{(qa,-qac^{-1}d;q)_n}\, +\qhyp32{q^{-n},q^{-n}a^{-1},-qbd^{-1}x}{qb,q^{1-n}c^{-1}x} +{q,-q^{n+1}ac^{-1}d} +\label{132}\\ +&\qquad=(qac^{-1}x)^n\,\frac{(qb,q;q)_n}{(-qac^{-1}d;q)_n}\, +\sum_{k=0}^n\frac{(cx^{-1};q)_{n-k}}{(q,qa;q)_{n-k}}\, +\frac{(-qbd^{-1}x;q)_k}{(qb,q;q)_k}\,(-1)^k q^{\half k(k-1)}(-dx^{-1})^k. +\label{133} +\end{align} +Formula \eqref{138} follows from \eqref{123} by +\mycite{GR}{(III.11)} and next \eqref{132} follows by series inversion +\mycite{GR}{Exercise 1.4(ii)}. +Formulas \eqref{138} and \eqref{133} are also given in +\mycite{Ism}{(18.4.28), (18.4.29)}. +It follows from \eqref{132} or \eqref{133} that +(see \myciteKLS{298}{(1.17)} or \mycite{Ism}{(18.4.31)}) +\begin{equation} +\lim_{n\to\iy}(qac^{-1}x)^{-n} P_n(x;a,b,c,d;q) +=\frac{(cx^{-1},-dx^{-1};q)_\iy}{(-qac^{-1}d,qa;q)_\iy}\,, +\label{134} +\end{equation} +uniformly for $x$ in compact subsets of $\CC\backslash\{0\}$. +(Exclusion of the spectral points $x=cq^m,dq^m$ ($m=0,1,2,\ldots$), +as was done in \myciteKLS{298} and \mycite{Ism}, is not necessary. However, +while \eqref{134} yields 0 at these points, a more refined asymptotics +at these points is given in \myciteKLS{298} and \mycite{Ism}.)$\;$ +For the proof of \eqref{134} use that +\begin{equation} +\lim_{n\to\iy}(qac^{-1}x)^{-n} P_n(x;a,b,c,d;q) +=\frac{(qb,cx^{-1};q)_n}{(qa,-qac^{-1}d;q)_n}\, +\qhyp11{-qbd^{-1}x}{qb}{q,-dx^{-1}}, +\label{135} +\end{equation} +which can be evaluated by \mycite{GR}{(II.5)}. +Formula \eqref{135} follows formally from \eqref{132}, and it follows rigorously, by +dominated convergence, from \eqref{133}. +% +\paragraph{\large\bf KLSadd: Symmetry}(see \cite[\S2.5]{K17}). +\begin{equation} +\frac{P_n(-x;a,b,c,d;q)}{P_n(-d/(qb);a,b,c,d;q)} +=P_n(x;b,a,d,c;q). +\end{equation} +% +\paragraph{\large\bf KLSadd: Special values}\begin{align} +P_n(c/(qa);a,b,c,d;q)&=1,\\ +P_n(-d/(qb);a,b,c,d;q)&=\left(-\,\frac{ad}{bc}\right)^n\, +\frac{(qb,-qbc/d;q)_n}{(qa,-qad/c;q)_n}\,,\\ +P_n(c;a,b,c,d;q)&= +q^{\half n(n+1)}\left(\frac{ad}c\right)^n +\frac{(-qbc/d;q)_n}{(-qad/c;q)_n}\,,\\ +P_n(-d;a,b,c,d;q)&=q^{\half n(n+1)} (-a)^n\,\frac{(qb;q)_n}{(qa;q)_n}\,. +\end{align} +% +\paragraph{\large\bf KLSadd: Quadratic transformations}(see \cite[(2.48), (2.49)]{K17} and \eqref{128}).\\ +These express big $q$-Jacobi polynomials $P_m(x;a,a,1,1;q)$ in terms of little +$q$-Jacobi polynomials (see \S14.12). +\begin{align} +P_{2n}(x;a,a,1,1;q)&=\frac{p_n(x^2;q^{-1},a^2;q^2)}{p_n((qa)^{-2};q^{-1},a^2;q^2)}\,, +\label{130}\\ +P_{2n+1}(x;a,a,1,1;q)&=\frac{qax\,p_n(x^2;q,a^2;q^2)}{p_n((qa)^{-2};q,a^2;q^2)}\,. +\label{131} +\end{align} +Hence, by (14.12.1), \mycite{GR}{Exercise 1.4(ii)} and \eqref{128}, +\begin{align} +P_n(x;a,a,1,1;q)&=\frac{(qa^2;q^2)_n}{(qa^2;q)_n}\,(qax)^n\, +\qhyp21{q^{-n},q^{-n+1}}{q^{-2n+1}a^{-2}}{q^2,(ax)^{-2}} +\label{136}\\ +&=\frac{(q;q)_n}{(qa^2;q)_n}\,(qa)^n\, +\sum_{k=0}^{[\half n]}(-1)^k q^{k(k-1)} +\frac{(qa^2;q^2)_{n-k}}{(q^2;q^2)_k\,(q;q)_{n-2k}}\,x^{n-2k}. +\label{137} +\end{align} +% +\paragraph{\large\bf KLSadd: $q$-Chebyshev polynomials}In \eqref{123}, with $c=d=1$, the cases $a=b=q^{-\half}$ and $a=b=q^\half$ can be considered +as $q$-analogues of the Chebyshev polynomials of the first and second kind, respectively +(\S9.8.2) because of the limit (14.5.17). The quadratic relations \eqref{130}, \eqref{131} +can also be specialized to these cases. The definition of the $q$-Chebyshev polynomials +may vary by normalization and by dilation of argument. They were considered in +\cite{K18}. +By \myciteKLS{24}{p.279} and \eqref{130}, \eqref{131}, the {\em Al-Salam-Ismail polynomials} +$U_n(x;a,b)$ ($q$-dependence suppressed) in the case $a=q$ can be expressed as +$q$-Chebyshev polynomials of the second kind: +\begin{equation*} +U_n(x,q,b)=(q^{-3} b)^{\half n}\,\frac{1-q^{n+1}}{1-q}\, +P_n(b^{-\half}x;q^\half,q^\half,1,1;q). +\end{equation*} +Similarly, by \cite[(5.4), (5.1), (5.3)]{K19} and \eqref{130}, \eqref{131}, Cigler's $q$-Chebyshev +polynomials $T_n(x,s,q)$ and $U_n(x,s,q)$ +can be expressed in terms of the $q$-Chebyshev cases of \eqref{123}: +\begin{align*} +T_n(x,s,q)&=(-s)^{\half n}\,P_n((-qs)^{-\half} x;q^{-\half},q^{-\half},1,1;q),\\ +U_n(x,s,q)&=(-q^{-2}s)^{\half n}\,\frac{1-q^{n+1}}{1-q}\, +P_n((-qs)^{-\half} x;q^{\half},q^{\half},1,1;q). +\end{align*} +% +\paragraph{\large\bf KLSadd: Limit to Discrete $q$-Hermite I}\begin{equation} +\lim_{a\to0} a^{-n}\,P_n(x;a,a,1,1;q)=q^n\,h_n(x;q). +\label{139} +\end{equation} +Here $h_n(x;q)$ is given by (14.28.1). +For the proof of \eqref{139} use \eqref{138}. +% +\paragraph{\large\bf KLSadd: Pseudo big $q$-Jacobi polynomials}Let $a,b,c,d\in\CC$, $z_+>0$, $z_-<0$ such that +$\tfrac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}>0$ for $x\in z_- q^\ZZ\cup z_+ q^\ZZ$. +Then $(ab)/(qcd)>0$. Assume that $(ab)/(qcd)<1$. +Let $N$ be the largest nonnegative integer such that $q^{2N}>(ab)/(qcd)$. +Then +\begin{multline} +\int_{z_- q^\ZZ\cup z_+ q^\ZZ}P_m(cx;c/b,d/a,c/a;q)\,P_n(cx;c/b,d/a,c/a;q)\, +\frac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}\,d_qx=h_n\de_{m,n}\\ +(m,n=0,1,\ldots,N), +\label{114} +\end{multline} +where +\begin{equation} +\frac{h_n}{h_0}=(-1)^n\left(\frac{c^2}{ab}\right)^n q^{\half n(n-1)} q^{2n}\, +\frac{(q,qd/a,qd/b;q)_n}{(qcd/(ab),qc/a,qc/b;q)_n}\, +\frac{1-qcd/(ab)}{1-q^{2n+1}cd/(ab)} +\label{115} +\end{equation} +and +\begin{equation} +h_0=\int_{z_- q^\ZZ\cup z_+ q^\ZZ}\frac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}\,d_qx +=(1-q)z_+\, +\frac{(q,a/c,a/d,b/c,b/d;q)_\iy}{(ab/(qcd);q)_\iy}\, +\frac{\tha(z_-/z_+,cdz_-z_+;q)}{\tha(cz_-,dz_-,cz_+,dz_+;q)}\,. +\label{116} +\end{equation} +See Groenevelt \& Koelink \cite[Prop.~2.2]{K14}. +Formula \eqref{116} was first given by Slater \cite[(5)]{K15} as an evaluation +of a sum of two ${}_2\psi_2$ series. +The same formula is given in Slater \myciteKLS{471}{(7.2.6)} and in +\mycite{GR}{Exercise 5.10}, but in both cases with the same slight error, +see \cite[2nd paragraph after Lemma 2.1]{K14} for correction. +The theta function is given by \eqref{117}. +Note that +\begin{equation} +P_n(cx;c/b,d/a,c/a;q)=P_n(-q^{-1}ax;c/b,d/a,-a/b,1;q). +\label{145} +\end{equation} + +In \cite{K29} the weights of the pseudo big $q$-Jacobi polynomials +occur in certain measures on the space of $N$-point configurations +on the so-called extended Gelfand-Tsetlin graph. +% +\subsubsection*{Limit relations} +\paragraph{\large\bf KLSadd: Pseudo big $q$-Jacobi $\longrightarrow$ Discrete Hermite II}\begin{equation} +\lim_{a\to\iy}i^n q^{\half n(n-1)} P_n(q^{-1}a^{-1}ix;a,a,1,1;q)= +\wt h_n(x;q). +\label{144} +\end{equation} +For the proof use \eqref{137} and \eqref{143}. +Note that $P_n(q^{-1}a^{-1}ix;a,a,1,1;q)$ is obtained from the +\RHS\ of \eqref{144} by replacing $a,b,c,d$ by $-ia^{-1},ia^{-1},i,-i$. +% +\paragraph{\large\bf KLSadd: Pseudo big $q$-Jacobi $\longrightarrow$ Pseudo Jacobi}\begin{equation} +\lim_{q\uparrow1}P_n(iq^{\half(-N-1+i\nu)}x;-q^{-N-1},-q^{-N-1},q^{-N+i\nu-1};q) +=\frac{P_n(x;\nu,N)}{P_n(-i;\nu,N)}\,. +\label{118} +\end{equation} +Here the big $q$-Jacobi polynomial on the \LHS\ equals +$P_n(cx;c/b,d/a,c/a;q)$ with\\ +$a=iq^{\half(N+1-i\nu)}$, $b=-iq^{\half(N+1+i\nu)}$, +$c=iq^{\half(-N-1+i\nu)}$, $d=-iq^{\half(-N-1-i\nu)}$. +% + +\subsection*{References} +\cite{AlvarezSmirnov}, \cite{AndrewsAskey85}, \cite{AskeyWilson79}, +\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, +\cite{KoelinkKoorn}, \cite{Nikiforov+}, \cite{Stanton84}. + + +\section{Al-Salam-Chihara}\index{Al-Salam-Chihara polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefAlSalamChihara} +Q_n(x;a,b|q)&=&\frac{(ab;q)_n}{a^n}\, +\qhyp{3}{2}{q^{-n},a\e^{i\theta},a\e^{-i\theta}}{ab,0}{q}\\ +&=&(a\e^{i\theta};q)_n\e^{-in\theta}\,\qhyp{2}{1}{q^{-n},b\e^{-i\theta}} +{a^{-1}q^{-n+1}\e^{-i\theta}}{a^{-1}q\e^{i\theta}}\nonumber\\ +&=&(b\e^{-i\theta};q)_n\e^{in\theta}\,\qhyp{2}{1}{q^{-n},a\e^{i\theta}} +{b^{-1}q^{-n+1}\e^{i\theta}}{b^{-1}q\e^{-i\theta}},\quad x=\cos\theta.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +If $a$ and $b$ are real or complex conjugates and $\max(|a|,|b|)<1$, then we have the following orthogonality relation +\begin{equation} +\label{OrtAlSalamChiharaI} +\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx +=\frac{\,\delta_{mn}}{(q^{n+1},abq^n;q)_{\infty}}, +\end{equation} +where +$$w(x):=w(x;a,b|q)=\left|\frac{(\e^{2i\theta};q)_{\infty}} +{(a\e^{i\theta},b\e^{i\theta};q)_{\infty}}\right|^2 +=\frac{h(x,1)h(x,-1)h(x,q^{\frac{1}{2}})h(x,-q^{\frac{1}{2}})}{h(x,a)h(x,b)},$$ +with +$$h(x,\alpha):=\prod_{k=0}^{\infty}\left(1-2\alpha xq^k+\alpha^2q^{2k}\right) +=\left(\alpha\e^{i\theta},\alpha\e^{-i\theta};q\right)_{\infty},\quad x=\cos\theta.$$ +If $a>1$ and $|ab|<1$, then we have another orthogonality relation given by: +\begin{eqnarray} +\label{OrtAlSalamChiharaII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1q^{-N}$;\quad +(iv) $\ga>q^{-N}$, $\de>q^{-N}$;\quad +(v) $01,\;qb0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqMeixner} +& &q^{2n+1}(1-q^{-x})M_n(q^{-x})\nonumber\\ +& &{}=c(1-bq^{n+1})M_{n+1}(q^{-x})\nonumber\\ +& &{}\mathindent{}-\left[c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right]M_n(q^{-x})\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^n)(c+q^n)M_{n-1}(q^{-x}), +\end{eqnarray} +where +$$M_n(q^{-x}):=M_n(q^{-x};b,c;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqMeixner} +xp_n(x)&=&p_{n+1}(x)+ +\left[1+q^{-2n-1}\left\{c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+cq^{-4n+1}(1-q^n)(1-bq^n)(c+q^n)p_{n-1}(x), +\end{eqnarray} +where +$$M_n(q^{-x};b,c;q)=\frac{(-1)^nq^{n^2}}{(bq;q)_nc^n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqMeixner} +-(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=M_n(q^{-x};b,c;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=cq^x(1-bq^{x+1})\\ +\\ +\displaystyle D(x)=(1-q^x)(1+bcq^x).\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qMeixnerI} +& &M_n(q^{-x-1};b,c;q)-M_n(q^{-x};b,c;q)\nonumber\\ +& &{}=-\frac{q^{-x}(1-q^n)}{c(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1qMeixnerII} +\frac{\Delta M_n(q^{-x};b,c;q)}{\Delta q^{-x}} +=-\frac{q(1-q^n)}{c(1-q)(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qMeixnerI} +& &cq^x(1-bq^x)M_n(q^{-x};b,c;q)-(1-q^x)(1+bcq^x)M_n(q^{-x+1};b,c;q)\nonumber\\ +& &{}=cq^x(1-b)M_{n+1}(q^{-x};bq^{-1},cq;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qMeixnerII} +& &\frac{\nabla\left[w(x;b,c;q)M_n(q^{-x};b,c;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;bq^{-1},cq;q)M_{n+1}(q^{-x};bq^{-1},cq;q), +\end{eqnarray} +where +$$w(x;b,c;q)=\frac{(bq;q)_x}{(q,-bcq;q)_x}c^xq^{\binom{x+1}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqMeixner} +w(x;b,c;q)M_n(q^{-x};b,c;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;bq^n,cq^{-n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} +\begin{equation} +\label{GenqMeixner1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{bq}{-c^{-1}qt} +=\sum_{n=0}^{\infty}\frac{M_n(q^{-x};b,c;q)}{(q;q)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenqMeixner2} +& &\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-b^{-1}c^{-1}q^{-x}}{-c^{-1}q}{bqt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(bq;q)_n}{(-c^{-1}q,q;q)_n}M_n(q^{-x};b,c;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Jacobi $\rightarrow$ $q$-Meixner} +If we set $b=-a^{-1}cd^{-1}$ (with $d>0$) in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we +obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): +\begin{equation} +\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials +by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the +$q$-Hahn polynomials and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q).$$ + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained +from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting +$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition +(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit +$c\rightarrow\infty$: +\begin{equation} +\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be +obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ +in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: +\begin{equation} +M_n(x;0,c;q)=C_n(x;c;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ Al-Salam-Carlitz~II} +The Al-Salam-Carlitz~II polynomials given by (\ref{DefAlSalamCarlitzII}) +can be obtained from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) +by setting $b=-ac^{-1}$ in the definition (\ref{DefqMeixner}) of the +$q$-Meixner polynomials and then taking the limit $c\rightarrow 0$: +\begin{equation} +\lim_{c\rightarrow 0}M_n(x;-ac^{-1},c;q)= +\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ Meixner} +To find the Meixner polynomials given by (\ref{DefMeixner}) from the $q$-Meixner polynomials given by +(\ref{DefqMeixner}) we set $b=q^{\beta-1}$ and $c\rightarrow (1-c)^{-1}c$ and let $q\rightarrow 1$: +\begin{equation} +\lim_{q\rightarrow 1}M_n(q^{-x};q^{\beta-1},(1-c)^{-1}c;q)=M_n(x;\beta,c). +\end{equation} + +\subsection*{Remarks} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) and the little +$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related in the +following way: +$$M_n(q^{-x};b,c;q)=p_n(-c^{-1}q^n;b,b^{-1}q^{-n-x-1}|q).$$ + +\noindent +The $q$-Meixner polynomials and the quantum $q$-Krawtchouk polynomials +given by (\ref{DefQuantumqKrawtchouk}) are related in the following way: +$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamVerma82II}, \cite{AlSalamVerma88}, \cite{AlvarezRonveaux}, +\cite{AtakAtakKlimyk}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, \cite{GasperRahman90}, +\cite{Hahn}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Smirnov}. + + +\section{Quantum $q$-Krawtchouk} +\index{Quantum q-Krawtchouk polynomials@Quantum $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Quantum} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefQuantumqKrawtchouk} +K_n^{qtm}(q^{-x};p,N;q)= +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{-N}}{pq^{n+1}},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtQuantumqKrawtchouk} +& &\sum_{x=0}^N\frac{(pq;q)_{N-x}}{(q;q)_x(q;q)_{N-x}}(-1)^{N-x}q^{\binom{x}{2}} +K_m^{qtm}(q^{-x};p,N;q)K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{(-1)^np^N(q;q)_{N-n}(q,pq;q)_n}{(q,q;q)_N} +q^{\binom{N+1}{2}-\binom{n+1}{2}+Nn}\,\delta_{mn},\quad p>q^{-N}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecQuantumqKrawtchouk} +& &-pq^{2n+1}(1-q^{-x})K_n^{qtm}(q^{-x})\nonumber\\ +& &{}=(1-q^{n-N})K_{n+1}^{qtm}(q^{-x})\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n-N})+q(1-q^n)(1-pq^n)\right]K_n^{qtm}(q^{-x})\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^n)(1-pq^n)K_{n-1}^{qtm}(q^{-x}), +\end{eqnarray} +where +$$K_n^{qtm}(q^{-x}):=K_n^{qtm}(q^{-x};p,N;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecQuantumqKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+ +\left[1-p^{-1}q^{-2n-1}\left\{(1-q^{n-N})+q(1-q^n)(1-pq^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+p^{-2}q^{-4n+1}(1-q^n)(1-pq^n)(1-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$K_n^{qtm}(q^{-x};p,N;q)=\frac{p^nq^{n^2}}{(q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvQuantumqKrawtchouk} +-p(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=K_n^{qtm}(q^{-x};p,N;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=-q^x(1-q^{x-N})\\ +\\ +\displaystyle D(x)=(1-q^x)(p-q^{x-N-1}).\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1QuantumqKrawtchoukI} +& &K_n^{qtm}(q^{-x-1};p,N;q)-K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{pq^{-x}(1-q^n)}{1-q^{-N}}K_{n-1}^{qtm}(q^{-x};pq,N-1;q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1QuantumqKrawtchoukII} +\frac{\Delta K_n^{qtm}(q^{-x};p,N;q)}{\Delta q^{-x}}= +\frac{pq(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}^{qtm}(q^{-x};pq,N-1;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2QuantumqKrawtchoukI} +& &(1-q^{x-N-1})K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}\mathindent{}+q^{-x}(1-q^x)(p-q^{x-N-1})K_n^{qtm}(q^{-x+1};p,N;q)\nonumber\\ +& &{}=(1-q^{-N-1})K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2QuantumqKrawtchoukII} +& &\frac{\nabla\left[w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;pq^{-1},N+1;q)K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q), +\end{eqnarray} +where +$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q,p^{-1}q^{-N};q)_x}(-p)^{-x}q^{\binom{x+1}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodQuantumqKrawtchouk} +w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^n,N-n;q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenQuantumqKrawtchouk1} +& &(q^{x-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},pq^{N+1-x}}{0}{q^{x-N}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenQuantumqKrawtchouk2} +& &(q^{-x}t;q)_x\cdot\qhyp{2}{1}{q^{x-N},0}{pq}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(pq,q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} +The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of +the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: +$$\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q).$$ + +\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~II} +If we set $p=a^{-1}q^{-N-1}$ in the definition (\ref{DefQuantumqKrawtchouk}) +of the quantum $q$-Krawtchouk polynomials and let $N\rightarrow\infty$ we +obtain the Al-Salam-Carlitz~II polynomials given by +(\ref{DefAlSalamCarlitzII}). In fact we have +\begin{equation} +\lim_{N\rightarrow\infty}K_n^{qtm}(x;a^{-1}q^{-N-1},N;q)= +\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). +\end{equation} + +\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) easily follow from +the quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +in the following way: +\begin{equation} +\lim_{q\rightarrow 1}K_n^{qtm}(q^{-x};p,N;q)=K_n(x;p^{-1},N). +\end{equation} + +\subsection*{Remarks} +The quantum $q$-Krawtchouk polynomials given by +(\ref{DefQuantumqKrawtchouk}) and the $q$-Meixner polynomials given by +(\ref{DefqMeixner}) are related in the following way: +$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ + +\noindent +The quantum $q$-Krawtchouk polynomials are related to the affine +$q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +by the transformation $q\leftrightarrow q^{-1}$ in the following way: +$$K_n^{qtm}(q^x;p,N;q^{-1})=(p^{-1}q;q)_n\left(-\frac{p}{q}\right)^nq^{-\binom{n}{2}} +K_n^{Aff}(q^{x-N};p^{-1},N;q).$$ + RS: add begin\label{sec14.12} +% +\paragraph{\large\bf KLSadd: Notation}Here the little $q$-Jacobi polynomial is denoted by +$p_n(x;a,b;q)$ instead of +$p_n(x;a,b\,|\, q)$. +% +\paragraph{\large\bf KLSadd: Special values}(see \cite[\S2.4]{K17}). +\begin{align} +p_n(0;a,b;q)&=1,\label{127}\\ +p_n(q^{-1}b^{-1};a,b;q)&=(-qb)^{-n}\,q^{-\half n(n-1)}\,\frac{(qb;q)_n}{(qa;q)_n}\,,\label{128}\\ +p_n(1;a,b;q)&=(-a)^n\,q^{\half n(n+1)}\,\frac{(qb;q)_n}{(qa;q)_n}\,.\label{129} +\end{align} +% + +\subsection*{References} +\cite{GasperRahman90}, \cite{Koorn89III}, \cite{Koorn90II}, \cite{Smirnov}. + + +\section{$q$-Krawtchouk}\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} For $n=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{DefqKrawtchouk} +K_n(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}\\ +&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{-pq^{n+N+1}}.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqKrawtchouk} +& &\sum_{x=0}^N\frac{(q^{-N};q)_x}{(q;q)_x}(-p)^{-x}K_m(q^{-x};p,N;q)K_n(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{(q,-pq^{N+1};q)_n}{(-p,q^{-N};q)_n}\frac{(1+p)}{(1+pq^{2n})}\nonumber\\ +& &{}\mathindent{}\times (-pq;q)_Np^{-N}q^{-\binom{N+1}{2}} +\left(-pq^{-N}\right)^nq^{n^2}\,\delta_{mn},\quad p>0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqKrawtchouk} +-\left(1-q^{-x}\right)K_n(q^{-x})&=&A_nK_{n+1}(q^{-x})-\left(A_n+C_n\right)K_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+C_nK_{n-1}(q^{-x}), +\end{eqnarray} +where +$$K_n(q^{-x}):=K_n(q^{-x};p,N;q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n-N})(1+pq^n)}{(1+pq^{2n})(1+pq^{2n+1})}\\ +\\ +\displaystyle C_n=-pq^{2n-N-1}\frac{(1+pq^{n+N})(1-q^n)}{(1+pq^{2n-1})(1+pq^{2n})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqKrawtchouk} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$K_n(q^{-x};p,N;q)=\frac{(-pq^n;q)_n}{(q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqKrawtchouk} +& &q^{-n}(1-q^n)(1+pq^n)y(x)\nonumber\\ +& &{}=(1-q^{x-N})y(x+1)-\left[(1-q^{x-N})-p(1-q^x)\right]y(x)\nonumber\\ +& &{}\mathindent{}-p(1-q^x)y(x-1), +\end{eqnarray} +where +$$y(x)=K_n(q^{-x};p,N;q).$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qKrawtchoukI} +& &K_n(q^{-x-1};p,N;q)-K_n(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1+pq^n)}{1-q^{-N}}K_{n-1}(q^{-x};pq^2,N-1;q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1qKrawtchoukII} +\frac{\Delta K_n(q^{-x};p,N;q)}{\Delta q^{-x}}= +\frac{q^{-n+1}(1-q^n)(1+pq^n)}{(1-q)(1-q^{-N})}K_{n-1}(q^{-x};pq^2,N-1;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qKrawtchoukI} +& &(1-q^{x-N-1})K_n(q^{-x};p,N;q)+pq^{-1}(1-q^x)K_n(q^{-x+1};p,N;q)\nonumber\\ +& &{}=q^x(1-q^{-N-1})K_{n+1}(q^{-x};pq^{-2},N+1;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qKrawtchoukII} +& &\frac{\nabla\left[w(x;p,N;q)K_n(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;pq^{-2},N+1;q)K_{n+1}(q^{-x};pq^{-2},N+1;q), +\end{eqnarray} +where +$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q;q)_x}\left(-\frac{q}{p}\right)^x.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqKrawtchouk} +w(x;p,N;q)K_n(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^{2n},N-n;q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenqKrawtchouk} +& &\qhyp{1}{1}{q^{-x}}{0}{pqt}\,\qhyp{2}{0}{q^{x-N},0}{-}{-q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}K_n(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ $q$-Krawtchouk} +The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) can be obtained from +the $q$-Racah polynomials by setting $\alpha q=q^{-N}$, $\beta=-pq^N$ and +$\gamma=\delta=0$ in the definition (\ref{DefqRacah}) of the $q$-Racah polynomials: +$$R_n(q^{-x};q^{-N-1},-pq^N,0,0|q)=K_n(q^{-x};p,N;q).$$ +Note that $\mu(x)=q^{-x}$ in this case. + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} +If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials +and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by +(\ref{DefqKrawtchouk}): +$$\lim_{\alpha\rightarrow 0} +Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q).$$ + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we +obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} +By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we +obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ Krawtchouk} +If we take the limit $q\rightarrow 1$ in the definition (\ref{DefqKrawtchouk}) of the $q$-Krawtchouk +polynomials we simply find the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) in the +following way: +\begin{equation} +\lim_{q\rightarrow 1}K_n(q^{-x};p,N;q)=K_n(x;(p+1)^{-1},N). +\end{equation} + +\subsection*{Remark} +The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) and the +dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) are +related in the following way: +$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ +with +$$\lambda(n)=q^{-n}-pq^n$$ +or +$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ +with +$$\lambda(x)=q^{-x}+cq^{x-N}.$$ + +\subsection*{References} +\cite{AlvarezRonveaux}, \cite{AskeyWilson79}, \cite{AtakRahmanSuslov}, +\cite{Campigotto+}, \cite{GasperRahman90}, \cite{Nikiforov+}, +\cite{NoumiMimachi91}, \cite{Stanton80III}, \cite{Stanton84}. + + +\newpage + +\section{Affine $q$-Krawtchouk} +\index{Affine q-Krawtchouk polynomials@Affine $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Affine} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefAffqKrawtchouk} +K_n^{Aff}(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}\\ +&=&\frac{(-pq)^nq^{\binom{n}{2}}}{(pq;q)_n}\, +\qhyp{2}{1}{q^{-n},q^{x-N}}{q^{-N}}{\frac{q^{-x}}{p}},\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAffqKrawtchouk} +& &\sum_{x=0}^N\frac{(pq;q)_x(q;q)_N}{(q;q)_x(q;q)_{N-x}}(pq)^{-x}K_m^{Aff}(q^{-x};p,N;q)K_n^{Aff}(q^{-x};p,N;q)\nonumber\\ +& &{}=(pq)^{n-N}\frac{(q;q)_n(q;q)_{N-n}}{(pq;q)_n(q;q)_N}\,\delta_{mn},\quad 01$ +if $p>q^{-1}$. +% +\paragraph{\large\bf KLSadd: History}The origin of the name of the quantum $q$-Krawtchouk polynomials +is by their interpretation +as matrix elements of irreducible corepresentations of (the quantized +function algebra of) the quantum group $SU_q(2)$ considered +with respect to its quantum subgroup $U(1)$. The orthogonality +relation and dual orthogonality relation of these polynomials +are an expression of the unitarity of these corepresentations. +See for instance \myciteKLS{343}{Section 6}. +% + +\subsection*{References} +\cite{AtakRahmanSuslov}, \cite{LChiharaStanton}, \cite{Delsarte}, +\cite{DelsarteGoethals}, \cite{Dunkl78II}, \cite{FlorisKoelink}, +\cite{GasperRahman90}, \cite{Stanton84}. + + +\section{Dual $q$-Krawtchouk} +\index{Dual q-Krawtchouk polynomials@Dual $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Dual} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefDualqKrawtchouk} +K_n(\lambda(x);c,N|q)&=&\qhyp{3}{2}{q^{-n},q^{-x},cq^{x-N}}{q^{-N},0}{q}\\ +&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{cq^{x+1}},\quad n=0,1,2,\ldots,N,\nonumber +\end{eqnarray} +where +$$\lambda(x):=q^{-x}+cq^{x-N}.$$ + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDualqKrawtchouk} +& &\sum_{x=0}^N\frac{(cq^{-N},q^{-N};q)_x}{(q,cq;q)_x} +\frac{(1-cq^{2x-N})}{(1-cq^{-N})}c^{-x}q^{x(2N-x)}K_m(\lambda(x))K_n(\lambda(x))\nonumber\\ +& &{}=(c^{-1};q)_N\frac{(q;q)_n}{(q^{-N};q)_n}(cq^{-N})^n\,\delta_{mn},\quad c<0, +\end{eqnarray} +where +$$K_n(\lambda(x)):=K_n(\lambda(x);c,N|q).$$ + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecDualqKrawtchouk} +& &-(1-q^{-x})(1-cq^{x-N})K_n(\lambda(x))\nonumber\\ +& &{}=(1-q^{n-N})K_{n+1}(\lambda(x))\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n-N})+cq^{-N}(1-q^n)\right]K_n(\lambda(x))\nonumber\\ +& &{}\mathindent\mathindent{}+cq^{-N}(1-q^n)K_{n-1}(\lambda(x)), +\end{eqnarray} +where +$$K_n(\lambda(x)):=K_n(\lambda(x);c,N|q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecDualqKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+(1+c)q^{n-N}p_n(x)\nonumber\\ +& &{}\mathindent{}+cq^{-N}(1-q^n)(1-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$K_n(\lambda(x);c,N|q)=\frac{1}{(q^{-N};q)_n}p_n(\lambda(x)).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDualqKrawtchouk} +q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=K_n(\lambda(x);c,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-cq^{x-N})}{(1-cq^{2x-N})(1-cq^{2x-N+1})}\\ +\\ +\displaystyle D(x)=cq^{2x-2N-1}\frac{(1-q^x)(1-cq^x)}{(1-cq^{2x-N-1})(1-cq^{2x-N})}.\end{array}\right.$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualqKrawtchoukI} +& &K_n(\lambda(x+1);c,N|q)-K_n(\lambda(x);c,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-cq^{2x-N+1})}{1-q^{-N}} +K_{n-1}(\lambda(x);c,N-1|q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1DualqKrawtchoukII} +\frac{\Delta K_n(\lambda(x);c,N|q)}{\Delta\lambda(x)}= +\frac{q^{-n+1}(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}(\lambda(x);c,N-1|q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualqKrawtchoukI} +& &(1-q^{x-N-1})(1-cq^{x-N-1})K_n(\lambda(x);c,N|q)\nonumber\\ +& &{}\mathindent{}-cq^{2(x-N-1)}(1-q^x)(1-cq^x)K_n(\lambda(x-1);c,N|q)\nonumber\\ +& &{}=q^x(1-q^{-N-1})(1-cq^{2x-N-1})K_{n+1}(\lambda(x);c,N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualqKrawtchoukII} +& &\frac{\nabla\left[w(x;c,N|q)K_n(\lambda(x);c,N|q)\right]}{\nabla\lambda(x)}\nonumber\\ +& &{}=\frac{1}{(1-q)(1-cq^{-N-1})}w(x;c,N+1|q)K_{n+1}(\lambda(x);c,N+1|q), +\end{eqnarray} +where +$$w(x;c,N|q)=\frac{(q^{-N},cq^{-N};q)_x}{(q,cq;q)_x}c^{-x}q^{2Nx-x(x-1)}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodDualqKrawtchouk} +& &w(x;c,N|q)K_n(\lambda(x);c,N|q)\nonumber\\ +& &{}=(1-q)^n(cq^{-N};q)_n\left(\nabla_{\lambda}\right)^n\left[w(x;c,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ + +\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenDualqKrawtchouk} +(cq^{-N}t;q)_x\cdot (q^{-N}t;q)_{N-x}=\sum_{n=0}^N +\frac{(q^{-N};q)_n}{(q;q)_n}K_n(\lambda(x);c,N|q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Krawtchouk} +The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) easily +follow from the $q$-Racah polynomials given by (\ref{DefqRacah}) by using the +substitutions $\alpha=\beta=0$, $\gamma q=q^{-N}$ and $\delta=c$: +$$R_n(\mu(x);0,0,q^{-N-1},c|q)=K_n(\lambda(x);c,N|q).$$ +Note that +$$\mu(x)=\lambda(x)=q^{-x}+cq^{x-N}.$$ + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} +The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can +be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ +in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: +$$\lim_{\gamma\rightarrow 0} +R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q).$$ + +\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} +If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) +of the dual $q$-Krawtchouk polynomials and take the limit +$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials +given by (\ref{DefAlSalamCarlitzI}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= +\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q). +\end{equation} +Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. + +\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Krawtchouk} +If we set $c=1-p^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) of the +dual $q$-Krawtchouk polynomials and take the limit $q\rightarrow 1$ we simply find +the Krawtchouk polynomials given by (\ref{DefKrawtchouk}): +\begin{equation} +\lim_{q\rightarrow 1}K_n(\lambda(x);1-p^{-1},N|q)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) +and the $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) are +related in the following way: +$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ +with +$$\lambda(n)=q^{-n}-pq^n$$ +or +$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ +with +$$\lambda(x)=q^{-x}+cq^{x-N}.$$ + RS: add begin\label{sec14.16} +% +\paragraph{\large\bf KLSadd: $q$-Hypergeometric representation}For $n=0,1,\ldots,N$ +(see (14.16.1)): +\begin{align} +K_n^{\rm Aff}(y;p,N;q) +&=\frac1{(p^{-1}q^{-1};q^{-1})_n}\,\qhyp21{q^{-n},q^{-N}y^{-1}}{q^{-N}}{q,p^{-1}y} +\label{156}\\ +&=\qhyp32{q^{-n},y,0}{q^{-N},pq}{q,q}. +\label{157} +\end{align} +% +\paragraph{\large\bf KLSadd: Self-duality}By \eqref{157}: +\begin{equation} +K_n^{\rm Aff}(q^{-x};p,N;q)=K_x^{\rm Aff}(q^{-n};p,N;q)\qquad +(n,x\in\{0,1,\ldots,N\}). +\label{168} +\end{equation} +% +\paragraph{\large\bf KLSadd: Special values}By \eqref{156} and \mycite{GR}{(II.4)}: +\begin{equation} +K_n^{\rm Aff}(1;p,N;q)=1,\qquad +K_n^{\rm Aff}(q^{-N};p,N;q)=\frac1{((pq)^{-1};q^{-1})_n}\,. +\label{165} +\end{equation} +By \eqref{165} and \eqref{168} we have also +\begin{equation} +K_N^{\rm Aff}(q^{-x};p,N;q)=\frac1{((pq)^{-1};q^{-1})_x}\,. +\label{170} +\end{equation} +% +\paragraph{\large\bf KLSadd: Limit for $q\to1$ to Krawtchouk}\begin{align} +\lim_{q\to1} K_n^{\rm Aff}(1+(1-q)x;p,N;q)&=K_n(x;1-p,N), +\label{162}\\ +\lim_{q\to1} K_n^{\rm Aff}(q^{-x};p,N;q)&=K_n(x;1-p,N). +\label{166} +\end{align} +% +\paragraph{\large\bf KLSadd: A relation between quantum and affine $q$-Krawtchouk}By \eqref{152}, \eqref{156}, \eqref{165} and \eqref{168} +we have for $x\in\{0,1,\ldots,N\}$: +\begin{align} +K_{N-n}^{\rm qtm}(q^{-x};p^{-1}q^{-N-1},N;q) +&=\frac{K_x^{\rm Aff}(q^{-n};p,N;q)}{K_x^{\rm Aff}(q^{-N};p,N;q)} +\label{171}\\ +&=\frac{K_n^{\rm Aff}(q^{-x};p,N;q)}{K_N^{\rm Aff}(q^{-x};p,N;q)}\,. +\label{172} +\end{align} +Formula \eqref{171} is given in \cite[formula after (12)]{K24} +and \cite[(59)]{K25}. +In view of \eqref{164} and \eqref{166} +formula \eqref{172} has \eqref{149} as a limit case for +$q\to 1$. +% +\paragraph{\large\bf KLSadd: Affine $q^{-1}By \eqref{156}, \eqref{165}, +\eqref{154} and \eqref{152} (see also p.505, first formula): +\begin{align} +\frac{K_n^{\rm Aff}(y;p,N;q^{-1})}{K_n^{\rm Aff}(q^N;p,N;q^{-1})} +&=\qhyp21{q^{-n},q^{-N}y}{q^{-N}}{q,p^{-1}q^{n+1}} +\label{158}\\ +&=K_n^{\rm qtm}(q^{-N}y;p^{-1},N;q). +\label{159} +\end{align} +Formula \eqref{159} is equivalent to \eqref{160}. +Just as for \eqref{160}, it tends after suitable substitutions to +\eqref{10} as $q\to1$. + +The orthogonality relation (14.16.2) holds with positive weights for $q>1$ +if $01$, then we have another orthogonality relation given by: +\begin{eqnarray} +\label{OrtContBigqHermite2} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}H_m(x;a|q)H_n(x;a|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1-1 +\end{eqnarray} +and +\begin{eqnarray} +\label{OrtqLaguerre2} +& &\sum_{k=-\infty}^{\infty}\frac{q^{k\alpha+k}}{(-cq^k;q)_{\infty}}L_m^{(\alpha)}(cq^k;q)L_n^{(\alpha)}(cq^k;q)\nonumber\\ +& &{}=\frac{(q,-cq^{\alpha+1},-c^{-1}q^{-\alpha};q)_{\infty}} +{(q^{\alpha+1},-c,-c^{-1}q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn}, +\quad\alpha>-1,\quad c>0. +\end{eqnarray} +For $c=1$ the latter orthogonality relation can also be written as +\begin{eqnarray} +\label{OrtqLaguerre3} +& &\int_0^{\infty}\frac{x^{\alpha}}{(-x;q)_{\infty}}L_m^{(\alpha)}(x;q)L_n^{(\alpha)}(x;q)\,d_qx\nonumber\\ +& &{}=\frac{1-q}{2}\,\frac{(q,-q^{\alpha+1},-q^{-\alpha};q)_{\infty}} +{(q^{\alpha+1},-q,-q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn},\quad\alpha>-1. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqLaguerre} +-q^{2n+\alpha+1}xL_n^{(\alpha)}(x;q)&=&(1-q^{n+1})L_{n+1}^{(\alpha)}(x;q)\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]L_n^{(\alpha)}(x;q)\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^{n+\alpha})L_{n-1}^{(\alpha)}(x;q). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqLaguerre} +xp_n(x)&=&p_{n+1}(x)+q^{-2n-\alpha-1}\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+q^{-4n-2\alpha+1}(1-q^n)(1-q^{n+\alpha})p_{n-1}(x), +\end{eqnarray} +where +$$L_n^{(\alpha)}(x;q)=\frac{(-1)^nq^{n(n+\alpha)}}{(q;q)_n}p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqLaguerre} +-q^{\alpha}(1-q^n)xy(x)=q^{\alpha}(1+x)y(qx)-\left[1+q^{\alpha}(1+x)\right]y(x)+y(q^{-1}x), +\end{equation} +where +$$y(x)=L_n^{(\alpha)}(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qLaguerreI} +L_n^{(\alpha)}(x;q)-L_n^{(\alpha)}(qx;q)=-q^{\alpha+1}xL_{n-1}^{(\alpha+1)}(qx;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qLaguerreII} +\mathcal{D}_qL_n^{(\alpha)}(x;q)=-\frac{q^{\alpha+1}}{1-q}L_{n-1}^{(\alpha+1)}(qx;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qLaguerreI} +L_n^{(\alpha)}(x;q)-q^{\alpha}(1+x)L_n^{(\alpha)}(qx;q)=(1-q^{n+1})L_{n+1}^{(\alpha-1)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qLaguerreII} +\mathcal{D}_q\left[w(x;\alpha;q)L_n^{(\alpha)}(x;q)\right]= +\frac{1-q^{n+1}}{1-q}w(x;\alpha-1;q)L_{n+1}^{(\alpha-1)}(x;q), +\end{equation} +where +$$w(x;\alpha;q)=\frac{x^{\alpha}}{(-x;q)_{\infty}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqLaguerre} +w(x;\alpha;q)L_n^{(\alpha)}(x;q)= +\frac{(1-q)^n}{(q;q)_n}\left(\mathcal{D}_q\right)^n\left[w(x;\alpha+n;q)\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenqLaguerre1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-x}{0}{q^{\alpha+1}t} +=\sum_{n=0}^{\infty}L_n^{(\alpha)}(x;q)t^n. +\end{equation} + +\begin{equation} +\label{GenqLaguerre2} +\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{q^{\alpha+1}}{-q^{\alpha+1}xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x;q)}{(q^{\alpha+1};q)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenqLaguerre3} +(t;q)_{\infty}\cdot\qhyp{0}{2}{-}{q^{\alpha+1},t}{-q^{\alpha+1}xt} +=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenqLaguerre4} +& &\frac{(\gamma t;q)_{\infty}}{(t;q)_{\infty}}\,\qhyp{1}{2}{\gamma}{q^{\alpha+1},\gamma t}{-q^{\alpha+1}xt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Laguerre} +If we substitute $a=q^{\alpha}$ and $x\rightarrow -b^{-1}q^{-1}x$ in the definition +(\ref{DefLittleqJacobi}) of the little $q$-Jacobi polynomials and then take the limit +$b\rightarrow -\infty$ we find the $q$-Laguerre polynomials given by (\ref{DefqLaguerre}): +$$\lim_{b\rightarrow -\infty}p_n(-b^{-1}q^{-1}x;q^{\alpha},b|q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained +from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting +$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition +(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit +$c\rightarrow\infty$: +$$\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ + +\subsubsection*{$q$-Laguerre $\rightarrow$ Stieltjes-Wigert} +If we set $x\rightarrow xq^{-\alpha}$ in the definition +(\ref{DefqLaguerre}) of the $q$-Laguerre polynomials and take the limit +$\alpha\rightarrow\infty$ we simply obtain the Stieltjes-Wigert polynomials given +by (\ref{DefStieltjesWigert}): +\begin{equation} +\lim_{\alpha\rightarrow\infty}L_n^{(\alpha)}\left(xq^{-\alpha};q\right)=S_n(x;q). +\end{equation} + +\subsubsection*{$q$-Laguerre $\rightarrow$ Laguerre / Charlier} +If we set $x\rightarrow (1-q)x$ in the definition (\ref{DefqLaguerre}) +of the $q$-Laguerre polynomials and take the limit $q\rightarrow 1$ we obtain +the Laguerre polynomials given by (\ref{DefLaguerre}): +\begin{equation} +\lim_{q\rightarrow 1}L_n^{(\alpha)}((1-q)x;q)=L_n^{(\alpha)}(x). +\end{equation} + +If we set $x\rightarrow -q^{-x}$ and $q^{\alpha}=a^{-1}(q-1)^{-1}$ (or +$\alpha=-(\ln q)^{-1}\ln (q-1)a$) in the definition (\ref{DefqLaguerre}) of the +$q$-Laguerre polynomials, multiply by $(q;q)_n$, and take the limit +$q\rightarrow 1$ we obtain the Charlier polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\,(q;q)_nL_n^{(\alpha)}(-q^{-x};q)=C_n(x;a), +\end{equation} +where +$$q^{\alpha}=\frac{1}{a(q-1)}\quad\textrm{or}\quad\alpha=-\frac{\ln (q-1)a}{\ln q}.$$ + +\subsection*{Remarks} +The $q$-Laguerre polynomials are sometimes called the +generalized Stieltjes-Wigert polynomials. + +If we replace $q$ by $q^{-1}$ we obtain the little $q$-Laguerre +(or Wall) polynomials given by (\ref{DefLittleqLaguerre}) in the following +way: +$$L_n^{(\alpha)}(x;q^{-1})=\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^{n\alpha}}p_n(-x;q^{\alpha}|q).$$ + +\noindent +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the $q$-Bessel polynomials +given by (\ref{DefqBessel}) are related in the following way: +$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ + +\noindent +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the +$q$-Charlier polynomials given by (\ref{DefqCharlier}) are related in the +following way: +$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ + +\noindent +Since the Stieltjes and Hamburger moment problems corresponding to the +$q$-Laguerre polynomials are indeterminate there exist many different weight +functions. + RS: add begin\label{sec14.20} +% +\paragraph{\large\bf KLSadd: Notation}Here the little $q$-Laguerre polynomial is denoted by +$p_n(x;a;q)$ instead of +$p_n(x;a\,|\, q)$. +% +\paragraph{\large\bf KLSadd: Re: (14.20.11)}The \RHS\ of this generating function converges for $|xt|<1$. +We can rewrite the \LHS\ by use of the transformation +\begin{equation*} +\qhyp21{0,0}c{q,z}=\frac1{(z;q)_\iy}\,\qhyp01-c{q,cz}. +\end{equation*} +Then we obtain: +\begin{equation} +(t;q)_\iy\,\qhyp21{0,0}{aq}{q,xt} +=\sum_{n=0}^\iy\frac{(-1)^n\,q^{\half n(n-1)}}{(q;q)_n}\, +p_n(x;a;q)\,t^n\qquad(|xt|<1). +\label{35} +\end{equation} +% +\subsubsection*{Expansion of $x^n$} +Divide both sides of \eqref{35} by $(t;q)_\iy$. Then coefficients of the +same power of $t$ on both sides must be equal. We obtain: +\begin{equation} +x^n=(a;q)_n\,\sum_{k=0}^n \frac{(q^{-n};q)_k}{(q;q)_k}\,q^{nk}\,p_k(x;a;q). +\label{36} +\end{equation} +% +\subsubsection*{Quadratic transformations} +Little $q$-Laguerre polynomials $p_n(x;a;q)$ with $a=q^{\pm\half}$ are +related to discrete $q$-Hermite I polynomials $h_n(x;q)$: +\begin{align} +p_n(x^2;q^{-1};q^2)&= +\frac{(-1)^n q^{-n(n-1)}}{(q;q^2)_n}\,h_{2n}(x;q), +\label{28}\\ +xp_n(x^2;q;q^2)&= +\frac{(-1)^n q^{-n(n-1)}}{(q^3;q^2)_n}\,h_{2n+1}(x;q). +\label{29} +\end{align} +% + +\subsection*{References} +\cite{NAlSalam89}, \cite{AlSalam90}, \cite{Askey86}, \cite{Askey89I}, \cite{AskeyWilson85}, +\cite{AtakAtakI}, \cite{ChenIsmailMuttalib}, \cite{Chihara68II}, \cite{Chihara78}, +\cite{Chihara79}, \cite{Chris}, \cite{Exton77}, \cite{GasperRahman90}, \cite{GrunbaumHaine96}, +\cite{Ismail2005I}, \cite{IsmailRahman98}, \cite{Jain95}, \cite{Moak}. + + +\section{$q$-Bessel} +\index{q-Bessel polynomials@$q$-Bessel polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefqBessel} +y_n(x;a;q)&=&\qhyp{2}{1}{q^{-n},-aq^n}{0}{qx}\\ +&=&(q^{-n+1}x;q)_n\cdot\qhyp{1}{1}{q^{-n}}{q^{-n+1}x}{-aq^{n+1}x}\nonumber\\ +&=&\left(-aq^nx\right)^n\cdot\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-\frac{q^{-n+1}}{a}}.\nonumber +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqBessel} +& &\sum_{k=0}^{\infty}\frac{a^k}{(q;q)_k}q^{\binom{k+1}{2}}y_m(q^k;a;q)y_n(q^k;a;q)\nonumber\\ +& &{}=(q;q)_n(-aq^n;q)_{\infty}\frac{a^nq^{\binom{n+1}{2}}}{(1+aq^{2n})}\,\delta_{mn},\quad a>0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecqBessel} +-xy_n(x;a;q)=A_ny_{n+1}(x;a;q)-(A_n+C_n)y_n(x;a;q)+C_ny_{n-1}(x;a;q), +\end{equation} +where +$$\left\{\begin{array}{l}\displaystyle A_n=q^n\frac{(1+aq^n)}{(1+aq^{2n})(1+aq^{2n+1})}\\ +\\ +\displaystyle C_n=aq^{2n-1}\frac{(1-q^n)}{(1+aq^{2n-1})(1+aq^{2n})}.\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqBessel} +xp_n(x)=p_{n+1}(x)+(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$y_n(x;a;q)=(-1)^nq^{-\binom{n}{2}}(-aq^n;q)_np_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqBessel} +& &-q^{-n}(1-q^n)(1+aq^n)xy(x)\nonumber\\ +& &{}=axy(qx)-(ax+1-x)y(x)+(1-x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=y_n(x;a;q).$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qBesselI} +y_n(x;a;q)-y_n(qx;a;q)=-q^{-n+1}(1-q^n)(1+aq^n)xy_{n-1}(x;aq^2;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qBesselII} +\mathcal{D}_qy_n(x;a;q)=-\frac{q^{-n+1}(1-q^n)(1+aq^n)}{1-q}y_{n-1}(x;aq^2;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qBesselI} +aq^{x-1}y_n(q^x;a;q)-(1-q^x)y_n(q^{x-1}x;a;q)=-y_{n+1}(q^x;aq^{-2};q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qBesselII} +\frac{\nabla\left[w(x;a;q)y_n(q^x;a;q)\right]}{\nabla q^x}= +\frac{q^2}{a(1-q)}w(x;aq^{-2};q)y_{n+1}(q^x;aq^{-2};q), +\end{equation} +where +$$w(x;a;q)=\frac{a^xq^{\binom{x}{2}}}{(q;q)_x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqBessel} +w(x;a;q)y_n(q^x;a;q)=a^n(1-q)^nq^{n(n-1)}\left(\nabla_q\right)^n\left[w(x;aq^{2n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^x}.$$ + +\subsection*{Generating functions} +\begin{eqnarray} +\label{GenqBessel1} +& &\qhyp{0}{1}{-}{0}{-aq^{x+1}t}\,\qhyp{2}{0}{q^{-x},0}{-}{q^xt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{y_n(q^x;a;q)}{(q;q)_n}t^n,\quad x=0,1,2,\ldots. +\end{eqnarray} + +\begin{equation} +\label{GenqBessel2} +\frac{(t;q)_{\infty}}{(xt;q)_{\infty}}\,\qhyp{1}{3}{xt}{0,0,t}{-aqxt}= +\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q;q)_n}y_n(x;a;q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Bessel} +If we set $b\rightarrow -a^{-1}q^{-1}b$ in the definition (\ref{DefLittleqJacobi}) of +the little $q$-Jacobi polynomials and then take the limit $a\rightarrow 0$ we obtain +the $q$-Bessel polynomials given by (\ref{DefqBessel}): +$$\lim_{a\rightarrow 0}p_n(x;a,-a^{-1}q^{-1}b|q)=y_n(x;b;q).$$ + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we +obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): +$$\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q).$$ + +\subsubsection*{$q$-Bessel $\rightarrow$ Stieltjes-Wigert} +The Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) can be obtained +from the $q$-Bessel polynomials by setting $x\rightarrow a^{-1}x$ in the definition +(\ref{DefqBessel}) of the $q$-Bessel polynomials and then taking the limit +$a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty}y_n(a^{-1}x;a;q)=(q;q)_nS_n(x;q). +\end{equation} + +\subsubsection*{$q$-Bessel $\rightarrow$ Bessel} +If we set $x\rightarrow -\frac{1}{2}(1-q)^{-1}x$ and $a\rightarrow -q^{a+1}$ in the definition +(\ref{DefqBessel}) of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ +we find the Bessel polynomials given by (\ref{DefBessel}): +\begin{equation} +\lim_{q\rightarrow 1}y_n(-\textstyle\frac{1}{2}(1-q)^{-1}x;-q^{a+1};q)=y_n(x;a). +\end{equation} + +\subsubsection*{$q$-Bessel $\rightarrow$ Charlier} +If we set $x\rightarrow q^x$ and $a\rightarrow a(1-q)$ in the definition (\ref{DefqBessel}) +of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ we find the Charlier +polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\frac{y_n(q^x;a(1-q);q)}{(q-1)^n}=a^nC_n(x;a). +\end{equation} + +\subsection*{Remark} +In \cite{Koekoek94} and \cite{Koekoek98} these $q$-Bessel polynomials were called +\emph{alternative $q$-Charlier polynomials}. + +\noindent +The $q$-Bessel polynomials given by (\ref{DefqBessel}) and the $q$-Laguerre +polynomials given by (\ref{DefqLaguerre}) are related in the following way: +$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ + +\subsection*{Reference} +\cite{DattaGriffin}. + + +\section{$q$-Charlier}\index{q-Charlier polynomials@$q$-Charlier polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefqCharlier} +C_n(q^{-x};a;q)&=&\qhyp{2}{1}{q^{-n},q^{-x}}{0}{-\frac{q^{n+1}}{a}}\\ +&=&(-a^{-1}q;q)_n\cdot\qhyp{1}{1}{q^{-n}}{-a^{-1}q}{-\frac{q^{n+1-x}}{a}}.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqCharlier} +& &\sum_{x=0}^{\infty}\frac{a^x}{(q;q)_x}q^{\binom{x}{2}}C_m(q^{-x};a;q)C_n(q^{-x};a;q)\nonumber\\ +& &{}=q^{-n}(-a;q)_{\infty}(-a^{-1}q,q;q)_n\,\delta_{mn},\quad a>0. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqCharlier} +& &q^{2n+1}(1-q^{-x})C_n(q^{-x})\nonumber\\ +& &{}=aC_{n+1}(q^{-x})-\left[a+q(1-q^n)(a+q^n)\right]C_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+q(1-q^n)(a+q^n)C_{n-1}(q^{-x}), +\end{eqnarray} +where +$$C_n(q^{-x}):=C_n(q^{-x};a;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqCharlier} +xp_n(x)&=&p_{n+1}(x)+\left[1+q^{-2n-1}\left\{a+q(1-q^n)(a+q^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+aq^{-4n+1}(1-q^n)(a+q^n)p_{n-1}(x), +\end{eqnarray} +where +$$C_n(q^{-x};a;q)=\frac{(-1)^nq^{n^2}}{a^n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqCharlier} +q^ny(x)=aq^xy(x+1)-q^x(a-1)y(x)+(1-q^x)y(x-1), +\end{equation} +where +$$y(x)=C_n(q^{-x};a;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qCharlierI} +C_n(q^{-x-1};a;q)-C_n(q^{-x};a;q)=-a^{-1}q^{-x}(1-q^n)C_{n-1}(q^{-x};aq^{-1};q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qCharlierII} +\frac{\Delta C_n(q^{-x};a;q)}{\Delta q^{-x}}=-\frac{q(1-q^n)}{a(1-q)}C_{n-1}(q^{-x};aq^{-1};q). +\end{equation} + +\newpage + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qCharlierI} +C_n(q^{-x};a;q)-a^{-1}q^{-x}(1-q^x)C_n(q^{-x+1};a;q)=C_{n+1}(q^{-x};aq;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qCharlierII} +\frac{\nabla\left[w(x;a;q)C_n(q^{-x};a;q)\right]}{\nabla q^{-x}} +=\frac{1}{1-q}w(x;aq;q)C_{n+1}(q^{-x};aq;q), +\end{equation} +where +$$w(x;a;q)=\frac{a^xq^{\binom{x+1}{2}}}{(q;q)_x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqCharlier} +w(x;a;q)C_n(q^{-x};a;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;aq^{-n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} +\begin{equation} +\label{GenqCharlier1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{0}{-a^{-1}qt} +=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(q;q)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenqCharlier2} +\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{-a^{-1}q}{-a^{-1}q^{-x+1}t} +=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(-a^{-1}q,q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be +obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ +in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: +\begin{equation} +M_n(x;0,c;q)=C_n(x;c;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} +By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we +obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): +$$\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q).$$ + +\subsubsection*{$q$-Charlier $\rightarrow$ Stieltjes-Wigert} +If we set $q^{-x}\rightarrow ax$ in the definition (\ref{DefqCharlier}) of the +$q$-Charlier polynomials and take the limit $a\rightarrow\infty$ we obtain +the Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) in the +following way: +\begin{equation} +\lim_{a\rightarrow\infty}C_n(ax;a;q)=(q;q)_nS_n(x;q). +\end{equation} + +\subsubsection*{$q$-Charlier $\rightarrow$ Charlier} +If we set $a\rightarrow a(1-q)$ in the definition (\ref{DefqCharlier}) +of the $q$-Charlier polynomials and take the limit $q\rightarrow 1$ we obtain the +Charlier polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}C_n(q^{-x};a(1-q);q)=C_n(x;a). +\end{equation} + +\subsection*{Remark} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) and the +$q$-Laguerre polynomials given by (\ref{DefqLaguerre}) are related in the +following way: +$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ + +\subsection*{References} +\cite{AlvarezRonveaux}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, +\cite{Hahn}, \cite{Koelink96III}, \cite{Nikiforov+}, \cite{Zeng95}. + + +\section{Al-Salam-Carlitz~I}\index{Al-Salam-Carlitz~I polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefAlSalamCarlitzI} +U_n^{(a)}(x;q)=(-a)^nq^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{\frac{qx}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAlSalamCarlitzI} +& &\int_a^1(qx,a^{-1}qx;q)_{\infty}U_m^{(a)}(x;q)U_n^{(a)}(x;q)\,d_qx\nonumber\\ +& &{}=(-a)^n(1-q)(q;q)_n(q,a,a^{-1}q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn},\quad a<0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecAlSalamCarlitzI} +xU_n^{(a)}(x;q)=U_{n+1}^{(a)}(x;q)+(a+1)q^nU_n^{(a)}(x;q) +-aq^{n-1}(1-q^n)U_{n-1}^{(a)}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecAlSalamCarlitzI} +xp_n(x)=p_{n+1}(x)+(a+1)q^np_n(x)-aq^{n-1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$$U_n^{(a)}(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvAlSalamCarlitzI} +(1-q^n)x^2y(x)&=&aq^{n-1}y(qx)-\left[aq^{n-1}+q^n(1-x)(a-x)\right]y(x)\nonumber\\ +& &{}\mathindent{}+q^n(1-x)(a-x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=U_n^{(a)}(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1AlSalamCarlitzI-I} +U_n^{(a)}(x;q)-U_n^{(a)}(qx;q)=(1-q^n)xU_{n-1}^{(a)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1AlSalamCarlitzI-II} +\mathcal{D}_qU_n^{(a)}(x;q)=\frac{1-q^n}{1-q}U_{n-1}^{(a)}(x;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2AlSalamCarlitzI-I} +aU_n^{(a)}(x;q)-(1-x)(a-x)U_n^{(a)}(q^{-1}x;q)=-q^{-n}xU_{n+1}^{(a)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2AlSalamCarlitzI-II} +\mathcal{D}_{q^{-1}}\left[w(x;a;q)U_n^{(a)}(x;q)\right]= +\frac{q^{-n+1}}{a(1-q)}w(x;a;q)U_{n+1}^{(a)}(x;q), +\end{equation} +where +$$w(x;a;q)=(qx,a^{-1}qx;q)_{\infty}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodAlSalamCarlitzI} +w(x;a;q)U_n^{(a)}(x;q)=a^nq^{\frac{1}{2}n(n-3)}(1-q)^n +\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;a;q)\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenAlSalamCarlitzI} +\frac{(t,at;q)_{\infty}}{(xt;q)_{\infty}}= +\sum_{n=0}^{\infty}\frac{U_n^{(a)}(x;q)}{(q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Laguerre $\rightarrow$ Al-Salam-Carlitz~I} +If we set $x\rightarrow aqx$ and $b\rightarrow ab$ in the definition +(\ref{DefBigqLaguerre}) of the big $q$-Laguerre polynomials and take the +limit $a\rightarrow 0$ we obtain the Al-Salam-Carlitz~I polynomials given by +(\ref{DefAlSalamCarlitzI}): +$$\lim_{a\rightarrow 0}\frac{P_n(aqx;a,ab;q)}{a^n}=q^nU_n^{(b)}(x;q).$$ + +\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} +If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) +of the dual $q$-Krawtchouk polynomials and take the limit +$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials +given by (\ref{DefAlSalamCarlitzI}): +$$\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= +\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q).$$ +Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} +The discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) can easily be obtained from the +Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the +substitution $a=-1$: +\begin{equation} +U_n^{(-1)}(x;q)=h_n(x;q). +\end{equation} + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Charlier / Hermite} +If we set $a\rightarrow a(q-1)$ and $x\rightarrow q^x$ in the definition +(\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I polynomials and take the +limit $q\rightarrow 1$ after dividing by $a^n(1-q)^n$ we obtain the Charlier +polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\frac{U_n^{(a(q-1))}(q^x;q)}{(1-q)^n}=a^nC_n(x;a). +\end{equation} + +If we set $x\rightarrow x\sqrt{1-q^2}$ and $a\rightarrow a\sqrt{1-q^2}-1$ +in the definition (\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I +polynomials, divide by $(1-q^2)^{\frac{n}{2}}$, and let $q$ tend to $1$ we +obtain the Hermite polynomials given by (\ref{DefHermite}) with shifted +argument. In fact we have +\begin{equation} +\lim_{q\rightarrow 1}\frac{U_n^{(a\sqrt{1-q^2}-1)}(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x-a)}{2^n}. +\end{equation} + +\subsection*{Remark} +The Al-Salam-Carlitz~I polynomials are related to the Al-Salam-Carlitz~II +polynomials given by (\ref{DefAlSalamCarlitzII}) in the following way: +$$U_n^{(a)}(x;q^{-1})=V_n^{(a)}(x;q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AlSalamChihara76}, \cite{AskeySuslovII}, +\cite{AtakRahmanSuslov}, \cite{Chihara68II}, \cite{Chihara78}, \cite{DattaGriffin}, +\cite{Dehesa}, \cite{DohaAhmed2005}, \cite{GasperRahman90}, \cite{Ismail85I}, +\cite{IsmailMuldoon}, \cite{Kim}, \cite{Zeng95}. + + +\section{Al-Salam-Carlitz~II}\index{Al-Salam-Carlitz~II polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefAlSalamCarlitzII} +V_n^{(a)}(x;q)= +(-a)^nq^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},x}{-}{\frac{q^n}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAlSalamCarlitzII} +& &\sum_{k=0}^{\infty}\frac{q^{k^2}a^k}{(q;q)_k(aq;q)_k} +V_m^{(a)}(q^{-k};q)V_n^{(a)}(q^{-k};q)\nonumber\\ +& &{}=\frac{(q;q)_na^n}{(aq;q)_{\infty}q^{n^2}}\,\delta_{mn},\quad 00,\quad\textrm{with}\quad +\gamma^2=-\frac{1}{2\ln q}.$$ + RS: add begin\label{sec14.21} +% +\paragraph{\large\bf KLSadd: Notation}Here the $q$-Laguerre polynomial is denoted by $L_n^\al(x;q)$ instead of +$L_n^{(\al)}(x;q)$. +% +\subsubsection*{Orthogonality relation} +(14.21.2) can be rewritten with simplified \RHS: +\begin{equation} +\int_0^\iy L_m^{\al}(x;q)\,L_n^{\al}(x;q)\,\frac{x^\al}{(-x;q)_\iy}\,dx=h_n\,\de_{m,n} +\qquad(\al>-1) +\label{119} +\end{equation} +with +\begin{equation} +\frac{h_n}{h_0}=\frac{(q^{\al+1};q)_n}{(q;q)_n q^n},\qquad +h_0=-\,\frac{(q^{-\al};q)_\iy}{(q;q)_\iy}\,\frac\pi{\sin(\pi\al)}\,. +\label{120} +\end{equation} +The expression for $h_0$ (which is Askey's $q$-gamma evaluation +\cite[(4.2)]{K16}) +should be interpreted by continuity in $\al$ for +$\al\in\Znonneg$. +Explicitly we can write +\begin{equation} +h_n=q^{-\half\al(\al+1)}\,(q;q)_\al\,\log(q^{-1})\qquad(\al\in\Znonneg). +\label{121} +\end{equation} +% +\subsubsection*{Expansion of $x^n$} +\begin{equation} +x^n=q^{-\half n(n+2\al+1)}\,(q^{\al+1};q)_n\, +\sum_{k=0}^n\frac{(q^{-n};q)_k}{(q^{\al+1};q)_k}\,q^k\,L_k^\al(x;q). +\label{37} +\end{equation} +This follows from \eqref{36} by the equality given in the Remark at the end +of \S14.20. Alternatively, it can be derived in the same way as \eqref{36} +from the generating function (14.21.14). +% +\subsubsection*{Quadratic transformations} +$q$-Laguerre polynomials $L_n^\al(x;q)$ with $\al=\pm\half$ are +related to discrete $q$-Hermite II polynomials $\wt h_n(x;q)$: +\begin{align} +L_n^{-1/2}(x^2;q^2)&= +\frac{(-1)^n q^{2n^2-n}}{(q^2;q^2)_n}\,\wt h_{2n}(x;q), +\label{38}\\ +xL_n^{1/2}(x^2;q^2)&= +\frac{(-1)^n q^{2n^2+n}}{(q^2;q^2)_n}\,\wt h_{2n+1}(x;q). +\label{39} +\end{align} +These follows from \eqref{28} and \eqref{29}, respectively, by applying +the equalities given in the Remarks at the end of \S14.20 and \S14.28. +% + +\subsection*{References} +\cite{Askey86}, \cite{Askey89I}, \cite{AtakAtakIII}, \cite{Chihara70}, \cite{Chihara78}, +\cite{Dehesa}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Stieltjes}, \cite{Szego75}, +\cite{ValentAssche}, \cite{Wigert}. + + +\section{Discrete $q$-Hermite~I} +\index{Discrete q-Hermite~I polynomials@Discrete $q$-Hermite~I polynomials} +\index{q-Hermite~I polynomials@$q$-Hermite~I polynomials!Discrete} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +The discrete $q$-Hermite~I polynomials are Al-Salam-Carlitz~I polynomials +with $a=-1$: +\begin{eqnarray} +\label{DefDiscreteqHermiteI} +h_n(x;q)=U_n^{(-1)}(x;q)&=&q^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-qx}\\ +&=&x^n\qhypK{2}{0}{q^{-n},q^{-n+1}}{0}{q^2,\frac{q^{2n-1}}{x^2}}\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDiscreteqHermiteI} +& &\int_{-1}^1(qx,-qx;q)_{\infty}h_m(x;q)h_n(x;q)\,d_qx\nonumber\\ +& &{}=(1-q)(q;q)_n(q,-1,-q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDiscreteqHermiteI} +xh_n(x;q)=h_{n+1}(x;q)+q^{n-1}(1-q^n)h_{n-1}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDiscreteqHermiteI} +xp_n(x)=p_{n+1}(x)+q^{n-1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$$h_n(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDiscreteqHermiteI} +-q^{-n+1}x^2y(x)=y(qx)-(1+q)y(x)+q(1-x^2)y(q^{-1}x), +\end{equation} +where +$$y(x)=h_n(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1DiscreteqHermiteI-I} +h_n(x;q)-h_n(qx;q)=(1-q^n)xh_{n-1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1DiscreteqHermiteI-II} +\mathcal{D}_qh_n(x;q)=\frac{1-q^n}{1-q}h_{n-1}(x;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2DiscreteqHermiteI-I} +h_n(x;q)-(1-x^2)h_n(q^{-1}x;q)=q^{-n}xh_{n+1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2DiscreteqHermiteI-II} +\mathcal{D}_{q^{-1}}\left[w(x;q)h_n(x;q)\right] +=-\frac{q^{-n+1}}{1-q}w(x;q)h_{n+1}(x;q), +\end{equation} +where +$$w(x;q)=(qx,-qx;q)_{\infty}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDiscreteqHermiteI} +w(x;q)h_n(x;q)=(q-1)^nq^{\frac{1}{2}n(n-3)} +\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;q)\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenDiscreteqHermiteI} +\frac{(t^2;q^2)_{\infty}}{(xt;q)_{\infty}}= +\sum_{n=0}^{\infty}\frac{h_n(x;q)}{(q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} +The discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) can easily be obtained from the +Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the +substitution $a=-1$: +$$U_n^{(-1)}(x;q)=h_n(x;q).$$ + +\subsubsection*{Discrete $q$-Hermite~I $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be found +from the discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) in the following way: +\begin{equation} +\lim_{q\rightarrow 1}\frac{h_n(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. +\end{equation} + +\subsection*{Remark} The discrete $q$-Hermite~I polynomials are related to the +discrete $q$-Hermite~II polynomials given by (\ref{DefDiscreteqHermiteII}) +in the following way: +$$h_n(ix;q^{-1})=i^n{\tilde h}_n(x;q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AtakRahmanSuslov}, +\cite{BergIsmail}, \cite{BustozIsmail82}, \cite{GasperRahman90}, \cite{Hahn}, +\cite{Koorn97}. + + +\newpage + +\section{Discrete $q$-Hermite~II} +\index{Discrete q-Hermite~II polynomials@Discrete $q$-Hermite~II polynomials} +\index{q-Hermite~II polynomials@$q$-Hermite~II polynomials!Discrete} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +The discrete $q$-Hermite~II polynomials are Al-Salam-Carlitz~II polynomials +with $a=-1$: +\begin{eqnarray} +\label{DefDiscreteqHermiteII} +{\tilde h}_n(x;q)=i^{-n}V_n^{(-1)}(ix;q) +&=&i^{-n}q^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},ix}{-}{-q^n}\\ +&=&x^n +\qhypK{2}{1}{q^{-n},q^{-n+1}}{0}{q^2,-\frac{q^2}{x^2}}\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDiscreteqHermiteIIa} +& &\sum_{k=-\infty}^{\infty}\left[{\tilde h}_m(cq^k;q) +{\tilde h}_n(cq^k;q)+{\tilde h}_m(-cq^k;q){\tilde h}_n(-cq^k;q)\right] +w(cq^k;q)q^k\nonumber\\ +& &{}=2\frac{(q^2,-c^2q,-c^{-2}q;q^2)_{\infty}}{(q,-c^2,-c^{-2}q^2;q^2)_{\infty}} +\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn},\quad c>0, +\end{eqnarray} +where +$$w(x;q)=\frac{1}{(ix,-ix;q)_{\infty}}=\frac{1}{(-x^2;q^2)_{\infty}}.$$ +For $c=1$ this orthogonality relation can also be written as +\begin{equation} +\label{OrtDiscreteqHermiteIIb} +\int_{-\infty}^{\infty}\frac{{\tilde h}_m(x;q){\tilde h}_n(x;q)}{(-x^2;q^2)_{\infty}}\,d_qx +=\frac{\left(q^2,-q,-q;q^2\right)_{\infty}}{\left(q^3,-q^2,-q^2;q^2\right)_{\infty}} +\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDiscreteqHermiteII} +x{\tilde h}_n(x;q)={\tilde h}_{n+1}(x;q)+q^{-2n+1}(1-q^n){\tilde h}_{n-1}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDiscreteqHermiteII} +xp_n(x)=p_{n+1}(x)+q^{-2n+1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$${\tilde h}_n(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvDiscreteqHermiteII} +& &-(1-q^n)x^2{\tilde h}_n(x;q)\nonumber\\ +& &{}=(1+x^2){\tilde h}_n(qx;q)-(1+x^2+q){\tilde h}_n(x;q)+q{\tilde h}_n(q^{-1}x;q). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1DiscreteqHermiteII-I} +\tilde{h}_n(x;q)-\tilde{h}_n(qx;q)=q^{-n+1}(1-q^n)x\tilde{h}_{n-1}(qx;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1DiscreteqHermiteII-II} +\mathcal{D}_q\tilde{h}_n(x;q)=\frac{q^{-n+1}(1-q^n)}{1-q}\tilde{h}_{n-1}(qx;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2DiscreteqHermiteII-I} +\tilde{h}_n(x;q)-(1+x^2)\tilde{h}_n(qx;q)=-q^nx\tilde{h}_{n+1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2DiscreteqHermiteII-II} +\mathcal{D}_q\left[w(x;q)\tilde{h}_n(x;q)\right] +=-\frac{q^n}{1-q}w(x;q)\tilde{h}_{n+1}(x;q). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDiscreteqHermiteII} +w(x;q)\tilde{h}_n(x;q)=(q-1)^nq^{-\binom{n}{2}} +\left(\mathcal{D}_q\right)^n\left[w(x;q)\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenDiscreteqHermiteII1} +\frac{(-xt;q)_{\infty}}{(-t^2;q^2)_{\infty}}=\sum_{n=0}^{\infty} +\frac{q^{\binom{n}{2}}}{(q;q)_n}{\tilde h}_n(x;q)t^n. +\end{equation} + +\begin{equation} +\label{GenDiscreteqHermiteII2} +(-it;q)_{\infty}\cdot\qhyp{1}{1}{ix}{-it}{it}=\sum_{n=0}^{\infty} +\frac{(-1)^nq^{n(n-1)}}{(q;q)_n}{\tilde h}_n(x;q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Al-Salam-Carlitz~II $\rightarrow$ Discrete $q$-Hermite~II} +The discrete $q$-Hermite~II polynomials given by +(\ref{DefDiscreteqHermiteII}) follow from the Al-Salam-Carlitz~II +polynomials given by (\ref{DefAlSalamCarlitzII}) by the substitution $a=-1$ +in the following way: +$$i^{-n}V_n^{(-1)}(ix;q)={\tilde h}_n(x;q).$$ + +\subsubsection*{Discrete $q$-Hermite~II $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be found +from the discrete $q$-Hermite~II polynomials given by +(\ref{DefDiscreteqHermiteII}) in the following way: +\begin{equation} +\lim_{q\rightarrow 1}\frac{{\tilde h}_n(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. +\end{equation} + +\subsection*{Remark} The discrete $q$-Hermite~II polynomials are related to the +discrete $q$-Hermite~I polynomials given by (\ref{DefDiscreteqHermiteI}) +in the following way: +$${\tilde h}_n(x;q^{-1})=i^{-n}h_n(ix;q).$$ + +\subsection*{References} +\cite{BergIsmail}, \cite{Koorn97}. + +\end{document} diff --git a/KLSadd_insertion/svmono.cls b/KLSadd_insertion/svmono.cls new file mode 100644 index 0000000..2341bee --- /dev/null +++ b/KLSadd_insertion/svmono.cls @@ -0,0 +1,1690 @@ +% SVMONO DOCUMENT CLASS -- version 3.9 (23-Jul-03) +% Springer Verlag global LaTeX2e support for monographs +%% +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{svmono}[2003/07/23 3.9 +^^JSpringer Verlag global LaTeX document class for monographs] + +% Options +% citations +\DeclareOption{natbib}{\ExecuteOptions{oribibl}% +\AtEndOfClass{% Loading package 'NATBIB' +\RequirePackage{natbib} +% Changing some parameters of NATBIB +\setlength{\bibhang}{\parindent} +%\setlength{\bibsep}{0mm} +\let\bibfont=\small +\def\@biblabel#1{#1.} +\newcommand{\etal}{\textit{et al}.} +%\bibpunct[,]{(}{)}{;}{a}{}{,}}} +}} +% Springer environment +\let\if@spthms\iftrue +\DeclareOption{nospthms}{\let\if@spthms\iffalse} +% +\let\envankh\@empty % no anchor for "theorems" +% +\let\if@envcntreset\iffalse % environment counter is not reset +\let\if@envcntresetsect=\iffalse % reset each section? +\DeclareOption{envcountresetchap}{\let\if@envcntreset\iftrue} +\DeclareOption{envcountresetsect}{\let\if@envcntreset\iftrue +\let\if@envcntresetsect=\iftrue} +% +\let\if@envcntsame\iffalse % NOT all environments work like "Theorem", + % each using its own counter +\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} +% +\let\if@envcntshowhiercnt=\iffalse % do not show hierarchy counter at all +% +% enhance theorem counter +\DeclareOption{envcountchap}{\def\envankh{chapter}% show \thechapter along with theorem number +\let\if@envcntshowhiercnt=\iftrue +\ExecuteOptions{envcountreset}} +% +\DeclareOption{envcountsect}{\def\envankh{section}% show \thesection along with theorem number +\let\if@envcntshowhiercnt=\iftrue +\ExecuteOptions{envcountreset}} +% +% languages +\let\switcht@@therlang\relax +\let\svlanginfo\relax +\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}% +\gdef\svlanginfo{\typeout{Man spricht deutsch.}\global\let\svlanginfo\relax}} +\def\ds@francais{\def\switcht@@therlang{\switcht@francais}% +\gdef\svlanginfo{\typeout{On parle francais.}\global\let\svlanginfo\relax}} +% +\AtBeginDocument{\@ifpackageloaded{babel}{% +\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% +\@ifundefined{extrasUKenglish}{}{\addto\extrasUKenglish{\switcht@albion}}% +\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% +\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% +}{\switcht@@therlang}% +} +% numbering style of floats, equations +\newif\if@numart \@numartfalse +\DeclareOption{numart}{\@numarttrue} +\def\set@numbering{\if@numart\else\num@book\fi} +\AtEndOfClass{\set@numbering} +% style for vectors +\DeclareOption{vecphys}{\def\vec@style{phys}} +\DeclareOption{vecarrow}{\def\vec@style{arrow}} +% running heads +\let\if@runhead\iftrue +\DeclareOption{norunningheads}{\let\if@runhead\iffalse} +% referee option +\let\if@referee\iffalse +\def\makereferee{\def\baselinestretch{2}\selectfont +\newbox\refereebox +\setbox\refereebox=\vbox to\z@{\vskip0.5cm% + \hbox to\textwidth{\normalsize\tt\hrulefill\lower0.5ex + \hbox{\kern5\p@ referee's copy\kern5\p@}\hrulefill}\vss}% +\def\@oddfoot{\copy\refereebox}\let\@evenfoot=\@oddfoot} +\DeclareOption{referee}{\let\if@referee\iftrue +\AtBeginDocument{\makereferee\small\normalsize}} +% modification of thebibliography +\let\if@openbib\iffalse +\DeclareOption{openbib}{\let\if@openbib\iftrue} +% LaTeX standard, sectionwise references +\DeclareOption{oribibl}{\let\oribibl=Y} +\DeclareOption{sectrefs}{\let\secbibl=Y} +% +% footinfo option (provides an informatory line on every page) +\def\SpringerMacroPackageNameA{svmono.cls} +% \thetime, \thedate and \timstamp are macros to include +% time, date (or both) of the TeX run in the document +\def\maketimestamp{\count255=\time +\divide\count255 by 60\relax +\edef\thetime{\the\count255:}% +\multiply\count255 by-60\relax +\advance\count255 by\time +\edef\thetime{\thetime\ifnum\count255<10 0\fi\the\count255} +\edef\thedate{\number\day-\ifcase\month\or Jan\or Feb\or Mar\or + Apr\or May\or Jun\or Jul\or Aug\or Sep\or Oct\or + Nov\or Dec\fi-\number\year} +\def\timstamp{\hbox to\hsize{\tt\hfil\thedate\hfil\thetime\hfil}}} +\maketimestamp +% +% \footinfo generates a info footline on every page containing +% pagenumber, jobname, macroname, and timestamp +\DeclareOption{footinfo}{\AtBeginDocument{\maketimestamp + \def\@oddfoot{\footnotesize\tt Page: \thepage\hfil job: \jobname\hfil + macro: \SpringerMacroPackageNameA\hfil + date/time: \thedate/\thetime}% + \let\@evenfoot=\@oddfoot}} +% +% start new chapter on any page +\newif\if@openright \@openrighttrue +\DeclareOption{openany}{\@openrightfalse} +% +% no size changing allowed +\DeclareOption{11pt}{\OptionNotUsed} +\DeclareOption{12pt}{\OptionNotUsed} +% options for the article class +\def\@rticle@options{10pt,twoside} +% fleqn +\DeclareOption{fleqn}{\def\@rticle@options{10pt,twoside,fleqn}% +\AtEndOfClass{\let\leftlegendglue\relax}% +\AtBeginDocument{\mathindent\parindent}} +% hanging sectioning titles +\let\if@sechang\iffalse +\DeclareOption{sechang}{\let\if@sechang\iftrue} +\def\ClassInfoNoLine#1#2{% + \ClassInfo{#1}{#2\@gobble}% +} +\let\SVMonoOpt\@empty +\DeclareOption*{\InputIfFileExists{sv\CurrentOption.clo}{% +\global\let\SVMonoOpt\CurrentOption}{% +\ClassWarning{Springer-SVMono}{Specified option or subpackage +"\CurrentOption" \MessageBreak not found +passing it to article class \MessageBreak +-}\PassOptionsToClass{\CurrentOption}{article}% +}} +\ProcessOptions\relax +\ifx\SVMonoOpt\@empty\relax +\ClassInfoNoLine{Springer-SVMono}{extra/valid Springer sub-package +\MessageBreak not found in option list - using "global" style}{} +\fi +\LoadClass[\@rticle@options]{article} +\raggedbottom + +% various sizes and settings for monographs + +%\setlength{\textwidth}{28pc} % 11.8cm +\setlength{\textwidth}{43pc} % 11.8cm +%\setlength{\textheight}{12pt}\multiply\textheight by 45\relax +%\setlength{\textheight}{540\p@} +\setlength{\textheight}{720\p@} +%\setlength{\topmargin}{0cm} +\setlength{\topmargin}{-2cm} +%\setlength\oddsidemargin {63\p@} +%\setlength\evensidemargin {63\p@} +\setlength\oddsidemargin {-28\p@} +\setlength\evensidemargin {-28\p@} +\setlength\marginparwidth{90\p@} +\setlength\headsep {12\p@} + +\setlength{\parindent}{15\p@} +\setlength{\parskip}{\z@ \@plus \p@} +\setlength{\hfuzz}{2\p@} +\setlength{\arraycolsep}{1.5\p@} + +\frenchspacing + +\tolerance=500 + +\predisplaypenalty=0 +\clubpenalty=10000 +\widowpenalty=10000 + +\setlength\footnotesep{7.7\p@} + +\newdimen\betweenumberspace % dimension for space between +\betweenumberspace=5\p@ % number and text of titles +\newdimen\headlineindent % dimension for space of +\headlineindent=2.5cc % number and gap of running heads + +% fonts, sizes, and the like +\renewcommand\small{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \parsep \z@ \@plus\p@ \@minus\p@ + \topsep 6\p@ \@plus2\p@ \@minus4\p@ + \itemsep\z@}% + \belowdisplayskip \abovedisplayskip +} +% +\let\footnotesize=\small +% +\newenvironment{petit}{\par\addvspace{6\p@}\small}{\par\addvspace{6\p@}} +% + +% modification of automatic positioning of floating objects +\setlength\@fptop{\z@ } +\setlength\@fpsep{12\p@ } +\setlength\@fpbot{\z@ \@plus 1fil } +\def\textfraction{.01} +\def\floatpagefraction{.8} +\setlength{\intextsep}{20\p@ \@plus 2\p@ \@minus 2\p@} +\setcounter{topnumber}{4} +\def\topfraction{.9} +\setcounter{bottomnumber}{2} +\def\bottomfraction{.7} +\setcounter{totalnumber}{6} +% +% size and style of headings +\newcommand{\partsize}{\Large} +\newcommand{\partstyle}{\bfseries\boldmath} +\newcommand{\chapsize}{\Large} +\newcommand{\chapstyle}{\bfseries\boldmath} +\newcommand{\secsize}{\large} +\newcommand{\secstyle}{\bfseries\boldmath} +\newcommand{\subsecsize}{\normalsize} +\newcommand{\subsecstyle}{\bfseries\boldmath} + +\def\newendpage {\par + \ifdim \pagetotal>\topskip + \else\thispagestyle{empty} + \fi + \vfil\penalty -\@M} +\def\clearpage{% + \ifvmode + \ifnum \@dbltopnum =\m@ne + \ifdim \pagetotal <\topskip + \hbox{} + \fi + \fi + \fi + \newendpage + \write\m@ne{} + \vbox{} + \penalty -\@Mi +} +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else + \hbox{}\newendpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} + +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}} +\newcommand{\startnewpage}{\if@openright\clearemptydoublepage\else\clearpage\fi} + +% redefinition of \part +\renewcommand\part{\clearemptydoublepage + \thispagestyle{empty} + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \@ifundefined{thispagecropped}{}{\thispagecropped} + \secdef\@part\@spart} + +\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax + \refstepcounter{part} + \addcontentsline{toc}{part}{\partname\ + \thepart\thechapterend\hskip\betweenumberspace + #1}\else + \addcontentsline{toc}{part}{#1}\fi + \markboth{}{} + {\raggedleft + \ifnum \c@secnumdepth >-2\relax + \normalfont\partstyle\partsize\vrule height 34pt width 0pt depth 0pt% + \partname\ \thepart\llap{\smash{\lower 5pt\hbox to\textwidth{\hrulefill}}} + \par + \vskip 128.3\p@ \fi + #2\par}\@endpart} +% +% \@endpart finishes the part page +% +\def\@endpart{\vfil\newpage + \if@twoside + \hbox{} + \thispagestyle{empty} + \newpage + \fi + \if@tempswa + \twocolumn + \fi} +% +\def\@spart#1{{\raggedleft + \normalfont\partsize\partstyle + #1\par}\@endpart} +% +% (re)define sectioning +\setcounter{secnumdepth}{2} + +\def\seccounterend{} +\def\seccountergap{\hskip\betweenumberspace} +\def\@seccntformat#1{\csname the#1\endcsname\seccounterend\seccountergap\ignorespaces} +% +\let\firstmark=\botmark +% +\@ifundefined{thechapterend}{\def\thechapterend{}}{} +% +\if@sechang + \def\sec@hangfrom#1{\setbox\@tempboxa\hbox{#1}% + \hangindent\wd\@tempboxa\noindent\box\@tempboxa} +\else + \def\sec@hangfrom#1{\setbox\@tempboxa\hbox{#1}% + \hangindent\z@\noindent\box\@tempboxa} +\fi + +\def\chap@hangfrom#1{\noindent\vrule height 34pt width 0pt depth 0pt +\rlap{\smash{\lower 5pt\hbox to\textwidth{\hrulefill}}}\hbox{#1} +\vskip10pt} +\def\schap@hangfrom{\chap@hangfrom{}} + +\newcounter{chapter} +% +\@addtoreset{section}{chapter} +\@addtoreset{footnote}{chapter} + +\newif\if@mainmatter \@mainmattertrue +\newcommand\frontmatter{\startnewpage + \@mainmatterfalse\pagenumbering{Roman} + \setcounter{page}{5}} +% +\newcommand\mainmatter{\clearemptydoublepage + \@mainmattertrue\pagenumbering{arabic}} +% +\newcommand\backmatter{\clearemptydoublepage\@mainmatterfalse} + +\def\@chapapp{\chaptername} + +\newdimen\chapstarthookwidth +\newcommand\chapstarthook[2][0.66\textwidth]{% +\setlength{\chapstarthookwidth}{#1}% +\gdef\chapst@rthook{#2}} + +\newcommand{\processchapstarthook}{\@ifundefined{chapst@rthook}{}{% + \setbox0=\hbox{\vbox{ + \begin{flushright} + \begin{minipage}{\chapstarthookwidth} + \vrule\@width\z@\@height21\p@\@depth\z@ + \normalfont\small\itshape\chapst@rthook + \end{minipage} + \end{flushright}}}% + \@tempdima=\pagetotal + \advance\@tempdima by\ht0 + \ifdim\@tempdima<106\p@ + \multiply\@tempdima by-1 + \advance\@tempdima by106\p@ + \vskip\@tempdima + \fi + \box0\par + \global\let\chapst@rthook=\undefined}} + +\newcommand\chapter{\startnewpage + \@ifundefined{thispagecropped}{}{\thispagecropped} + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} + +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \if@mainmatter + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}{\protect + \numberline{\thechapter\thechapterend}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} + +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} + +%%changes position and layout of numbered chapter headings +\def\@makechapterhead#1{{\parindent\z@\raggedright\normalfont + \hyphenpenalty \@M + \interlinepenalty\@M + \chapsize\chapstyle + \chap@hangfrom{\thechapter\thechapterend\hskip\betweenumberspace}%!!! + \ignorespaces#1\par\nobreak + \processchapstarthook + \ifdim\pagetotal>157\p@ + \vskip 11\p@ + \else + \@tempdima=168\p@\advance\@tempdima by-\pagetotal + \vskip\@tempdima + \fi}} + +%%changes position and layout of unnumbered chapter headings +\def\@makeschapterhead#1{{\parindent \z@ \raggedright\normalfont + \hyphenpenalty \@M + \interlinepenalty\@M + \chapsize\chapstyle + \schap@hangfrom + \ignorespaces#1\par\nobreak + \processchapstarthook + \ifdim\pagetotal>157\p@ + \vskip 11\p@ + \else + \@tempdima=168\p@\advance\@tempdima by-\pagetotal + \vskip\@tempdima + \fi}} + +% predefined unnumbered headings +\newcommand{\preface}[1][\prefacename]{\chapter*{#1}\markboth{#1}{#1}} + +% measures and setting of sections +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-24\p@ \@plus -4\p@ \@minus -4\p@}% + {12\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\secsize\secstyle + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-17\p@ \@plus -4\p@ \@minus -4\p@}% + {10\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\subsecsize\subsecstyle + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-17\p@ \@plus -4\p@ \@minus -4\p@}% + {10\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\normalsize\subsecstyle + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-10\p@ \@plus -4\p@ \@minus -4\p@}% + {10\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\normalsize\itshape + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\def\subparagraph{\@startsection{subparagraph}{5}{\z@}% + {-5.388\p@ \@plus-4\p@ \@minus-4\p@}{-5\p@}{\normalfont\normalsize\itshape}} + +% Appendix +\renewcommand\appendix{\par + \stepcounter{chapter} + \setcounter{chapter}{0} + \stepcounter{section} + \setcounter{section}{0} + \setcounter{equation}{0} + \setcounter{figure}{0} + \setcounter{table}{0} + \setcounter{footnote}{0} + \def\@chapapp{\appendixname}% + \renewcommand\thechapter{\@Alph\c@chapter}} + +% definition of sections +% \hyphenpenalty and \raggedright added, so that there is no +% hyphenation and the text is set ragged-right in sectioning + +\def\runinsep{} +\def\aftertext{\unskip\runinsep} +% +\def\thesection{\thechapter.\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} +\def\thesubparagraph{\theparagraph.\arabic{subparagraph}} +\def\chaptermark#1{} +% +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \raggedright + \hyphenpenalty \@M + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \@xsect{#3}} +% +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \sec@hangfrom{\hskip #3\relax\@svsec}% + {\raggedright + \hyphenpenalty \@M + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7\seccounterend}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth + \else + \protect\numberline{\csname the#1\endcsname\seccounterend}% + \fi + #7}% + \else + \def\@svsechd{% + #6\hskip #3\relax + \@svsec #8\aftertext\ignorespaces + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname\seccounterend}% + \fi + #7}}% + \fi + \@xsect{#5}} + +% figures and tables are processed in small print +\def \@floatboxreset {% + \reset@font + \small + \@setnobreak + \@setminipage +} +\def\fps@figure{htbp} +\def\fps@table{htbp} + +% Frame for paste-in figures or tables +\def\mpicplace#1#2{% #1 =width #2 =height +\vbox{\hbox to #1{\vrule\@width \fboxrule \@height #2\hfill}}} + +% labels of enumerate +\renewcommand\labelenumii{\theenumii)} +\renewcommand\theenumii{\@alph\c@enumii} + +% labels of itemize +\renewcommand\labelitemi{\textbullet} +\renewcommand\labelitemii{\textendash} +\let\labelitemiii=\labelitemiv + +% labels of description +\renewcommand*\descriptionlabel[1]{\hspace\labelsep #1\hfil} + +% fixed indentation for standard itemize-environment +\newdimen\svitemindent \setlength{\svitemindent}{\parindent} + + +% make indentations changeable + +\def\setitemindent#1{\settowidth{\labelwidth}{#1}% + \let\setit@m=Y% + \leftmargini\labelwidth + \advance\leftmargini\labelsep + \def\@listi{\leftmargin\leftmargini + \labelwidth\leftmargini\advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\medskipamount + \itemsep=\parskip \advance\itemsep by -\parsep}} +\def\setitemitemindent#1{\settowidth{\labelwidth}{#1}% + \let\setit@m=Y% + \leftmarginii\labelwidth + \advance\leftmarginii\labelsep +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\z@ + \itemsep=\parskip \advance\itemsep by -\parsep}} +% +% adjusted environment "description" +% if an optional parameter (at the first two levels of lists) +% is present, its width is considered to be the widest mark +% throughout the current list. +\def\description{\@ifnextchar[{\@describe}{\list{}{\labelwidth\z@ + \itemindent-\leftmargin \let\makelabel\descriptionlabel}}} +% +\def\describelabel#1{#1\hfil} +\def\@describe[#1]{\relax\ifnum\@listdepth=0 +\setitemindent{#1}\else\ifnum\@listdepth=1 +\setitemitemindent{#1}\fi\fi +\list{--}{\let\makelabel\describelabel}} +% +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\setit@m\undefined + \ifnum \@itemdepth=1 \leftmargini=\svitemindent + \labelwidth\leftmargini\advance\labelwidth-\labelsep + \leftmarginii=\leftmargini \leftmarginiii=\leftmargini + \fi + \fi + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list + \csname\@itemitem\endcsname + {\def\makelabel##1{\rlap{##1}\hss}}% + \fi} +% +\newdimen\verbatimindent \verbatimindent\parindent +\def\verbatim{\advance\@totalleftmargin by\verbatimindent +\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} + +% +% special signs and characters +\newcommand{\D}{\mathrm{d}} +\newcommand{\E}{\mathrm{e}} +\let\eul=\E +\newcommand{\I}{{\rm i}} +\let\imag=\I +% +% the definition of uppercase Greek characters +% Springer likes them as italics to depict variables +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} +% the upright forms are defined here as \var +\DeclareMathSymbol{\varGamma}{\mathalpha}{operators}{"00} +\DeclareMathSymbol{\varDelta}{\mathalpha}{operators}{"01} +\DeclareMathSymbol{\varTheta}{\mathalpha}{operators}{"02} +\DeclareMathSymbol{\varLambda}{\mathalpha}{operators}{"03} +\DeclareMathSymbol{\varXi}{\mathalpha}{operators}{"04} +\DeclareMathSymbol{\varPi}{\mathalpha}{operators}{"05} +\DeclareMathSymbol{\varSigma}{\mathalpha}{operators}{"06} +\DeclareMathSymbol{\varUpsilon}{\mathalpha}{operators}{"07} +\DeclareMathSymbol{\varPhi}{\mathalpha}{operators}{"08} +\DeclareMathSymbol{\varPsi}{\mathalpha}{operators}{"09} +\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A} +% Upright Lower Case Greek letters without using a new MathAlphabet +\newcommand{\greeksym}[1]{\usefont{U}{psy}{m}{n}#1} +\newcommand{\greeksymbold}[1]{{\usefont{U}{psy}{b}{n}#1}} +\newcommand{\allmodesymb}[2]{\relax\ifmmode{\mathchoice +{\mbox{\fontsize{\tf@size}{\tf@size}#1{#2}}} +{\mbox{\fontsize{\tf@size}{\tf@size}#1{#2}}} +{\mbox{\fontsize{\sf@size}{\sf@size}#1{#2}}} +{\mbox{\fontsize{\ssf@size}{\ssf@size}#1{#2}}}} +\else +\mbox{#1{#2}}\fi} +% Definition of lower case Greek letters +\newcommand{\ualpha}{\allmodesymb{\greeksym}{a}} +\newcommand{\ubeta}{\allmodesymb{\greeksym}{b}} +\newcommand{\uchi}{\allmodesymb{\greeksym}{c}} +\newcommand{\udelta}{\allmodesymb{\greeksym}{d}} +\newcommand{\ugamma}{\allmodesymb{\greeksym}{g}} +\newcommand{\umu}{\allmodesymb{\greeksym}{m}} +\newcommand{\unu}{\allmodesymb{\greeksym}{n}} +\newcommand{\upi}{\allmodesymb{\greeksym}{p}} +\newcommand{\utau}{\allmodesymb{\greeksym}{t}} +% redefines the \vec accent to a bold character - if desired +\def\fig@type{arrow}% temporarily abused +\ifx\vec@style\fig@type\else +\@ifundefined{vec@style}{% + \def\vec#1{\ensuremath{\mathchoice + {\mbox{\boldmath$\displaystyle\mathbf{#1}$}} + {\mbox{\boldmath$\textstyle\mathbf{#1}$}} + {\mbox{\boldmath$\scriptstyle\mathbf{#1}$}} + {\mbox{\boldmath$\scriptscriptstyle\mathbf{#1}$}}}}% +} +{\def\vec#1{\ensuremath{\mathchoice + {\mbox{\boldmath$\displaystyle#1$}} + {\mbox{\boldmath$\textstyle#1$}} + {\mbox{\boldmath$\scriptstyle#1$}} + {\mbox{\boldmath$\scriptscriptstyle#1$}}}}% +} +\fi +% tensor +\def\tens#1{\relax\ifmmode\mathsf{#1}\else\textsf{#1}\fi} + +% end of proof symbol +\newcommand\qedsymbol{\hbox{\rlap{$\sqcap$}$\sqcup$}} +\newcommand\qed{\relax\ifmmode\else\unskip\quad\fi\qedsymbol} +\newcommand\smartqed{\renewcommand\qed{\relax\ifmmode\qedsymbol\else + {\unskip\nobreak\hfil\penalty50\hskip1em\null\nobreak\hfil\qedsymbol + \parfillskip=\z@\finalhyphendemerits=0\endgraf}\fi}} +% +\def\num@book{% +\renewcommand\thesection{\thechapter.\@arabic\c@section}% +\renewcommand\thesubsection{\thesection.\@arabic\c@subsection}% +\renewcommand\theequation{\thechapter.\@arabic\c@equation}% +\renewcommand\thefigure{\thechapter.\@arabic\c@figure}% +\renewcommand\thetable{\thechapter.\@arabic\c@table}% +\@addtoreset{section}{chapter}% +\@addtoreset{figure}{chapter}% +\@addtoreset{table}{chapter}% +\@addtoreset{equation}{chapter}} +% +% Ragged bottom for the actual page +\def\thisbottomragged{\def\@textbottom{\vskip\z@ \@plus.0001fil +\global\let\@textbottom\relax}} + +% This is texte.tex +% it defines various texts and their translations +% called up with documentstyle options +\def\switcht@albion{% +\def\abstractname{Summary.}% +\def\ackname{Acknowledgement.}% +\def\andname{and}% +\def\bibname{References}% +\def\lastandname{, and}% +\def\appendixname{Appendix}% +\def\chaptername{Chapter}% +\def\claimname{Claim}% +\def\conjecturename{Conjecture}% +\def\contentsname{Contents}% +\def\corollaryname{Corollary}% +\def\definitionname{Definition}% +\def\examplename{Example}% +\def\exercisename{Exercise}% +\def\figurename{Fig.}% +\def\keywordname{{\bf Key words:}}% +\def\indexname{Index}% +\def\lemmaname{Lemma}% +\def\contriblistname{List of Contributors}% +\def\listfigurename{List of Figures}% +\def\listtablename{List of Tables}% +\def\mailname{{\it Correspondence to\/}:}% +\def\noteaddname{Note added in proof}% +\def\notename{Note}% +\def\partname{Part}% +\def\prefacename{Preface}% +\def\problemname{Problem}% +\def\proofname{Proof}% +\def\propertyname{Property}% +\def\propositionname{Proposition}% +\def\questionname{Question}% +\def\refname{References}% +\def\remarkname{Remark}% +\def\seename{see}% +\def\solutionname{Solution}% +\def\subclassname{{\it Subject Classifications\/}:}% +\def\tablename{Table}% +\def\theoremname{Theorem}} +\switcht@albion +% Names of theorem like environments are already defined +% but must be translated if another language is chosen +% +% French section +\def\switcht@francais{\svlanginfo + \def\abstractname{R\'esum\'e.}% + \def\ackname{Remerciements.}% + \def\andname{et}% + \def\lastandname{ et}% + \def\appendixname{Appendice}% + \def\bibname{Bibliographie}% + \def\chaptername{Chapitre}% + \def\claimname{Pr\'etention}% + \def\conjecturename{Hypoth\`ese}% + \def\contentsname{Table des mati\`eres}% + \def\corollaryname{Corollaire}% + \def\definitionname{D\'efinition}% + \def\examplename{Exemple}% + \def\exercisename{Exercice}% + \def\figurename{Fig.}% + \def\keywordname{{\bf Mots-cl\'e:}}% + \def\indexname{Index}% + \def\lemmaname{Lemme}% + \def\contriblistname{Liste des contributeurs}% + \def\listfigurename{Liste des figures}% + \def\listtablename{Liste des tables}% + \def\mailname{{\it Correspondence to\/}:}% + \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% + \def\notename{Remarque}% + \def\partname{Partie}% + \def\prefacename{Avant-propos}% ou Pr\'eface + \def\problemname{Probl\`eme}% + \def\proofname{Preuve}% + \def\propertyname{Caract\'eristique}% +%\def\propositionname{Proposition}% + \def\questionname{Question}% + \def\refname{Lit\'erature}% + \def\remarkname{Remarque}% + \def\seename{voir}% + \def\solutionname{Solution}% + \def\subclassname{{\it Subject Classifications\/}:}% + \def\tablename{Tableau}% + \def\theoremname{Th\'eor\`eme}% +} +% +% German section +\def\switcht@deutsch{\svlanginfo + \def\abstractname{Zusammenfassung.}% + \def\ackname{Danksagung.}% + \def\andname{und}% + \def\lastandname{ und}% + \def\appendixname{Anhang}% + \def\bibname{Literaturverzeichnis}% + \def\chaptername{Kapitel}% + \def\claimname{Behauptung}% + \def\conjecturename{Hypothese}% + \def\contentsname{Inhaltsverzeichnis}% + \def\corollaryname{Korollar}% +%\def\definitionname{Definition}% + \def\examplename{Beispiel}% + \def\exercisename{\"Ubung}% + \def\figurename{Abb.}% + \def\keywordname{{\bf Schl\"usselw\"orter:}}% + \def\indexname{Sachverzeichnis}% +%\def\lemmaname{Lemma}% + \def\contriblistname{Mitarbeiter}% + \def\listfigurename{Abbildungsverzeichnis}% + \def\listtablename{Tabellenverzeichnis}% + \def\mailname{{\it Correspondence to\/}:}% + \def\noteaddname{Nachtrag}% + \def\notename{Anmerkung}% + \def\partname{Teil}% + \def\prefacename{Vorwort}% +%\def\problemname{Problem}% + \def\proofname{Beweis}% + \def\propertyname{Eigenschaft}% +%\def\propositionname{Proposition}% + \def\questionname{Frage}% + \def\refname{Literaturverzeichnis}% + \def\remarkname{Anmerkung}% + \def\seename{siehe}% + \def\solutionname{L\"osung}% + \def\subclassname{{\it Subject Classifications\/}:}% + \def\tablename{Tabelle}% +%\def\theoremname{Theorem}% +} + +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +\gets\cr\to\cr}}}}} +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr +\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr +\noalign{\vskip\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +<\cr +\noalign{\vskip0.9\p@}=\cr}}}}} +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr +\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr +\noalign{\vskip\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr +\noalign{\vskip0.9\p@}=\cr}}}}} +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-\p@}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr +>\cr\noalign{\vskip-\p@}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.8\p@}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.3\p@}<\cr}}}}} +\def\bbbr{{\rm I\!R}} %reelle Zahlen +\def\bbbm{{\rm I\!M}} +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen +\def\bbbf{{\rm I\!F}} +\def\bbbh{{\rm I\!H}} +\def\bbbk{{\rm I\!K}} +\def\bbbp{{\rm I\!P}} +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}}}} +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.7\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.7\ht0\hss}\box0}}}} +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +T$}\hbox{\hbox to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox +to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox +to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox +to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}}}} +\def\bbbs{{\mathchoice +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\hbox +to\z@{\kern0.55\wd0\vrule\@height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\hbox +to\z@{\kern0.55\wd0\vrule\@height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\raise0.05\ht0\hbox +to\z@{\kern0.5\wd0\vrule\@height0.45\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.4\wd0\vrule\@height0.45\ht0\hss}\raise0.05\ht0\hbox +to\z@{\kern0.55\wd0\vrule\@height0.45\ht0\hss}\box0}}}} +\def\bbbz{{\mathchoice {\hbox{$\textstyle\sf Z\kern-0.4em Z$}} +{\hbox{$\textstyle\sf Z\kern-0.4em Z$}} +{\hbox{$\scriptstyle\sf Z\kern-0.3em Z$}} +{\hbox{$\scriptscriptstyle\sf Z\kern-0.2em Z$}}}} + +\let\ts\, + +\setlength \labelsep {5\p@} +\setlength\leftmargini {17\p@} +\setlength\leftmargin {\leftmargini} +\setlength\leftmarginii {\leftmargini} +\setlength\leftmarginiii {\leftmargini} +\setlength\leftmarginiv {\leftmargini} +\setlength\labelwidth {\leftmargini} +\addtolength\labelwidth{-\labelsep} + +\def\@listI{\leftmargin\leftmargini + \parsep=\parskip + \topsep=\medskipamount + \itemsep=\parskip \advance\itemsep by -\parsep} +\let\@listi\@listI +\@listi + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\z@ + \itemsep=\parskip + \advance\itemsep by -\parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\z@ + \itemsep=\parskip + \advance\itemsep by -\parsep + \partopsep=\topsep} + +\setlength\arraycolsep{1.5\p@} +\setlength\tabcolsep{1.5\p@} + +\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\chapter*{\contentsname \@mkboth{{\contentsname}}{{\contentsname}}} + \@starttoc{toc}\if@restonecol\twocolumn\fi} + +\setcounter{tocdepth}{2} + +\def\l@part#1#2{\addpenalty{\@secpenalty}% + \addvspace{2em \@plus\p@}% + \begingroup + \parindent \z@ + \rightskip \z@ \@plus 5em + \hrule\vskip5\p@ + \bfseries\boldmath + \leavevmode + #1\par + \vskip5\p@ + \hrule + \vskip\p@ + \nobreak + \endgroup} + +\def\@dotsep{2} + +\def\addnumcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline + {\thechapter}#3}{\thepage}}} +\def\addcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} +\def\addcontentsmarkwop#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}}} + +\def\@adcmk[#1]{\ifcase #1 \or +\def\@gtempa{\addnumcontentsmark}% + \or \def\@gtempa{\addcontentsmark}% + \or \def\@gtempa{\addcontentsmarkwop}% + \fi\@gtempa{toc}{chapter}} +\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} + +\def\l@chapter#1#2{\par\addpenalty{-\@highpenalty} + \addvspace{1.0em \@plus \p@} + \@tempdima \tocchpnum \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by \z@ \@plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip + {\bfseries\boldmath#1}\ifx0#2\hfil\null + \else + \nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern + \@dotsep mu$}\hfill + \nobreak\hbox to\@pnumwidth{\hss #2}% + \fi\par + \penalty\@highpenalty \endgroup} + +\newdimen\tocchpnum +\newdimen\tocsecnum +\newdimen\tocsectotal +\newdimen\tocsubsecnum +\newdimen\tocsubsectotal +\newdimen\tocsubsubsecnum +\newdimen\tocsubsubsectotal +\newdimen\tocparanum +\newdimen\tocparatotal +\newdimen\tocsubparanum +\tocchpnum=20\p@ % chapter {\bf 88.} \@plus 5.3\p@ +\tocsecnum=22.5\p@ % section 88.8. plus 4.722\p@ +\tocsubsecnum=30.5\p@ % subsection 88.8.8 plus 4.944\p@ +\tocsubsubsecnum=38\p@ % subsubsection 88.8.8.8 plus 4.666\p@ +\tocparanum=45\p@ % paragraph 88.8.8.8.8 plus 3.888\p@ +\tocsubparanum=53\p@ % subparagraph 88.8.8.8.8.8 plus 4.11\p@ +\def\calctocindent{% +\tocsectotal=\tocchpnum +\advance\tocsectotal by\tocsecnum +\tocsubsectotal=\tocsectotal +\advance\tocsubsectotal by\tocsubsecnum +\tocsubsubsectotal=\tocsubsectotal +\advance\tocsubsubsectotal by\tocsubsubsecnum +\tocparatotal=\tocsubsubsectotal +\advance\tocparatotal by\tocparanum} +\calctocindent + +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by \z@ \@plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +% +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} + +\renewcommand\listoffigures{% + \chapter*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% + } + +\renewcommand\listoftables{% + \chapter*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% + } + +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width 50\p@ + \kern2.6\p@} + +\newdimen\foot@parindent +\foot@parindent 10.83\p@ + +\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent\parshape\@ne\foot@parindent + \@tempdima}\par + \parindent \foot@parindent\noindent \hbox to \z@{% + \hss\hss$^{\@thefnmark}$ }#1} + +\if@spthms +% Definition of the "\spnewtheorem" command. +% +% Usage: +% +% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} +% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} +% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} +% +% New is "cap_font" and "body_font". It stands for +% fontdefinition of the caption and the text itself. +% +% "\spnewtheorem*" gives a theorem without number. +% +% A defined spnewthoerem environment is used as described +% by Lamport. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\@thmcountersep{.} +\def\@thmcounterend{.} +\newcommand\nocaption{\noexpand\@gobble} +\newdimen\spthmsep \spthmsep=3pt + +\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} + +% definition of \spnewtheorem with number + +\def\@spnthm#1#2{% + \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} +\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} + +\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@addtoreset{#1}{#3}% + \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@spothm#1[#2]#3#4#5{% + \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% + \expandafter\xdef\csname #1name\endcsname{#3}% + \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}}} + +\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\labelsep=\spthmsep\refstepcounter{#1}% +\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} + +\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% + \ignorespaces} + +\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname + the#1\endcsname}{#5}{#3}{#4}\ignorespaces} + +\def\normalthmheadings{\def\@spbegintheorem##1##2##3##4{\trivlist + \item[\hskip\labelsep{##3##1\ ##2\@thmcounterend}]##4} +\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{##4(##3)\@thmcounterend\ }##5}} +\normalthmheadings + +\def\reversethmheadings{\def\@spbegintheorem##1##2##3##4{\trivlist + \item[\hskip\labelsep{##3##2\ ##1\@thmcounterend}]##4} +\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##2\ ##1}]{##4(##3)\@thmcounterend\ }##5}} + +% definition of \spnewtheorem* without number + +\def\@sthm#1#2{\@Ynthm{#1}{#2}} + +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} + +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} + +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} + {#4}{#2}{#3}\ignorespaces} + +\def\@Begintheorem#1#2#3{#3\trivlist + \item[\hskip\labelsep{#2#1\@thmcounterend}]} + +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist + \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} + +% initialize theorem environment + +\if@envcntshowhiercnt % show hierarchy counter + \def\@thmcountersep{.} + \spnewtheorem{theorem}{Theorem}[\envankh]{\bfseries}{\itshape} + \@addtoreset{theorem}{chapter} +\else % theorem counter only + \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} + \if@envcntreset + \@addtoreset{theorem}{chapter} + \if@envcntresetsect + \@addtoreset{theorem}{section} + \fi + \fi +\fi + +%definition of divers theorem environments +\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} +\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} +% +\if@envcntsame % all environments like "Theorem" - using its counter + \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} +\else % all environments with their own counter + \if@envcntshowhiercnt % show hierarchy counter + \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[\envankh]{#3}{#4}} + \else % environment counter only + \if@envcntreset % environment counter is reset each section + \if@envcntresetsect + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{chapter}\@addtoreset{#1}{section}} + \else + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{chapter}} + \fi + \else + \let\spn@wtheorem=\@spynthm + \fi + \fi +\fi +% +\let\spdefaulttheorem=\spn@wtheorem +% +\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} +\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} +\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} +\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} +\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} +\spn@wtheorem{exercise}{Exercise}{\bfseries}{\rmfamily} +\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} +\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} +\spn@wtheorem{problem}{Problem}{\bfseries}{\rmfamily} +\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} +\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} +\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} +\spn@wtheorem{solution}{Solution}{\bfseries}{\rmfamily} +\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} +% +\newenvironment{theopargself} + {\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist + \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}}{} +\newenvironment{theopargself*} + {\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{\hspace*{-\labelsep}##4##3\@thmcounterend}##5} + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist + \item[\hskip\labelsep{##3##1}]{\hspace*{-\labelsep}##3##2\@thmcounterend}}}{} +\fi + +\def\@takefromreset#1#2{% + \def\@tempa{#1}% + \let\@tempd\@elt + \def\@elt##1{% + \def\@tempb{##1}% + \ifx\@tempa\@tempb\else + \@addtoreset{##1}{#2}% + \fi}% + \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname + \expandafter\def\csname cl@#2\endcsname{}% + \@tempc + \let\@elt\@tempd} + +% redefininition of the captions for "figure" and "table" environments +% +\@ifundefined{floatlegendstyle}{\def\floatlegendstyle{\bfseries}}{} +\def\floatcounterend{.\ } +\def\capstrut{\vrule\@width\z@\@height\topskip} +\@ifundefined{captionstyle}{\def\captionstyle{\normalfont\small}}{} +\@ifundefined{instindent}{\newdimen\instindent}{} + +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore\if@minipage\@setminipage\fi + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +\def\twocaptionwidth#1#2{\def\first@capwidth{#1}\def\second@capwidth{#2}} +% Default: .46\textwidth +\twocaptionwidth{.46\textwidth}{.46\textwidth} + +\def\leftcaption{\refstepcounter\@captype\@dblarg% + {\@leftcaption\@captype}} + +\def\rightcaption{\refstepcounter\@captype\@dblarg% + {\@rightcaption\@captype}} + +\long\def\@leftcaption#1[#2]#3{\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \vskip\figcapgap + \@maketwocaptions{\csname fnum@#1\endcsname}{\ignorespaces #3}% + {\first@capwidth}\ignorespaces\hspace{.073\textwidth}\hfill% + \endgroup} + +\long\def\@rightcaption#1[#2]#3{\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \@maketwocaptions{\csname fnum@#1\endcsname}{\ignorespaces #3}% + {\second@capwidth}\par + \endgroup} + +\long\def\@maketwocaptions#1#2#3{% + \parbox[t]{#3}{{\floatlegendstyle #1\floatcounterend}#2}} + +\def\fig@pos{l} +\newcommand{\leftfigure}[2][\fig@pos]{\makebox[.4635\textwidth][#1]{#2}} +\let\rightfigure\leftfigure + +\newdimen\figgap\figgap=0.5cm % hgap between figure and sidecaption +% +\long\def\@makesidecaption#1#2{% + \setbox0=\vbox{\hsize=\@tempdima + \captionstyle{\floatlegendstyle + #1\floatcounterend}#2}% + \ifdim\instindent<\z@ + \ifdim\ht0>-\instindent + \advance\instindent by\ht0 + \typeout{^^JClass-Warning: Legend of \string\sidecaption\space for + \@captype\space\csname the\@captype\endcsname + ^^Jis \the\instindent\space taller than the corresponding float - + ^^Jyou'd better switch the environment. }% + \instindent\z@ + \fi + \else + \ifdim\ht0<\instindent + \advance\instindent by-\ht0 + \advance\instindent by-\dp0\relax + \advance\instindent by\topskip + \advance\instindent by-11\p@ + \else + \advance\instindent by-\ht0 + \instindent=-\instindent + \typeout{^^JClass-Warning: Legend of \string\sidecaption\space for + \@captype\space\csname the\@captype\endcsname + ^^Jis \the\instindent\space taller than the corresponding float - + ^^Jyou'd better switch the environment. }% + \instindent\z@ + \fi + \fi + \parbox[b]{\@tempdima}{\captionstyle{\floatlegendstyle + #1\floatcounterend}#2% + \ifdim\instindent>\z@ \\ + \vrule\@width\z@\@height\instindent + \@depth\z@ + \fi}} +\def\sidecaption{\@ifnextchar[\sidec@ption{\sidec@ption[b]}} +\def\sidec@ption[#1]#2\caption{% +\setbox\@tempboxa=\hbox{\ignorespaces#2\unskip}% +\if@twocolumn + \ifdim\hsize<\textwidth\else + \ifdim\wd\@tempboxa<\columnwidth + \typeout{Double column float fits into single column - + ^^Jyou'd better switch the environment. }% + \fi + \fi +\fi + \instindent=\ht\@tempboxa + \advance\instindent by\dp\@tempboxa +\if t#1 +\else + \instindent=-\instindent +\fi +\@tempdima=\hsize +\advance\@tempdima by-\figgap +\advance\@tempdima by-\wd\@tempboxa +\ifdim\@tempdima<3cm + \ClassWarning{SVMono}{\string\sidecaption: No sufficient room for the legend; + ^^Jusing normal \string\caption}% + \unhbox\@tempboxa + \let\@capcommand=\@caption +\else + \ifdim\@tempdima<4.5cm + \ClassWarning{SVMono}{\string\sidecaption: Room for the legend very narrow; + ^^Jusing \string\raggedright}% + \toks@\expandafter{\captionstyle\sloppy + \rightskip=\z@\@plus6mm\relax}% + \def\captionstyle{\the\toks@}% + \fi + \let\@capcommand=\@sidecaption + \leavevmode + \unhbox\@tempboxa + \hfill +\fi +\refstepcounter\@captype +\@dblarg{\@capcommand\@captype}} +\long\def\@sidecaption#1[#2]#3{\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \@makesidecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\fig@type{figure} + +\def\leftlegendglue{\hfil} +\newdimen\figcapgap\figcapgap=5\p@ % vgap between figure and caption +\newdimen\tabcapgap\tabcapgap=5.5\p@ % vgap between caption and table + +\long\def\@makecaption#1#2{% + \captionstyle + \ifx\@captype\fig@type + \vskip\figcapgap + \fi + \setbox\@tempboxa\hbox{{\floatlegendstyle #1\floatcounterend}% + \capstrut #2}% + \ifdim \wd\@tempboxa >\hsize + {\floatlegendstyle #1\floatcounterend}\capstrut #2\par + \else + \hbox to\hsize{\leftlegendglue\unhbox\@tempboxa\hfil}% + \fi + \ifx\@captype\fig@type\else + \vskip\tabcapgap + \fi} + +\newcounter{merk} + +\def\endfigure{\resetsubfig\end@float} + +\@namedef{endfigure*}{\resetsubfig\end@dblfloat} + +\def\resetsubfig{\global\let\last@subfig=\undefined} + +\def\r@setsubfig{\xdef\last@subfig{\number\value{figure}}% +\setcounter{figure}{\value{merk}}% +\setcounter{merk}{0}} + +\def\subfigures{\refstepcounter{figure}% + \@tempcnta=\value{merk}% + \setcounter{merk}{\value{figure}}% + \setcounter{figure}{\the\@tempcnta}% + \def\thefigure{\if@numart\else\thechapter.\fi + \@arabic\c@merk\alph{figure}}% + \let\resetsubfig=\r@setsubfig} + +\def\samenumber{\addtocounter{\@captype}{-1}% +\@ifundefined{last@subfig}{}{\setcounter{merk}{\last@subfig}}} + +% redefinition of the "bibliography" environment +% +\def\biblstarthook#1{\gdef\biblst@rthook{#1}} +% +\AtBeginDocument{% +\ifx\secbibl\undefined + \def\bibsection{\chapter*{\refname}\markboth{\refname}{\refname}% + \addcontentsline{toc}{chapter}{\refname}% + \csname biblst@rthook\endcsname} +\else + \def\bibsection{\section*{\refname}\markright{\refname}% + \addcontentsline{toc}{section}{\refname}% + \csname biblst@rthook\endcsname} +\fi} +\ifx\oribibl\undefined % Springer way of life + \renewenvironment{thebibliography}[1]{\bibsection + \global\let\biblst@rthook=\undefined + \def\@biblabel##1{##1.} + \small + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + \def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw + {\let\protect\noexpand\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\else % original bibliography is required + \let\bibname=\refname + \renewenvironment{thebibliography}[1] + {\chapter*{\bibname + \@mkboth{\bibname}{\bibname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\fi + +\let\if@threecolind\iffalse +\def\threecolindex{\let\if@threecolind\iftrue} +\def\indexstarthook#1{\gdef\indexst@rthook{#1}} +\renewenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \columnseprule \z@ + \columnsep 1cc + \@nobreaktrue + \if@threecolind + \begin{multicols}{3}[\chapter*{\indexname}% + \else + \begin{multicols}{2}[\chapter*{\indexname}% + \fi + {\csname indexst@rthook\endcsname}]% + \global\let\indexst@rthook=\undefined + \markboth{\indexname}{\indexname}% + \addcontentsline{toc}{chapter}{\indexname}% + \flushbottom + \parindent\z@ + \rightskip\z@ \@plus 40\p@ + \parskip\z@ \@plus .3\p@\relax + \flushbottom + \let\item\@idxitem + \def\,{\relax\ifmmode\mskip\thinmuskip + \else\hskip0.2em\ignorespaces\fi}% + \normalfont\small} + {\end{multicols} + \global\let\if@threecolind\iffalse + \if@restonecol\onecolumn\else\clearpage\fi} + +\def\idxquad{\hskip 10\p@}% space that divides entry from number + +\def\@idxitem{\par\setbox0=\hbox{--\,--\,--\enspace}% + \hangindent\wd0\relax} + +\def\subitem{\par\noindent\setbox0=\hbox{--\enspace}% second order + \kern\wd0\setbox0=\hbox{--\,--\,--\enspace}% + \hangindent\wd0\relax}% indexentry + +\def\subsubitem{\par\noindent\setbox0=\hbox{--\,--\enspace}% third order + \kern\wd0\setbox0=\hbox{--\,--\,--\enspace}% + \hangindent\wd0\relax}% indexentry + +\def\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} + +\def\subtitle#1{\gdef\@subtitle{#1}} +\def\@subtitle{} + +\def\maketitle{\par + \begingroup + \def\thefootnote{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox + to\z@{$\m@th^{\@thefnmark}$\hss}}% + \if@twocolumn + \twocolumn[\@maketitle]% + \else \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle \fi\thispagestyle{empty}\@thanks + \par\penalty -\@M + \endgroup + \setcounter{footnote}{0}% + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} + +\def\@maketitle{\newpage + \null + \vskip 2em % Vertical space above title. +\begingroup + \def\and{\unskip, } + \parindent=\z@ + \pretolerance=10000 + \rightskip=\z@ \@plus 3cm + {\LARGE % each author set in \LARGE + \lineskip .5em + \@author + \par}% + \vskip 2cm % Vertical space after author. + {\Huge \@title \par}% % Title set in \Huge size. + \vskip 1cm % Vertical space after title. + \if!\@subtitle!\else + {\LARGE\ignorespaces\@subtitle \par} + \vskip 1cm % Vertical space after subtitle. + \fi + \if!\@date!\else + {\large \@date}% % Date set in \large size. + \par + \vskip 1.5em % Vertical space after date. + \fi + \vfill + {\Large Springer\par} + \vskip 5\p@ + \large + Berlin\enspace Heidelberg\enspace New\kern0.1em York\\ + Hong\thinspace Kong\enspace London\\ + Milan\enspace Paris\enspace Tokyo\par +\endgroup} + +% Useful environments +\newenvironment{acknowledgement}{\par\addvspace{17\p@}\small\rm +\trivlist\item[\hskip\labelsep{\it\ackname}]} +{\endtrivlist\addvspace{6\p@}} +% +\newenvironment{noteadd}{\par\addvspace{17\p@}\small\rm +\trivlist\item[\hskip\labelsep{\it\noteaddname}]} +{\endtrivlist\addvspace{6\p@}} +% +\renewenvironment{abstract}{% + \advance\topsep by0.35cm\relax\small + \labelwidth=\z@ + \listparindent=\z@ + \itemindent\listparindent + \trivlist\item[\hskip\labelsep\bfseries\abstractname]% + \if!\abstractname!\hskip-\labelsep\fi + } + {\endtrivlist} + +% define the running headings of a twoside text +\def\runheadsize{\small} +\def\runheadstyle{\rmfamily\upshape} +\def\customizhead{\hspace{\headlineindent}} + +\def\ps@headings{\let\@mkboth\markboth + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\runheadsize\runheadstyle\rlap{\thepage}\customizhead + \leftmark\hfil} + \def\@oddhead{\hfil\runheadsize\runheadstyle\rightmark\customizhead + \llap{\thepage}} + \def\chaptermark##1{\markboth{{\ifnum\c@secnumdepth>\m@ne + \thechapter\thechapterend\hskip\betweenumberspace\fi ##1}}{{\ifnum %!!! + \c@secnumdepth>\m@ne\thechapter\thechapterend\hskip\betweenumberspace\fi ##1}}}%!!! + \def\sectionmark##1{\markright{{\ifnum\c@secnumdepth>\z@ + \thesection\seccounterend\hskip\betweenumberspace\fi ##1}}}} + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\runheadsize\runheadstyle\rlap{\thepage}\customizhead + \leftmark\hfil} + \def\@oddhead{\hfil\runheadsize\runheadstyle\rightmark\customizhead + \llap{\thepage}} + \let\chaptermark\@gobble + \let\sectionmark\@gobble + \let\subsectionmark\@gobble} + + +\ps@headings + +\endinput +%end of file svmono.cls diff --git a/KLSadd_insertion/tempchap09.tex b/KLSadd_insertion/tempchap09.tex new file mode 100644 index 0000000..71f90cb --- /dev/null +++ b/KLSadd_insertion/tempchap09.tex @@ -0,0 +1,3926 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\addtocounter{chapter}{8} +\pagenumbering{roman} +\chapter{Hypergeometric orthogonal polynomials} +\label{HyperOrtPol} + + +In this chapter we deal with all families of hypergeometric orthogonal polynomials +appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal +polynomials we state the most important properties such as a representation as a +hypergeometric function, orthogonality relation(s), the three-term recurrence relation, +the second-order differential or difference equation, the forward shift (or degree lowering) +and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating +functions. In each case we use the notation which seems to be most common in the literature. +Moreover, in each case we mention the connection between various families by stating the +appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of +this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. +For notations the reader is referred to chapter~\ref{Definitions}. + +\section{Wilson}\index{Wilson polynomials} + +\par + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefWilson} +& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ +& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then +\begin{eqnarray} +\label{OrthIWilson} +& &\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, +\end{eqnarray} +where +\begin{eqnarray*} +& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ +& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). +\end{eqnarray*} +If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates +occur with positive real parts, then +\begin{eqnarray} +\label{OrtIIWilson} +& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ +& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} +{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} +\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ +& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecWilson} +-\left(a^2+x^2\right){\tilde{W}}_n(x^2) +=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), +\end{equation} +where +$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecWilson} +xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvWilson} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=W_n(x^2;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] +\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1WilsonI} +& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) +-W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1WilsonII} +& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ +& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{eqnarray} + +\newpage + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2WilsonI} +& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) +(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) +W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2WilsonII} +& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ +& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodWilson} +& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ +& &{}=\left(\frac{\delta}{\delta x^2}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenWilson1} +\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson2} +\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson3} +\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. +\end{equation} + +\begin{eqnarray} +\label{GenWilson4} +& &(1-t)^{1-a-b-c-d}\nonumber\\ +& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} +{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} +The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the +Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: +\begin{equation} +\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson +polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, +$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following +way: +\begin{equation} +\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson +polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Remarks} +Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then +\begin{eqnarray} +\label{OrtContHahn} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) +p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} +{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecContHahn} +(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), +\end{equation} +where +$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecContHahn} +xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvContHahn} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] +\displaystyle D(x)=(a+ix)(b+ix). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1ContHahnI} +& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, +b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1ContHahnII} +\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) +p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2ContHahnI} +& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, +b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2ContHahnII} +& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ +& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ +& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodContHahn} +& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ +& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenContHahn1} +\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenContHahn2} +\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenContHahn3} +& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} +{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials are obtained from the Wilson polynomials given by +(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, +$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit +$t\rightarrow\infty$ in the following way: +$$\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the +continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ +and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. +\end{equation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials +by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous +Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray} + +\subsection*{Remark} +Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ +Thus, under these assumptions, the continuous Hahn polynomial +$p_n(x;a,b,c,d)$ +is symmetric in $a,b$ and in $c,d$. +This follows from the orthogonality relation (9.4.2) +together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ +As a consequence, it is sufficient to give generating function (9.4.11). Then the generating +function (9.4.12) will follow by symmetry in the parameters. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special cases} +In the following special case there is a reduction to +Meixner-Pollaczek: +\begin{equation} +p_n(x;a,a+\thalf,a,a+\thalf)= +\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). +\end{equation} +See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the +Meixner-Pollaczek polynonmials are defined different from (9.7.1), +without a constant factor in front). + +For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have +\begin{eqnarray} +\label{OrtHahn} +& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHahn} +-xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), +\end{equation} +where +$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] +\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHahn} +xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvHahn} +n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] +\displaystyle D(x)=x(x-\beta-N-1). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1HahnI} +& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1HahnII} +\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2HahnI} +& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ +& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2HahnII} +& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ +& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), +\end{eqnarray} +where +$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodHahn} +& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenHahn1} +\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenHahn2} +& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenHahn3} +& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} +{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Hahn} +If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we obtain the Hahn polynomials. Hence +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ +And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we also obtain the Hahn polynomials: +$$\lim_{\gamma\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ +Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in +the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit +$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take +$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials +by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials +if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the +dual Hahn polynomials given by (\ref{DefDualHahn}). + +\noindent +Since +$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ +we obtain the dual orthogonality relation for the Hahn polynomials from the +orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} +Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ +& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. +\end{eqnarray*} + +\subsection*{References} +\label{sec9.5} +% +\paragraph{Special values} +\begin{equation} +Q_n(0;\al,\be,N)=1,\quad +Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{95} +\end{equation} +Use (9.5.1) and compare with (9.8.1) and \eqref{50}. + +From (9.5.3) and \eqref{1} it follows that +\begin{equation} +Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. +\label{30} +\end{equation} +From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that +\begin{equation} +Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). +\label{44} +\end{equation} +% +\paragraph{Symmetries} +By the orthogonality relation (9.5.2): +\begin{equation} +\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), +\label{96} +\end{equation} +It follows from \eqref{97} and \eqref{45} that +\begin{equation} +\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} +=Q_n(x;-N-\be-1,-N-\al-1,N) +\qquad(x=0,1,\ldots,N). +\label{100} +\end{equation} +% +\paragraph{Duality} +The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: +% +\begin{equation} +Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). +\label{45} +\end{equation} +% +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, +\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, +\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, +\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, +\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, +\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, +\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, +\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, +\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, +\cite{Zarzo+}. + + +\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefDualHahn} +R_n(\lambda(x);\gamma,\delta,N)= +\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\lambda(x)=x(x+\gamma+\delta+1).$$ + +\subsection*{Orthogonality relation} +For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have +\begin{eqnarray} +\label{OrtDualHahn} +& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDualHahn} +\lambda(x)R_n(\lambda(x)) +=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), +\end{equation} +where +$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] +\displaystyle C_n=n(n-\delta-N-1). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDualHahn} +xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvDualHahn} +-ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] +\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualHahnI} +& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1DualHahnII} +\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= +-\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualHahnI} +& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ +& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualHahnII} +& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ +& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), +\end{eqnarray} +where +$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} +{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ + +\newpage + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDualHahn} +\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) +=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], +\end{equation} +where +$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenDualHahn1} +(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn2} +& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ +& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{eqnarray} + +\begin{equation} +\label{GenDualHahn3} +\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N +\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn4} +& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, +\quad\textrm{$\epsilon$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Dual Hahn} +If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we obtain the dual Hahn polynomials: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we also obtain the dual Hahn polynomials: +$$\lim_{\alpha\rightarrow\infty} +R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition +(\ref{DefRacah}) of the Racah polynomials and take the limit +$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials +if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). +\end{equation} + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual +Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) +of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). + +\noindent +Since +$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ +we obtain the dual orthogonality relation for the dual Hahn polynomials +from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ +& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. +\end{eqnarray*} + +\subsection*{References} +\label{sec9.6} +% +\paragraph{Special values} +By \eqref{44} and \eqref{45} we have +\begin{equation} +R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. +\label{47} +\end{equation} +It follows from \eqref{95} and \eqref{45} that +\begin{equation} +R_N(x(x+\ga+\de+1);\ga,\de,N) +=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). +\label{101} +\end{equation} +% +\paragraph{Symmetries} +Write the weight in (9.6.2) as +\begin{equation} +w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, +\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. +\label{98} +\end{equation} +Then +\begin{equation} +(\de+1)_N\,w_{N-x}(\ga,\de,N)= +(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). +\label{99} +\end{equation} +Hence, by (9.6.2), +\begin{equation} +\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} +=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). +\label{97} +\end{equation} +Alternatively, \eqref{97} follows from (9.6.1) and +\mycite{DLMF}{(16.4.11)}. + +It follows from \eqref{96} and \eqref{45} that +\begin{equation} +\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} +{R_N(x(x+\ga+\de+1);\ga,\de,N)} +=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). +\label{102} +\end{equation} +% +\paragraph{Re: (9.6.11).} +The generating function (9.6.11) can be written in a more conceptual way as +\begin{equation} +(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, +\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, +\label{2} +\end{equation} +where +\begin{equation} +\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, +\label{3} +\end{equation} +i.e., the denominator on the \RHS\ of (9.6.2). +By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in +terms of Hahn polynomials: +\begin{equation} +(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, +\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, +\label{4} +\end{equation} +where +\begin{equation} +w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, +\label{5} +\end{equation} +i.e., the weight occurring in the orthogonality relation (9.5.2) +for Hahn polynomials. +\paragraph{Re: (9.6.15).} +There should be a closing bracket before the equality sign. +% +\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, +\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, +\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. + + +\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMP} +P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, +\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMP} +\frac{1}{2\pi}\int_{-\infty}^{\infty} +\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 +P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx +{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, +% \constraint{ +% $\lambda > 0$ & +% $0 < \phi < \pi$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMP} +& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] +P_n^{(\lambda)}(x;\phi)\nonumber\\ +& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMP} +xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ +\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), +\end{equation} +where +$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvMP} +& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ +& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MPI} +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) +P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MPII} +\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} +=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2MPI} +& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ +\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ +& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2MPII} +\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= +-(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) +P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), +\end{equation} +where +$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMP} +\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} +\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. +\end{equation} + +\newpage + +\subsection*{Generating functions} +\begin{equation} +\label{GenMP1} +(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= +\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. +\end{equation} + +\begin{equation} +\label{GenMP2} +\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= +\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenMP3} +& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials +given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, +$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the +definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit +$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: +$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ + +\newpage + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the +Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +\begin{equation} +\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek +polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +and then let $\lambda\rightarrow\infty$: +\begin{equation} +\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remark} +Since we have for $k-1$ and $\beta>-1$ we have +\begin{eqnarray} +\label{OrtJacobi1} +& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ +& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. +\end{eqnarray} +For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have +\begin{eqnarray} +\label{OrtJacobi2} +& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ +& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecJacobi} +xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} +{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) +\end{eqnarray} +where +$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{eqnarray} +\label{dvJacobi} +& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ +& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Jacobi} +\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2JacobiI} +& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ +\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2JacobiII} +& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ +& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodJacobi} +(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= +\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenJacobi1} +\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= +\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{eqnarray} +\label{GenJacobi2} +& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi3} +& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi4} +& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi5} +& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2} +\end{eqnarray} +with $\gamma$ arbitrary. + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by +substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +$$\lim_{t\rightarrow\infty} +\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} +{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) +by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ +in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take +$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have +$$\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi +polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials +if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: +\begin{equation} +\lim_{\alpha\rightarrow-\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials +by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: +$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} +(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ +In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ +and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the +following connection with the Meixner polynomials given by (\ref{DefMeixner}): +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by +(\ref{DefPseudoJacobi}) in the following way: +$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ + +\noindent +The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials +given by (\ref{DefGegenbauer}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\label{sec9.8} +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\begin{split} +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP +&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. +\end{split} +\label{60} +\end{equation} + +In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be +$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: +\begin{equation} +\begin{split} +&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ +&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. +\end{split} +\label{122} +\end{equation} + +% +\paragraph{Symmetry} +\begin{equation} +P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). +\label{48} +\end{equation} +Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Special values} +\begin{equation} +P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad +P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad +\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{50} +\end{equation} +Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Generating functions} +Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. +% +\paragraph{Bilateral generating functions} +For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): +\begin{align} +&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac1{(1+r)^{\al+\be+1}} +\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), +\label{58}\sLP +&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} +\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). +\label{59} +\end{align} +Formulas \eqref{58} and \eqref{59} were first +given by Bailey \myciteKLS{91}{(2.1), (2.3)}. +See Stanton \myciteKLS{485} for a shorter proof. +(However, in the second line of +\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ +As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows +from \eqref{58} +by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ +to both sides of \eqref{58}. +In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi +polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. +See also the discussion in Askey \myciteKLS{46}{following (2.32)}. +% +\paragraph{Quadratic transformations} +\begin{align} +\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} +=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} +&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, +\label{51}\\ +\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} +=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} +&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. +\label{52} +\end{align} +See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. +Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\begin{split} +\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= +-(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ +\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= +-(n+\al)\,P_n^{(\al-1,\be+1)}(x). +\end{split} +\label{68} +\end{equation} +% +\begin{equation} +\begin{split} +\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= +(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ +\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= +(n+\be)\,P_n^{(\al+1,\be-1)}(x). +\end{split} +\label{69} +\end{equation} +Formulas \eqref{68} and \eqref{69} follow from +\mycite{DLMF}{(15.5.4), (15.5.6)} +together with (9.8.1). They also follow from each other by \eqref{48}. +% +\paragraph{Generalized Gegenbauer polynomials} +These are defined by +\begin{equation} +S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad +S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{70} +\end{equation} +in the notation of \myciteKLS{146}{p.156} +(see also \cite{K27}), while \cite[Section 1.5.2]{K26} +has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. +For $\al,\be>-1$ we have the orthogonality relation +\begin{equation} +\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx +=0\qquad(m\ne n). +\label{71} +\end{equation} +For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of +continuous $q$-ultraspherical polynomials, see \eqref{176}. + +If we define the {\em Dunkl operator} $T_\mu$ by +\begin{equation} +(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x +\label{72} +\end{equation} +and if we choose the constants in \eqref{70} as +\begin{equation} +S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad +S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, +x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{73} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. +\label{74} +\end{equation} +Formula \eqref{74} with \eqref{73} substituted gives rise to two +differentiation formulas involving Jacobi polynomials which are equivalent to +(9.8.7) and \eqref{69}. + +Composition of \eqref{74} with itself gives +\[ +T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, +\] +which is equivalent to the composition of (9.8.7) and \eqref{69}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) +=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). +\label{75} +\end{equation} +Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. +% +\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, +\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, +\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, +\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, +\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, +\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, +\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, +\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, +\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, +\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, +\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, +\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, +\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, +\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, +\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, +\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, +\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, +\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, +\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, +\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, +\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, +\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, +\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, +\cite{Zayed}. + +\section*{Special cases} + +\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} +\index{Ultraspherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with +$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: +\begin{eqnarray} +\label{DefGegenbauer} +C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ +&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} +{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtGegenbauer} +& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ +& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, +\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecGegenbauer} +2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecGegenbauer} +xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), +\end{equation} +where +$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvGegenbauer} +(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Gegenbauer} +\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2GegenbauerI} +(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= +-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) +\end{equation} +or equivalently +\begin{eqnarray} +\label{shift2GegenbauerII} +& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ +& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodGegenbauer} +(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= +\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenGegenbauer1} +(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer2} +R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} +\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenGegenbauer3} +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} +=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer4} +\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenGegenbauer5} +& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenGegenbauer6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} +{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or +ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remarks} +The case $\lambda=0$ needs another normalization. In that case we have the +Chebyshev polynomials of the first kind described in the next subsection. + +\noindent +The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials +given by (\ref{DefJacobi}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\label{sec9.8.1} +% +\paragraph{Notation} +Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\frac{h_n}{h_0}= +\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad +h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad +\frac{h_n}{h_0\,(C_n^\la(1))^2}= +\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. +\label{61} +\end{equation} +% +\paragraph{Hypergeometric representation} +Beside (9.8.19) we have also +\begin{equation} +C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} +{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} +=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, +\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. +\label{57} +\end{equation} +See \mycite{DLMF}{(18.5.10)}. +% +\paragraph{Special value} +\begin{equation} +C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. +\label{49} +\end{equation} +Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Expression in terms of Jacobi} +% +\begin{equation} +\frac{C_n^\la(x)}{C_n^\la(1)}= +\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad +C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). +\label{65} +\end{equation} +% +\paragraph{Re: (9.8.21)} +By iteration of recurrence relation (9.8.21): +\begin{multline} +x^2 C_n^\la(x)= +\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ +\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ ++\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). +\label{6} +\end{multline} +% +\paragraph{Bilateral generating functions} +\begin{multline} +\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ +(r\in(-1,1),\;x,y\in[-1,1]). +\label{66} +\end{multline} +For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. +The Poisson kernel for Gegenbauer polynomials can be derived in a similar way +from \eqref{59}, or alternatively by applying the operator +$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: +\begin{multline} +\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ +\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad +(r\in(-1,1),\;x,y\in[-1,1]). +\label{67} +\end{multline} +Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} +as a limit case of their formula for the Poisson kernel for continuous +$q$-ultraspherical polynomials. +% +\paragraph{Trigonometric expansions} +By \mycite{DLMF}{(18.5.11), (15.8.1)}: +\begin{align} +C_n^{\la}(\cos\tha) +&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} +=e^{in\tha}\frac{(\la)_n}{n!}\, +\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ +&=\frac{(\la)_n}{2^\la n!}\, +e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, +\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ +&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, +\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} +\end{align} +In \eqref{104} and \eqref{105} we require that +$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ +and conditional for $0<\la\le\thalf$. + +By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: +\begin{align} +C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, +\sin\big((2k+n+1)\tha\big) +\label{7}\\ +&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ +&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, +\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, +\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ +&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, +\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, +\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. +\label{106} +\end{align} +We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in +\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for +$0<\la\le\thalf$. +For $\la\in\Zpos$ the above series terminate after the term with +$k=\la-1$. +Formulas \eqref{7} and \eqref{106} are also given in +\mycite{Sz}{(4.9.22), (4.9.25)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, +\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, +e^{ixy}\,dy +=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). +\label{8} +\end{equation} +See \mycite{DLMF}{(18.17.17) and (18.17.18)}. +% +\paragraph{Laplace transforms} +\begin{equation} +\frac2{n!\,\Ga(\la)}\, +\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). +\label{56} +\end{equation} +See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) +or Feldheim \cite[(28)]{K3} (1942). +\begin{equation} +\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, +(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt +=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). +\label{46} +\end{equation} +Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with +\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. +\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) +\begin{multline} +R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) +=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ +\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, +\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), +\label{108} +\end{multline} +where +\[ +R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad +\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} +{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. +\] +% +\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, +\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, +\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, +\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, +\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, +\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, +\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, +\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, +\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, +\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, +\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, +\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. + +\subsection{Chebyshev}\index{Chebyshev polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Chebyshev polynomials of the first kind can be obtained from the Jacobi +polynomials by taking $\alpha=\beta=-\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevI} +T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} +=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} +\end{equation} +and the Chebyshev polynomials of the second kind can be obtained from the +Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevII} +U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} +=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtChebyshevI} +\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= +\left\{\begin{array}{ll} +\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] +\cpi\,\delta_{mn}, & n=0. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{OrtChebyshevII} +\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relations} +\begin{equation} +\label{RecChebyshevI} +2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. +\end{equation} + +\begin{equation} +\label{RecChebyshevII} +2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. +\end{equation} + +\subsection*{Normalized recurrence relations} +\begin{equation} +\label{NormRecChebyshevI} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ + +\begin{equation} +\label{NormRecChebyshevII} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$U_n(x)=2^np_n(x).$$ + +\subsection*{Differential equations} +\begin{equation} +\label{dvChebyshevI} +(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). +\end{equation} + +\begin{equation} +\label{dvChebyshevII} +(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Chebyshev} +\frac{d}{dx}T_n(x)=nU_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2ChebyshevI} +(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2ChebyshevII} +\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] +=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formulas} +\begin{equation} +\label{RodChebyshevI} +(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. +\end{equation} + +\begin{equation} +\label{RodChebyshevII} +(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenChebyshevI1} +\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI2} +R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} +\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevI3} +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevI5} +& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevI6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{equation} +\label{GenChebyshevII1} +\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII2} +\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} +\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevII3} +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevII5} +& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevII6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Remarks} +The Chebyshev polynomials can also be written as: +$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ +and +$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ +Further we have +$$U_n(x)=C_n^{(1)}(x)$$ +where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) +polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. + +\subsection*{References} +\label{sec9.8.2} +In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) +and $U_n$ of the second kind (9.8.36), +\begin{align} +T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} +=\cos(n\tha),\quad x=\cos\tha,\\ +U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} +=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, +\end{align} +we have Chebyshev polynomials $V_n$ {\em of the third kind} +and $W_n$ {\em of the fourth kind}, +\begin{align} +V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} +=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ +W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} +=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, +\end{align} +see \cite[Section 1.2.3]{K20}. Then there is the symmetry +\begin{equation} +V_n(-x)=(-1)^n W_n(x). +\label{140} +\end{equation} + +The names of Chebyshev polynomials of the third and fourth kind +and the notation $V_n(x)$ are due to Gautschi \cite{K21}. +The notation $W_n(x)$ was first used by Mason \cite{K22}. +Names and notations for Chebyshev polynomials of the third and fourth +kind are interchanged in \mycite{AAR}{Remark 2.5.3} and +\mycite{DLMF}{Table 18.3.1}. +% +\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, +\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, +\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, +\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, +\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, +\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. + +\subsection{Legendre / Spherical}\index{Legendre polynomials} +\index{Spherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: +\begin{equation} +\label{DefLegendre} +P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLegendre} +\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLegendre} +(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLegendre} +xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), +\end{equation} +where +$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLegendre} +(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLegendre} +P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLegendre1} +\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre2} +\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre3} +\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenLegendre4} +& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenLegendre5} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{References} +\cite{Abram}, \cite{Alladi}, \cite{AlSalam90}, \cite{Bhonsle}, \cite{Brafman51}, +\cite{Carlitz57II}, \cite{Chihara78}, \cite{Danese}, \cite{Dattoli2001}, +\cite{DilcherStolarsky}, \cite{ElbertLaforgia94}, \cite{Erdelyi+}, \cite{Grad}, +\cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Rainville}, +\cite{Szego75}, \cite{Temme}, \cite{Zayed}. + +\newpage + +\section{Pseudo Jacobi}\index{Pseudo Jacobi polynomials}\index{Jacobi polynomials!Pseudo} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefPseudoJacobi} +P_n(x;\nu,N)&=&\frac{(-2i)^n(-N+i\nu)_n}{(n-2N-1)_n}\,\hyp{2}{1}{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}}\\ +&=&(x+i)^n\,\hyp{2}{1}{-n,N+1-n-i\nu}{2N+2-2n}{\frac{2}{1-ix}},\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtPseudoJacobi} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_m(x;\nu,N)P_n(x;\nu,N)\,dx\nonumber\\ +& &{}=\frac{\Gamma(2N+1-2n)\Gamma(2N+2-2n)2^{2n-2N-1}n!}{\Gamma(2N+2-n)\left|\Gamma(N+1-n+i\nu)\right|^2}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecPseudoJacobi} +xP_n(x;\nu,N)&=&P_{n+1}(x;\nu,N)+\frac{(N+1)\nu}{(n-N-1)(n-N)}P_n(x;\nu,N)\nonumber\\ +& &{}\mathindent{}-\frac{n(n-2N-2)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}\nonumber\\ +& &{}\mathindent\mathindent\times(n-N-1-i\nu)(n-N-1+i\nu)P_{n-1}(x;\nu,N). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecPseudoJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{(N+1)\nu}{(n-N-1)(n-N)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{n(n-2N-2)(n-N-1-i\nu)(n-N-1+i\nu)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}p_{n-1}(x), +\end{eqnarray} +where +$$P_n(x;\nu,N)=p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvPseudoJacobi} +(1+x^2)y''(x)+2\left(\nu-Nx\right)y'(x)-n(n-2N-1)y(x)=0, +\end{equation} +where +$$y(x)=P_n(x;\nu,N).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1PseudoJacobi} +\frac{d}{dx}P_n(x;\nu,N)=nP_{n-1}(x;\nu,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2PseudoJacobiI} +& &(1+x^2)\frac{d}{dx}P_n(x;\nu,N)+2\left[\nu-(N+1)x\right]P_n(x;\nu,N)\nonumber\\ +& &{}=(n-2N-2)P_{n+1}(x;\nu,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2PseudoJacobiII} +& &\frac{d}{dx}\left[(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_n(x;\nu,N)\right]\nonumber\\ +& &{}=(n-2N-2)(1+x^2)^{-N-2}\e^{2\nu\arctan x}P_{n+1}(x;\nu,N+1). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodPseudoJacobi} +P_n(x;\nu,N)=\frac{(1+x^2)^{N+1}\expe^{-2\nu\arctan x}}{(n-2N-1)_n} +\left(\frac{d}{dx}\right)^n\left[(1+x^2)^{n-N-1}\expe^{2\nu\arctan x}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{eqnarray} +\label{GenPseudoJacobi} +& &\left[\hyp{0}{1}{-}{-N+i\nu}{(x+i)t}\,\hyp{0}{1}{-}{-N-i\nu}{(x-i)t}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(n-2N-1)_n}{(-N+i\nu)_n(-N-i\nu)_nn!}P_n(x;\nu,N)t^n. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials follow from the continuous Hahn polynomials given by +(\ref{DefContHahn}) by the substitutions $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray*} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray*} + +\subsection*{Remarks} +Since we have for $k 0$ & +% $0 < c < 1$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMeixner} +(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ +& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMeixner} +xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ +\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), +\end{equation} +where +$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvMeixner} +n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), +\end{equation} +where +$$y(x)=M_n(x;\beta,c).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MeixnerI} +M_n(x+1;\beta,c)-M_n(x;\beta,c)= +\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MeixnerII} +\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2MeixnerI} +c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift2MeixnerII} +\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= +\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMeixner} +\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenMeixner1} +\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= +\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner2} +\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= +\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner3} +(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) +of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: +$$\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +To obtain the Meixner polynomials from the dual Hahn polynomials we have to take +$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of +the dual Hahn polynomials and let $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials +if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: +\begin{equation} +\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. +\end{equation} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials +if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). +\end{equation} + +\subsection*{Remarks} +The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) +in the following way: +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Meixner polynomials are also related to the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) in the following way: +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\label{sec9.9} +In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) +is considered +for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take +$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). +\] +Then $P_n$ can be expressed as a Meixner polynomial: +\[ +P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, +M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). +\] + +In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' +which turn out to be special Meixner polynomials: +$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, +\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, +\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, +\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, +\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Laguerre}\index{Laguerre polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefLaguerre} +L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLaguerre} +\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= +\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLaguerre} +(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLaguerre} +xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), +\end{equation} +where +$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLaguerre} +xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). +\end{equation} + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Laguerre} +\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2LaguerreI} +x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2LaguerreII} +\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLaguerre} +\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLaguerre1} +(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= +\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre2} +\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre3} +(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by +(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +$$\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) +if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: +$$\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition +(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain +the Laguerre polynomials: +$$\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre +polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be +written as: +$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ +In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. +Therefore they can be defined for all $\alpha$. + +\noindent +The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\noindent +The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\noindent +In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook +polynomials. + +\subsection*{References} +\label{sec9.11} +% +\paragraph{Special values} +By (9.11.1) and the binomial formula: +\begin{equation} +K_n(0;p,N)=1,\qquad +K_n(N;p,N)=(1-p^{-1})^n. +\label{9} +\end{equation} +The self-duality (p.240, Remarks, first formula) +\begin{equation} +K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) +\label{147} +\end{equation} +combined with \eqref{9} yields: +\begin{equation} +K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). +\label{148} +\end{equation} +% +\paragraph{Symmetry} +By the orthogonality relation (9.11.2): +\begin{equation} +\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). +\label{10} +\end{equation} +By \eqref{10} and \eqref{147} we have also +\begin{equation} +\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) +\qquad(n,x\in\{0,1,\ldots,N\}), +\label{149} +\end{equation} +and, by \eqref{149}, \eqref{10} and \eqref{9}, +\begin{equation} +K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) +\qquad(n,x\in\{0,1,\ldots,N\}). +\label{150} +\end{equation} +A particular case of \eqref{10} is: +\begin{equation} +K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). +\label{11} +\end{equation} +Hence +\begin{equation} +K_{2m+1}(N;\thalf,2N)=0. +\label{12} +\end{equation} +From (9.11.11): +\begin{equation} +K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. +\label{13} +\end{equation} +% +\paragraph{Quadratic transformations} +\begin{align} +K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, +R_m(x^2;-\thalf,-\thalf,N), +\label{31}\\ +K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, +x\,R_m(x^2-1;\thalf,\thalf,N-1), +\label{33}\\ +K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, +R_m(x(x+1);-\thalf,\thalf,N), +\label{32}\\ +K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, +(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), +\label{34} +\end{align} +where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use +(9.6.2), (9.11.2), (9.6.4) and (9.11.4). +% +\paragraph{Generating functions} +\begin{multline} +\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ +=\left(\frac{p-z+pz}p\right)^m +\left(\frac{q-z+qz}q\right)^n +(1+z)^{N-m-n} +K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). +\label{107} +\end{multline} +This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back +to Meixner \cite{K9}. +% +\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, +\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, +\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, +\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, +\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, +\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, +\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, +\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, +\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, +\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, +\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, +\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, +\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, +\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, +\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, +\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, +\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, +\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, +\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. + + +\section{Bessel}\index{Bessel polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefBessel} +y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ +&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, +\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBessel} +& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ +& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBessel} +& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ +& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ +& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecBessel} +xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), +\end{eqnarray} +where +$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvBessel} +x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Bessel} +\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2BesselI} +x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) +\end{equation} +or equivalently +\begin{equation} +\label{shift2BesselII} +\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodBessel} +y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenBessel} +\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a +\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. +\end{equation} + +\subsection*{Limit relation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials +and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: +$$\lim_{\alpha\rightarrow -\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ + +\subsection*{Remarks} +The following notations are also used for the Bessel polynomials: +$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ +However, the Bessel polynomials essentially depend on only one parameter. + +\noindent +The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi +polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the +pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: +$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, +\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, +\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. + + +\section{Charlier}\index{Charlier polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefCharlier} +C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtCharlier} +\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= +a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecCharlier} +-xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecCharlier} +xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), +\end{equation} +where +$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvCharlier} +-ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1CharlierI} +C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift1CharlierII} +\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2CharlierI} +C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift2CharlierII} +\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodCharlier} +\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenCharlier} +\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials +and let $\beta\rightarrow\infty$ we find the Charlier polynomials: +$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials can be found from the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials +if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). +\end{equation} + +\subsection*{Remark} +The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\subsection*{References} +\label{sec9.12} +\paragraph{Notation} +Here the Laguerre polynomial is denoted by $L_n^\al$ instead of +$L_n^{(\al)}$. +% +\paragraph{Hypergeometric representation} +\begin{align} +L_n^\al(x)&= +\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x +\label{182}\\ +&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} +\label{183}\\ +&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), +\label{184} +\end{align} +where $C_n$ in \eqref{184} is a +\hyperref[sec9.14]{Charlier polynomial}. +Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal +of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. +It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially +\myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special value} +\begin{equation} +L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. +\label{53} +\end{equation} +Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. +% +\paragraph{Quadratic transformations} +\begin{align} +H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), +\label{54}\\ +H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). +\label{55} +\end{align} +See p.244, Remarks, last two formulas. +Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, +e^{-y}\,y^\al\,e^{ixy}\,dy= +i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, +\label{14} +\end{equation} +see \mycite{DLMF}{(18.17.34)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\frac d{dx}\left(x^\al L_n^\al(x)\right)= +(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad +\left(x\frac d{dx}+\al\right)L_n^\al(x)= +(n+\al)\,L_n^{\al-1}(x). +\label{76} +\end{equation} +% +\begin{equation} +\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= +-e^{-x} L_n^{\al+1}(x),\qquad +\left(\frac d{dx}-1\right)L_n^\al(x)= +-L_n^{\al+1}(x). +\label{77} +\end{equation} +% +Formulas \eqref{76} and \eqref{77} follow from +\mycite{DLMF}{(13.3.18), (13.3.20)} +together with (9.12.1). +% +\paragraph{Generalized Hermite polynomials} +See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. +These are defined by +\begin{equation} +H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). +\label{78} +\end{equation} +Then for $\mu>-\thalf$ we have orthogonality relation +\begin{equation} +\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx +=0\qquad(m\ne n). +\label{79} +\end{equation} +Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. +If we choose the constants in \eqref{78} as +\begin{equation} +H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, + x\,L_m^{\mu+\half}(x^2) + \label{80} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_\mu H_n^\mu=2n\,H_{n-1}^\mu. +\label{81} +\end{equation} +Formula \eqref{81} with \eqref{80} substituted gives rise to two +differentiation formulas involving Laguerre polynomials which are equivalent to +(9.12.6) and \eqref{76}. + +Composition of \eqref{81} with itself gives +\[ +T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, +\] +which is equivalent to the composition of (9.12.6) and \eqref{76}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) +=-4(n+\al)\,L_{n-1}^\al(x^2). +\label{82} +\end{equation} +% +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, +\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, +\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, +\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, +\cite{Zeng90}. + + +\section{Hermite}\index{Hermite polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefHermite} +H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtHermite} +\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx +=2^nn!\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHermite} +H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHermite} +xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), +\end{equation} +where +$$H_n(x)=2^np_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvHermite} +y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Hermite} +\frac{d}{dx}H_n(x)=2nH_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2HermiteI} +\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2HermiteII} +\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodHermite} +\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenHermite1} +\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenHermite2} +\left\{\begin{array}{l} +\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] +\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite3} +\left\{\begin{array}{l} +\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] +\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite4} +\left\{\begin{array}{l} +\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= +\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] +\displaystyle\frac{xt}{\sqrt{1+t^2}}\, +\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} +=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} +\end{array}\right. +\end{equation} +with $\gamma$ arbitrary. + +\begin{equation} +\label{GenHermite5} +\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) +=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, +\end{equation} +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and +then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: +$$\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by +taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by +(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials can be obtained from the Laguerre polynomials given by +(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) +of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite +polynomials. In fact we have +$$\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ + +\subsection*{Remarks} +The Hermite polynomials can also be written as: +$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} +\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\noindent +The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\subsection*{References} +\label{sec9.14} +% +\paragraph{Hypergeometric representation} +\begin{align} +C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} +\label{179}\\ +&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a +\label{180}\\ +&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), +\label{181} +\end{align} +where $L_n^\al(x)$ is a +\hyperref[sec9.12]{Laguerre polynomial}. +Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal +of the summation. Finally \eqref{181} follows by \eqref{180} and +(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it +was earlier given in \myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, +\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, +\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, +\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, +\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, +\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, +\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, +\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, +\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, +\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, +\cite{Weisner59}, \cite{Wyman}. + +\end{document} diff --git a/KLSadd_insertion/tempchap14.tex b/KLSadd_insertion/tempchap14.tex new file mode 100644 index 0000000..0b5f396 --- /dev/null +++ b/KLSadd_insertion/tempchap14.tex @@ -0,0 +1,5734 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( + \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\pagenumbering{roman} +\addtocounter{chapter}{13} + +\chapter{Basic hypergeometric orthogonal polynomials} +\label{BasicHyperOrtPol} + + +In this chapter we deal with all families of basic hypergeometric orthogonal polynomials +appearing in the $q$-analogue of the Askey scheme on the pages~\pageref{qscheme1} and +\pageref{qscheme2}. For each family of orthogonal polynomials we state the most important +properties such as a representation as a basic hypergeometric function, orthogonality +relation(s), the three-term recurrence relation, the second-order $q$-difference equation, +the forward shift (or degree lowering) and backward shift (or degree raising) operator, a +Rodrigues-type formula and some generating functions. Throughout this chapter we assume +that $01$ and $b,c,d$ are real or one is real and the other two are complex conjugates,\\ +$\max(|b|,|c|,|d|)<1$ and the pairwise products of $a,b,c$ and $d$ have +absolute value less than $1$, then we have another orthogonality relation +given by: +\begin{eqnarray} +\label{OrtAskeyWilsonII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c,d|q)p_n(x;a,b,c,d|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 11$ and $b$ and $c$ are real or complex conjugates, +$\max(|b|,|c|)<1$ and the pairwise products of $a,b$ and $c$ have +absolute value less than $1$, then we have another orthogonality relation +given by: +\begin{eqnarray} +\label{OrtContDualqHahnII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c|q)p_n(x;a,b,c|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10$) in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we +obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): +\begin{equation} +\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). +\end{equation} + +\subsubsection*{Big $q$-Jacobi $\rightarrow$ Jacobi} +If we set $c=0$, $a=q^{\alpha}$ and $b=q^{\beta}$ in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and let $q\rightarrow 1$ we find the Jacobi +polynomials given by (\ref{DefJacobi}): +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},0;q)=\frac{P_n^{(\alpha,\beta)}(2x-1)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} +If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we +find +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},-q^{\gamma};q)=\frac{P_n^{(\alpha,\beta)}(x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsection*{Remarks} +The big $q$-Jacobi polynomials with $c=0$ and the little +$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related +in the following way: +$$P_n(x;a,b,0;q)=\frac{(bq;q)_n}{(aq;q)_n}(-1)^na^nq^{n+\binom{n}{2}}p_n(a^{-1}q^{-1}x;b,a|q).$$ + +\noindent +Sometimes the big $q$-Jacobi polynomials are defined in terms of four +parameters instead of three. In fact the polynomials given by the definition +$$P_n(x;a,b,c,d;q)=\qhyp{3}{2}{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}$$ +are orthogonal on the interval $[-d,c]$ with respect to the weight function +$$\frac{(c^{-1}qx,-d^{-1}qx;q)_{\infty}}{(ac^{-1}qx,-bd^{-1}qx;q)_{\infty}}d_qx.$$ +These polynomials are not really different from those given by +(\ref{DefBigqJacobi}) since we have +$$P_n(x;a,b,c,d;q)=P_n(ac^{-1}qx;a,b,-ac^{-1}d;q)$$ +and +$$P_n(x;a,b,c;q)=P_n(x;a,b,aq,-cq;q).$$ + +\subsection*{References} +\cite{NAlSalam89}, \cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{AtakKlimyk2004}, +\cite{AtakRahmanSuslov}, \cite{DattaGriffin}, \cite{FloreaniniVinetII}, +\cite{GasperRahman90}, \cite{GrunbaumHaine96}, \cite{Gupta92}, \cite{Hahn}, +\cite{Ismail86I}, \cite{IsmailStanton97}, \cite{IsmailWilson}, \cite{KalninsMiller88}, +\cite{KoelinkE}, \cite{Koorn90II}, \cite{Koorn93}, \cite{Koorn2007}, \cite{Miller89}, +\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{NoumiMimachi90III}, +\cite{NoumiMimachi91}, \cite{Spiridonov97}, \cite{SrivastavaJain90}. + + +\section*{Special case} + +\subsection{Big $q$-Legendre} +\index{Big q-Legendre polynomials@Big $q$-Legendre polynomials} +\index{q-Legendre polynomials@$q$-Legendre polynomials!Big} +\par + +\subsection*{Basic hypergeometric representation} The big $q$-Legendre polynomials are big $q$-Jacobi polynomials +with $a=b=1$: +\begin{equation} +\label{DefBigqLegendre} +P_n(x;c;q)=\qhyp{3}{2}{q^{-n},q^{n+1},x}{q,cq}{q}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBigqLegendre} +& &\int_{cq}^{q}P_m(x;c;q)P_n(x;c;q)\,d_qx\nonumber\\ +& &{}=q(1-c)\frac{(1-q)}{(1-q^{2n+1})} +\frac{(c^{-1}q;q)_n}{(cq;q)_n}(-cq^2)^nq^{\binom{n}{2}}\,\delta_{mn},\quad c<0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBigqLegendre} +(x-1)P_n(x;c;q)&=&A_nP_{n+1}(x;c;q)-\left(A_n+C_n\right)P_n(x;c;q)\nonumber\\ +& &{}\mathindent{}+C_nP_{n-1}(x;c;q), +\end{eqnarray} +where +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n+1})(1-cq^{n+1})}{(1+q^{n+1})(1-q^{2n+1})}\\ +\\ +\displaystyle C_n=-cq^{n+1}\frac{(1-q^n)(1-c^{-1}q^n)}{(1+q^n)(1-q^{2n+1})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecBigqLegendre} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$P_n(x;c;q)=\frac{(q^{n+1};q)_n}{(q,cq;q)_n}p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvBigqLegendre} +& &q^{-n}(1-q^n)(1-q^{n+1})x^2y(x)\nonumber\\ +& &{}=B(x)y(qx)-\left[B(x)+D(x)\right]y(x)+D(x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=P_n(x;c;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=q(x-1)(x-c)\\ +\\ +\displaystyle D(x)=(x-q)(x-cq).\end{array}\right.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodBigqLegendre} +P_n(x;c;q)&=&\frac{c^nq^{n(n+1)}(1-q)^n}{(q,cq;q)_n} +\left(\mathcal{D}_q\right)^n\left[(q^{-n}x,c^{-1}q^{-n}x;q)_n\right]\\ +&=&\frac{(1-q)^n}{(q,cq;q)_n}\left(\mathcal{D}_q\right)^n +\left[(qx^{-1},cqx^{-1};q)_nx^{2n}\right].\nonumber +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenBigqLegendre1} +\qhyp{2}{1}{qx^{-1},0}{q}{xt}\,\qhyp{1}{1}{c^{-1}x}{q}{cqt} +=\sum_{n=0}^{\infty}\frac{(cq;q)_n}{(q,q;q)_n}P_n(x;c;q)t^n. +\end{equation} + +\begin{equation} +\label{GenBigqLegendre2} +\qhyp{2}{1}{cqx^{-1},0}{cq}{xt}\,\qhyp{1}{1}{c^{-1}x}{c^{-1}q}{qt} +=\sum_{n=0}^{\infty}\frac{P_n(x;c;q)}{(c^{-1}q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Legendre $\rightarrow$ Legendre / Spherical} +If we set $c=0$ in the definition (\ref{DefBigqLegendre}) of the big +$q$-Legendre polynomials and let $q\rightarrow 1$ we simply obtain the Legendre +(or spherical) polynomials given by (\ref{DefLegendre}): +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;0;q)=P_n(2x-1). +\end{equation} +If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we +find +\begin{equation} +\lim_{q\rightarrow 1}P_n(x;-q^{\gamma};q)=P_n(x). +\end{equation} + +\subsection*{References} +\cite{Koelink95I}, \cite{Koorn90II}. + + +\section{$q$-Hahn}\index{q-Hahn polynomials@$q$-Hahn polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefqHahn} +Q_n(q^{-x};\alpha,\beta,N|q)=\qhyp{3}{2}{q^{-n},\alpha\beta q^{n+1},q^{-x}} +{\alpha q,q^{-N}}{q},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +For $0<\alpha q<1$ and $0<\beta q<1$, or for $\alpha>q^{-N}$ and $\beta>q^{-N}$, we have +\begin{eqnarray} +\label{OrtqHahn} +& &\sum_{x=0}^N\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta q)^{-x} +Q_m(q^{-x};\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=\frac{(\alpha\beta q^2;q)_N}{(\beta q;q)_N(\alpha q)^N} +\frac{(q,\alpha\beta q^{N+2},\beta q;q)_n}{(\alpha q,\alpha\beta q,q^{-N};q)_n}\, +\frac{(1-\alpha\beta q)(-\alpha q)^n}{(1-\alpha\beta q^{2n+1})} +q^{\binom{n}{2}-Nn}\,\delta_{mn}. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqHahn} +-\left(1-q^{-x}\right)Q_n(q^{-x})&=&A_nQ_{n+1}(q^{-x})-\left(A_n+C_n\right)Q_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+C_nQ_{n-1}(q^{-x}), +\end{eqnarray} +where +$$Q_n(q^{-x}):=Q_n(q^{-x};\alpha,\beta,N|q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n-N})(1-\alpha q^{n+1})(1-\alpha\beta q^{n+1})}{(1-\alpha\beta q^{2n+1})(1-\alpha\beta q^{2n+2})}\\ +\\ +\displaystyle C_n=-\frac{\alpha q^{n-N}(1-q^n)(1-\alpha\beta q^{n+N+1})(1-\beta q^n)}{(1-\alpha\beta q^{2n})(1-\alpha\beta q^{2n+1})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqHahn} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(q^{-x};\alpha,\beta,N|q)= +\frac{(\alpha\beta q^{n+1};q)_n}{(\alpha q,q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqHahn} +& &q^{-n}(1-q^n)(1-\alpha\beta q^{n+1})y(x)\nonumber\\ +& &{}=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{eqnarray} +where +$$y(x)=Q_n(q^{-x};\alpha,\beta,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=(1-q^{x-N})(1-\alpha q^{x+1})\\ +\\ +\displaystyle D(x)=\alpha q(1-q^x)(\beta-q^{x-N-1}).\end{array}\right.$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qHahnI} +& &Q_n(q^{-x-1};\alpha,\beta,N|q)-Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-\alpha q)(1-q^{-N})} +Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1qHahnII} +\frac{\Delta Q_n(q^{-x};\alpha,\beta,N|q)}{\Delta q^{-x}} +&=&\frac{q^{-n+1}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-q)(1-\alpha q)(1-q^{-N})}\nonumber\\ +& &{}\mathindent{}\times Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q). +\end{eqnarray} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qHahnI} +& &(1-\alpha q^x)(1-q^{x-N-1})Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}\mathindent{}-\alpha(1-q^x)(\beta-q^{x-N-1})Q_n(q^{-x+1};\alpha,\beta,N|q)\nonumber\\ +& &{}=q^x(1-\alpha)(1-q^{-N-1})Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qHahnII} +& &\frac{\nabla\left[w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;\alpha q^{-1},\beta q^{-1},N+1|q)Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q), +\end{eqnarray} +where +$$w(x;\alpha,\beta,N|q)=\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta)^{-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodqHahn} +& &w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ +& &{}=(1-q)^n\left(\nabla_q\right)^n\left[w(x;\alpha q^n,\beta q^n,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenqHahn1} +& &\qhyp{1}{1}{q^{-x}}{\alpha q}{\alpha qt}\,\qhyp{2}{1}{q^{x-N},0}{\beta q}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(\beta q,q;q)_n}Q_n(q^{-x};\alpha,\beta,N|q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenqHahn2} +& &\qhyp{2}{1}{q^{-x},\beta q^{N+1-x}}{0}{-\alpha q^{x-N+1}t}\, +\qhyp{2}{0}{q^{x-N},\alpha q^{x+1}}{-}{-q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha q,q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}Q_n(q^{-x};\alpha,\beta,N|q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ $q$-Hahn} +The $q$-Hahn polynomials follow from the $q$-Racah polynomials by the substitution +$\delta=0$ and $\gamma q=q^{-N}$ in the definition (\ref{DefqRacah}) of the +$q$-Racah polynomials: +$$R_n(\mu(x);\alpha,\beta,q^{-N-1},0|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ +Another way to obtain the $q$-Hahn polynomials from the $q$-Racah +polynomials is by setting $\gamma=0$ and $\delta=\beta^{-1}q^{-N-1}$ in the definition +(\ref{DefqRacah}): +$$R_n(\mu(x);\alpha,\beta,0,\beta^{-1}q^{-N-1}|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ +And if we take $\alpha q=q^{-N}$, $\beta\rightarrow\beta\gamma q^{N+1}$ and $\delta=0$ in the +definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the +$q$-Hahn polynomials given by (\ref{DefqHahn}) in the following way: +$$R_n(\mu(x);q^{-N-1},\beta\gamma q^{N+1},\gamma,0|q)=Q_n(q^{-x};\gamma,\beta,N|q).$$ +Note that $\mu(x)=q^{-x}$ in each case. + +\subsubsection*{$q$-Hahn $\rightarrow$ Little $q$-Jacobi} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqHahn}) of the $q$-Hahn +polynomials and take the limit $N\rightarrow\infty$ we find the little $q$-Jacobi polynomials: +\begin{equation} +\lim _{N\rightarrow\infty} Q_n(q^{x-N};\alpha,\beta,N|q)=p_n(q^x;\alpha,\beta|q), +\end{equation} +where $p_n(q^x;\alpha,\beta|q)$ is given by (\ref{DefLittleqJacobi}). + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials +by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the +$q$-Hahn polynomials and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} +The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of +the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: +\begin{equation} +\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} +If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials +and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by +(\ref{DefqKrawtchouk}): +\begin{equation} +\lim_{\alpha\rightarrow 0} +Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} +The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +can be obtained from the $q$-Hahn polynomials by the substitution $\alpha=p$ and +$\beta=0$ in (\ref{DefqHahn}): +\begin{equation} +Q_n(q^{-x};p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ Hahn} +The Hahn polynomials given by (\ref{DefHahn}) simply follow from the $q$-Hahn +polynomials given by (\ref{DefqHahn}), after setting $\alpha\rightarrow q^{\alpha}$ +and $\beta\rightarrow q^{\beta}$, in the following way: +\begin{equation} +\lim_{q\rightarrow 1}Q_n(q^{-x};q^{\alpha},q^{\beta},N|q)=Q_n(x;\alpha,\beta,N). +\end{equation} + +\subsection*{Remark} +The $q$-Hahn polynomials given by (\ref{DefqHahn}) and the dual $q$-Hahn +polynomials given by (\ref{DefDualqHahn}) are related in the following way: +$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ +with +$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ +or +$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ +where +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlvarezRonveaux}, \cite{AndrewsAskey85}, +\cite{AskeyWilson79}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, +\cite{Dunkl78II}, \cite{Fischer95}, \cite{GasperRahman84}, +\cite{GasperRahman90}, \cite{Hahn}, \cite{KalninsMiller88}, +\cite{Koelink96I}, \cite{KoelinkKoorn}, \cite{Koorn89III}, \cite{Koorn90II}, +\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{Rahman82}, +\cite{Stanton80II}, \cite{Stanton84}, \cite{Stanton90}. + + +\section{Dual $q$-Hahn}\index{Dual q-Hahn polynomials@Dual $q$-Hahn polynomials} +\index{q-Hahn polynomials@$q$-Hahn polynomials!Dual} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefDualqHahn} +R_n(\mu(x);\gamma,\delta,N|q)= +\qhyp{3}{2}{q^{-n},q^{-x},\gamma\delta q^{x+1}}{\gamma q,q^{-N}}{q},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\mu(x):=q^{-x}+\gamma\delta q^{x+1}.$$ + +\newpage + +\subsection*{Orthogonality relation} +For $0<\gamma q<1$ and $0<\delta q<1$, or for $\gamma>q^{-N}$ and $\delta>q^{-N}$, we have +\begin{eqnarray} +\label{OrtDualqHahn} +& &\sum_{x=0}^N\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x}{(q,\gamma\delta q^{N+2},\delta q;q)_x} +\frac{(1-\gamma\delta q^{2x+1})}{(1-\gamma\delta q)(-\gamma q)^x}q^{Nx-\binom{x}{2}}\nonumber\\ +& &{}\mathindent{}\times R_m(\mu(x);\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=\frac{(\gamma\delta q^2;q)_N}{(\delta q;q)_N}(\gamma q)^{-N} +\frac{(q,\delta^{-1}q^{-N};q)_n}{(\gamma q,q^{-N};q)_n}(\gamma\delta q)^n\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecDualqHahn} +& &-\left(1-q^{-x}\right)\left(1-\gamma\delta q^{x+1}\right)R_n(\mu(x))\nonumber\\ +& &{}=A_nR_{n+1}(\mu(x))-\left(A_n+C_n\right)R_n(\mu(x))+C_nR_{n-1}(\mu(x)), +\end{eqnarray} +where +$$R_n(\mu(x)):=R_n(\mu(x);\gamma,\delta,N|q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\left(1-q^{n-N}\right)\left(1-\gamma q^{n+1}\right)\\ +\\ +\displaystyle C_n=\gamma q\left(1-q^n\right)\left(\delta -q^{n-N-1}\right). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecDualqHahn} +xp_n(x)&=&p_{n+1}(x)+\left[1+\gamma\delta q-(A_n+C_n)\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+\gamma q(1-q^n)(1-\gamma q^n)\nonumber\\ +& &{}\mathindent\mathindent{}\times(1-q^{n-N-1})(\delta-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$R_n(\mu(x);\gamma,\delta,N|q)=\frac{1}{(\gamma q,q^{-N};q)_n}p_n(\mu(x)).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDualqHahn} +q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x) ++D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\mu(x);\gamma,\delta,N|q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-\gamma q^{x+1})(1-\gamma\delta q^{x+1})} +{(1-\gamma\delta q^{2x+1})(1-\gamma\delta q^{2x+2})}\\ +\\ +\displaystyle D(x)=-\frac{\gamma q^{x-N}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)} +{(1-\gamma\delta q^{2x})(1-\gamma\delta q^{2x+1})}.\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualqHahnI} +& &R_n(\mu(x+1);\gamma,\delta,N|q)-R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1-\gamma\delta q^{2x+2})}{(1-\gamma q)(1-q^{-N})} +R_{n-1}(\mu(x);\gamma q,\delta,N-1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1DualqHahnII} +& &\frac{\Delta R_n(\mu(x);\gamma,\delta,N|q)}{\Delta\mu(x)}\nonumber\\ +& &{}=\frac{q^{-n+1}(1-q^n)}{(1-q)(1-\gamma q)(1-q^{-N})}R_{n-1}(\mu(x);\gamma q,\delta,N-1|q). +\end{eqnarray} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualqHahnI} +& &(1-\gamma q^x)(1-\gamma\delta q^x)(1-q^{x-N-1})R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}\mathindent{}+\gamma q^{x-N-1}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)R_n(\mu(x-1);\gamma,\delta,N|q)\nonumber\\ +& &{}=q^x(1-\gamma)(1-q^{-N-1})(1-\gamma\delta q^{2x})R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualqHahnII} +& &\frac{\nabla\left[w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\right]}{\nabla\mu(x)}\nonumber\\ +& &{}=\frac{1}{(1-q)(1-\gamma\delta)}w(x;\gamma q^{-1},\delta,N+1|q)\nonumber\\ +& &{}\mathindent{}\times R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q), +\end{eqnarray} +where +$$w(x;\gamma,\delta,N|q)=\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x} +{(q,\gamma\delta q^{N+2},\delta q;q)_x}(-\gamma^{-1})^x q^{Nx-\binom{x}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodDualqHahn} +& &w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ +& &{}=(1-q)^n(\gamma\delta q;q)_n +\left(\nabla_{\mu}\right)^n\left[w(x;\gamma q^n,\delta,N-n|q)\right], +\end{eqnarray} +where +$$\nabla_{\mu}:=\frac{\nabla}{\nabla\mu(x)}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenDualqHahn1} +& &(q^{-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},\delta^{-1}q^{-x}}{\gamma q}{\gamma\delta q^{x+1}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenDualqHahn2} +& &(\gamma\delta qt;q)_x\cdot\qhyp{2}{1}{q^{x-N},\gamma q^{x+1}}{\delta^{-1}q^{-N}}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N +\frac{(q^{-N},\gamma q;q)_n}{(\delta^{-1}q^{-N},q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Hahn} +To obtain the dual $q$-Hahn polynomials from the $q$-Racah polynomials we have to +take $\beta=0$ and $\alpha q=q^{-N}$ in (\ref{DefqRacah}): +$$R_n(\mu(x);q^{-N-1},0,\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q),$$ +with +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ +We may also take $\alpha=0$ and $\beta=\delta^{-1}q^{-N-1}$ in (\ref{DefqRacah}) to obtain +the dual $q$-Hahn polynomials from the $q$-Racah polynomials: +$$R_n(\mu(x);0,\delta^{-1}q^{-N-1},\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q).$$ +And if we take $\gamma q=q^{-N}$, $\delta\rightarrow\alpha\delta q^{N+1}$ and $\beta=0$ in the +definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the dual +$q$-Hahn polynomials given by (\ref{DefDualqHahn}) in the following way: +$$R_n(\mu(x);\alpha,0,q^{-N-1},\alpha\delta q^{N+1}|q)=R_n({\tilde \mu}(x);\alpha,\delta,N|q),$$ +with +$${\tilde \mu}(x)=q^{-x}+\alpha\delta q^{x+1}.$$ + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} +The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +can be obtained from the dual $q$-Hahn polynomials by the substitution $\gamma=p$ +and $\delta=0$ in (\ref{DefDualqHahn}): +\begin{equation} +R_n(\mu(x);p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). +\end{equation} +Note that $\mu(x)=q^{-x}$ in this case. + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} +The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can +be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ +in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: +\begin{equation} +\lim_{\gamma\rightarrow 0} +R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q). +\end{equation} + +\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual Hahn} +The dual Hahn polynomials given by (\ref{DefDualHahn}) follow from the dual $q$-Hahn +polynomials by simply taking the limit $q\rightarrow 1$ in the definition (\ref{DefDualqHahn}) +of the dual $q$-Hahn polynomials after applying the substitution +$\gamma\rightarrow q^{\gamma}$ and $\delta\rightarrow q^{\delta}$: +\begin{equation} +\lim_{q\rightarrow 1}R_n(\mu(x);q^{\gamma},q^{\delta},N|q)=R_n(\lambda(x);\gamma,\delta,N), +\end{equation} +where +$$\left\{\begin{array}{l} +\displaystyle\mu(x)=q^{-x}+q^{x+\gamma+\delta+1}\\[5mm] +\displaystyle\lambda(x)=x(x+\gamma+\delta+1). +\end{array}\right.$$ + +\subsection*{Remark} +The dual $q$-Hahn polynomials given by (\ref{DefDualqHahn}) and the +$q$-Hahn polynomials given by (\ref{DefqHahn}) are related in the following way: +$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ +with +$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ +or +$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ +where +$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ + +\subsection*{References} +\cite{AlvarezSmirnov}, \cite{AndrewsAskey85}, \cite{AskeyWilson79}, +\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, +\cite{KoelinkKoorn}, \cite{Nikiforov+}, \cite{Stanton84}. + + +\section{Al-Salam-Chihara}\index{Al-Salam-Chihara polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefAlSalamChihara} +Q_n(x;a,b|q)&=&\frac{(ab;q)_n}{a^n}\, +\qhyp{3}{2}{q^{-n},a\e^{i\theta},a\e^{-i\theta}}{ab,0}{q}\\ +&=&(a\e^{i\theta};q)_n\e^{-in\theta}\,\qhyp{2}{1}{q^{-n},b\e^{-i\theta}} +{a^{-1}q^{-n+1}\e^{-i\theta}}{a^{-1}q\e^{i\theta}}\nonumber\\ +&=&(b\e^{-i\theta};q)_n\e^{in\theta}\,\qhyp{2}{1}{q^{-n},a\e^{i\theta}} +{b^{-1}q^{-n+1}\e^{i\theta}}{b^{-1}q\e^{-i\theta}},\quad x=\cos\theta.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +If $a$ and $b$ are real or complex conjugates and $\max(|a|,|b|)<1$, then we have the following orthogonality relation +\begin{equation} +\label{OrtAlSalamChiharaI} +\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx +=\frac{\,\delta_{mn}}{(q^{n+1},abq^n;q)_{\infty}}, +\end{equation} +where +$$w(x):=w(x;a,b|q)=\left|\frac{(\e^{2i\theta};q)_{\infty}} +{(a\e^{i\theta},b\e^{i\theta};q)_{\infty}}\right|^2 +=\frac{h(x,1)h(x,-1)h(x,q^{\frac{1}{2}})h(x,-q^{\frac{1}{2}})}{h(x,a)h(x,b)},$$ +with +$$h(x,\alpha):=\prod_{k=0}^{\infty}\left(1-2\alpha xq^k+\alpha^2q^{2k}\right) +=\left(\alpha\e^{i\theta},\alpha\e^{-i\theta};q\right)_{\infty},\quad x=\cos\theta.$$ +If $a>1$ and $|ab|<1$, then we have another orthogonality relation given by: +\begin{eqnarray} +\label{OrtAlSalamChiharaII} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqMeixner} +& &q^{2n+1}(1-q^{-x})M_n(q^{-x})\nonumber\\ +& &{}=c(1-bq^{n+1})M_{n+1}(q^{-x})\nonumber\\ +& &{}\mathindent{}-\left[c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right]M_n(q^{-x})\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^n)(c+q^n)M_{n-1}(q^{-x}), +\end{eqnarray} +where +$$M_n(q^{-x}):=M_n(q^{-x};b,c;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqMeixner} +xp_n(x)&=&p_{n+1}(x)+ +\left[1+q^{-2n-1}\left\{c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+cq^{-4n+1}(1-q^n)(1-bq^n)(c+q^n)p_{n-1}(x), +\end{eqnarray} +where +$$M_n(q^{-x};b,c;q)=\frac{(-1)^nq^{n^2}}{(bq;q)_nc^n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqMeixner} +-(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=M_n(q^{-x};b,c;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=cq^x(1-bq^{x+1})\\ +\\ +\displaystyle D(x)=(1-q^x)(1+bcq^x).\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qMeixnerI} +& &M_n(q^{-x-1};b,c;q)-M_n(q^{-x};b,c;q)\nonumber\\ +& &{}=-\frac{q^{-x}(1-q^n)}{c(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1qMeixnerII} +\frac{\Delta M_n(q^{-x};b,c;q)}{\Delta q^{-x}} +=-\frac{q(1-q^n)}{c(1-q)(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qMeixnerI} +& &cq^x(1-bq^x)M_n(q^{-x};b,c;q)-(1-q^x)(1+bcq^x)M_n(q^{-x+1};b,c;q)\nonumber\\ +& &{}=cq^x(1-b)M_{n+1}(q^{-x};bq^{-1},cq;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qMeixnerII} +& &\frac{\nabla\left[w(x;b,c;q)M_n(q^{-x};b,c;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;bq^{-1},cq;q)M_{n+1}(q^{-x};bq^{-1},cq;q), +\end{eqnarray} +where +$$w(x;b,c;q)=\frac{(bq;q)_x}{(q,-bcq;q)_x}c^xq^{\binom{x+1}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqMeixner} +w(x;b,c;q)M_n(q^{-x};b,c;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;bq^n,cq^{-n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} +\begin{equation} +\label{GenqMeixner1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{bq}{-c^{-1}qt} +=\sum_{n=0}^{\infty}\frac{M_n(q^{-x};b,c;q)}{(q;q)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenqMeixner2} +& &\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-b^{-1}c^{-1}q^{-x}}{-c^{-1}q}{bqt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(bq;q)_n}{(-c^{-1}q,q;q)_n}M_n(q^{-x};b,c;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Jacobi $\rightarrow$ $q$-Meixner} +If we set $b=-a^{-1}cd^{-1}$ (with $d>0$) in the definition (\ref{DefBigqJacobi}) +of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we +obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): +\begin{equation} +\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). +\end{equation} + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials +by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the +$q$-Hahn polynomials and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q).$$ + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained +from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting +$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition +(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit +$c\rightarrow\infty$: +\begin{equation} +\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be +obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ +in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: +\begin{equation} +M_n(x;0,c;q)=C_n(x;c;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ Al-Salam-Carlitz~II} +The Al-Salam-Carlitz~II polynomials given by (\ref{DefAlSalamCarlitzII}) +can be obtained from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) +by setting $b=-ac^{-1}$ in the definition (\ref{DefqMeixner}) of the +$q$-Meixner polynomials and then taking the limit $c\rightarrow 0$: +\begin{equation} +\lim_{c\rightarrow 0}M_n(x;-ac^{-1},c;q)= +\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). +\end{equation} + +\subsubsection*{$q$-Meixner $\rightarrow$ Meixner} +To find the Meixner polynomials given by (\ref{DefMeixner}) from the $q$-Meixner polynomials given by +(\ref{DefqMeixner}) we set $b=q^{\beta-1}$ and $c\rightarrow (1-c)^{-1}c$ and let $q\rightarrow 1$: +\begin{equation} +\lim_{q\rightarrow 1}M_n(q^{-x};q^{\beta-1},(1-c)^{-1}c;q)=M_n(x;\beta,c). +\end{equation} + +\subsection*{Remarks} +The $q$-Meixner polynomials given by (\ref{DefqMeixner}) and the little +$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related in the +following way: +$$M_n(q^{-x};b,c;q)=p_n(-c^{-1}q^n;b,b^{-1}q^{-n-x-1}|q).$$ + +\noindent +The $q$-Meixner polynomials and the quantum $q$-Krawtchouk polynomials +given by (\ref{DefQuantumqKrawtchouk}) are related in the following way: +$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamVerma82II}, \cite{AlSalamVerma88}, \cite{AlvarezRonveaux}, +\cite{AtakAtakKlimyk}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, \cite{GasperRahman90}, +\cite{Hahn}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Smirnov}. + + +\section{Quantum $q$-Krawtchouk} +\index{Quantum q-Krawtchouk polynomials@Quantum $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Quantum} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefQuantumqKrawtchouk} +K_n^{qtm}(q^{-x};p,N;q)= +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{-N}}{pq^{n+1}},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtQuantumqKrawtchouk} +& &\sum_{x=0}^N\frac{(pq;q)_{N-x}}{(q;q)_x(q;q)_{N-x}}(-1)^{N-x}q^{\binom{x}{2}} +K_m^{qtm}(q^{-x};p,N;q)K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{(-1)^np^N(q;q)_{N-n}(q,pq;q)_n}{(q,q;q)_N} +q^{\binom{N+1}{2}-\binom{n+1}{2}+Nn}\,\delta_{mn},\quad p>q^{-N}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecQuantumqKrawtchouk} +& &-pq^{2n+1}(1-q^{-x})K_n^{qtm}(q^{-x})\nonumber\\ +& &{}=(1-q^{n-N})K_{n+1}^{qtm}(q^{-x})\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n-N})+q(1-q^n)(1-pq^n)\right]K_n^{qtm}(q^{-x})\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^n)(1-pq^n)K_{n-1}^{qtm}(q^{-x}), +\end{eqnarray} +where +$$K_n^{qtm}(q^{-x}):=K_n^{qtm}(q^{-x};p,N;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecQuantumqKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+ +\left[1-p^{-1}q^{-2n-1}\left\{(1-q^{n-N})+q(1-q^n)(1-pq^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+p^{-2}q^{-4n+1}(1-q^n)(1-pq^n)(1-q^{n-N-1})p_{n-1}(x), +\end{eqnarray} +where +$$K_n^{qtm}(q^{-x};p,N;q)=\frac{p^nq^{n^2}}{(q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvQuantumqKrawtchouk} +-p(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=K_n^{qtm}(q^{-x};p,N;q)$$ +and +$$\left\{\begin{array}{l}\displaystyle B(x)=-q^x(1-q^{x-N})\\ +\\ +\displaystyle D(x)=(1-q^x)(p-q^{x-N-1}).\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1QuantumqKrawtchoukI} +& &K_n^{qtm}(q^{-x-1};p,N;q)-K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{pq^{-x}(1-q^n)}{1-q^{-N}}K_{n-1}^{qtm}(q^{-x};pq,N-1;q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1QuantumqKrawtchoukII} +\frac{\Delta K_n^{qtm}(q^{-x};p,N;q)}{\Delta q^{-x}}= +\frac{pq(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}^{qtm}(q^{-x};pq,N-1;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2QuantumqKrawtchoukI} +& &(1-q^{x-N-1})K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ +& &{}\mathindent{}+q^{-x}(1-q^x)(p-q^{x-N-1})K_n^{qtm}(q^{-x+1};p,N;q)\nonumber\\ +& &{}=(1-q^{-N-1})K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2QuantumqKrawtchoukII} +& &\frac{\nabla\left[w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;pq^{-1},N+1;q)K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q), +\end{eqnarray} +where +$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q,p^{-1}q^{-N};q)_x}(-p)^{-x}q^{\binom{x+1}{2}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodQuantumqKrawtchouk} +w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^n,N-n;q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenQuantumqKrawtchouk1} +& &(q^{x-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},pq^{N+1-x}}{0}{q^{x-N}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenQuantumqKrawtchouk2} +& &(q^{-x}t;q)_x\cdot\qhyp{2}{1}{q^{x-N},0}{pq}{q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(pq,q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} +The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of +the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: +$$\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q).$$ + +\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~II} +If we set $p=a^{-1}q^{-N-1}$ in the definition (\ref{DefQuantumqKrawtchouk}) +of the quantum $q$-Krawtchouk polynomials and let $N\rightarrow\infty$ we +obtain the Al-Salam-Carlitz~II polynomials given by +(\ref{DefAlSalamCarlitzII}). In fact we have +\begin{equation} +\lim_{N\rightarrow\infty}K_n^{qtm}(x;a^{-1}q^{-N-1},N;q)= +\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). +\end{equation} + +\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) easily follow from +the quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) +in the following way: +\begin{equation} +\lim_{q\rightarrow 1}K_n^{qtm}(q^{-x};p,N;q)=K_n(x;p^{-1},N). +\end{equation} + +\subsection*{Remarks} +The quantum $q$-Krawtchouk polynomials given by +(\ref{DefQuantumqKrawtchouk}) and the $q$-Meixner polynomials given by +(\ref{DefqMeixner}) are related in the following way: +$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ + +\noindent +The quantum $q$-Krawtchouk polynomials are related to the affine +$q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) +by the transformation $q\leftrightarrow q^{-1}$ in the following way: +$$K_n^{qtm}(q^x;p,N;q^{-1})=(p^{-1}q;q)_n\left(-\frac{p}{q}\right)^nq^{-\binom{n}{2}} +K_n^{Aff}(q^{x-N};p^{-1},N;q).$$ + +\subsection*{References} +\cite{GasperRahman90}, \cite{Koorn89III}, \cite{Koorn90II}, \cite{Smirnov}. + + +\section{$q$-Krawtchouk}\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} For $n=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{DefqKrawtchouk} +K_n(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}\\ +&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, +\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{-pq^{n+N+1}}.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqKrawtchouk} +& &\sum_{x=0}^N\frac{(q^{-N};q)_x}{(q;q)_x}(-p)^{-x}K_m(q^{-x};p,N;q)K_n(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{(q,-pq^{N+1};q)_n}{(-p,q^{-N};q)_n}\frac{(1+p)}{(1+pq^{2n})}\nonumber\\ +& &{}\mathindent{}\times (-pq;q)_Np^{-N}q^{-\binom{N+1}{2}} +\left(-pq^{-N}\right)^nq^{n^2}\,\delta_{mn},\quad p>0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqKrawtchouk} +-\left(1-q^{-x}\right)K_n(q^{-x})&=&A_nK_{n+1}(q^{-x})-\left(A_n+C_n\right)K_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+C_nK_{n-1}(q^{-x}), +\end{eqnarray} +where +$$K_n(q^{-x}):=K_n(q^{-x};p,N;q)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(1-q^{n-N})(1+pq^n)}{(1+pq^{2n})(1+pq^{2n+1})}\\ +\\ +\displaystyle C_n=-pq^{2n-N-1}\frac{(1+pq^{n+N})(1-q^n)}{(1+pq^{2n-1})(1+pq^{2n})}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqKrawtchouk} +xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$K_n(q^{-x};p,N;q)=\frac{(-pq^n;q)_n}{(q^{-N};q)_n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqKrawtchouk} +& &q^{-n}(1-q^n)(1+pq^n)y(x)\nonumber\\ +& &{}=(1-q^{x-N})y(x+1)-\left[(1-q^{x-N})-p(1-q^x)\right]y(x)\nonumber\\ +& &{}\mathindent{}-p(1-q^x)y(x-1), +\end{eqnarray} +where +$$y(x)=K_n(q^{-x};p,N;q).$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1qKrawtchoukI} +& &K_n(q^{-x-1};p,N;q)-K_n(q^{-x};p,N;q)\nonumber\\ +& &{}=\frac{q^{-n-x}(1-q^n)(1+pq^n)}{1-q^{-N}}K_{n-1}(q^{-x};pq^2,N-1;q) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1qKrawtchoukII} +\frac{\Delta K_n(q^{-x};p,N;q)}{\Delta q^{-x}}= +\frac{q^{-n+1}(1-q^n)(1+pq^n)}{(1-q)(1-q^{-N})}K_{n-1}(q^{-x};pq^2,N-1;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2qKrawtchoukI} +& &(1-q^{x-N-1})K_n(q^{-x};p,N;q)+pq^{-1}(1-q^x)K_n(q^{-x+1};p,N;q)\nonumber\\ +& &{}=q^x(1-q^{-N-1})K_{n+1}(q^{-x};pq^{-2},N+1;q) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2qKrawtchoukII} +& &\frac{\nabla\left[w(x;p,N;q)K_n(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ +& &{}=\frac{1}{1-q}w(x;pq^{-2},N+1;q)K_{n+1}(q^{-x};pq^{-2},N+1;q), +\end{eqnarray} +where +$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q;q)_x}\left(-\frac{q}{p}\right)^x.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqKrawtchouk} +w(x;p,N;q)K_n(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^{2n},N-n;q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have +\begin{eqnarray} +\label{GenqKrawtchouk} +& &\qhyp{1}{1}{q^{-x}}{0}{pqt}\,\qhyp{2}{0}{q^{x-N},0}{-}{-q^{-x}t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}K_n(q^{-x};p,N;q)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Racah $\rightarrow$ $q$-Krawtchouk} +The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) can be obtained from +the $q$-Racah polynomials by setting $\alpha q=q^{-N}$, $\beta=-pq^N$ and +$\gamma=\delta=0$ in the definition (\ref{DefqRacah}) of the $q$-Racah polynomials: +$$R_n(q^{-x};q^{-N-1},-pq^N,0,0|q)=K_n(q^{-x};p,N;q).$$ +Note that $\mu(x)=q^{-x}$ in this case. + +\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} +If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials +and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by +(\ref{DefqKrawtchouk}): +$$\lim_{\alpha\rightarrow 0} +Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q).$$ + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we +obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} +By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we +obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): +\begin{equation} +\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ Krawtchouk} +If we take the limit $q\rightarrow 1$ in the definition (\ref{DefqKrawtchouk}) of the $q$-Krawtchouk +polynomials we simply find the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) in the +following way: +\begin{equation} +\lim_{q\rightarrow 1}K_n(q^{-x};p,N;q)=K_n(x;(p+1)^{-1},N). +\end{equation} + +\subsection*{Remark} +The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) and the +dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) are +related in the following way: +$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ +with +$$\lambda(n)=q^{-n}-pq^n$$ +or +$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ +with +$$\lambda(x)=q^{-x}+cq^{x-N}.$$ + +\subsection*{References} +\cite{AlvarezRonveaux}, \cite{AskeyWilson79}, \cite{AtakRahmanSuslov}, +\cite{Campigotto+}, \cite{GasperRahman90}, \cite{Nikiforov+}, +\cite{NoumiMimachi91}, \cite{Stanton80III}, \cite{Stanton84}. + + +\newpage + +\section{Affine $q$-Krawtchouk} +\index{Affine q-Krawtchouk polynomials@Affine $q$-Krawtchouk polynomials} +\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Affine} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefAffqKrawtchouk} +K_n^{Aff}(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}\\ +&=&\frac{(-pq)^nq^{\binom{n}{2}}}{(pq;q)_n}\, +\qhyp{2}{1}{q^{-n},q^{x-N}}{q^{-N}}{\frac{q^{-x}}{p}},\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAffqKrawtchouk} +& &\sum_{x=0}^N\frac{(pq;q)_x(q;q)_N}{(q;q)_x(q;q)_{N-x}}(pq)^{-x}K_m^{Aff}(q^{-x};p,N;q)K_n^{Aff}(q^{-x};p,N;q)\nonumber\\ +& &{}=(pq)^{n-N}\frac{(q;q)_n(q;q)_{N-n}}{(pq;q)_n(q;q)_N}\,\delta_{mn},\quad 01$, then we have another orthogonality relation given by: +\begin{eqnarray} +\label{OrtContBigqHermite2} +& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}H_m(x;a|q)H_n(x;a|q)\,dx\nonumber\\ +& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1-1 +\end{eqnarray} +and +\begin{eqnarray} +\label{OrtqLaguerre2} +& &\sum_{k=-\infty}^{\infty}\frac{q^{k\alpha+k}}{(-cq^k;q)_{\infty}}L_m^{(\alpha)}(cq^k;q)L_n^{(\alpha)}(cq^k;q)\nonumber\\ +& &{}=\frac{(q,-cq^{\alpha+1},-c^{-1}q^{-\alpha};q)_{\infty}} +{(q^{\alpha+1},-c,-c^{-1}q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn}, +\quad\alpha>-1,\quad c>0. +\end{eqnarray} +For $c=1$ the latter orthogonality relation can also be written as +\begin{eqnarray} +\label{OrtqLaguerre3} +& &\int_0^{\infty}\frac{x^{\alpha}}{(-x;q)_{\infty}}L_m^{(\alpha)}(x;q)L_n^{(\alpha)}(x;q)\,d_qx\nonumber\\ +& &{}=\frac{1-q}{2}\,\frac{(q,-q^{\alpha+1},-q^{-\alpha};q)_{\infty}} +{(q^{\alpha+1},-q,-q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn},\quad\alpha>-1. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqLaguerre} +-q^{2n+\alpha+1}xL_n^{(\alpha)}(x;q)&=&(1-q^{n+1})L_{n+1}^{(\alpha)}(x;q)\nonumber\\ +& &{}\mathindent{}-\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]L_n^{(\alpha)}(x;q)\nonumber\\ +& &{}\mathindent\mathindent{}+q(1-q^{n+\alpha})L_{n-1}^{(\alpha)}(x;q). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqLaguerre} +xp_n(x)&=&p_{n+1}(x)+q^{-2n-\alpha-1}\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+q^{-4n-2\alpha+1}(1-q^n)(1-q^{n+\alpha})p_{n-1}(x), +\end{eqnarray} +where +$$L_n^{(\alpha)}(x;q)=\frac{(-1)^nq^{n(n+\alpha)}}{(q;q)_n}p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqLaguerre} +-q^{\alpha}(1-q^n)xy(x)=q^{\alpha}(1+x)y(qx)-\left[1+q^{\alpha}(1+x)\right]y(x)+y(q^{-1}x), +\end{equation} +where +$$y(x)=L_n^{(\alpha)}(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qLaguerreI} +L_n^{(\alpha)}(x;q)-L_n^{(\alpha)}(qx;q)=-q^{\alpha+1}xL_{n-1}^{(\alpha+1)}(qx;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qLaguerreII} +\mathcal{D}_qL_n^{(\alpha)}(x;q)=-\frac{q^{\alpha+1}}{1-q}L_{n-1}^{(\alpha+1)}(qx;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qLaguerreI} +L_n^{(\alpha)}(x;q)-q^{\alpha}(1+x)L_n^{(\alpha)}(qx;q)=(1-q^{n+1})L_{n+1}^{(\alpha-1)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qLaguerreII} +\mathcal{D}_q\left[w(x;\alpha;q)L_n^{(\alpha)}(x;q)\right]= +\frac{1-q^{n+1}}{1-q}w(x;\alpha-1;q)L_{n+1}^{(\alpha-1)}(x;q), +\end{equation} +where +$$w(x;\alpha;q)=\frac{x^{\alpha}}{(-x;q)_{\infty}}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqLaguerre} +w(x;\alpha;q)L_n^{(\alpha)}(x;q)= +\frac{(1-q)^n}{(q;q)_n}\left(\mathcal{D}_q\right)^n\left[w(x;\alpha+n;q)\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenqLaguerre1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-x}{0}{q^{\alpha+1}t} +=\sum_{n=0}^{\infty}L_n^{(\alpha)}(x;q)t^n. +\end{equation} + +\begin{equation} +\label{GenqLaguerre2} +\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{q^{\alpha+1}}{-q^{\alpha+1}xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x;q)}{(q^{\alpha+1};q)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenqLaguerre3} +(t;q)_{\infty}\cdot\qhyp{0}{2}{-}{q^{\alpha+1},t}{-q^{\alpha+1}xt} +=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenqLaguerre4} +& &\frac{(\gamma t;q)_{\infty}}{(t;q)_{\infty}}\,\qhyp{1}{2}{\gamma}{q^{\alpha+1},\gamma t}{-q^{\alpha+1}xt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Laguerre} +If we substitute $a=q^{\alpha}$ and $x\rightarrow -b^{-1}q^{-1}x$ in the definition +(\ref{DefLittleqJacobi}) of the little $q$-Jacobi polynomials and then take the limit +$b\rightarrow -\infty$ we find the $q$-Laguerre polynomials given by (\ref{DefqLaguerre}): +$$\lim_{b\rightarrow -\infty}p_n(-b^{-1}q^{-1}x;q^{\alpha},b|q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained +from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting +$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition +(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit +$c\rightarrow\infty$: +$$\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= +\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ + +\subsubsection*{$q$-Laguerre $\rightarrow$ Stieltjes-Wigert} +If we set $x\rightarrow xq^{-\alpha}$ in the definition +(\ref{DefqLaguerre}) of the $q$-Laguerre polynomials and take the limit +$\alpha\rightarrow\infty$ we simply obtain the Stieltjes-Wigert polynomials given +by (\ref{DefStieltjesWigert}): +\begin{equation} +\lim_{\alpha\rightarrow\infty}L_n^{(\alpha)}\left(xq^{-\alpha};q\right)=S_n(x;q). +\end{equation} + +\subsubsection*{$q$-Laguerre $\rightarrow$ Laguerre / Charlier} +If we set $x\rightarrow (1-q)x$ in the definition (\ref{DefqLaguerre}) +of the $q$-Laguerre polynomials and take the limit $q\rightarrow 1$ we obtain +the Laguerre polynomials given by (\ref{DefLaguerre}): +\begin{equation} +\lim_{q\rightarrow 1}L_n^{(\alpha)}((1-q)x;q)=L_n^{(\alpha)}(x). +\end{equation} + +If we set $x\rightarrow -q^{-x}$ and $q^{\alpha}=a^{-1}(q-1)^{-1}$ (or +$\alpha=-(\ln q)^{-1}\ln (q-1)a$) in the definition (\ref{DefqLaguerre}) of the +$q$-Laguerre polynomials, multiply by $(q;q)_n$, and take the limit +$q\rightarrow 1$ we obtain the Charlier polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\,(q;q)_nL_n^{(\alpha)}(-q^{-x};q)=C_n(x;a), +\end{equation} +where +$$q^{\alpha}=\frac{1}{a(q-1)}\quad\textrm{or}\quad\alpha=-\frac{\ln (q-1)a}{\ln q}.$$ + +\subsection*{Remarks} +The $q$-Laguerre polynomials are sometimes called the +generalized Stieltjes-Wigert polynomials. + +If we replace $q$ by $q^{-1}$ we obtain the little $q$-Laguerre +(or Wall) polynomials given by (\ref{DefLittleqLaguerre}) in the following +way: +$$L_n^{(\alpha)}(x;q^{-1})=\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^{n\alpha}}p_n(-x;q^{\alpha}|q).$$ + +\noindent +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the $q$-Bessel polynomials +given by (\ref{DefqBessel}) are related in the following way: +$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ + +\noindent +The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the +$q$-Charlier polynomials given by (\ref{DefqCharlier}) are related in the +following way: +$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ + +\noindent +Since the Stieltjes and Hamburger moment problems corresponding to the +$q$-Laguerre polynomials are indeterminate there exist many different weight +functions. + +\subsection*{References} +\cite{NAlSalam89}, \cite{AlSalam90}, \cite{Askey86}, \cite{Askey89I}, \cite{AskeyWilson85}, +\cite{AtakAtakI}, \cite{ChenIsmailMuttalib}, \cite{Chihara68II}, \cite{Chihara78}, +\cite{Chihara79}, \cite{Chris}, \cite{Exton77}, \cite{GasperRahman90}, \cite{GrunbaumHaine96}, +\cite{Ismail2005I}, \cite{IsmailRahman98}, \cite{Jain95}, \cite{Moak}. + + +\section{$q$-Bessel} +\index{q-Bessel polynomials@$q$-Bessel polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefqBessel} +y_n(x;a;q)&=&\qhyp{2}{1}{q^{-n},-aq^n}{0}{qx}\\ +&=&(q^{-n+1}x;q)_n\cdot\qhyp{1}{1}{q^{-n}}{q^{-n+1}x}{-aq^{n+1}x}\nonumber\\ +&=&\left(-aq^nx\right)^n\cdot\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-\frac{q^{-n+1}}{a}}.\nonumber +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqBessel} +& &\sum_{k=0}^{\infty}\frac{a^k}{(q;q)_k}q^{\binom{k+1}{2}}y_m(q^k;a;q)y_n(q^k;a;q)\nonumber\\ +& &{}=(q;q)_n(-aq^n;q)_{\infty}\frac{a^nq^{\binom{n+1}{2}}}{(1+aq^{2n})}\,\delta_{mn},\quad a>0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecqBessel} +-xy_n(x;a;q)=A_ny_{n+1}(x;a;q)-(A_n+C_n)y_n(x;a;q)+C_ny_{n-1}(x;a;q), +\end{equation} +where +$$\left\{\begin{array}{l}\displaystyle A_n=q^n\frac{(1+aq^n)}{(1+aq^{2n})(1+aq^{2n+1})}\\ +\\ +\displaystyle C_n=aq^{2n-1}\frac{(1-q^n)}{(1+aq^{2n-1})(1+aq^{2n})}.\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecqBessel} +xp_n(x)=p_{n+1}(x)+(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$y_n(x;a;q)=(-1)^nq^{-\binom{n}{2}}(-aq^n;q)_np_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvqBessel} +& &-q^{-n}(1-q^n)(1+aq^n)xy(x)\nonumber\\ +& &{}=axy(qx)-(ax+1-x)y(x)+(1-x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=y_n(x;a;q).$$ + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qBesselI} +y_n(x;a;q)-y_n(qx;a;q)=-q^{-n+1}(1-q^n)(1+aq^n)xy_{n-1}(x;aq^2;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qBesselII} +\mathcal{D}_qy_n(x;a;q)=-\frac{q^{-n+1}(1-q^n)(1+aq^n)}{1-q}y_{n-1}(x;aq^2;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qBesselI} +aq^{x-1}y_n(q^x;a;q)-(1-q^x)y_n(q^{x-1}x;a;q)=-y_{n+1}(q^x;aq^{-2};q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qBesselII} +\frac{\nabla\left[w(x;a;q)y_n(q^x;a;q)\right]}{\nabla q^x}= +\frac{q^2}{a(1-q)}w(x;aq^{-2};q)y_{n+1}(q^x;aq^{-2};q), +\end{equation} +where +$$w(x;a;q)=\frac{a^xq^{\binom{x}{2}}}{(q;q)_x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqBessel} +w(x;a;q)y_n(q^x;a;q)=a^n(1-q)^nq^{n(n-1)}\left(\nabla_q\right)^n\left[w(x;aq^{2n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^x}.$$ + +\subsection*{Generating functions} +\begin{eqnarray} +\label{GenqBessel1} +& &\qhyp{0}{1}{-}{0}{-aq^{x+1}t}\,\qhyp{2}{0}{q^{-x},0}{-}{q^xt}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{y_n(q^x;a;q)}{(q;q)_n}t^n,\quad x=0,1,2,\ldots. +\end{eqnarray} + +\begin{equation} +\label{GenqBessel2} +\frac{(t;q)_{\infty}}{(xt;q)_{\infty}}\,\qhyp{1}{3}{xt}{0,0,t}{-aqxt}= +\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q;q)_n}y_n(x;a;q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Bessel} +If we set $b\rightarrow -a^{-1}q^{-1}b$ in the definition (\ref{DefLittleqJacobi}) of +the little $q$-Jacobi polynomials and then take the limit $a\rightarrow 0$ we obtain +the $q$-Bessel polynomials given by (\ref{DefqBessel}): +$$\lim_{a\rightarrow 0}p_n(x;a,-a^{-1}q^{-1}b|q)=y_n(x;b;q).$$ + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} +If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we +obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): +$$\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q).$$ + +\subsubsection*{$q$-Bessel $\rightarrow$ Stieltjes-Wigert} +The Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) can be obtained +from the $q$-Bessel polynomials by setting $x\rightarrow a^{-1}x$ in the definition +(\ref{DefqBessel}) of the $q$-Bessel polynomials and then taking the limit +$a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty}y_n(a^{-1}x;a;q)=(q;q)_nS_n(x;q). +\end{equation} + +\subsubsection*{$q$-Bessel $\rightarrow$ Bessel} +If we set $x\rightarrow -\frac{1}{2}(1-q)^{-1}x$ and $a\rightarrow -q^{a+1}$ in the definition +(\ref{DefqBessel}) of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ +we find the Bessel polynomials given by (\ref{DefBessel}): +\begin{equation} +\lim_{q\rightarrow 1}y_n(-\textstyle\frac{1}{2}(1-q)^{-1}x;-q^{a+1};q)=y_n(x;a). +\end{equation} + +\subsubsection*{$q$-Bessel $\rightarrow$ Charlier} +If we set $x\rightarrow q^x$ and $a\rightarrow a(1-q)$ in the definition (\ref{DefqBessel}) +of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ we find the Charlier +polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\frac{y_n(q^x;a(1-q);q)}{(q-1)^n}=a^nC_n(x;a). +\end{equation} + +\subsection*{Remark} +In \cite{Koekoek94} and \cite{Koekoek98} these $q$-Bessel polynomials were called +\emph{alternative $q$-Charlier polynomials}. + +\noindent +The $q$-Bessel polynomials given by (\ref{DefqBessel}) and the $q$-Laguerre +polynomials given by (\ref{DefqLaguerre}) are related in the following way: +$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ + +\subsection*{Reference} +\cite{DattaGriffin}. + + +\section{$q$-Charlier}\index{q-Charlier polynomials@$q$-Charlier polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{eqnarray} +\label{DefqCharlier} +C_n(q^{-x};a;q)&=&\qhyp{2}{1}{q^{-n},q^{-x}}{0}{-\frac{q^{n+1}}{a}}\\ +&=&(-a^{-1}q;q)_n\cdot\qhyp{1}{1}{q^{-n}}{-a^{-1}q}{-\frac{q^{n+1-x}}{a}}.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtqCharlier} +& &\sum_{x=0}^{\infty}\frac{a^x}{(q;q)_x}q^{\binom{x}{2}}C_m(q^{-x};a;q)C_n(q^{-x};a;q)\nonumber\\ +& &{}=q^{-n}(-a;q)_{\infty}(-a^{-1}q,q;q)_n\,\delta_{mn},\quad a>0. +\end{eqnarray} + +\newpage + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecqCharlier} +& &q^{2n+1}(1-q^{-x})C_n(q^{-x})\nonumber\\ +& &{}=aC_{n+1}(q^{-x})-\left[a+q(1-q^n)(a+q^n)\right]C_n(q^{-x})\nonumber\\ +& &{}\mathindent{}+q(1-q^n)(a+q^n)C_{n-1}(q^{-x}), +\end{eqnarray} +where +$$C_n(q^{-x}):=C_n(q^{-x};a;q).$$ + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecqCharlier} +xp_n(x)&=&p_{n+1}(x)+\left[1+q^{-2n-1}\left\{a+q(1-q^n)(a+q^n)\right\}\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+aq^{-4n+1}(1-q^n)(a+q^n)p_{n-1}(x), +\end{eqnarray} +where +$$C_n(q^{-x};a;q)=\frac{(-1)^nq^{n^2}}{a^n}p_n(q^{-x}).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvqCharlier} +q^ny(x)=aq^xy(x+1)-q^x(a-1)y(x)+(1-q^x)y(x-1), +\end{equation} +where +$$y(x)=C_n(q^{-x};a;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1qCharlierI} +C_n(q^{-x-1};a;q)-C_n(q^{-x};a;q)=-a^{-1}q^{-x}(1-q^n)C_{n-1}(q^{-x};aq^{-1};q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1qCharlierII} +\frac{\Delta C_n(q^{-x};a;q)}{\Delta q^{-x}}=-\frac{q(1-q^n)}{a(1-q)}C_{n-1}(q^{-x};aq^{-1};q). +\end{equation} + +\newpage + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2qCharlierI} +C_n(q^{-x};a;q)-a^{-1}q^{-x}(1-q^x)C_n(q^{-x+1};a;q)=C_{n+1}(q^{-x};aq;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2qCharlierII} +\frac{\nabla\left[w(x;a;q)C_n(q^{-x};a;q)\right]}{\nabla q^{-x}} +=\frac{1}{1-q}w(x;aq;q)C_{n+1}(q^{-x};aq;q), +\end{equation} +where +$$w(x;a;q)=\frac{a^xq^{\binom{x+1}{2}}}{(q;q)_x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodqCharlier} +w(x;a;q)C_n(q^{-x};a;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;aq^{-n};q)\right], +\end{equation} +where +$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ + +\subsection*{Generating functions} +\begin{equation} +\label{GenqCharlier1} +\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{0}{-a^{-1}qt} +=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(q;q)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenqCharlier2} +\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{-a^{-1}q}{-a^{-1}q^{-x+1}t} +=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(-a^{-1}q,q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be +obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ +in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: +\begin{equation} +M_n(x;0,c;q)=C_n(x;c;q). +\end{equation} + +\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} +By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the +$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we +obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): +$$\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q).$$ + +\subsubsection*{$q$-Charlier $\rightarrow$ Stieltjes-Wigert} +If we set $q^{-x}\rightarrow ax$ in the definition (\ref{DefqCharlier}) of the +$q$-Charlier polynomials and take the limit $a\rightarrow\infty$ we obtain +the Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) in the +following way: +\begin{equation} +\lim_{a\rightarrow\infty}C_n(ax;a;q)=(q;q)_nS_n(x;q). +\end{equation} + +\subsubsection*{$q$-Charlier $\rightarrow$ Charlier} +If we set $a\rightarrow a(1-q)$ in the definition (\ref{DefqCharlier}) +of the $q$-Charlier polynomials and take the limit $q\rightarrow 1$ we obtain the +Charlier polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}C_n(q^{-x};a(1-q);q)=C_n(x;a). +\end{equation} + +\subsection*{Remark} +The $q$-Charlier polynomials given by (\ref{DefqCharlier}) and the +$q$-Laguerre polynomials given by (\ref{DefqLaguerre}) are related in the +following way: +$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ + +\subsection*{References} +\cite{AlvarezRonveaux}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, +\cite{Hahn}, \cite{Koelink96III}, \cite{Nikiforov+}, \cite{Zeng95}. + + +\section{Al-Salam-Carlitz~I}\index{Al-Salam-Carlitz~I polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefAlSalamCarlitzI} +U_n^{(a)}(x;q)=(-a)^nq^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{\frac{qx}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAlSalamCarlitzI} +& &\int_a^1(qx,a^{-1}qx;q)_{\infty}U_m^{(a)}(x;q)U_n^{(a)}(x;q)\,d_qx\nonumber\\ +& &{}=(-a)^n(1-q)(q;q)_n(q,a,a^{-1}q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn},\quad a<0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecAlSalamCarlitzI} +xU_n^{(a)}(x;q)=U_{n+1}^{(a)}(x;q)+(a+1)q^nU_n^{(a)}(x;q) +-aq^{n-1}(1-q^n)U_{n-1}^{(a)}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecAlSalamCarlitzI} +xp_n(x)=p_{n+1}(x)+(a+1)q^np_n(x)-aq^{n-1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$$U_n^{(a)}(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvAlSalamCarlitzI} +(1-q^n)x^2y(x)&=&aq^{n-1}y(qx)-\left[aq^{n-1}+q^n(1-x)(a-x)\right]y(x)\nonumber\\ +& &{}\mathindent{}+q^n(1-x)(a-x)y(q^{-1}x), +\end{eqnarray} +where +$$y(x)=U_n^{(a)}(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1AlSalamCarlitzI-I} +U_n^{(a)}(x;q)-U_n^{(a)}(qx;q)=(1-q^n)xU_{n-1}^{(a)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1AlSalamCarlitzI-II} +\mathcal{D}_qU_n^{(a)}(x;q)=\frac{1-q^n}{1-q}U_{n-1}^{(a)}(x;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2AlSalamCarlitzI-I} +aU_n^{(a)}(x;q)-(1-x)(a-x)U_n^{(a)}(q^{-1}x;q)=-q^{-n}xU_{n+1}^{(a)}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2AlSalamCarlitzI-II} +\mathcal{D}_{q^{-1}}\left[w(x;a;q)U_n^{(a)}(x;q)\right]= +\frac{q^{-n+1}}{a(1-q)}w(x;a;q)U_{n+1}^{(a)}(x;q), +\end{equation} +where +$$w(x;a;q)=(qx,a^{-1}qx;q)_{\infty}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodAlSalamCarlitzI} +w(x;a;q)U_n^{(a)}(x;q)=a^nq^{\frac{1}{2}n(n-3)}(1-q)^n +\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;a;q)\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenAlSalamCarlitzI} +\frac{(t,at;q)_{\infty}}{(xt;q)_{\infty}}= +\sum_{n=0}^{\infty}\frac{U_n^{(a)}(x;q)}{(q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Big $q$-Laguerre $\rightarrow$ Al-Salam-Carlitz~I} +If we set $x\rightarrow aqx$ and $b\rightarrow ab$ in the definition +(\ref{DefBigqLaguerre}) of the big $q$-Laguerre polynomials and take the +limit $a\rightarrow 0$ we obtain the Al-Salam-Carlitz~I polynomials given by +(\ref{DefAlSalamCarlitzI}): +$$\lim_{a\rightarrow 0}\frac{P_n(aqx;a,ab;q)}{a^n}=q^nU_n^{(b)}(x;q).$$ + +\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} +If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) +of the dual $q$-Krawtchouk polynomials and take the limit +$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials +given by (\ref{DefAlSalamCarlitzI}): +$$\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= +\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q).$$ +Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} +The discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) can easily be obtained from the +Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the +substitution $a=-1$: +\begin{equation} +U_n^{(-1)}(x;q)=h_n(x;q). +\end{equation} + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Charlier / Hermite} +If we set $a\rightarrow a(q-1)$ and $x\rightarrow q^x$ in the definition +(\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I polynomials and take the +limit $q\rightarrow 1$ after dividing by $a^n(1-q)^n$ we obtain the Charlier +polynomials given by (\ref{DefCharlier}): +\begin{equation} +\lim_{q\rightarrow 1}\frac{U_n^{(a(q-1))}(q^x;q)}{(1-q)^n}=a^nC_n(x;a). +\end{equation} + +If we set $x\rightarrow x\sqrt{1-q^2}$ and $a\rightarrow a\sqrt{1-q^2}-1$ +in the definition (\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I +polynomials, divide by $(1-q^2)^{\frac{n}{2}}$, and let $q$ tend to $1$ we +obtain the Hermite polynomials given by (\ref{DefHermite}) with shifted +argument. In fact we have +\begin{equation} +\lim_{q\rightarrow 1}\frac{U_n^{(a\sqrt{1-q^2}-1)}(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x-a)}{2^n}. +\end{equation} + +\subsection*{Remark} +The Al-Salam-Carlitz~I polynomials are related to the Al-Salam-Carlitz~II +polynomials given by (\ref{DefAlSalamCarlitzII}) in the following way: +$$U_n^{(a)}(x;q^{-1})=V_n^{(a)}(x;q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AlSalamChihara76}, \cite{AskeySuslovII}, +\cite{AtakRahmanSuslov}, \cite{Chihara68II}, \cite{Chihara78}, \cite{DattaGriffin}, +\cite{Dehesa}, \cite{DohaAhmed2005}, \cite{GasperRahman90}, \cite{Ismail85I}, +\cite{IsmailMuldoon}, \cite{Kim}, \cite{Zeng95}. + + +\section{Al-Salam-Carlitz~II}\index{Al-Salam-Carlitz~II polynomials} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +\begin{equation} +\label{DefAlSalamCarlitzII} +V_n^{(a)}(x;q)= +(-a)^nq^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},x}{-}{\frac{q^n}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtAlSalamCarlitzII} +& &\sum_{k=0}^{\infty}\frac{q^{k^2}a^k}{(q;q)_k(aq;q)_k} +V_m^{(a)}(q^{-k};q)V_n^{(a)}(q^{-k};q)\nonumber\\ +& &{}=\frac{(q;q)_na^n}{(aq;q)_{\infty}q^{n^2}}\,\delta_{mn},\quad 00,\quad\textrm{with}\quad +\gamma^2=-\frac{1}{2\ln q}.$$ + +\subsection*{References} +\cite{Askey86}, \cite{Askey89I}, \cite{AtakAtakIII}, \cite{Chihara70}, \cite{Chihara78}, +\cite{Dehesa}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Stieltjes}, \cite{Szego75}, +\cite{ValentAssche}, \cite{Wigert}. + + +\section{Discrete $q$-Hermite~I} +\index{Discrete q-Hermite~I polynomials@Discrete $q$-Hermite~I polynomials} +\index{q-Hermite~I polynomials@$q$-Hermite~I polynomials!Discrete} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +The discrete $q$-Hermite~I polynomials are Al-Salam-Carlitz~I polynomials +with $a=-1$: +\begin{eqnarray} +\label{DefDiscreteqHermiteI} +h_n(x;q)=U_n^{(-1)}(x;q)&=&q^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-qx}\\ +&=&x^n\qhypK{2}{0}{q^{-n},q^{-n+1}}{0}{q^2,\frac{q^{2n-1}}{x^2}}\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDiscreteqHermiteI} +& &\int_{-1}^1(qx,-qx;q)_{\infty}h_m(x;q)h_n(x;q)\,d_qx\nonumber\\ +& &{}=(1-q)(q;q)_n(q,-1,-q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDiscreteqHermiteI} +xh_n(x;q)=h_{n+1}(x;q)+q^{n-1}(1-q^n)h_{n-1}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDiscreteqHermiteI} +xp_n(x)=p_{n+1}(x)+q^{n-1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$$h_n(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{equation} +\label{dvDiscreteqHermiteI} +-q^{-n+1}x^2y(x)=y(qx)-(1+q)y(x)+q(1-x^2)y(q^{-1}x), +\end{equation} +where +$$y(x)=h_n(x;q).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1DiscreteqHermiteI-I} +h_n(x;q)-h_n(qx;q)=(1-q^n)xh_{n-1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1DiscreteqHermiteI-II} +\mathcal{D}_qh_n(x;q)=\frac{1-q^n}{1-q}h_{n-1}(x;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2DiscreteqHermiteI-I} +h_n(x;q)-(1-x^2)h_n(q^{-1}x;q)=q^{-n}xh_{n+1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2DiscreteqHermiteI-II} +\mathcal{D}_{q^{-1}}\left[w(x;q)h_n(x;q)\right] +=-\frac{q^{-n+1}}{1-q}w(x;q)h_{n+1}(x;q), +\end{equation} +where +$$w(x;q)=(qx,-qx;q)_{\infty}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDiscreteqHermiteI} +w(x;q)h_n(x;q)=(q-1)^nq^{\frac{1}{2}n(n-3)} +\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;q)\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenDiscreteqHermiteI} +\frac{(t^2;q^2)_{\infty}}{(xt;q)_{\infty}}= +\sum_{n=0}^{\infty}\frac{h_n(x;q)}{(q;q)_n}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} +The discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) can easily be obtained from the +Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the +substitution $a=-1$: +$$U_n^{(-1)}(x;q)=h_n(x;q).$$ + +\subsubsection*{Discrete $q$-Hermite~I $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be found +from the discrete $q$-Hermite~I polynomials given by +(\ref{DefDiscreteqHermiteI}) in the following way: +\begin{equation} +\lim_{q\rightarrow 1}\frac{h_n(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. +\end{equation} + +\subsection*{Remark} The discrete $q$-Hermite~I polynomials are related to the +discrete $q$-Hermite~II polynomials given by (\ref{DefDiscreteqHermiteII}) +in the following way: +$$h_n(ix;q^{-1})=i^n{\tilde h}_n(x;q).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AtakRahmanSuslov}, +\cite{BergIsmail}, \cite{BustozIsmail82}, \cite{GasperRahman90}, \cite{Hahn}, +\cite{Koorn97}. + + +\newpage + +\section{Discrete $q$-Hermite~II} +\index{Discrete q-Hermite~II polynomials@Discrete $q$-Hermite~II polynomials} +\index{q-Hermite~II polynomials@$q$-Hermite~II polynomials!Discrete} +\par\setcounter{equation}{0} + +\subsection*{Basic hypergeometric representation} +The discrete $q$-Hermite~II polynomials are Al-Salam-Carlitz~II polynomials +with $a=-1$: +\begin{eqnarray} +\label{DefDiscreteqHermiteII} +{\tilde h}_n(x;q)=i^{-n}V_n^{(-1)}(ix;q) +&=&i^{-n}q^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},ix}{-}{-q^n}\\ +&=&x^n +\qhypK{2}{1}{q^{-n},q^{-n+1}}{0}{q^2,-\frac{q^2}{x^2}}\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtDiscreteqHermiteIIa} +& &\sum_{k=-\infty}^{\infty}\left[{\tilde h}_m(cq^k;q) +{\tilde h}_n(cq^k;q)+{\tilde h}_m(-cq^k;q){\tilde h}_n(-cq^k;q)\right] +w(cq^k;q)q^k\nonumber\\ +& &{}=2\frac{(q^2,-c^2q,-c^{-2}q;q^2)_{\infty}}{(q,-c^2,-c^{-2}q^2;q^2)_{\infty}} +\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn},\quad c>0, +\end{eqnarray} +where +$$w(x;q)=\frac{1}{(ix,-ix;q)_{\infty}}=\frac{1}{(-x^2;q^2)_{\infty}}.$$ +For $c=1$ this orthogonality relation can also be written as +\begin{equation} +\label{OrtDiscreteqHermiteIIb} +\int_{-\infty}^{\infty}\frac{{\tilde h}_m(x;q){\tilde h}_n(x;q)}{(-x^2;q^2)_{\infty}}\,d_qx +=\frac{\left(q^2,-q,-q;q^2\right)_{\infty}}{\left(q^3,-q^2,-q^2;q^2\right)_{\infty}} +\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDiscreteqHermiteII} +x{\tilde h}_n(x;q)={\tilde h}_{n+1}(x;q)+q^{-2n+1}(1-q^n){\tilde h}_{n-1}(x;q). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDiscreteqHermiteII} +xp_n(x)=p_{n+1}(x)+q^{-2n+1}(1-q^n)p_{n-1}(x), +\end{equation} +where +$${\tilde h}_n(x;q)=p_n(x).$$ + +\subsection*{$q$-Difference equation} +\begin{eqnarray} +\label{dvDiscreteqHermiteII} +& &-(1-q^n)x^2{\tilde h}_n(x;q)\nonumber\\ +& &{}=(1+x^2){\tilde h}_n(qx;q)-(1+x^2+q){\tilde h}_n(x;q)+q{\tilde h}_n(q^{-1}x;q). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1DiscreteqHermiteII-I} +\tilde{h}_n(x;q)-\tilde{h}_n(qx;q)=q^{-n+1}(1-q^n)x\tilde{h}_{n-1}(qx;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift1DiscreteqHermiteII-II} +\mathcal{D}_q\tilde{h}_n(x;q)=\frac{q^{-n+1}(1-q^n)}{1-q}\tilde{h}_{n-1}(qx;q). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2DiscreteqHermiteII-I} +\tilde{h}_n(x;q)-(1+x^2)\tilde{h}_n(qx;q)=-q^nx\tilde{h}_{n+1}(x;q) +\end{equation} +or equivalently +\begin{equation} +\label{shift2DiscreteqHermiteII-II} +\mathcal{D}_q\left[w(x;q)\tilde{h}_n(x;q)\right] +=-\frac{q^n}{1-q}w(x;q)\tilde{h}_{n+1}(x;q). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDiscreteqHermiteII} +w(x;q)\tilde{h}_n(x;q)=(q-1)^nq^{-\binom{n}{2}} +\left(\mathcal{D}_q\right)^n\left[w(x;q)\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenDiscreteqHermiteII1} +\frac{(-xt;q)_{\infty}}{(-t^2;q^2)_{\infty}}=\sum_{n=0}^{\infty} +\frac{q^{\binom{n}{2}}}{(q;q)_n}{\tilde h}_n(x;q)t^n. +\end{equation} + +\begin{equation} +\label{GenDiscreteqHermiteII2} +(-it;q)_{\infty}\cdot\qhyp{1}{1}{ix}{-it}{it}=\sum_{n=0}^{\infty} +\frac{(-1)^nq^{n(n-1)}}{(q;q)_n}{\tilde h}_n(x;q)t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Al-Salam-Carlitz~II $\rightarrow$ Discrete $q$-Hermite~II} +The discrete $q$-Hermite~II polynomials given by +(\ref{DefDiscreteqHermiteII}) follow from the Al-Salam-Carlitz~II +polynomials given by (\ref{DefAlSalamCarlitzII}) by the substitution $a=-1$ +in the following way: +$$i^{-n}V_n^{(-1)}(ix;q)={\tilde h}_n(x;q).$$ + +\subsubsection*{Discrete $q$-Hermite~II $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be found +from the discrete $q$-Hermite~II polynomials given by +(\ref{DefDiscreteqHermiteII}) in the following way: +\begin{equation} +\lim_{q\rightarrow 1}\frac{{\tilde h}_n(x\sqrt{1-q^2};q)} +{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. +\end{equation} + +\subsection*{Remark} The discrete $q$-Hermite~II polynomials are related to the +discrete $q$-Hermite~I polynomials given by (\ref{DefDiscreteqHermiteI}) +in the following way: +$${\tilde h}_n(x;q^{-1})=i^{-n}h_n(ix;q).$$ + +\subsection*{References} +\cite{BergIsmail}, \cite{Koorn97}. + +\end{document} diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py new file mode 100644 index 0000000..f7f40fe --- /dev/null +++ b/KLSadd_insertion/updateChapters.py @@ -0,0 +1,117 @@ +""" +Rahul Shah +self-taught python don't kill me I know its bad +2/5/16 +Re-write of linetest.py so people other than me can read it + +This project was/is being written to streamline the update process of the book used +for the online repository, updated via the KLSadd addendum file which only affects chapters +9 and 14 + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +NOTE! AS OF 2/8/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE +linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED + +Current update status: incomplete + +Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter +""" + +#start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files +#also keep track of which chapter each one is in + +#variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over +#chapNums is needed to know which file to open (9 or 14) +#mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name +#yes I like lists +chapNums = [] +paras = [] +mathPeople = [] + +#method to find the indices of the reference paragraphs +def findReferences(str): + references = [] + index = -1 + canAdd = False + for word in str: + index+=1 + #check sections and subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1: word.find("}")] + if(w not in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references.append(index) + canAdd = False + return references + +#method to change file string(actually a list right now), returns string to be written to file +def fixChapter(str, references, p): + #str is the file string, references is the specific references for the file, and p is the paras variable(not sure if needed) + #TODO: OPTIMIZE + count = 0 #count is used to represent the values in count + for i in references: + #add + str[i-3] += p[count] + count+=1 + #I actually don't remember why I had to do this but I think you need it + str[i-1] += p[count] + return str + +#open the KLSadd file to do things with +with open("KLSadd.tex", "r") as add: + #store the file as a string + addendum = add.readlines() + index = 0 + indexes = [] + for word in addendum: + index+=1 + if("." in word and "\\subsection*{" in word): + name = word[word.find(" "): word.find("}")] + mathPeople.append(name) + if("9." in word): + chapNums.append(9) + if("14." in word): + chapNums.append(9) + #get the index + indexes.append(index-1) + #now indexes holds all of the places there is a section + #using these indexes, get all of the words in between and add that to the paras[] + for i in range(len(indexes)-1): + str = ''.join(addendum[indexes[i]: indexes[i+1]-1]) + paras.append(str) + + #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate + #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable + #we can use the section names to place the relevant paragraphs in the right place + + #as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section + #parse both files 9 and 14 as strings + + #chapter 9 + with open("tempchap9.tex", "r") as ch9: + entire9 = ch9.readlines() #reads in as a list of strings + ch9.close() + + #chapter 14 + with open("tempchap14.tex", "r") as ch14: + entire14 = ch14.readlines() + ch14.close() + #call the findReferences method to find the index of the References paragraph in the two file strings + #two variables for the references lists one for chapter 9 one for chapter 14 + references9 = findReferences(entire9) + references14 = findReferences(entire14) + + #call the fixChapter method to get a list with the addendum paragraphs added in + str9 = ''.join(fixChapter(entire9, references9, paras)) + str14 = ''.join(fixChapter(entire14, references14, paras)) + + #write to file + #new output files for safety + with open("updated9.tex","w") as temp9: + temp9.write(str9) + temp9.close() + + with open("updated14.tex", "w") as temp14: + temp14.write(str9) + diff --git a/KLSadd_insertion/updated14.tex b/KLSadd_insertion/updated14.tex new file mode 100644 index 0000000..e1b34b5 --- /dev/null +++ b/KLSadd_insertion/updated14.tex @@ -0,0 +1,4162 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\addtocounter{chapter}{8} +\pagenumbering{roman} +\chapter{Hypergeometric orthogonal polynomials} +\label{HyperOrtPol} + + +In this chapter we deal with all families of hypergeometric orthogonal polynomials +appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal +polynomials we state the most important properties such as a representation as a +hypergeometric function, orthogonality relation(s), the three-term recurrence relation, +the second-order differential or difference equation, the forward shift (or degree lowering) +and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating +functions. In each case we use the notation which seems to be most common in the literature. +Moreover, in each case we mention the connection between various families by stating the +appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of +this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. +For notations the reader is referred to chapter~\ref{Definitions}. + +\section{Wilson}\index{Wilson polynomials} + +\par + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefWilson} +& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ +& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then +\begin{eqnarray} +\label{OrthIWilson} +& &\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, +\end{eqnarray} +where +\begin{eqnarray*} +& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ +& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). +\end{eqnarray*} +If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates +occur with positive real parts, then +\begin{eqnarray} +\label{OrtIIWilson} +& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ +& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} +{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} +\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ +& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecWilson} +-\left(a^2+x^2\right){\tilde{W}}_n(x^2) +=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), +\end{equation} +where +$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecWilson} +xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvWilson} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=W_n(x^2;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] +\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1WilsonI} +& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) +-W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1WilsonII} +& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ +& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{eqnarray} + +\newpage + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2WilsonI} +& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) +(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) +W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2WilsonII} +& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ +& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodWilson} +& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ +& &{}=\left(\frac{\delta}{\delta x^2}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenWilson1} +\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson2} +\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson3} +\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. +\end{equation} + +\begin{eqnarray} +\label{GenWilson4} +& &(1-t)^{1-a-b-c-d}\nonumber\\ +& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} +{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} +The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the +Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: +\begin{equation} +\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson +polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, +$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following +way: +\begin{equation} +\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson +polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Remarks} +Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then +\begin{eqnarray} +\label{OrtContHahn} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) +p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} +{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecContHahn} +(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), +\end{equation} +where +$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecContHahn} +xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvContHahn} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] +\displaystyle D(x)=(a+ix)(b+ix). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1ContHahnI} +& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, +b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1ContHahnII} +\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) +p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2ContHahnI} +& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, +b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2ContHahnII} +& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ +& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ +& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodContHahn} +& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ +& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenContHahn1} +\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenContHahn2} +\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenContHahn3} +& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} +{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials are obtained from the Wilson polynomials given by +(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, +$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit +$t\rightarrow\infty$ in the following way: +$$\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the +continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ +and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. +\end{equation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials +by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous +Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray} + +\subsection*{Remark} +Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ +Thus, under these assumptions, the continuous Hahn polynomial +$p_n(x;a,b,c,d)$ +is symmetric in $a,b$ and in $c,d$. +This follows from the orthogonality relation (9.4.2) +together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ +As a consequence, it is sufficient to give generating function (9.4.11). Then the generating +function (9.4.12) will follow by symmetry in the parameters. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special cases} +In the following special case there is a reduction to +Meixner-Pollaczek: +\begin{equation} +p_n(x;a,a+\thalf,a,a+\thalf)= +\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). +\end{equation} +See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the +Meixner-Pollaczek polynonmials are defined different from (9.7.1), +without a constant factor in front). + +For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have +\begin{eqnarray} +\label{OrtHahn} +& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHahn} +-xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), +\end{equation} +where +$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] +\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHahn} +xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvHahn} +n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] +\displaystyle D(x)=x(x-\beta-N-1). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1HahnI} +& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1HahnII} +\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2HahnI} +& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ +& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2HahnII} +& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ +& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), +\end{eqnarray} +where +$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodHahn} +& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenHahn1} +\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenHahn2} +& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenHahn3} +& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} +{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Hahn} +If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we obtain the Hahn polynomials. Hence +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ +And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we also obtain the Hahn polynomials: +$$\lim_{\gamma\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ +Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in +the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit +$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take +$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials +by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials +if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the +dual Hahn polynomials given by (\ref{DefDualHahn}). + +\noindent +Since +$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ +we obtain the dual orthogonality relation for the Hahn polynomials from the +orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} +Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ +& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. +\subsection*{9.5 Hahn} +\label{sec9.5} +% +\paragraph{Special values} +\begin{equation} +Q_n(0;\al,\be,N)=1,\quad +Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{95} +\end{equation} +Use (9.5.1) and compare with (9.8.1) and \eqref{50}. + +From (9.5.3) and \eqref{1} it follows that +\begin{equation} +Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. +\label{30} +\end{equation} +From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that +\begin{equation} +Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). +\label{44} +\end{equation} +% +\paragraph{Symmetries} +By the orthogonality relation (9.5.2): +\begin{equation} +\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), +\label{96} +\end{equation} +It follows from \eqref{97} and \eqref{45} that +\begin{equation} +\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} +=Q_n(x;-N-\be-1,-N-\al-1,N) +\qquad(x=0,1,\ldots,N). +\label{100} +\end{equation} +% +\paragraph{Duality} +The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: +% +\begin{equation} +Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). +\label{45} +\end{equation} +\end{eqnarray*} + +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, +\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, +\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, +\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, +\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, +\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, +\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, +\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, +\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, +\cite{Zarzo+}. + + +\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefDualHahn} +R_n(\lambda(x);\gamma,\delta,N)= +\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\lambda(x)=x(x+\gamma+\delta+1).$$ + +\subsection*{Orthogonality relation} +For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have +\begin{eqnarray} +\label{OrtDualHahn} +& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDualHahn} +\lambda(x)R_n(\lambda(x)) +=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), +\end{equation} +where +$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] +\displaystyle C_n=n(n-\delta-N-1). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDualHahn} +xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvDualHahn} +-ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] +\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualHahnI} +& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1DualHahnII} +\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= +-\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualHahnI} +& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ +& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualHahnII} +& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ +& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), +\end{eqnarray} +where +$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} +{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ + +\newpage + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDualHahn} +\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) +=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], +\end{equation} +where +$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenDualHahn1} +(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn2} +& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ +& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{eqnarray} + +\begin{equation} +\label{GenDualHahn3} +\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N +\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn4} +& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, +\quad\textrm{$\epsilon$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Dual Hahn} +If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we obtain the dual Hahn polynomials: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we also obtain the dual Hahn polynomials: +$$\lim_{\alpha\rightarrow\infty} +R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition +(\ref{DefRacah}) of the Racah polynomials and take the limit +$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials +if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). +\end{equation} + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual +Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) +of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). + +\noindent +Since +$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ +we obtain the dual orthogonality relation for the dual Hahn polynomials +from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ +& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. +\subsection*{9.6 Dual Hahn} +\label{sec9.6} +% +\paragraph{Special values} +By \eqref{44} and \eqref{45} we have +\begin{equation} +R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. +\label{47} +\end{equation} +It follows from \eqref{95} and \eqref{45} that +\begin{equation} +R_N(x(x+\ga+\de+1);\ga,\de,N) +=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). +\label{101} +\end{equation} +% +\paragraph{Symmetries} +Write the weight in (9.6.2) as +\begin{equation} +w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, +\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. +\label{98} +\end{equation} +Then +\begin{equation} +(\de+1)_N\,w_{N-x}(\ga,\de,N)= +(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). +\label{99} +\end{equation} +Hence, by (9.6.2), +\begin{equation} +\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} +=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). +\label{97} +\end{equation} +Alternatively, \eqref{97} follows from (9.6.1) and +\mycite{DLMF}{(16.4.11)}. + +It follows from \eqref{96} and \eqref{45} that +\begin{equation} +\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} +{R_N(x(x+\ga+\de+1);\ga,\de,N)} +=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). +\label{102} +\end{equation} +% +\paragraph{Re: (9.6.11).} +The generating function (9.6.11) can be written in a more conceptual way as +\begin{equation} +(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, +\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, +\label{2} +\end{equation} +where +\begin{equation} +\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, +\label{3} +\end{equation} +i.e., the denominator on the \RHS\ of (9.6.2). +By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in +terms of Hahn polynomials: +\begin{equation} +(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, +\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, +\label{4} +\end{equation} +where +\begin{equation} +w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, +\label{5} +\end{equation} +i.e., the weight occurring in the orthogonality relation (9.5.2) +for Hahn polynomials. +\paragraph{Re: (9.6.15).} +There should be a closing bracket before the equality sign. +\end{eqnarray*} + +\subsection*{References} +\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, +\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, +\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. + + +\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMP} +P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, +\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMP} +\frac{1}{2\pi}\int_{-\infty}^{\infty} +\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 +P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx +{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, +% \constraint{ +% $\lambda > 0$ & +% $0 < \phi < \pi$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMP} +& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] +P_n^{(\lambda)}(x;\phi)\nonumber\\ +& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMP} +xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ +\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), +\end{equation} +where +$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvMP} +& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ +& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MPI} +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) +P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MPII} +\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} +=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2MPI} +& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ +\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ +& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2MPII} +\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= +-(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) +P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), +\end{equation} +where +$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMP} +\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} +\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. +\end{equation} + +\newpage + +\subsection*{Generating functions} +\begin{equation} +\label{GenMP1} +(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= +\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. +\end{equation} + +\begin{equation} +\label{GenMP2} +\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= +\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenMP3} +& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials +given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, +$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the +definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit +$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: +$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ + +\newpage + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the +Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +\begin{equation} +\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek +polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +and then let $\lambda\rightarrow\infty$: +\begin{equation} +\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remark} +Since we have for $k-1$ and $\beta>-1$ we have +\begin{eqnarray} +\label{OrtJacobi1} +& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ +& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. +\end{eqnarray} +For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have +\begin{eqnarray} +\label{OrtJacobi2} +& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ +& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecJacobi} +xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} +{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) +\end{eqnarray} +where +$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{eqnarray} +\label{dvJacobi} +& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ +& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Jacobi} +\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2JacobiI} +& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ +\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2JacobiII} +& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ +& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodJacobi} +(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= +\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenJacobi1} +\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= +\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{eqnarray} +\label{GenJacobi2} +& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi3} +& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi4} +& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi5} +& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2} +\end{eqnarray} +with $\gamma$ arbitrary. + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by +substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +$$\lim_{t\rightarrow\infty} +\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} +{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) +by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ +in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take +$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have +$$\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi +polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials +if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: +\begin{equation} +\lim_{\alpha\rightarrow-\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials +by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: +$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} +(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ +In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ +and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the +following connection with the Meixner polynomials given by (\ref{DefMeixner}): +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by +(\ref{DefPseudoJacobi}) in the following way: +$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ + +\noindent +The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials +given by (\ref{DefGegenbauer}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +\subsection*{9.8 Jacobi} +\label{sec9.8} +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\begin{split} +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP +&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. +\end{split} +\label{60} +\end{equation} + +In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be +$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: +\begin{equation} +\begin{split} +&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ +&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. +\end{split} +\label{122} +\end{equation} + +% +\paragraph{Symmetry} +\begin{equation} +P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). +\label{48} +\end{equation} +Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Special values} +\begin{equation} +P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad +P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad +\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{50} +\end{equation} +Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Generating functions} +Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. +% +\paragraph{Bilateral generating functions} +For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): +\begin{align} +&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac1{(1+r)^{\al+\be+1}} +\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), +\label{58}\sLP +&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} +\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). +\label{59} +\end{align} +Formulas \eqref{58} and \eqref{59} were first +given by Bailey \myciteKLS{91}{(2.1), (2.3)}. +See Stanton \myciteKLS{485} for a shorter proof. +(However, in the second line of +\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ +As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows +from \eqref{58} +by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ +to both sides of \eqref{58}. +In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi +polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. +See also the discussion in Askey \myciteKLS{46}{following (2.32)}. +% +\paragraph{Quadratic transformations} +\begin{align} +\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} +=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} +&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, +\label{51}\\ +\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} +=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} +&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. +\label{52} +\end{align} +See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. +Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\begin{split} +\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= +-(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ +\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= +-(n+\al)\,P_n^{(\al-1,\be+1)}(x). +\end{split} +\label{68} +\end{equation} +% +\begin{equation} +\begin{split} +\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= +(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ +\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= +(n+\be)\,P_n^{(\al+1,\be-1)}(x). +\end{split} +\label{69} +\end{equation} +Formulas \eqref{68} and \eqref{69} follow from +\mycite{DLMF}{(15.5.4), (15.5.6)} +together with (9.8.1). They also follow from each other by \eqref{48}. +% +\paragraph{Generalized Gegenbauer polynomials} +These are defined by +\begin{equation} +S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad +S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{70} +\end{equation} +in the notation of \myciteKLS{146}{p.156} +(see also \cite{K27}), while \cite[Section 1.5.2]{K26} +has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. +For $\al,\be>-1$ we have the orthogonality relation +\begin{equation} +\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx +=0\qquad(m\ne n). +\label{71} +\end{equation} +For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of +continuous $q$-ultraspherical polynomials, see \eqref{176}. + +If we define the {\em Dunkl operator} $T_\mu$ by +\begin{equation} +(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x +\label{72} +\end{equation} +and if we choose the constants in \eqref{70} as +\begin{equation} +S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad +S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, +x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{73} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. +\label{74} +\end{equation} +Formula \eqref{74} with \eqref{73} substituted gives rise to two +differentiation formulas involving Jacobi polynomials which are equivalent to +(9.8.7) and \eqref{69}. + +Composition of \eqref{74} with itself gives +\[ +T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, +\] +which is equivalent to the composition of (9.8.7) and \eqref{69}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) +=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). +\label{75} +\end{equation} +Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, +\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, +\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, +\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, +\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, +\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, +\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, +\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, +\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, +\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, +\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, +\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, +\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, +\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, +\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, +\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, +\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, +\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, +\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, +\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, +\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, +\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, +\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, +\cite{Zayed}. + +\section*{Special cases} + +\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} +\index{Ultraspherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with +$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: +\begin{eqnarray} +\label{DefGegenbauer} +C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ +&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} +{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtGegenbauer} +& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ +& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, +\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecGegenbauer} +2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecGegenbauer} +xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), +\end{equation} +where +$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvGegenbauer} +(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Gegenbauer} +\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2GegenbauerI} +(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= +-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) +\end{equation} +or equivalently +\begin{eqnarray} +\label{shift2GegenbauerII} +& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ +& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodGegenbauer} +(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= +\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenGegenbauer1} +(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer2} +R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} +\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenGegenbauer3} +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} +=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer4} +\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenGegenbauer5} +& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenGegenbauer6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} +{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or +ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remarks} +The case $\lambda=0$ needs another normalization. In that case we have the +Chebyshev polynomials of the first kind described in the next subsection. + +\noindent +The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials +given by (\ref{DefJacobi}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +\subsection*{9.8.1 Gegenbauer / Ultraspherical} +\label{sec9.8.1} +% +\paragraph{Notation} +Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\frac{h_n}{h_0}= +\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad +h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad +\frac{h_n}{h_0\,(C_n^\la(1))^2}= +\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. +\label{61} +\end{equation} +% +\paragraph{Hypergeometric representation} +Beside (9.8.19) we have also +\begin{equation} +C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} +{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} +=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, +\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. +\label{57} +\end{equation} +See \mycite{DLMF}{(18.5.10)}. +% +\paragraph{Special value} +\begin{equation} +C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. +\label{49} +\end{equation} +Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Expression in terms of Jacobi} +% +\begin{equation} +\frac{C_n^\la(x)}{C_n^\la(1)}= +\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad +C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). +\label{65} +\end{equation} +% +\paragraph{Re: (9.8.21)} +By iteration of recurrence relation (9.8.21): +\begin{multline} +x^2 C_n^\la(x)= +\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ +\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ ++\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). +\label{6} +\end{multline} +% +\paragraph{Bilateral generating functions} +\begin{multline} +\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ +(r\in(-1,1),\;x,y\in[-1,1]). +\label{66} +\end{multline} +For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. +The Poisson kernel for Gegenbauer polynomials can be derived in a similar way +from \eqref{59}, or alternatively by applying the operator +$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: +\begin{multline} +\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ +\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad +(r\in(-1,1),\;x,y\in[-1,1]). +\label{67} +\end{multline} +Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} +as a limit case of their formula for the Poisson kernel for continuous +$q$-ultraspherical polynomials. +% +\paragraph{Trigonometric expansions} +By \mycite{DLMF}{(18.5.11), (15.8.1)}: +\begin{align} +C_n^{\la}(\cos\tha) +&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} +=e^{in\tha}\frac{(\la)_n}{n!}\, +\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ +&=\frac{(\la)_n}{2^\la n!}\, +e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, +\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ +&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, +\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} +\end{align} +In \eqref{104} and \eqref{105} we require that +$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ +and conditional for $0<\la\le\thalf$. + +By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: +\begin{align} +C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, +\sin\big((2k+n+1)\tha\big) +\label{7}\\ +&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ +&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, +\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, +\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ +&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, +\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, +\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. +\label{106} +\end{align} +We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in +\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for +$0<\la\le\thalf$. +For $\la\in\Zpos$ the above series terminate after the term with +$k=\la-1$. +Formulas \eqref{7} and \eqref{106} are also given in +\mycite{Sz}{(4.9.22), (4.9.25)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, +\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, +e^{ixy}\,dy +=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). +\label{8} +\end{equation} +See \mycite{DLMF}{(18.17.17) and (18.17.18)}. +% +\paragraph{Laplace transforms} +\begin{equation} +\frac2{n!\,\Ga(\la)}\, +\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). +\label{56} +\end{equation} +See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) +or Feldheim \cite[(28)]{K3} (1942). +\begin{equation} +\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, +(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt +=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). +\label{46} +\end{equation} +Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with +\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. +\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) +\begin{multline} +R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) +=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ +\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, +\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), +\label{108} +\end{multline} +where +\[ +R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad +\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} +{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. +\] +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, +\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, +\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, +\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, +\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, +\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, +\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, +\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, +\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, +\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, +\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, +\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. + +\subsection{Chebyshev}\index{Chebyshev polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Chebyshev polynomials of the first kind can be obtained from the Jacobi +polynomials by taking $\alpha=\beta=-\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevI} +T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} +=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} +\end{equation} +and the Chebyshev polynomials of the second kind can be obtained from the +Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevII} +U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} +=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtChebyshevI} +\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= +\left\{\begin{array}{ll} +\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] +\cpi\,\delta_{mn}, & n=0. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{OrtChebyshevII} +\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relations} +\begin{equation} +\label{RecChebyshevI} +2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. +\end{equation} + +\begin{equation} +\label{RecChebyshevII} +2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. +\end{equation} + +\subsection*{Normalized recurrence relations} +\begin{equation} +\label{NormRecChebyshevI} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ + +\begin{equation} +\label{NormRecChebyshevII} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$U_n(x)=2^np_n(x).$$ + +\subsection*{Differential equations} +\begin{equation} +\label{dvChebyshevI} +(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). +\end{equation} + +\begin{equation} +\label{dvChebyshevII} +(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Chebyshev} +\frac{d}{dx}T_n(x)=nU_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2ChebyshevI} +(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2ChebyshevII} +\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] +=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formulas} +\begin{equation} +\label{RodChebyshevI} +(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. +\end{equation} + +\begin{equation} +\label{RodChebyshevII} +(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenChebyshevI1} +\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI2} +R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} +\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevI3} +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevI5} +& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevI6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{equation} +\label{GenChebyshevII1} +\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII2} +\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} +\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevII3} +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevII5} +& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevII6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Remarks} +The Chebyshev polynomials can also be written as: +$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ +and +$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ +Further we have +$$U_n(x)=C_n^{(1)}(x)$$ +where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) +\subsection*{9.8.2 Chebyshev} +\label{sec9.8.2} +In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) +and $U_n$ of the second kind (9.8.36), +\begin{align} +T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} +=\cos(n\tha),\quad x=\cos\tha,\\ +U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} +=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, +\end{align} +we have Chebyshev polynomials $V_n$ {\em of the third kind} +and $W_n$ {\em of the fourth kind}, +\begin{align} +V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} +=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ +W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} +=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, +\end{align} +see \cite[Section 1.2.3]{K20}. Then there is the symmetry +\begin{equation} +V_n(-x)=(-1)^n W_n(x). +\label{140} +\end{equation} + +The names of Chebyshev polynomials of the third and fourth kind +and the notation $V_n(x)$ are due to Gautschi \cite{K21}. +The notation $W_n(x)$ was first used by Mason \cite{K22}. +Names and notations for Chebyshev polynomials of the third and fourth +kind are interchanged in \mycite{AAR}{Remark 2.5.3} and +\mycite{DLMF}{Table 18.3.1}. +polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. + +\subsection*{References} +\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, +\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, +\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, +\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, +\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, +\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. + +\subsection{Legendre / Spherical}\index{Legendre polynomials} +\index{Spherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: +\begin{equation} +\label{DefLegendre} +P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLegendre} +\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLegendre} +(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLegendre} +xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), +\end{equation} +where +$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLegendre} +(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLegendre} +P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLegendre1} +\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre2} +\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre3} +\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenLegendre4} +& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenLegendre5} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\subsection*{9.9 Pseudo Jacobi (or Routh-Romanovski)} +\label{sec9.9} +In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) +is considered +for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take +$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). +\] +Then $P_n$ can be expressed as a Meixner polynomial: +\[ +P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, +M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). +\] + +In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' +which turn out to be special Meixner polynomials: +$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Askey87}, \cite{BorodinOlshanski}, \cite{Lesky96}. + + +\section{Meixner}\index{Meixner polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMeixner} +M_n(x;\beta,c)=\hyp{2}{1}{-n,-x}{\beta}{1-\frac{1}{c}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMeixner} +\sum_{x=0}^{\infty}\frac{(\beta)_x}{x!}c^xM_m(x;\beta,c)M_n(x;\beta,c) +{}=\frac{c^{-n}n!}{(\beta)_n(1-c)^{\beta}}\,\delta_{mn} +% \constraint{ +% $\beta > 0$ & +% $0 < c < 1$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMeixner} +(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ +& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMeixner} +xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ +\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), +\end{equation} +where +$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvMeixner} +n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), +\end{equation} +where +$$y(x)=M_n(x;\beta,c).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MeixnerI} +M_n(x+1;\beta,c)-M_n(x;\beta,c)= +\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MeixnerII} +\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2MeixnerI} +c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift2MeixnerII} +\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= +\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMeixner} +\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenMeixner1} +\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= +\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner2} +\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= +\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner3} +(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) +of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: +$$\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +To obtain the Meixner polynomials from the dual Hahn polynomials we have to take +$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of +the dual Hahn polynomials and let $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials +if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: +\begin{equation} +\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. +\end{equation} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials +if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). +\end{equation} + +\subsection*{Remarks} +The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) +in the following way: +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Meixner polynomials are also related to the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) in the following way: +\subsection*{9.11 Krawtchouk} +\label{sec9.11} +% +\paragraph{Special values} +By (9.11.1) and the binomial formula: +\begin{equation} +K_n(0;p,N)=1,\qquad +K_n(N;p,N)=(1-p^{-1})^n. +\label{9} +\end{equation} +The self-duality (p.240, Remarks, first formula) +\begin{equation} +K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) +\label{147} +\end{equation} +combined with \eqref{9} yields: +\begin{equation} +K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). +\label{148} +\end{equation} +% +\paragraph{Symmetry} +By the orthogonality relation (9.11.2): +\begin{equation} +\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). +\label{10} +\end{equation} +By \eqref{10} and \eqref{147} we have also +\begin{equation} +\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) +\qquad(n,x\in\{0,1,\ldots,N\}), +\label{149} +\end{equation} +and, by \eqref{149}, \eqref{10} and \eqref{9}, +\begin{equation} +K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) +\qquad(n,x\in\{0,1,\ldots,N\}). +\label{150} +\end{equation} +A particular case of \eqref{10} is: +\begin{equation} +K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). +\label{11} +\end{equation} +Hence +\begin{equation} +K_{2m+1}(N;\thalf,2N)=0. +\label{12} +\end{equation} +From (9.11.11): +\begin{equation} +K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. +\label{13} +\end{equation} +% +\paragraph{Quadratic transformations} +\begin{align} +K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, +R_m(x^2;-\thalf,-\thalf,N), +\label{31}\\ +K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, +x\,R_m(x^2-1;\thalf,\thalf,N-1), +\label{33}\\ +K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, +R_m(x(x+1);-\thalf,\thalf,N), +\label{32}\\ +K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, +(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), +\label{34} +\end{align} +where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use +(9.6.2), (9.11.2), (9.6.4) and (9.11.4). +% +\paragraph{Generating functions} +\begin{multline} +\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ +=\left(\frac{p-z+pz}p\right)^m +\left(\frac{q-z+qz}q\right)^n +(1+z)^{N-m-n} +K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). +\label{107} +\end{multline} +This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back +to Meixner \cite{K9}. +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{Alvarez+}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyIsmail76}, +\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Bavinck98}, +\cite{BavinckHaeringen}, \cite{Campigotto+}, \cite{Chihara78}, \cite{Cooper+}, +\cite{Erdelyi+}, \cite{FoataLabelle}, \cite{Gabutti}, \cite{GabuttiMathis}, \cite{Gasper73I}, +\cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{IsmailLetVal88}, +\cite{IsmailLi}, \cite{IsmailMuldoon}, \cite{IsmailStanton97}, \cite{JinWong}, +\cite{Karlin58}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rahman78I}, \cite{ValentAssche}, +\cite{Viennot}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Krawtchouk}\index{Krawtchouk polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefKrawtchouk} +K_n(x;p,N)=\hyp{2}{1}{-n,-x}{-N}{\frac{1}{p}},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtKrawtchouk} +& &\sum_{x=0}^N\binom{N}{x}p^x(1-p)^{N-x} K_m(x;p,N)K_n(x;p,N)\nonumber\\ +& &{}=\frac{(-1)^nn!}{(-N)_n}\left(\frac{1-p}{p}\right)^n\,\delta_{mn},\quad0 < p < 1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecKrawtchouk} +-xK_n(x;p,N)&=&p(N-n)K_{n+1}(x;p,N)\nonumber\\ +& &{}\mathindent{}-\left[p(N-n)+n(1-p)\right]K_n(x;p,N)\nonumber\\ +& &{}\mathindent\mathindent{}+n(1-p)K_{n-1}(x;p,N). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+\left[p(N-n)+n(1-p)\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+np(1-p)(N+1-n)p_{n-1}(x), +\end{eqnarray} +where +$$K_n(x;p,N)=\frac{1}{(-N)_np^n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvKrawtchouk} +-ny(x)&=&p(N-x)y(x+1)\nonumber\\ +& &{}\mathindent{}-\left[p(N-x)+x(1-p)\right]y(x)+x(1-p)y(x-1), +\end{eqnarray} +where +$$y(x)=K_n(x;p,N).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1KrawtchoukI} +K_n(x+1;p,N)-K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1) +\end{equation} +or equivalently +\begin{equation} +\label{shift1KrawtchoukII} +\Delta K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2KrawtchoukI} +& &(N+1-x)K_n(x;p,N)-x\left(\frac{1-p}{p}\right)K_n(x-1;p,N)\nonumber\\ +& &{}=(N+1)K_{n+1}(x;p,N+1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2KrawtchoukII} +\nabla\left[\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)\right]= +\binom{N+1}{x}\left(\frac{p}{1-p}\right)^xK_{n+1}(x;p,N+1). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodKrawtchouk} +\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)= +\nabla^n\left[\binom{N-n}{x}\left(\frac{p}{1-p}\right)^x\right]. +\end{equation} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenKrawtchouk1} +\left(1-\frac{(1-p)}{p}t\right)^x(1+t)^{N-x}= +\sum_{n=0}^N\binom{N}{n}K_n(x;p,N)t^n. +\end{equation} + +\begin{equation} +\label{GenKrawtchouk2} +\left[\expe^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}\right]_N= +\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenKrawtchouk3} +& &\left[(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{-N}{\frac{t}{p(t-1)}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\gamma)_n}{n!}K_n(x;p,N)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +If we take $\alpha=pt$ and $\beta=(1-p)t$ in the definition (\ref{DefHahn}) of the Hahn +polynomials and let $t\rightarrow\infty$ we obtain the Krawtchouk polynomials: +$$\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials follow from the dual Hahn polynomials given by +(\ref{DefDualHahn}) if we set $\gamma=pt$, $\delta=(1-p)t$ and let $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) can be found from the Krawtchouk +polynomials by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a). +\end{equation} + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Krawtchouk polynomials +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}. +\end{equation} + +\subsection*{Remarks} +The Krawtchouk polynomials are self-dual, which means that +$$K_n(x;p,N)=K_x(n;p,N),\quad n,x\in\{0,1,2,\ldots,N\}.$$ +By using this relation we easily obtain the so-called dual orthogonality +relation from the orthogonality relation (\ref{OrtKrawtchouk}): +$$\sum_{n=0}^N\binom{N}{n}p^n(1-p)^{N-n} K_n(x;p,N)K_n(y;p,N)= +\frac{\displaystyle\left(\frac{1-p}{p}\right)^x}{\dbinom{N}{x}}\delta_{xy},$$ +where $0 < p < 1$ and $x,y\in\{0,1,2,\ldots,N\}$. + +\noindent +The Krawtchouk polynomials are related to the Meixner polynomials given by (\ref{DefMeixner}) +in the following way: +\subsection*{9.12 Laguerre} +\label{sec9.12} +\paragraph{Notation} +Here the Laguerre polynomial is denoted by $L_n^\al$ instead of +$L_n^{(\al)}$. +% +\paragraph{Hypergeometric representation} +\begin{align} +L_n^\al(x)&= +\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x +\label{182}\\ +&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} +\label{183}\\ +&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), +\label{184} +\end{align} +where $C_n$ in \eqref{184} is a +\hyperref[sec9.14]{Charlier polynomial}. +Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal +of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. +It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially +\myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special value} +\begin{equation} +L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. +\label{53} +\end{equation} +Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. +% +\paragraph{Quadratic transformations} +\begin{align} +H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), +\label{54}\\ +H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). +\label{55} +\end{align} +See p.244, Remarks, last two formulas. +Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, +e^{-y}\,y^\al\,e^{ixy}\,dy= +i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, +\label{14} +\end{equation} +see \mycite{DLMF}{(18.17.34)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\frac d{dx}\left(x^\al L_n^\al(x)\right)= +(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad +\left(x\frac d{dx}+\al\right)L_n^\al(x)= +(n+\al)\,L_n^{\al-1}(x). +\label{76} +\end{equation} +% +\begin{equation} +\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= +-e^{-x} L_n^{\al+1}(x),\qquad +\left(\frac d{dx}-1\right)L_n^\al(x)= +-L_n^{\al+1}(x). +\label{77} +\end{equation} +% +Formulas \eqref{76} and \eqref{77} follow from +\mycite{DLMF}{(13.3.18), (13.3.20)} +together with (9.12.1). +% +\paragraph{Generalized Hermite polynomials} +See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. +These are defined by +\begin{equation} +H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). +\label{78} +\end{equation} +Then for $\mu>-\thalf$ we have orthogonality relation +\begin{equation} +\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx +=0\qquad(m\ne n). +\label{79} +\end{equation} +Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. +If we choose the constants in \eqref{78} as +\begin{equation} +H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, + x\,L_m^{\mu+\half}(x^2) + \label{80} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_\mu H_n^\mu=2n\,H_{n-1}^\mu. +\label{81} +\end{equation} +Formula \eqref{81} with \eqref{80} substituted gives rise to two +differentiation formulas involving Laguerre polynomials which are equivalent to +(9.12.6) and \eqref{76}. + +Composition of \eqref{81} with itself gives +\[ +T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, +\] +which is equivalent to the composition of (9.12.6) and \eqref{76}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) +=-4(n+\al)\,L_{n-1}^\al(x^2). +\label{82} +\end{equation} +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, +\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, +\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, +\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, +\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Laguerre}\index{Laguerre polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefLaguerre} +L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLaguerre} +\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= +\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLaguerre} +(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLaguerre} +xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), +\end{equation} +where +$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLaguerre} +xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). +\end{equation} + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Laguerre} +\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2LaguerreI} +x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2LaguerreII} +\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLaguerre} +\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLaguerre1} +(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= +\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre2} +\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre3} +(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by +(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +$$\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) +if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: +$$\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition +(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain +the Laguerre polynomials: +$$\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre +polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be +written as: +$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ +In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. +Therefore they can be defined for all $\alpha$. + +\noindent +The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\noindent +The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\noindent +In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook +\subsection*{9.14 Charlier} +\label{sec9.14} +% +\paragraph{Hypergeometric representation} +\begin{align} +C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} +\label{179}\\ +&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a +\label{180}\\ +&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), +\label{181} +\end{align} +where $L_n^\al(x)$ is a +\hyperref[sec9.12]{Laguerre polynomial}. +Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal +of the summation. Finally \eqref{181} follows by \eqref{180} and +(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it +was earlier given in \myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +polynomials. + +\subsection*{References} +\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, +\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, +\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, +\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, +\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, +\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, +\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, +\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, +\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, +\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, +\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, +\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, +\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, +\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, +\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, +\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, +\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, +\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, +\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. + + +\section{Bessel}\index{Bessel polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefBessel} +y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ +&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, +\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBessel} +& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ +& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBessel} +& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ +& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ +& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecBessel} +xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), +\end{eqnarray} +where +$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvBessel} +x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Bessel} +\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2BesselI} +x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) +\end{equation} +or equivalently +\begin{equation} +\label{shift2BesselII} +\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodBessel} +y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenBessel} +\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a +\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. +\end{equation} + +\subsection*{Limit relation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials +and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: +$$\lim_{\alpha\rightarrow -\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ + +\subsection*{Remarks} +The following notations are also used for the Bessel polynomials: +$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ +However, the Bessel polynomials essentially depend on only one parameter. + +\noindent +The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi +polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the +pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: +$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} +\subsection*{9.15 Hermite} +\label{sec9.15} +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Fourier transforms} +\begin{equation} +\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= +i^n\,H_n(x)\,e^{-\half x^2}, +\label{15} +\end{equation} +see \mycite{AAR}{(6.1.15) and Exercise 6.11}. +\begin{equation} +\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= +i^n\,x^n\,e^{-\frac14 x^2}, +\label{16} +\end{equation} +see \mycite{DLMF}{(18.17.35)}. +\begin{equation} +\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= +H_n(x)\,e^{-x^2}, +\label{17} +\end{equation} +see \mycite{AAR}{(6.1.4)}. +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, +\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, +\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. + + +\section{Charlier}\index{Charlier polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefCharlier} +C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtCharlier} +\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= +a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecCharlier} +-xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecCharlier} +xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), +\end{equation} +where +$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvCharlier} +-ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1CharlierI} +C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift1CharlierII} +\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2CharlierI} +C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift2CharlierII} +\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodCharlier} +\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenCharlier} +\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials +and let $\beta\rightarrow\infty$ we find the Charlier polynomials: +$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials can be found from the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials +if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). +\end{equation} + +\subsection*{Remark} +The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +\subsection*{14.1 Askey-Wilson} +\label{sec14.1} +% +\paragraph{Symmetry} +The Askey-Wilson polynomials $p_n(x;a,b,c,d\,|\,q)$ are \,|\,symmetric +in $a,b,c,d$. +\sLP +This follows from the orthogonality relation (14.1.2) +together with the value of its coefficient of $x^n$ given in (14.1.5b). +Alternatively, combine (14.1.1) with \mycite{GR}{(III.15)}.\\ +As a consequence, it is sufficient to give generating function (14.1.13). Then the generating +functions (14.1.14), (14.1.15) will follow by symmetry in the parameters. +% +\paragraph{Basic hypergeometric representation} +In addition to (14.1.1) we have (in notation \eqref{111}): +\begin{multline} +p_n(\cos\tha;a,b,c,d\,|\, q) +=\frac{(ae^{-i\tha},be^{-i\tha},ce^{-i\tha},de^{-i\tha};q)_n} +{(e^{-2i\tha};q)_n}\,e^{in\tha}\\ +\times {}_8W_7\big(q^{-n}e^{2i\tha};ae^{i\tha},be^{i\tha}, +ce^{i\tha},de^{i\tha},q^{-n};q,q^{2-n}/(abcd)\big). +\label{113} +\end{multline} +This follows from (14.1.1) by combining (III.15) and (III.19) in +\mycite{GR}. +It is also given in \myciteKLS{513}{(4.2)}, but be aware for some slight errors. +The symmetry in $a,b,c,d$ is evident from \eqref{113}. +% +\paragraph{Special value} +\begin{equation} +p_n\big(\thalf(a+a^{-1});a,b,c,d\,|\, q\big)=a^{-n}\,(ab,ac,ad;q)_n\,, +\label{40} +\end{equation} +and similarly for arguments $\thalf(b+b^{-1})$, $\thalf(c+c^{-1})$ and +$\thalf(d+d^{-1})$ by symmetry of $p_n$ in $a,b,c,d$. +% +\paragraph{Trivial symmetry} +\begin{equation} +p_n(-x;a,b,c,d\,|\, q)=(-1)^n p_n(x;-a,-b,-c,-d\,|\, q). +\label{41} +\end{equation} +Both \eqref{40} and \eqref{41} are obtained from (14.1.1). +% +\paragraph{Re: (14.1.5)} +Let +\begin{equation} +p_n(x):=\frac{p_n(x;a,b,c,d\,|\, q)}{2^n(abcdq^{n-1};q)_n}=x^n+\wt k_n x^{n-1} ++\cdots\;. +\label{18} +\end{equation} +Then +\begin{equation} +\wt k_n=-\frac{(1-q^n)(a+b+c+d-(abc+abd+acd+bcd)q^{n-1})} +{2(1-q)(1-abcdq^{2n-2})}\,. +\label{19} +\end{equation} +This follows because $\tilde k_n-\tilde k_{n+1}$ equals the coefficient +$\thalf\bigl(a+a^{-1}-(A_n+C_n)\bigr)$ of $p_n(x)$ in (14.1.5). +% +\paragraph{Generating functions} +Rahman \myciteKLS{449}{(4.1), (4.9)} gives: +\begin{align} +&\sum_{n=0}^\iy \frac{(abcdq^{-1};q)_n a^n}{(ab,ac,ad,q;q)_n}\,t^n\, +p_n(\cos\tha;a,b,c,d\,|\,q) +\nonumber\\ +&=\frac{(abcdtq^{-1};q)_\iy}{(t;q)_\iy}\, +\qhyp65{(abcdq^{-1})^\half,-(abcdq^{-1})^\half,(abcd)^\half, +-(abcd)^\half,a e^{i\tha},a e^{-i\tha}} +{ab,ac,ad,abcdtq^{-1},qt^{-1}}{q,q} +\nonumber\\ +&+\frac{(abcdq^{-1},abt,act,adt,ae^{i\tha},ae^{-i\tha};q)_\iy} +{(ab,ac,ad,t^{-1},ate^{i\tha},ate^{-i\tha};q)_\iy} +\nonumber\\ +&\times\qhyp65{t(abcdq^{-1})^\half,-t(abcdq^{-1})^\half,t(abcd)^\half, +-t(abcd)^\half,at e^{i\tha},at e^{-i\tha}} +{abt,act,adt,abcdt^2q^{-1},qt}{q,q}\quad(|t|<1). +\label{185} +\end{align} +In the limit \eqref{109} the first term on the \RHS\ of \eqref{185} +tends to the \LHS\ of (9.1.15), while the second term tends formally +to 0. The special case $ad=bc$ of \eqref{185} was earlier given in +\myciteKLS{236}{(4.1), (4.6)}. +% +\paragraph{Limit relations}\quad\sLP +{\bf Askey-Wilson $\longrightarrow$ Wilson}\\ +Instead of (14.1.21) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{equation} +\lim_{q\to1}\frac{p_n(1-\thalf x(1-q)^2;q^a,q^b,q^c,q^d\,|\, q)}{(1-q)^{3n}} +=W_n(x;a,b,c,d). +\label{109} +\end{equation} +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.4.4). +\bLP +{\bf Askey-Wilson $\longrightarrow$ Continuous Hahn}\\ +Instead of (14.4.15) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{multline} +\lim_{q\uparrow1} +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, +q^{\overline b} e^{-i\phi}\,|\, q\big)} +{(1-q)^{2n}}\\ +=(-2\sin\phi)^n\,n!\,p_n(x;a,b,\overline a,\overline b)\qquad +(0<\phi<\pi). +\label{177} +\end{multline} +Here the \RHS\ has a continuous Hahn polynomial (9.4.1). +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.1.5). +In fact, define the monic polynomial +\[ +\wt p_n(x):= +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, +q^{\overline b} e^{-i\phi}\,|\, q\big)} +{(-2(1-q)\sin\phi)^n\,(abcdq^{n-1};q)_n}\,. +\] +Then it follows from (14.1.5) that +\begin{equation*} +x\,\wt p_n(x)=\wt p_{n+1}(x) ++\frac{(1-q^a)e^{i\phi}+(1-q^{-a})e^{-i\phi}+\wt A_n+\wt C_n}{2(1-q)\sin\phi}\,\wt p_n(x)\\ ++\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), +\end{equation*} +where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by +$q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi},q^{\overline b} e^{-i\phi}$. +Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to +the recurrence equation (9.4.4) with $c=\overline a$, $d=\overline b$. +\bLP +{\bf Askey-Wilson $\longrightarrow$ Meixner-Pollaczek}\\ +Instead of (14.9.15) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{equation} +\lim_{q\uparrow1} +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; +q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(1-q)^n} +=n!\,P_n^{(\la)}(x;\pi-\phi)\quad +(0<\phi<\pi). +\label{178} +\end{equation} +Here the \RHS\ has a Meixner-Pollaczek polynomial (9.7.1). +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.7.4). +In fact, define the monic polynomial +\[ +\wt p_n(x):= +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; +q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(-2(1-q)\sin\phi)^n}\,. +\] +Then it follows from (14.1.5) that +\begin{equation*} +x\,\wt p_n(x)=\wt p_{n+1}(x) ++\frac{(1-q^\la)e^{i\phi}+(1-q^{-\la})e^{-i\phi}+\wt A_n+\wt C_n} +{2(1-q)\sin\phi}\,\wt p_n(x)\\ ++\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), +\end{equation*} +where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by +$q^\la e^{i\phi},0,q^\la e^{-i\phi},0$. +Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to +the recurrence equation (9.7.4). +% +\paragraph{References} +See also Koornwinder \cite{K7}. +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, +\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, +\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, +\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, +\cite{Zeng90}. + + +\section{Hermite}\index{Hermite polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefHermite} +H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtHermite} +\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx +=2^nn!\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHermite} +H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHermite} +xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), +\end{equation} +where +$$H_n(x)=2^np_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvHermite} +y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Hermite} +\frac{d}{dx}H_n(x)=2nH_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2HermiteI} +\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2HermiteII} +\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodHermite} +\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenHermite1} +\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenHermite2} +\left\{\begin{array}{l} +\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] +\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite3} +\left\{\begin{array}{l} +\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] +\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite4} +\left\{\begin{array}{l} +\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= +\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] +\displaystyle\frac{xt}{\sqrt{1+t^2}}\, +\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} +=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} +\end{array}\right. +\end{equation} +with $\gamma$ arbitrary. + +\begin{equation} +\label{GenHermite5} +\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) +=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, +\end{equation} +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and +then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: +$$\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by +taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by +(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials can be obtained from the Laguerre polynomials given by +(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) +of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite +polynomials. In fact we have +$$\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ + +\subsection*{Remarks} +The Hermite polynomials can also be written as: +$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} +\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\noindent +The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +\subsection*{14.2 $q$-Racah} +\label{sec14.2} +\paragraph{Symmetry} +\begin{equation} +R_n(x;\al,\be,q^{-N-1},\de\,|\, q) +=\frac{(\be q,\al\de^{-1}q;q)_n}{(\al q,\be\de q;q)_n}\,\de^n\, +R_n(\de^{-1}x;\be,\al,q^{-N-1},\de^{-1}\,|\, q). +\label{84} +\end{equation} +This follows from (14.2.1) combined with \mycite{GR}{(III.15)}. +\sLP +In particular, +\begin{equation} +R_n(x;\al,\be,q^{-N-1},-1\,|\, q) +=\frac{(\be q,-\al q;q)_n}{(\al q,-\be q;q)_n}\,(-1)^n\, +R_n(-x;\be,\al,q^{-N-1},-1\,|\, q), +\label{85} +\end{equation} +and +\begin{equation} +R_n(x;\al,\al,q^{-N-1},-1\,|\, q) +=(-1)^n\,R_n(-x;\al,\al,q^{-N-1},-1\,|\, q), +\label{86} +\end{equation} + +\paragraph{Trivial symmetry} +Clearly from (14.2.1): +\begin{equation} +R_n(x;\al,\be,\ga,\de\,|\, q)=R_n(x;\be\de,\al\de^{-1},\ga,\de\,|\, q) +=R_n(x;\ga,\al\be\ga^{-1},\al,\ga\de\al^{-1}\,|\, q). +\label{83} +\end{equation} +For $\al=q^{-N-1}$ this shows that the three cases +$\al q=q^{-N}$ or $\be\de q=q^{-N}$ or $\ga q=q^{-N}$ of (14.2.1) +are not essentially different. +% +\paragraph{Duality} +It follows from (14.2.1) that +\begin{equation} +R_n(q^{-y}+\ga\de q^{y+1};q^{-N-1},\be,\ga,\de\,|\, q) +=R_y(q^{-n}+\be q^{n-N};\ga,\de,q^{-N-1},\be\,|\, q)\quad +(n,y=0,1,\ldots,N). +\end{equation} +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\subsection*{14.3 Continuous dual $q$-Hahn} +\label{sec14.3} +The continuous dual $q$-Hahn polynomials are the special case $d=0$ of the +Askey-Wilson polynomials: +\[ +p_n(x;a,b,c\,|\, q):=p_n(x;a,b,c,0\,|\, q). +\] +Hence all formulas in \S14.3 are specializations for $d=0$ of formulas in \S14.1. +\subsection*{References} +\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, +\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, +\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, +\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, +\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, +\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, +\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, +\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, +\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, +\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, +\cite{Weisner59}, \cite{Wyman}. + +\end{document} diff --git a/KLSadd_insertion/updated9.tex b/KLSadd_insertion/updated9.tex new file mode 100644 index 0000000..e1b34b5 --- /dev/null +++ b/KLSadd_insertion/updated9.tex @@ -0,0 +1,4162 @@ +\documentclass[envcountchap,graybox]{svmono} + +\addtolength{\textwidth}{1mm} + +\usepackage{amsmath,amssymb} + +\usepackage{amsfonts} +%\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} + +\usepackage{mathptmx} +\usepackage{helvet} +\usepackage{courier} + +\usepackage{makeidx} +\usepackage{graphicx} + +\usepackage{multicol} +\usepackage[bottom]{footmisc} + +\makeindex + +\def\bibname{Bibliography} +\def\refname{Bibliography} + +\def\theequation{\thesection.\arabic{equation}} + +\smartqed + +\let\corollary=\undefined +\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} + +\newcounter{rom} + +\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} + +\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} +\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} + +\newcommand{\mathindent}{\hspace{7.5mm}} + +\newcommand{\e}{\textrm{e}} + +\renewcommand{\E}{\textrm{E}} + +\renewcommand{\textfraction}{-1} + +\renewcommand{\Gamma}{\varGamma} + +\renewcommand{\leftlegendglue}{\hfil} + +\settowidth{\tocchpnum}{14\enspace} +\settowidth{\tocsecnum}{14.30\enspace} +\settowidth{\tocsubsecnum}{14.12.1\enspace} + +\makeatletter +\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \else\fi\fi} + +\newcommand{\clearemptyversopage}{ + \clearpage{\pagestyle{empty}\cleartoversopage}} +\makeatother + +\oddsidemargin -1.5cm +\topmargin -2.0cm +\textwidth 16.3cm +\textheight 25cm + +\begin{document} + +\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} +\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} +\subtitle{-- Monograph --} +\maketitle + +\frontmatter + +\large + +\addtocounter{chapter}{8} +\pagenumbering{roman} +\chapter{Hypergeometric orthogonal polynomials} +\label{HyperOrtPol} + + +In this chapter we deal with all families of hypergeometric orthogonal polynomials +appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal +polynomials we state the most important properties such as a representation as a +hypergeometric function, orthogonality relation(s), the three-term recurrence relation, +the second-order differential or difference equation, the forward shift (or degree lowering) +and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating +functions. In each case we use the notation which seems to be most common in the literature. +Moreover, in each case we mention the connection between various families by stating the +appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of +this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. +For notations the reader is referred to chapter~\ref{Definitions}. + +\section{Wilson}\index{Wilson polynomials} + +\par + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefWilson} +& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ +& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. +\end{eqnarray} + +\newpage + +\subsection*{Orthogonality relation} +If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then +\begin{eqnarray} +\label{OrthIWilson} +& &\frac{1}{2\pi}\int_0^{\infty} +\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, +\end{eqnarray} +where +\begin{eqnarray*} +& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ +& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). +\end{eqnarray*} +If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates +occur with positive real parts, then +\begin{eqnarray} +\label{OrtIIWilson} +& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ +& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ +& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ +& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} +{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} +\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ +& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ +& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecWilson} +-\left(a^2+x^2\right){\tilde{W}}_n(x^2) +=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), +\end{equation} +where +$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecWilson} +xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvWilson} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=W_n(x^2;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] +\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1WilsonI} +& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) +-W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift1WilsonII} +& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ +& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{eqnarray} + +\newpage + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2WilsonI} +& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) +(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) +W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ +& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2WilsonII} +& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ +& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodWilson} +& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ +& &{}=\left(\frac{\delta}{\delta x^2}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenWilson1} +\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson2} +\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. +\end{equation} + +\begin{equation} +\label{GenWilson3} +\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= +\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. +\end{equation} + +\begin{eqnarray} +\label{GenWilson4} +& &(1-t)^{1-a-b-c-d}\nonumber\\ +& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} +{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} +The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the +Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: +\begin{equation} +\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson +polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, +$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following +way: +\begin{equation} +\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). +\end{equation} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson +polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Remarks} +Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then +\begin{eqnarray} +\label{OrtContHahn} +& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) +p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ +& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} +{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecContHahn} +(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), +\end{equation} +where +$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] +\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecContHahn} +xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvContHahn} +& &n(n+a+b+c+d-1)y(x)\nonumber\\ +& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), +\end{eqnarray} +where +$$y(x)=p_n(x;a,b,c,d)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] +\displaystyle D(x)=(a+ix)(b+ix). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1ContHahnI} +& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, +b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1ContHahnII} +\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) +p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, +c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2ContHahnI} +& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) +p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) +p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ +& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, +b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2ContHahnII} +& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ +& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, +c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ +& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), +\end{eqnarray} +where +$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodContHahn} +& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ +& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n +\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, +c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +\begin{equation} +\label{GenContHahn1} +\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenContHahn2} +\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= +\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenContHahn3} +& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} +{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} +The continuous Hahn polynomials are obtained from the Wilson polynomials given by +(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, +$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit +$t\rightarrow\infty$ in the following way: +$$\lim_{t\rightarrow\infty} +\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the +continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ +and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. +\end{equation} + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials +by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ +& &{}=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} +The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous +Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, +$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, +division by $t^n$ and the limit $t\rightarrow\infty$: +\begin{eqnarray} +& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), +\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ +& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). +\end{eqnarray} + +\subsection*{Remark} +Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ +Thus, under these assumptions, the continuous Hahn polynomial +$p_n(x;a,b,c,d)$ +is symmetric in $a,b$ and in $c,d$. +This follows from the orthogonality relation (9.4.2) +together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ +As a consequence, it is sufficient to give generating function (9.4.11). Then the generating +function (9.4.12) will follow by symmetry in the parameters. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special cases} +In the following special case there is a reduction to +Meixner-Pollaczek: +\begin{equation} +p_n(x;a,a+\thalf,a,a+\thalf)= +\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). +\end{equation} +See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the +Meixner-Pollaczek polynonmials are defined different from (9.7.1), +without a constant factor in front). + +For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have +\begin{eqnarray} +\label{OrtHahn} +& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHahn} +-xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), +\end{equation} +where +$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] +\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHahn} +xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvHahn} +n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=Q_n(x;\alpha,\beta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] +\displaystyle D(x)=x(x-\beta-N-1). +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1HahnI} +& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1HahnII} +\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2HahnI} +& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ +& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2HahnII} +& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ +& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), +\end{eqnarray} +where +$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{eqnarray} +\label{RodHahn} +& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ +& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. +\end{eqnarray} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenHahn1} +\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenHahn2} +& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenHahn3} +& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} +{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Hahn} +If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we obtain the Hahn polynomials. Hence +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ +And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, we also obtain the Hahn polynomials: +$$\lim_{\gamma\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ +Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in +the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit +$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: +$$\lim_{\delta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take +$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials +by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). +\end{equation} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials +if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the +dual Hahn polynomials given by (\ref{DefDualHahn}). + +\noindent +Since +$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ +we obtain the dual orthogonality relation for the Hahn polynomials from the +orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} +Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ +& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. +\subsection*{9.5 Hahn} +\label{sec9.5} +% +\paragraph{Special values} +\begin{equation} +Q_n(0;\al,\be,N)=1,\quad +Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{95} +\end{equation} +Use (9.5.1) and compare with (9.8.1) and \eqref{50}. + +From (9.5.3) and \eqref{1} it follows that +\begin{equation} +Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. +\label{30} +\end{equation} +From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that +\begin{equation} +Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). +\label{44} +\end{equation} +% +\paragraph{Symmetries} +By the orthogonality relation (9.5.2): +\begin{equation} +\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), +\label{96} +\end{equation} +It follows from \eqref{97} and \eqref{45} that +\begin{equation} +\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} +=Q_n(x;-N-\be-1,-N-\al-1,N) +\qquad(x=0,1,\ldots,N). +\label{100} +\end{equation} +% +\paragraph{Duality} +The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: +% +\begin{equation} +Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). +\label{45} +\end{equation} +\end{eqnarray*} + +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, +\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, +\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, +\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, +\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, +\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, +\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, +\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, +\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, +\cite{Zarzo+}. + + +\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefDualHahn} +R_n(\lambda(x);\gamma,\delta,N)= +\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, +\end{equation} +where +$$\lambda(x)=x(x+\gamma+\delta+1).$$ + +\subsection*{Orthogonality relation} +For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have +\begin{eqnarray} +\label{OrtDualHahn} +& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecDualHahn} +\lambda(x)R_n(\lambda(x)) +=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), +\end{equation} +where +$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] +\displaystyle C_n=n(n-\delta-N-1). +\end{array}\right.$$ + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecDualHahn} +xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), +\end{equation} +where +$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvDualHahn} +-ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), +\end{equation} +where +$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ +and +$$\left\{\begin{array}{l} +\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] +\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. +\end{array}\right.$$ + +\subsection*{Forward shift operator} +\begin{eqnarray} +\label{shift1DualHahnI} +& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift1DualHahnII} +\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= +-\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2DualHahnI} +& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ +& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ +& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2DualHahnII} +& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ +& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), +\end{eqnarray} +where +$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} +{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ + +\newpage + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodDualHahn} +\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) +=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], +\end{equation} +where +$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenDualHahn1} +(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} +=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn2} +& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ +& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. +\end{eqnarray} + +\begin{equation} +\label{GenDualHahn3} +\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N +\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenDualHahn4} +& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, +\quad\textrm{$\epsilon$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Racah $\rightarrow$ Dual Hahn} +If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we obtain the dual Hahn polynomials: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) +of the Racah polynomials, then we also obtain the dual Hahn polynomials: +$$\lim_{\alpha\rightarrow\infty} +R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ +Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition +(\ref{DefRacah}) of the Racah polynomials and take the limit +$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: +$$\lim_{\beta\rightarrow\infty} +R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials +if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). +\end{equation} + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual +Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: +\begin{equation} +\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). +\end{equation} + +\subsection*{Remark} +If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) +of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). + +\noindent +Since +$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ +we obtain the dual orthogonality relation for the dual Hahn polynomials +from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: +\begin{eqnarray*} +& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ +& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} +{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. +\subsection*{9.6 Dual Hahn} +\label{sec9.6} +% +\paragraph{Special values} +By \eqref{44} and \eqref{45} we have +\begin{equation} +R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. +\label{47} +\end{equation} +It follows from \eqref{95} and \eqref{45} that +\begin{equation} +R_N(x(x+\ga+\de+1);\ga,\de,N) +=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). +\label{101} +\end{equation} +% +\paragraph{Symmetries} +Write the weight in (9.6.2) as +\begin{equation} +w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, +\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. +\label{98} +\end{equation} +Then +\begin{equation} +(\de+1)_N\,w_{N-x}(\ga,\de,N)= +(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). +\label{99} +\end{equation} +Hence, by (9.6.2), +\begin{equation} +\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} +=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). +\label{97} +\end{equation} +Alternatively, \eqref{97} follows from (9.6.1) and +\mycite{DLMF}{(16.4.11)}. + +It follows from \eqref{96} and \eqref{45} that +\begin{equation} +\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} +{R_N(x(x+\ga+\de+1);\ga,\de,N)} +=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). +\label{102} +\end{equation} +% +\paragraph{Re: (9.6.11).} +The generating function (9.6.11) can be written in a more conceptual way as +\begin{equation} +(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, +\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, +\label{2} +\end{equation} +where +\begin{equation} +\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, +\label{3} +\end{equation} +i.e., the denominator on the \RHS\ of (9.6.2). +By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in +terms of Hahn polynomials: +\begin{equation} +(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, +\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, +\label{4} +\end{equation} +where +\begin{equation} +w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, +\label{5} +\end{equation} +i.e., the weight occurring in the orthogonality relation (9.5.2) +for Hahn polynomials. +\paragraph{Re: (9.6.15).} +There should be a closing bracket before the equality sign. +\end{eqnarray*} + +\subsection*{References} +\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, +\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, +\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. + + +\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMP} +P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, +\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMP} +\frac{1}{2\pi}\int_{-\infty}^{\infty} +\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 +P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx +{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, +% \constraint{ +% $\lambda > 0$ & +% $0 < \phi < \pi$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMP} +& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] +P_n^{(\lambda)}(x;\phi)\nonumber\\ +& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMP} +xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ +\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), +\end{equation} +where +$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvMP} +& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ +& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MPI} +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) +P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MPII} +\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} +=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2MPI} +& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) +P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ +\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) +P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ +& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2MPII} +\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= +-(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) +P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), +\end{equation} +where +$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMP} +\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} +\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. +\end{equation} + +\newpage + +\subsection*{Generating functions} +\begin{equation} +\label{GenMP1} +(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= +\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. +\end{equation} + +\begin{equation} +\label{GenMP2} +\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= +\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenMP3} +& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} +The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials +given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, +$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} +By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the +definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit +$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: +$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} +=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ + +\newpage + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the +Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +\begin{equation} +\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek +polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +and then let $\lambda\rightarrow\infty$: +\begin{equation} +\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remark} +Since we have for $k-1$ and $\beta>-1$ we have +\begin{eqnarray} +\label{OrtJacobi1} +& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ +& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. +\end{eqnarray} +For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have +\begin{eqnarray} +\label{OrtJacobi2} +& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ +& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecJacobi} +xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecJacobi} +xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} +{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) +\end{eqnarray} +where +$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{eqnarray} +\label{dvJacobi} +& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ +& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). +\end{eqnarray} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Jacobi} +\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2JacobiI} +& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ +\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ +& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) +\end{eqnarray} +or equivalently +\begin{eqnarray} +\label{shift2JacobiII} +& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ +& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodJacobi} +(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= +\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenJacobi1} +\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= +\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{eqnarray} +\label{GenJacobi2} +& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi3} +& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi4} +& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} +{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. +\end{eqnarray} + +\begin{eqnarray} +\label{GenJacobi5} +& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty} +\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2} +\end{eqnarray} +with $\gamma$ arbitrary. + +\subsection*{Limit relations} + +\subsubsection*{Wilson $\rightarrow$ Jacobi} +The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by +substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, +$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the +definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit +$t\rightarrow\infty$. In fact we have +$$\lim_{t\rightarrow\infty} +\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), +\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} +{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} +The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) +by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, +$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ +in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty} +\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), +\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ + +\subsubsection*{Hahn $\rightarrow$ Jacobi} +To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take +$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have +$$\lim_{N\rightarrow\infty} +Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi +polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials +if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: +\begin{equation} +\lim_{\alpha\rightarrow-\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). +\end{equation} + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials +by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: +$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} +(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ +In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ +and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the +following connection with the Meixner polynomials given by (\ref{DefMeixner}): +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by +(\ref{DefPseudoJacobi}) in the following way: +$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ + +\noindent +The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials +given by (\ref{DefGegenbauer}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +\subsection*{9.8 Jacobi} +\label{sec9.8} +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\begin{split} +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP +&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. +\end{split} +\label{60} +\end{equation} + +In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be +$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: +\begin{equation} +\begin{split} +&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ +&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ +&\frac{h_n}{h_0}= +\frac{n+\al+\be+1}{2n+\al+\be+1}\, +\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad +h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. +\end{split} +\label{122} +\end{equation} + +% +\paragraph{Symmetry} +\begin{equation} +P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). +\label{48} +\end{equation} +Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Special values} +\begin{equation} +P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad +P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad +\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. +\label{50} +\end{equation} +Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Generating functions} +Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. +% +\paragraph{Bilateral generating functions} +For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): +\begin{align} +&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac1{(1+r)^{\al+\be+1}} +\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), +\label{58}\sLP +&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} +\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, +P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) +=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ +&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; +\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). +\label{59} +\end{align} +Formulas \eqref{58} and \eqref{59} were first +given by Bailey \myciteKLS{91}{(2.1), (2.3)}. +See Stanton \myciteKLS{485} for a shorter proof. +(However, in the second line of +\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ +As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows +from \eqref{58} +by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ +to both sides of \eqref{58}. +In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi +polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. +See also the discussion in Askey \myciteKLS{46}{following (2.32)}. +% +\paragraph{Quadratic transformations} +\begin{align} +\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} +=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} +&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, +\label{51}\\ +\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} +=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} +&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. +\label{52} +\end{align} +See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. +Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\begin{split} +\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= +-(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ +\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= +-(n+\al)\,P_n^{(\al-1,\be+1)}(x). +\end{split} +\label{68} +\end{equation} +% +\begin{equation} +\begin{split} +\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= +(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ +\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= +(n+\be)\,P_n^{(\al+1,\be-1)}(x). +\end{split} +\label{69} +\end{equation} +Formulas \eqref{68} and \eqref{69} follow from +\mycite{DLMF}{(15.5.4), (15.5.6)} +together with (9.8.1). They also follow from each other by \eqref{48}. +% +\paragraph{Generalized Gegenbauer polynomials} +These are defined by +\begin{equation} +S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad +S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{70} +\end{equation} +in the notation of \myciteKLS{146}{p.156} +(see also \cite{K27}), while \cite[Section 1.5.2]{K26} +has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. +For $\al,\be>-1$ we have the orthogonality relation +\begin{equation} +\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx +=0\qquad(m\ne n). +\label{71} +\end{equation} +For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of +continuous $q$-ultraspherical polynomials, see \eqref{176}. + +If we define the {\em Dunkl operator} $T_\mu$ by +\begin{equation} +(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x +\label{72} +\end{equation} +and if we choose the constants in \eqref{70} as +\begin{equation} +S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad +S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, +x\,P_m^{(\al,\be+1)}(2x^2-1) +\label{73} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. +\label{74} +\end{equation} +Formula \eqref{74} with \eqref{73} substituted gives rise to two +differentiation formulas involving Jacobi polynomials which are equivalent to +(9.8.7) and \eqref{69}. + +Composition of \eqref{74} with itself gives +\[ +T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, +\] +which is equivalent to the composition of (9.8.7) and \eqref{69}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) +=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). +\label{75} +\end{equation} +Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, +\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, +\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, +\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, +\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, +\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, +\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, +\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, +\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, +\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, +\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, +\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, +\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, +\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, +\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, +\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, +\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, +\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, +\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, +\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, +\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, +\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, +\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, +\cite{Zayed}. + +\section*{Special cases} + +\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} +\index{Ultraspherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with +$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: +\begin{eqnarray} +\label{DefGegenbauer} +C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ +&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} +{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtGegenbauer} +& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ +& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, +\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecGegenbauer} +2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecGegenbauer} +xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), +\end{equation} +where +$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvGegenbauer} +(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Gegenbauer} +\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2GegenbauerI} +(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= +-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) +\end{equation} +or equivalently +\begin{eqnarray} +\label{shift2GegenbauerII} +& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ +& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). +\end{eqnarray} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodGegenbauer} +(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= +\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n +\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenGegenbauer1} +(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer2} +R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} +\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenGegenbauer3} +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} +=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. +\end{equation} + +\begin{equation} +\label{GenGegenbauer4} +\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenGegenbauer5} +& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} +{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenGegenbauer6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} +{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relation} + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or +ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. +\end{equation} + +\subsection*{Remarks} +The case $\lambda=0$ needs another normalization. In that case we have the +Chebyshev polynomials of the first kind described in the next subsection. + +\noindent +The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials +given by (\ref{DefJacobi}) by the quadratic transformations: +$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} +P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ +and +$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} +\subsection*{9.8.1 Gegenbauer / Ultraspherical} +\label{sec9.8.1} +% +\paragraph{Notation} +Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. +% +\paragraph{Orthogonality relation} +Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then +\begin{equation} +\frac{h_n}{h_0}= +\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad +h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad +\frac{h_n}{h_0\,(C_n^\la(1))^2}= +\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. +\label{61} +\end{equation} +% +\paragraph{Hypergeometric representation} +Beside (9.8.19) we have also +\begin{equation} +C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} +{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} +=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, +\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. +\label{57} +\end{equation} +See \mycite{DLMF}{(18.5.10)}. +% +\paragraph{Special value} +\begin{equation} +C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. +\label{49} +\end{equation} +Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. +% +\paragraph{Expression in terms of Jacobi} +% +\begin{equation} +\frac{C_n^\la(x)}{C_n^\la(1)}= +\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad +C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). +\label{65} +\end{equation} +% +\paragraph{Re: (9.8.21)} +By iteration of recurrence relation (9.8.21): +\begin{multline} +x^2 C_n^\la(x)= +\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ +\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ ++\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). +\label{6} +\end{multline} +% +\paragraph{Bilateral generating functions} +\begin{multline} +\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ +(r\in(-1,1),\;x,y\in[-1,1]). +\label{66} +\end{multline} +For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. +The Poisson kernel for Gegenbauer polynomials can be derived in a similar way +from \eqref{59}, or alternatively by applying the operator +$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: +\begin{multline} +\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) +=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ +\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} +{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad +(r\in(-1,1),\;x,y\in[-1,1]). +\label{67} +\end{multline} +Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} +as a limit case of their formula for the Poisson kernel for continuous +$q$-ultraspherical polynomials. +% +\paragraph{Trigonometric expansions} +By \mycite{DLMF}{(18.5.11), (15.8.1)}: +\begin{align} +C_n^{\la}(\cos\tha) +&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} +=e^{in\tha}\frac{(\la)_n}{n!}\, +\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ +&=\frac{(\la)_n}{2^\la n!}\, +e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, +\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ +&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, +\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} +\end{align} +In \eqref{104} and \eqref{105} we require that +$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ +and conditional for $0<\la\le\thalf$. + +By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: +\begin{align} +C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, +\sin\big((2k+n+1)\tha\big) +\label{7}\\ +&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, +\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ +&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, +\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, +\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, +\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ +&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, +\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, +\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. +\label{106} +\end{align} +We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in +\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for +$0<\la\le\thalf$. +For $\la\in\Zpos$ the above series terminate after the term with +$k=\la-1$. +Formulas \eqref{7} and \eqref{106} are also given in +\mycite{Sz}{(4.9.22), (4.9.25)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, +\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, +e^{ixy}\,dy +=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). +\label{8} +\end{equation} +See \mycite{DLMF}{(18.17.17) and (18.17.18)}. +% +\paragraph{Laplace transforms} +\begin{equation} +\frac2{n!\,\Ga(\la)}\, +\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). +\label{56} +\end{equation} +See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) +or Feldheim \cite[(28)]{K3} (1942). +\begin{equation} +\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, +(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt +=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). +\label{46} +\end{equation} +Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with +\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. +\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) +\begin{multline} +R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) +=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ +\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, +\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), +\label{108} +\end{multline} +where +\[ +R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad +\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} +{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. +\] +xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ + +\subsection*{References} +\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, +\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, +\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, +\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, +\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, +\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, +\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, +\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, +\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, +\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, +\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, +\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, +\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. + +\subsection{Chebyshev}\index{Chebyshev polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Chebyshev polynomials of the first kind can be obtained from the Jacobi +polynomials by taking $\alpha=\beta=-\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevI} +T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} +=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} +\end{equation} +and the Chebyshev polynomials of the second kind can be obtained from the +Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: +\begin{equation} +\label{DefChebyshevII} +U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} +=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtChebyshevI} +\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= +\left\{\begin{array}{ll} +\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] +\cpi\,\delta_{mn}, & n=0. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{OrtChebyshevII} +\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relations} +\begin{equation} +\label{RecChebyshevI} +2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. +\end{equation} + +\begin{equation} +\label{RecChebyshevII} +2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. +\end{equation} + +\subsection*{Normalized recurrence relations} +\begin{equation} +\label{NormRecChebyshevI} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ + +\begin{equation} +\label{NormRecChebyshevII} +xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), +\end{equation} +where +$$U_n(x)=2^np_n(x).$$ + +\subsection*{Differential equations} +\begin{equation} +\label{dvChebyshevI} +(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). +\end{equation} + +\begin{equation} +\label{dvChebyshevII} +(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Chebyshev} +\frac{d}{dx}T_n(x)=nU_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2ChebyshevI} +(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2ChebyshevII} +\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] +=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formulas} +\begin{equation} +\label{RodChebyshevI} +(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. +\end{equation} + +\begin{equation} +\label{RodChebyshevII} +(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} +\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenChebyshevI1} +\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI2} +R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} +\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevI3} +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevI4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevI5} +& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevI6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{equation} +\label{GenChebyshevII1} +\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII2} +\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} +\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. +\end{equation} + +\begin{equation} +\label{GenChebyshevII3} +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, +\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. +\end{equation} + +\begin{equation} +\label{GenChebyshevII4} +\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenChebyshevII5} +& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenChebyshevII6} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Remarks} +The Chebyshev polynomials can also be written as: +$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ +and +$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ +Further we have +$$U_n(x)=C_n^{(1)}(x)$$ +where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) +\subsection*{9.8.2 Chebyshev} +\label{sec9.8.2} +In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) +and $U_n$ of the second kind (9.8.36), +\begin{align} +T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} +=\cos(n\tha),\quad x=\cos\tha,\\ +U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} +=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, +\end{align} +we have Chebyshev polynomials $V_n$ {\em of the third kind} +and $W_n$ {\em of the fourth kind}, +\begin{align} +V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} +=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ +W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} +=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, +\end{align} +see \cite[Section 1.2.3]{K20}. Then there is the symmetry +\begin{equation} +V_n(-x)=(-1)^n W_n(x). +\label{140} +\end{equation} + +The names of Chebyshev polynomials of the third and fourth kind +and the notation $V_n(x)$ are due to Gautschi \cite{K21}. +The notation $W_n(x)$ was first used by Mason \cite{K22}. +Names and notations for Chebyshev polynomials of the third and fourth +kind are interchanged in \mycite{AAR}{Remark 2.5.3} and +\mycite{DLMF}{Table 18.3.1}. +polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. + +\subsection*{References} +\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, +\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, +\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, +\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, +\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, +\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. + +\subsection{Legendre / Spherical}\index{Legendre polynomials} +\index{Spherical polynomials} + +\par + +\subsection*{Hypergeometric representation} +The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: +\begin{equation} +\label{DefLegendre} +P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLegendre} +\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLegendre} +(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLegendre} +xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), +\end{equation} +where +$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLegendre} +(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLegendre} +P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLegendre1} +\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre2} +\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. +\end{equation} + +\begin{equation} +\label{GenLegendre3} +\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= +\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenLegendre4} +& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, +\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, +\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\begin{eqnarray} +\label{GenLegendre5} +& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} +{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ +& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. +\subsection*{9.9 Pseudo Jacobi (or Routh-Romanovski)} +\label{sec9.9} +In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) +is considered +for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take +$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). +\] +Then $P_n$ can be expressed as a Meixner polynomial: +\[ +P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, +M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). +\] + +In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' +which turn out to be special Meixner polynomials: +$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Askey87}, \cite{BorodinOlshanski}, \cite{Lesky96}. + + +\section{Meixner}\index{Meixner polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefMeixner} +M_n(x;\beta,c)=\hyp{2}{1}{-n,-x}{\beta}{1-\frac{1}{c}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtMeixner} +\sum_{x=0}^{\infty}\frac{(\beta)_x}{x!}c^xM_m(x;\beta,c)M_n(x;\beta,c) +{}=\frac{c^{-n}n!}{(\beta)_n(1-c)^{\beta}}\,\delta_{mn} +% \constraint{ +% $\beta > 0$ & +% $0 < c < 1$ } +\end{equation} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecMeixner} +(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ +& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecMeixner} +xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ +\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), +\end{equation} +where +$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvMeixner} +n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), +\end{equation} +where +$$y(x)=M_n(x;\beta,c).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1MeixnerI} +M_n(x+1;\beta,c)-M_n(x;\beta,c)= +\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift1MeixnerII} +\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2MeixnerI} +c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) +\end{equation} +or equivalently +\begin{equation} +\label{shift2MeixnerII} +\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= +\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodMeixner} +\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenMeixner1} +\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= +\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner2} +\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= +\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenMeixner3} +(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Meixner} +If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) +of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: +$$\lim_{N\rightarrow\infty} +Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Meixner} +To obtain the Meixner polynomials from the dual Hahn polynomials we have to take +$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of +the dual Hahn polynomials and let $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials +if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: +\begin{equation} +\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. +\end{equation} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials +if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: +\begin{equation} +\lim_{\beta\rightarrow\infty} +M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). +\end{equation} + +\subsection*{Remarks} +The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) +in the following way: +$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ + +\noindent +The Meixner polynomials are also related to the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) in the following way: +\subsection*{9.11 Krawtchouk} +\label{sec9.11} +% +\paragraph{Special values} +By (9.11.1) and the binomial formula: +\begin{equation} +K_n(0;p,N)=1,\qquad +K_n(N;p,N)=(1-p^{-1})^n. +\label{9} +\end{equation} +The self-duality (p.240, Remarks, first formula) +\begin{equation} +K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) +\label{147} +\end{equation} +combined with \eqref{9} yields: +\begin{equation} +K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). +\label{148} +\end{equation} +% +\paragraph{Symmetry} +By the orthogonality relation (9.11.2): +\begin{equation} +\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). +\label{10} +\end{equation} +By \eqref{10} and \eqref{147} we have also +\begin{equation} +\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) +\qquad(n,x\in\{0,1,\ldots,N\}), +\label{149} +\end{equation} +and, by \eqref{149}, \eqref{10} and \eqref{9}, +\begin{equation} +K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) +\qquad(n,x\in\{0,1,\ldots,N\}). +\label{150} +\end{equation} +A particular case of \eqref{10} is: +\begin{equation} +K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). +\label{11} +\end{equation} +Hence +\begin{equation} +K_{2m+1}(N;\thalf,2N)=0. +\label{12} +\end{equation} +From (9.11.11): +\begin{equation} +K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. +\label{13} +\end{equation} +% +\paragraph{Quadratic transformations} +\begin{align} +K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, +R_m(x^2;-\thalf,-\thalf,N), +\label{31}\\ +K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, +x\,R_m(x^2-1;\thalf,\thalf,N-1), +\label{33}\\ +K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, +R_m(x(x+1);-\thalf,\thalf,N), +\label{32}\\ +K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, +(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), +\label{34} +\end{align} +where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use +(9.6.2), (9.11.2), (9.6.4) and (9.11.4). +% +\paragraph{Generating functions} +\begin{multline} +\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ +=\left(\frac{p-z+pz}p\right)^m +\left(\frac{q-z+qz}q\right)^n +(1+z)^{N-m-n} +K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). +\label{107} +\end{multline} +This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back +to Meixner \cite{K9}. +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{Alvarez+}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyIsmail76}, +\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Bavinck98}, +\cite{BavinckHaeringen}, \cite{Campigotto+}, \cite{Chihara78}, \cite{Cooper+}, +\cite{Erdelyi+}, \cite{FoataLabelle}, \cite{Gabutti}, \cite{GabuttiMathis}, \cite{Gasper73I}, +\cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{IsmailLetVal88}, +\cite{IsmailLi}, \cite{IsmailMuldoon}, \cite{IsmailStanton97}, \cite{JinWong}, +\cite{Karlin58}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rahman78I}, \cite{ValentAssche}, +\cite{Viennot}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Krawtchouk}\index{Krawtchouk polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefKrawtchouk} +K_n(x;p,N)=\hyp{2}{1}{-n,-x}{-N}{\frac{1}{p}},\quad n=0,1,2,\ldots,N. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtKrawtchouk} +& &\sum_{x=0}^N\binom{N}{x}p^x(1-p)^{N-x} K_m(x;p,N)K_n(x;p,N)\nonumber\\ +& &{}=\frac{(-1)^nn!}{(-N)_n}\left(\frac{1-p}{p}\right)^n\,\delta_{mn},\quad0 < p < 1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecKrawtchouk} +-xK_n(x;p,N)&=&p(N-n)K_{n+1}(x;p,N)\nonumber\\ +& &{}\mathindent{}-\left[p(N-n)+n(1-p)\right]K_n(x;p,N)\nonumber\\ +& &{}\mathindent\mathindent{}+n(1-p)K_{n-1}(x;p,N). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecKrawtchouk} +xp_n(x)&=&p_{n+1}(x)+\left[p(N-n)+n(1-p)\right]p_n(x)\nonumber\\ +& &{}\mathindent{}+np(1-p)(N+1-n)p_{n-1}(x), +\end{eqnarray} +where +$$K_n(x;p,N)=\frac{1}{(-N)_np^n}p_n(x).$$ + +\subsection*{Difference equation} +\begin{eqnarray} +\label{dvKrawtchouk} +-ny(x)&=&p(N-x)y(x+1)\nonumber\\ +& &{}\mathindent{}-\left[p(N-x)+x(1-p)\right]y(x)+x(1-p)y(x-1), +\end{eqnarray} +where +$$y(x)=K_n(x;p,N).$$ + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1KrawtchoukI} +K_n(x+1;p,N)-K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1) +\end{equation} +or equivalently +\begin{equation} +\label{shift1KrawtchoukII} +\Delta K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1). +\end{equation} + +\subsection*{Backward shift operator} +\begin{eqnarray} +\label{shift2KrawtchoukI} +& &(N+1-x)K_n(x;p,N)-x\left(\frac{1-p}{p}\right)K_n(x-1;p,N)\nonumber\\ +& &{}=(N+1)K_{n+1}(x;p,N+1) +\end{eqnarray} +or equivalently +\begin{equation} +\label{shift2KrawtchoukII} +\nabla\left[\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)\right]= +\binom{N+1}{x}\left(\frac{p}{1-p}\right)^xK_{n+1}(x;p,N+1). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodKrawtchouk} +\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)= +\nabla^n\left[\binom{N-n}{x}\left(\frac{p}{1-p}\right)^x\right]. +\end{equation} + +\subsection*{Generating functions} +For $x=0,1,2,\ldots,N$ we have +\begin{equation} +\label{GenKrawtchouk1} +\left(1-\frac{(1-p)}{p}t\right)^x(1+t)^{N-x}= +\sum_{n=0}^N\binom{N}{n}K_n(x;p,N)t^n. +\end{equation} + +\begin{equation} +\label{GenKrawtchouk2} +\left[\expe^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}\right]_N= +\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n. +\end{equation} + +\begin{eqnarray} +\label{GenKrawtchouk3} +& &\left[(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{-N}{\frac{t}{p(t-1)}}\right]_N\nonumber\\ +& &{}=\sum_{n=0}^N\frac{(\gamma)_n}{n!}K_n(x;p,N)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{eqnarray} + +\subsection*{Limit relations} + +\subsubsection*{Hahn $\rightarrow$ Krawtchouk} +If we take $\alpha=pt$ and $\beta=(1-p)t$ in the definition (\ref{DefHahn}) of the Hahn +polynomials and let $t\rightarrow\infty$ we obtain the Krawtchouk polynomials: +$$\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N).$$ + +\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} +The Krawtchouk polynomials follow from the dual Hahn polynomials given by +(\ref{DefDualHahn}) if we set $\gamma=pt$, $\delta=(1-p)t$ and let $t\rightarrow\infty$: +$$\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials given by (\ref{DefCharlier}) can be found from the Krawtchouk +polynomials by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a). +\end{equation} + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) follow from the Krawtchouk polynomials +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +\begin{equation} +\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}. +\end{equation} + +\subsection*{Remarks} +The Krawtchouk polynomials are self-dual, which means that +$$K_n(x;p,N)=K_x(n;p,N),\quad n,x\in\{0,1,2,\ldots,N\}.$$ +By using this relation we easily obtain the so-called dual orthogonality +relation from the orthogonality relation (\ref{OrtKrawtchouk}): +$$\sum_{n=0}^N\binom{N}{n}p^n(1-p)^{N-n} K_n(x;p,N)K_n(y;p,N)= +\frac{\displaystyle\left(\frac{1-p}{p}\right)^x}{\dbinom{N}{x}}\delta_{xy},$$ +where $0 < p < 1$ and $x,y\in\{0,1,2,\ldots,N\}$. + +\noindent +The Krawtchouk polynomials are related to the Meixner polynomials given by (\ref{DefMeixner}) +in the following way: +\subsection*{9.12 Laguerre} +\label{sec9.12} +\paragraph{Notation} +Here the Laguerre polynomial is denoted by $L_n^\al$ instead of +$L_n^{(\al)}$. +% +\paragraph{Hypergeometric representation} +\begin{align} +L_n^\al(x)&= +\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x +\label{182}\\ +&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} +\label{183}\\ +&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), +\label{184} +\end{align} +where $C_n$ in \eqref{184} is a +\hyperref[sec9.14]{Charlier polynomial}. +Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal +of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. +It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially +\myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Special value} +\begin{equation} +L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. +\label{53} +\end{equation} +Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. +% +\paragraph{Quadratic transformations} +\begin{align} +H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), +\label{54}\\ +H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). +\label{55} +\end{align} +See p.244, Remarks, last two formulas. +Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. +% +\paragraph{Fourier transform} +\begin{equation} +\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, +e^{-y}\,y^\al\,e^{ixy}\,dy= +i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, +\label{14} +\end{equation} +see \mycite{DLMF}{(18.17.34)}. +% +\paragraph{Differentiation formulas} +Each differentiation formula is given in two equivalent forms. +\begin{equation} +\frac d{dx}\left(x^\al L_n^\al(x)\right)= +(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad +\left(x\frac d{dx}+\al\right)L_n^\al(x)= +(n+\al)\,L_n^{\al-1}(x). +\label{76} +\end{equation} +% +\begin{equation} +\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= +-e^{-x} L_n^{\al+1}(x),\qquad +\left(\frac d{dx}-1\right)L_n^\al(x)= +-L_n^{\al+1}(x). +\label{77} +\end{equation} +% +Formulas \eqref{76} and \eqref{77} follow from +\mycite{DLMF}{(13.3.18), (13.3.20)} +together with (9.12.1). +% +\paragraph{Generalized Hermite polynomials} +See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. +These are defined by +\begin{equation} +H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). +\label{78} +\end{equation} +Then for $\mu>-\thalf$ we have orthogonality relation +\begin{equation} +\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx +=0\qquad(m\ne n). +\label{79} +\end{equation} +Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. +If we choose the constants in \eqref{78} as +\begin{equation} +H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad +H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, + x\,L_m^{\mu+\half}(x^2) + \label{80} +\end{equation} +then (see \cite[(1.6)]{K5}) +\begin{equation} +T_\mu H_n^\mu=2n\,H_{n-1}^\mu. +\label{81} +\end{equation} +Formula \eqref{81} with \eqref{80} substituted gives rise to two +differentiation formulas involving Laguerre polynomials which are equivalent to +(9.12.6) and \eqref{76}. + +Composition of \eqref{81} with itself gives +\[ +T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, +\] +which is equivalent to the composition of (9.12.6) and \eqref{76}: +\begin{equation} +\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) +=-4(n+\al)\,L_{n-1}^\al(x^2). +\label{82} +\end{equation} +$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ + +\subsection*{References} +\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, +\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, +\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, +\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, +\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, +\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. + + +\section{Laguerre}\index{Laguerre polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefLaguerre} +L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtLaguerre} +\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= +\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecLaguerre} +(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecLaguerre} +xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), +\end{equation} +where +$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvLaguerre} +xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). +\end{equation} + +\newpage + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Laguerre} +\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2LaguerreI} +x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2LaguerreII} +\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodLaguerre} +\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenLaguerre1} +(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= +\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre2} +\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} +=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. +\end{equation} + +\begin{equation} +\label{GenLaguerre3} +(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} +=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, +\quad\textrm{$\gamma$ arbitrary}. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} +The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by +(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, +$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: +$$\lim_{\phi\rightarrow 0} +P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Jacobi $\rightarrow$ Laguerre} +The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) +if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: +$$\lim_{\beta\rightarrow\infty} +P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ + +\subsubsection*{Meixner $\rightarrow$ Laguerre} +If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition +(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain +the Laguerre polynomials: +$$\lim_{c\rightarrow 1} +M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre +polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: +\begin{equation} +\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). +\end{equation} + +\subsection*{Remarks} +The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be +written as: +$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ +In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. +Therefore they can be defined for all $\alpha$. + +\noindent +The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) +in the following way: +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\noindent +The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\noindent +In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook +\subsection*{9.14 Charlier} +\label{sec9.14} +% +\paragraph{Hypergeometric representation} +\begin{align} +C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} +\label{179}\\ +&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a +\label{180}\\ +&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), +\label{181} +\end{align} +where $L_n^\al(x)$ is a +\hyperref[sec9.12]{Laguerre polynomial}. +Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal +of the summation. Finally \eqref{181} follows by \eqref{180} and +(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it +was earlier given in \myciteKLS{416}{(2.7.10)}. +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +polynomials. + +\subsection*{References} +\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, +\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, +\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, +\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, +\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, +\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, +\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, +\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, +\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, +\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, +\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, +\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, +\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, +\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, +\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, +\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, +\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, +\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, +\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, +\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, +\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, +\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, +\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. + + +\section{Bessel}\index{Bessel polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{eqnarray} +\label{DefBessel} +y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ +&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, +\quad n=0,1,2,\ldots,N.\nonumber +\end{eqnarray} + +\subsection*{Orthogonality relation} +\begin{eqnarray} +\label{OrtBessel} +& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ +& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. +\end{eqnarray} + +\subsection*{Recurrence relation} +\begin{eqnarray} +\label{RecBessel} +& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ +& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ +& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). +\end{eqnarray} + +\subsection*{Normalized recurrence relation} +\begin{eqnarray} +\label{NormRecBessel} +xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ +& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), +\end{eqnarray} +where +$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvBessel} +x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Bessel} +\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2BesselI} +x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) +\end{equation} +or equivalently +\begin{equation} +\label{shift2BesselII} +\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodBessel} +y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenBessel} +\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a +\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. +\end{equation} + +\subsection*{Limit relation} + +\subsubsection*{Jacobi $\rightarrow$ Bessel} +If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials +and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: +$$\lim_{\alpha\rightarrow -\infty} +\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ + +\subsection*{Remarks} +The following notations are also used for the Bessel polynomials: +$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ +However, the Bessel polynomials essentially depend on only one parameter. + +\noindent +The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ + +\noindent +The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi +polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the +pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: +$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} +\subsection*{9.15 Hermite} +\label{sec9.15} +% +\paragraph{Uniqueness of orthogonality measure} +The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. +Hence \eqref{93} holds, by which the orthogonality measure is unique. +% +\paragraph{Fourier transforms} +\begin{equation} +\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= +i^n\,H_n(x)\,e^{-\half x^2}, +\label{15} +\end{equation} +see \mycite{AAR}{(6.1.15) and Exercise 6.11}. +\begin{equation} +\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= +i^n\,x^n\,e^{-\frac14 x^2}, +\label{16} +\end{equation} +see \mycite{DLMF}{(18.17.35)}. +\begin{equation} +\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= +H_n(x)\,e^{-x^2}, +\label{17} +\end{equation} +see \mycite{AAR}{(6.1.4)}. +=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ + +\subsection*{References} +\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, +\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, +\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. + + +\section{Charlier}\index{Charlier polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefCharlier} +C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtCharlier} +\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= +a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecCharlier} +-xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecCharlier} +xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), +\end{equation} +where +$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ + +\subsection*{Difference equation} +\begin{equation} +\label{dvCharlier} +-ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1CharlierI} +C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift1CharlierII} +\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2CharlierI} +C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) +\end{equation} +or equivalently +\begin{equation} +\label{shift2CharlierII} +\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodCharlier} +\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. +\end{equation} + +\subsection*{Generating function} +\begin{equation} +\label{GenCharlier} +\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. +\end{equation} + +\subsection*{Limit relations} + +\subsubsection*{Meixner $\rightarrow$ Charlier} +If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials +and let $\beta\rightarrow\infty$ we find the Charlier polynomials: +$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Charlier} +The Charlier polynomials can be found from the Krawtchouk polynomials given by +(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials +if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have +\begin{equation} +\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). +\end{equation} + +\subsection*{Remark} +The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) +in the following way: +\subsection*{14.1 Askey-Wilson} +\label{sec14.1} +% +\paragraph{Symmetry} +The Askey-Wilson polynomials $p_n(x;a,b,c,d\,|\,q)$ are \,|\,symmetric +in $a,b,c,d$. +\sLP +This follows from the orthogonality relation (14.1.2) +together with the value of its coefficient of $x^n$ given in (14.1.5b). +Alternatively, combine (14.1.1) with \mycite{GR}{(III.15)}.\\ +As a consequence, it is sufficient to give generating function (14.1.13). Then the generating +functions (14.1.14), (14.1.15) will follow by symmetry in the parameters. +% +\paragraph{Basic hypergeometric representation} +In addition to (14.1.1) we have (in notation \eqref{111}): +\begin{multline} +p_n(\cos\tha;a,b,c,d\,|\, q) +=\frac{(ae^{-i\tha},be^{-i\tha},ce^{-i\tha},de^{-i\tha};q)_n} +{(e^{-2i\tha};q)_n}\,e^{in\tha}\\ +\times {}_8W_7\big(q^{-n}e^{2i\tha};ae^{i\tha},be^{i\tha}, +ce^{i\tha},de^{i\tha},q^{-n};q,q^{2-n}/(abcd)\big). +\label{113} +\end{multline} +This follows from (14.1.1) by combining (III.15) and (III.19) in +\mycite{GR}. +It is also given in \myciteKLS{513}{(4.2)}, but be aware for some slight errors. +The symmetry in $a,b,c,d$ is evident from \eqref{113}. +% +\paragraph{Special value} +\begin{equation} +p_n\big(\thalf(a+a^{-1});a,b,c,d\,|\, q\big)=a^{-n}\,(ab,ac,ad;q)_n\,, +\label{40} +\end{equation} +and similarly for arguments $\thalf(b+b^{-1})$, $\thalf(c+c^{-1})$ and +$\thalf(d+d^{-1})$ by symmetry of $p_n$ in $a,b,c,d$. +% +\paragraph{Trivial symmetry} +\begin{equation} +p_n(-x;a,b,c,d\,|\, q)=(-1)^n p_n(x;-a,-b,-c,-d\,|\, q). +\label{41} +\end{equation} +Both \eqref{40} and \eqref{41} are obtained from (14.1.1). +% +\paragraph{Re: (14.1.5)} +Let +\begin{equation} +p_n(x):=\frac{p_n(x;a,b,c,d\,|\, q)}{2^n(abcdq^{n-1};q)_n}=x^n+\wt k_n x^{n-1} ++\cdots\;. +\label{18} +\end{equation} +Then +\begin{equation} +\wt k_n=-\frac{(1-q^n)(a+b+c+d-(abc+abd+acd+bcd)q^{n-1})} +{2(1-q)(1-abcdq^{2n-2})}\,. +\label{19} +\end{equation} +This follows because $\tilde k_n-\tilde k_{n+1}$ equals the coefficient +$\thalf\bigl(a+a^{-1}-(A_n+C_n)\bigr)$ of $p_n(x)$ in (14.1.5). +% +\paragraph{Generating functions} +Rahman \myciteKLS{449}{(4.1), (4.9)} gives: +\begin{align} +&\sum_{n=0}^\iy \frac{(abcdq^{-1};q)_n a^n}{(ab,ac,ad,q;q)_n}\,t^n\, +p_n(\cos\tha;a,b,c,d\,|\,q) +\nonumber\\ +&=\frac{(abcdtq^{-1};q)_\iy}{(t;q)_\iy}\, +\qhyp65{(abcdq^{-1})^\half,-(abcdq^{-1})^\half,(abcd)^\half, +-(abcd)^\half,a e^{i\tha},a e^{-i\tha}} +{ab,ac,ad,abcdtq^{-1},qt^{-1}}{q,q} +\nonumber\\ +&+\frac{(abcdq^{-1},abt,act,adt,ae^{i\tha},ae^{-i\tha};q)_\iy} +{(ab,ac,ad,t^{-1},ate^{i\tha},ate^{-i\tha};q)_\iy} +\nonumber\\ +&\times\qhyp65{t(abcdq^{-1})^\half,-t(abcdq^{-1})^\half,t(abcd)^\half, +-t(abcd)^\half,at e^{i\tha},at e^{-i\tha}} +{abt,act,adt,abcdt^2q^{-1},qt}{q,q}\quad(|t|<1). +\label{185} +\end{align} +In the limit \eqref{109} the first term on the \RHS\ of \eqref{185} +tends to the \LHS\ of (9.1.15), while the second term tends formally +to 0. The special case $ad=bc$ of \eqref{185} was earlier given in +\myciteKLS{236}{(4.1), (4.6)}. +% +\paragraph{Limit relations}\quad\sLP +{\bf Askey-Wilson $\longrightarrow$ Wilson}\\ +Instead of (14.1.21) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{equation} +\lim_{q\to1}\frac{p_n(1-\thalf x(1-q)^2;q^a,q^b,q^c,q^d\,|\, q)}{(1-q)^{3n}} +=W_n(x;a,b,c,d). +\label{109} +\end{equation} +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.4.4). +\bLP +{\bf Askey-Wilson $\longrightarrow$ Continuous Hahn}\\ +Instead of (14.4.15) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{multline} +\lim_{q\uparrow1} +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, +q^{\overline b} e^{-i\phi}\,|\, q\big)} +{(1-q)^{2n}}\\ +=(-2\sin\phi)^n\,n!\,p_n(x;a,b,\overline a,\overline b)\qquad +(0<\phi<\pi). +\label{177} +\end{multline} +Here the \RHS\ has a continuous Hahn polynomial (9.4.1). +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.1.5). +In fact, define the monic polynomial +\[ +\wt p_n(x):= +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, +q^{\overline b} e^{-i\phi}\,|\, q\big)} +{(-2(1-q)\sin\phi)^n\,(abcdq^{n-1};q)_n}\,. +\] +Then it follows from (14.1.5) that +\begin{equation*} +x\,\wt p_n(x)=\wt p_{n+1}(x) ++\frac{(1-q^a)e^{i\phi}+(1-q^{-a})e^{-i\phi}+\wt A_n+\wt C_n}{2(1-q)\sin\phi}\,\wt p_n(x)\\ ++\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), +\end{equation*} +where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by +$q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi},q^{\overline b} e^{-i\phi}$. +Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to +the recurrence equation (9.4.4) with $c=\overline a$, $d=\overline b$. +\bLP +{\bf Askey-Wilson $\longrightarrow$ Meixner-Pollaczek}\\ +Instead of (14.9.15) we can keep a polynomial of degree $n$ while the limit is approached: +\begin{equation} +\lim_{q\uparrow1} +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; +q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(1-q)^n} +=n!\,P_n^{(\la)}(x;\pi-\phi)\quad +(0<\phi<\pi). +\label{178} +\end{equation} +Here the \RHS\ has a Meixner-Pollaczek polynomial (9.7.1). +For the proof first derive the corresponding limit for the monic polynomials by comparing +(14.1.5) with (9.7.4). +In fact, define the monic polynomial +\[ +\wt p_n(x):= +\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; +q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(-2(1-q)\sin\phi)^n}\,. +\] +Then it follows from (14.1.5) that +\begin{equation*} +x\,\wt p_n(x)=\wt p_{n+1}(x) ++\frac{(1-q^\la)e^{i\phi}+(1-q^{-\la})e^{-i\phi}+\wt A_n+\wt C_n} +{2(1-q)\sin\phi}\,\wt p_n(x)\\ ++\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), +\end{equation*} +where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by +$q^\la e^{i\phi},0,q^\la e^{-i\phi},0$. +Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to +the recurrence equation (9.7.4). +% +\paragraph{References} +See also Koornwinder \cite{K7}. +$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ + +\subsection*{References} +\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, +\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, +\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, +\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, +\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, +\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, +\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, +\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, +\cite{Zeng90}. + + +\section{Hermite}\index{Hermite polynomials} + +\par\setcounter{equation}{0} + +\subsection*{Hypergeometric representation} +\begin{equation} +\label{DefHermite} +H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. +\end{equation} + +\subsection*{Orthogonality relation} +\begin{equation} +\label{OrtHermite} +\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx +=2^nn!\,\delta_{mn}. +\end{equation} + +\subsection*{Recurrence relation} +\begin{equation} +\label{RecHermite} +H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. +\end{equation} + +\subsection*{Normalized recurrence relation} +\begin{equation} +\label{NormRecHermite} +xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), +\end{equation} +where +$$H_n(x)=2^np_n(x).$$ + +\subsection*{Differential equation} +\begin{equation} +\label{dvHermite} +y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). +\end{equation} + +\subsection*{Forward shift operator} +\begin{equation} +\label{shift1Hermite} +\frac{d}{dx}H_n(x)=2nH_{n-1}(x). +\end{equation} + +\subsection*{Backward shift operator} +\begin{equation} +\label{shift2HermiteI} +\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) +\end{equation} +or equivalently +\begin{equation} +\label{shift2HermiteII} +\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). +\end{equation} + +\subsection*{Rodrigues-type formula} +\begin{equation} +\label{RodHermite} +\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. +\end{equation} + +\subsection*{Generating functions} +\begin{equation} +\label{GenHermite1} +\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. +\end{equation} + +\begin{equation} +\label{GenHermite2} +\left\{\begin{array}{l} +\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] +\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} +\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite3} +\left\{\begin{array}{l} +\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] +\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} +\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. +\end{array}\right. +\end{equation} + +\begin{equation} +\label{GenHermite4} +\left\{\begin{array}{l} +\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= +\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] +\displaystyle\frac{xt}{\sqrt{1+t^2}}\, +\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} +=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} +\end{array}\right. +\end{equation} +with $\gamma$ arbitrary. + +\begin{equation} +\label{GenHermite5} +\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) +=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, +\end{equation} +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\subsection*{Limit relations} + +\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} +If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ +in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and +then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: +$$\lim_{\lambda\rightarrow\infty} +\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} +((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Jacobi $\rightarrow$ Hermite} +The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by +taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ + +\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} +The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by +(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting +$\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ + +\subsubsection*{Krawtchouk $\rightarrow$ Hermite} +The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) +by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: +$$\lim_{N\rightarrow\infty} +\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) +=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ + +\subsubsection*{Laguerre $\rightarrow$ Hermite} +The Hermite polynomials can be obtained from the Laguerre polynomials given by +(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: +$$\lim_{\alpha\rightarrow\infty} +\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} +L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ + +\subsubsection*{Charlier $\rightarrow$ Hermite} +If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) +of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite +polynomials. In fact we have +$$\lim_{a\rightarrow\infty} +(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ + +\subsection*{Remarks} +The Hermite polynomials can also be written as: +$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} +\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ +where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. + +\noindent +The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also +connected by the following quadratic transformations: +$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ +and +\subsection*{14.2 $q$-Racah} +\label{sec14.2} +\paragraph{Symmetry} +\begin{equation} +R_n(x;\al,\be,q^{-N-1},\de\,|\, q) +=\frac{(\be q,\al\de^{-1}q;q)_n}{(\al q,\be\de q;q)_n}\,\de^n\, +R_n(\de^{-1}x;\be,\al,q^{-N-1},\de^{-1}\,|\, q). +\label{84} +\end{equation} +This follows from (14.2.1) combined with \mycite{GR}{(III.15)}. +\sLP +In particular, +\begin{equation} +R_n(x;\al,\be,q^{-N-1},-1\,|\, q) +=\frac{(\be q,-\al q;q)_n}{(\al q,-\be q;q)_n}\,(-1)^n\, +R_n(-x;\be,\al,q^{-N-1},-1\,|\, q), +\label{85} +\end{equation} +and +\begin{equation} +R_n(x;\al,\al,q^{-N-1},-1\,|\, q) +=(-1)^n\,R_n(-x;\al,\al,q^{-N-1},-1\,|\, q), +\label{86} +\end{equation} + +\paragraph{Trivial symmetry} +Clearly from (14.2.1): +\begin{equation} +R_n(x;\al,\be,\ga,\de\,|\, q)=R_n(x;\be\de,\al\de^{-1},\ga,\de\,|\, q) +=R_n(x;\ga,\al\be\ga^{-1},\al,\ga\de\al^{-1}\,|\, q). +\label{83} +\end{equation} +For $\al=q^{-N-1}$ this shows that the three cases +$\al q=q^{-N}$ or $\be\de q=q^{-N}$ or $\ga q=q^{-N}$ of (14.2.1) +are not essentially different. +% +\paragraph{Duality} +It follows from (14.2.1) that +\begin{equation} +R_n(q^{-y}+\ga\de q^{y+1};q^{-N-1},\be,\ga,\de\,|\, q) +=R_y(q^{-n}+\be q^{n-N};\ga,\de,q^{-N-1},\be\,|\, q)\quad +(n,y=0,1,\ldots,N). +\end{equation} +$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ + +\subsection*{14.3 Continuous dual $q$-Hahn} +\label{sec14.3} +The continuous dual $q$-Hahn polynomials are the special case $d=0$ of the +Askey-Wilson polynomials: +\[ +p_n(x;a,b,c\,|\, q):=p_n(x;a,b,c,0\,|\, q). +\] +Hence all formulas in \S14.3 are specializations for $d=0$ of formulas in \S14.1. +\subsection*{References} +\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, +\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, +\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, +\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, +\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, +\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, +\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, +\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, +\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, +\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, +\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, +\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, +\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, +\cite{Weisner59}, \cite{Wyman}. + +\end{document} From 98b3c2be56ed2b331c0dee6b12d1b5b2ccfd6a63 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 15:34:48 -0500 Subject: [PATCH 002/402] ignored chap files --- KLSadd_insertion/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 KLSadd_insertion/.gitignore diff --git a/KLSadd_insertion/.gitignore b/KLSadd_insertion/.gitignore new file mode 100644 index 0000000..adb2870 --- /dev/null +++ b/KLSadd_insertion/.gitignore @@ -0,0 +1 @@ +*chap*.tex From 2005562bb72c5944d47f29b0c8b439837866eb91 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 15:36:59 -0500 Subject: [PATCH 003/402] removing chap files --- KLSadd_insertion/.gitignore | 1 - README.md | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) delete mode 100644 KLSadd_insertion/.gitignore diff --git a/KLSadd_insertion/.gitignore b/KLSadd_insertion/.gitignore deleted file mode 100644 index adb2870..0000000 --- a/KLSadd_insertion/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*chap*.tex diff --git a/README.md b/README.md index ee19c88..75cc520 100644 --- a/README.md +++ b/README.md @@ -27,4 +27,7 @@ To achieve the desired result, one should execute the progams in the following o ## BMP Seeding Project +## KLSadd Insertion Project + +Edits the DRMF chapter files to include rel From 944aa81aeb358fc23552f60286f427caf5da9249 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 15:45:07 -0500 Subject: [PATCH 004/402] new --- KLSadd_insertion/chap01.tex | 1542 ------- KLSadd_insertion/chap09.tex | 3037 ------------- KLSadd_insertion/chap14.tex | 5734 ------------------------ KLSadd_insertion/newtempchap09.tex | 3934 ---------------- KLSadd_insertion/newtempchap14.tex | 6695 ---------------------------- KLSadd_insertion/tempchap09.tex | 3926 ---------------- KLSadd_insertion/tempchap14.tex | 5734 ------------------------ 7 files changed, 30602 deletions(-) delete mode 100644 KLSadd_insertion/chap01.tex delete mode 100644 KLSadd_insertion/chap09.tex delete mode 100644 KLSadd_insertion/chap14.tex delete mode 100644 KLSadd_insertion/newtempchap09.tex delete mode 100644 KLSadd_insertion/newtempchap14.tex delete mode 100644 KLSadd_insertion/tempchap09.tex delete mode 100644 KLSadd_insertion/tempchap14.tex diff --git a/KLSadd_insertion/chap01.tex b/KLSadd_insertion/chap01.tex deleted file mode 100644 index d2b4c10..0000000 --- a/KLSadd_insertion/chap01.tex +++ /dev/null @@ -1,1542 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\textheight 25cm - -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\pagenumbering{roman} - -\large - -\chapter{Definitions and miscellaneous formulas} -\label{Definitions} - - -\section{Orthogonal polynomials}\index{Orthogonal polynomials} -\par\setcounter{equation}{0} -\label{orthogonal polynomials} - -A system of polynomials $\left\{p_n(x)\right\}_{n=0}^{\infty}$ with degree$[p_n(x)]=n$ for all -$n\in\{0,1,2,\ldots\}$ is called orthogonal on an interval $(a,b)$ with respect to the weight -function $w(x)\geq 0$ if -\begin{equation} -\label{orth1} -\int_a^bp_m(x)p_n(x)w(x)\,dx=0,\quad m\neq n,\quad m,n\in\{0,1,2,\ldots\}. -\end{equation} -Here $w(x)$ is continuous or piecewise continuous or integrable, and such that -\begin{equation} -0<\int_a^bx^{2n}w(x)\,dx<\infty -% \constraint{ $n\in\{0,1,2,\ldots\}$ } -\end{equation} -More generally, $w(x)\,dx$ may be replaced in this definition by a positive measure -$d\alpha(x)$, where $\alpha(x)$ is a bounded nondecreasing function on $[a,b]\cap\mathbb{R}$ -with an infinite number of points of increase, and such that -\begin{equation} -0<\int_a^bx^{2n}\,d\alpha(x)<\infty -% \constraint{ $n\in\{0,1,2,\ldots\}$ } -\end{equation} -If this function $\alpha(x)$ is constant between its (countably many) jump points then we have -the situation of positive weights $w_x$ on a countable subset $X$ of $\mathbb{R}$. Then the -system $\{p_n(x)\}_{n=0}^{\infty}$ is orthogonal on $X$ with respect to these weights as follows: -\begin{equation} -\label{orth2} -\sum_{x\in X}p_m(x)p_n(x)w_x=0,\quad m\neq n,\quad m,n\in\{0,1,2,\ldots\}. -\end{equation} -The case of weights $w_x$ ($x\in X$) on a finite set $X$ of $N+1$ points yields orthogonality -for a finite system of polynomials $\{p_n(x)\}_{n=0}^N$: -\begin{equation} -\label{orth3} -\sum_{x\in X}p_m(x)p_n(x)w_x=0,\quad m\neq n,\quad m,n\in\{0,1,2,\ldots,N\}. -\end{equation} -The orthogonality relations (\ref{orth1}), (\ref{orth2}) or (\ref{orth3}) determine the -polynomials $\{p_n(x)\}_{n=0}^{\infty}$ up to constant factors, which may be fixed by a -suitable normalization. We set: -\begin{equation} -\label{norm1} -\sigma_n=\int_a^b\left\{p_n(x)\right\}^2w(x)\,dx,\quad n=0,1,2,\ldots, -\end{equation} -\begin{equation} -\label{norm2} -\sigma_n=\sum_{x\in X}\left\{p_n(x)\right\}^2w_x,\quad n=0,1,2,\ldots -\end{equation} -or -\begin{equation} -\label{norm3} -\sigma_n=\sum_{x\in X}\left\{p_n(x)\right\}^2w_x,\quad n=0,1,2,\ldots,N, -\end{equation} -respectively and -\begin{equation} -\label{polynomial} -p_n(x)=k_nx^n+\,\textrm{lower order terms},\quad n=0,1,2,\ldots. -\end{equation} -Then we have the following normalizations: - -\begin{enumerate}\itemsep2.5mm -\item $\sigma_n=1$ for all $n=0,1,2,\ldots$. In that case the system of polynomials is called -orthonormal. If moreover $k_n>0$, for instance, then the polynomials are uniquely determined. -\item $k_n=1$ for all $n=0,1,2,\ldots$. In that case the system of polynomials is called -monic. Also in this case the polynomials are uniquely determined. -\end{enumerate} -Polynomials $\{p_n(x)\}_{n=0}^{\infty}$ with degree$[p_n(x)]=n$ for all $n\in\{0,1,2,\ldots\}$ -which are orthogonal with respect to a (piecewise) continuous or integrable weight function -$w(x)$ as in (\ref{orth1}) are called continuous orthogonal polynomials.\\ -Polynomials $\{p_n(x)\}_{n=0}^N$ with degree$[p_n(x)]=n$ for all $n\in\{0,1,2,\ldots,N\}$ and -possibly $N\rightarrow\infty$ which are orthogonal with respect to a countable subset $X$ of -$\mathbb{R}$ as in (\ref{orth2}) or (\ref{orth3}) are called discrete orthogonal polynomials.\\ -By using the Kronecker delta, defined by -\begin{equation} -\label{Kronecker} -\,\delta_{mn}:=\left\{\begin{array}{ll}0, &m\neq n,\\[5mm] -1, & m=n,\end{array}\right.\quad m,n\in\{0,1,2,\ldots\}, -\end{equation} -orthogonality relations can be written in the form -\begin{equation} -\label{orth4} -\int_a^bp_m(x)p_n(x)w(x)\,dx=\sigma_n\,\delta_{mn},\quad m,n\in\{0,1,2,\ldots\} -\end{equation} -or (with possibly $N\rightarrow\infty$) -\begin{equation} -\label{orth5} -\sum_{x\in X}p_m(x)p_n(x)w_x=\sigma_n\,\delta_{mn},\quad m,n\in\{0,1,2,\ldots,N\}, -\end{equation} -respectively. - -\section{The gamma and beta function} -\par\setcounter{equation}{0} -\label{gamma function} - -For $\textrm{Re}\,z>0$ the gamma function can be defined by the -gamma integral $\EulerGamma@{z}$ -\begin{equation} -\label{DefGamma}\index{Gamma function} -\Gamma(z):=\int_0^{\infty}t^{z-1}\e^{-t}\,dt,\quad\textrm{Re}\,z>0. -\end{equation} -This gamma function satisfies the well-known functional equation -\begin{equation} -\label{GammaFunctional} -\Gamma(z+1)=z\Gamma(z) -% \constraint{ $\Gamma(1)=1$ } -\end{equation} -which shows that $\Gamma(n+1)=n!$ for $n\in\{0,1,2,\ldots\}$. -For non-integral values of $z$, the gamma function also satisfies the reflection formula -\begin{equation} -\label{GammaReflection} -\Gamma(z)\Gamma(1-z)=\frac{\pi}{\sin(\pi z)},\quad z\notin\mathbb{Z}. -\end{equation} -Hence we have $\Gamma(1/2)=\sqrt{\pi}$, which implies that -\begin{equation} -\label{IntExp} -\int_{-\infty}^{\infty}\e^{-x^2}\,dx=2\int_0^{\infty}\e^{-x^2}\,dx -=\int_0^{\infty}t^{-1/2}\e^{-t}\,dt=\Gamma(1/2)=\sqrt{\pi}. -\end{equation} -More general we have -\begin{equation} -\label{IntHermite} -\int_{-\infty}^{\infty}\e^{-\alpha^2x^2-2\beta x}\,dx -=\sqrt{\frac{\pi}{\alpha^2}}\,\e^{\beta^2/\alpha^2}, -% \constraint{ -% $\alpha,\beta\in\Real$ & -% $\alpha\neq 0$ } -\end{equation} -Further we have Legendre's duplication formula -\begin{equation} -\label{GammaDuplication} -\Gamma(z)\Gamma(z+1/2)=2^{1-2z}\sqrt{\pi}\,\Gamma(2z) -% \constraint{ -% $z\in\Complex$ & -% $2z\neq 0,-1,-2,\ldots$ } -\end{equation} -and Stirling's asymptotic formula -\begin{equation} -\label{GammaAsymptotic} -\Gamma(z)\sim\sqrt{2\pi}\,z^{z-1/2}\e^{-z},\quad\textrm{Re}\,z\rightarrow\infty. -\end{equation} -For $z=x+iy$ with $x,y\in\mathbb{R}$ we also have -\begin{equation} -\label{GammaAsymptotic2} -\Gamma(x+iy)\sim\sqrt{2\pi}\,|y|^{x-1/2}\e^{-|y|\pi/2},\quad|y|\rightarrow\infty -\end{equation} -and for the ratio of two gamma functions we have the asymptotic -formula -\begin{equation} -\label{GammaAsymptotic3} -\frac{\Gamma(z+a)}{\Gamma(z+b)}\sim z^{a-b},\quad -% \constraint{ -% $a,b\in\Complex$ & -% $|z|\rightarrow\infty$ } -\end{equation} - -For $\textrm{Re}\,x>0$ and $\textrm{Re}\,y>0$ the beta function can be defined -by the integral -\begin{equation} -\label{DefBeta}\index{Beta function} -\textrm{B}(x,y):=\int_0^1t^{x-1}(1-t)^{y-1}\,dt -% \constraint{ -% $\textrm{Re}\,x>0$ & -% $\textrm{Re}\,y>0$ } -\end{equation} -The connection between the beta function and the gamma function is -given by the relation -\begin{equation} -\label{BetaGamma} -\textrm{B}(x,y)=\frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)} -% \constraint{ -% $\textrm{Re}\,x>0$ & -% $\textrm{Re}\,y>0$ } -\end{equation} -There is another beta integral due to Cauchy, which can be written as -\begin{equation} -\label{Cauchy} -\frac{1}{2\pi}\int_{-\infty}^{\infty}\frac{dt}{(r+it)^{\rho}(s-it)^{\sigma}} -=\frac{(r+s)^{1-\rho-\sigma}\Gamma(\rho+\sigma-1)}{\Gamma(\rho)\Gamma(\sigma)} -\end{equation} -for $\textrm{Re}\,r>0$, $\textrm{Re}\,s>0$ and $\textrm{Re}(\rho+\sigma)>1$. - -\section{The shifted factorial and binomial coefficients} -\par\setcounter{equation}{0} -\label{pochhammer symbol} - -The shifted factorial -- or Pochhammer symbol -- is defined by -\begin{equation} -\label{Pochhammer}\index{Shifted factorial} -(a)_0:=1\quad\textrm{and}\quad (a)_k:=\prod_{n=1}^k(a+n-1) -% \constraint{ $k=1,2,3,\ldots$ } -\end{equation} -This can be seen as a generalization of the factorial since -$$(1)_n=n!,\quad n=0,1,2,\ldots.$$ - -The binomial coefficient can be defined by -\begin{equation} -\label{binomialcoeff}\index{Binomial coefficient} -\binom{\alpha}{\beta}:=\frac{\Gamma(\alpha+1)}{\Gamma(\beta+1)\Gamma(\alpha-\beta+1)}. -\end{equation} -For integer values of the parameter $\beta$ we have -$$\binom{\alpha}{k}:=\frac{(-\alpha)_k}{k!}(-1)^k,\quad k=0,1,2,\ldots$$ -and when the parameter $\alpha$ is an integer too, we have -\begin{equation} -\binom{n}{k}:=\frac{n!}{k!\,(n-k)!} -% \constraint{ -% $k=0,1,2,\ldots,n$ & -% $n=0,1,2,\ldots$ } -\end{equation} -The latter formula can be used to show that -$$\binom{2n}{n}=\frac{\left(\frac{1}{2}\right)_n}{n!}4^n,\quad n=0,1,2,\ldots.$$ - -\section{Hypergeometric functions} -\par\setcounter{equation}{0} -\label{hypergeometric functions} - -The hypergeometric function $\mbox{}_rF_s$ is defined by the series -\begin{equation} -\label{DefHyp}\index{Hypergeometric function} -\hyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{z}:= -\sum\limits_{k=0}^{\infty}\frac{(a_1,\ldots,a_r)_k}{(b_1,\ldots,b_s)_k} -\frac{z^k}{k!}, -\end{equation} -where -$$(a_1,\ldots,a_r)_k:=(a_1)_k\cdots(a_r)_k.$$ -Of course, the parameters must be such that the denominator factors in the -terms of the series are never zero. When one of the numerator parameters -$a_j$ equals $-n$, where $n$ is a nonnegative integer, this hypergeometric -function is a polynomial in $z$. Otherwise the radius of convergence $\rho$ of -the hypergeometric series is given by -$$\rho=\left\{\begin{array}{ll} -\displaystyle \infty & \quad\textrm{if}\quad r < s+1\\[5mm] -\displaystyle 1 & \quad\textrm{if}\quad r = s+1\\[5mm] -\displaystyle 0 & \quad\textrm{if}\quad r > s+1.\end{array}\right.$$ - -A hypergeometric series of the form (\ref{DefHyp}) is called -balanced\index{Hypergeometric function!Balanced} or -Saalsch\"{u}tzian\index{Hypergeometric function!Saalsch\"{u}tzian} -if $r=s+1$, $z=1$ and $a_1+a_2+ \ldots +a_{s+1}+1=b_1+b_2+ \ldots +b_s$. - -Many limit relations between hypergeometric orthogonal polynomials are based on the observations that -\begin{equation} -\label{hypsub} -\hyp{r}{s}{a_1,\ldots,a_{r-1},\mu}{b_1,\ldots,b_{s-1},\mu}{z} -=\hyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{z}, -\end{equation} -\begin{equation} -\label{hyplim1} -\lim\limits_{\lambda\rightarrow\infty} -\hyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_s}{\frac{z}{\lambda}} -=\hyp{r-1}{s}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_s}{a_rz}, -\end{equation} -\begin{equation} -\label{hyplim2} -\lim\limits_{\lambda\rightarrow\infty} -\hyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{\lambda z}= -\hyp{r}{s-1}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1}}{\frac{z}{b_s}} -\end{equation} -and -\begin{equation} -\label{hyplim3} -\lim\limits_{\lambda\rightarrow\infty} -\hyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{z} -=\hyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{\frac{a_rz}{b_s}}. -\end{equation} - -Mostly, the left-hand side of (\ref{hypsub}) occurs as a limit case where some numerator -parameter and some denominator parameter tend to the same value. - -All families of discrete orthogonal polynomials $\{P_n(x)\}_{n=0}^N$ are -defined for $n=0,1,2,\ldots,N$, where $N$ is a positive integer. In these -cases something like (\ref{hypsub}) occurs in the hypergeometric representation when $n=N$. -In these cases we have to be aware of the fact that we still have a polynomial (in that case of -degree $N$). For instance, if we take $n=N$ in the hypergeometric representation (\ref{DefHahn}) -of the Hahn polynomials, we have -$$Q_N(x;\alpha,\beta,N)=\sum_{k=0}^N\frac{(N+\alpha+\beta+1)_k(-x)_k}{(\alpha+1)_kk!}.$$ -So these cases must be understood by continuity. - -In cases of discrete orthogonal polynomials, we need a special notation for -some of the generating functions. We define -$$\left[f(t)\right]_N:=\sum_{k=0}^N\frac{f^{(k)}(0)}{k!}t^k,$$ -for every function $f$ for which $f^{(k)}(0)$, $k=0,1,2,\ldots,N$ exists. As -an example of the use of this $N$th partial sum of a power series in $t$ we -remark that the generating function (\ref{GenKrawtchouk2}) for the -Krawtchouk polynomials must be understood as follows: the $N$th partial sum -of -$$\e^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}= -\sum_{k=0}^{\infty}\frac{t^k}{k!}\sum_{m=0}^x\frac{(-x)_m}{(-N)_mm!} -\left(-\frac{t}{p}\right)^m$$ -equals -$$\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n$$ -for $x=0,1,2,\ldots,N$. - -The classical exponential function $\e^z$ and the trigonometric functions -$\cos z$ and $\sin z$ can be expressed in terms of hypergeometric functions -as -\begin{equation} -\label{exp} -\e^z=\hyp{0}{0}{-}{-}{z}, -\end{equation} -\begin{equation} -\label{cos} -\cos z=\hyp{0}{1}{-}{\frac{1}{2}}{-\frac{z^2}{4}} -\end{equation} -and -\begin{equation} -\label{sin} -\sin z=z\,\hyp{0}{1}{-}{\frac{3}{2}}{-\frac{z^2}{4}}. -\end{equation} - -Further we have the well-known Bessel function of the first kind $J_{\nu}(z)$, which can be -defined by -\begin{equation} -\label{Bessel}\index{Bessel function} -J_{\nu}(z):=\frac{\left(\frac{1}{2}z\right)^{\nu}}{\Gamma(\nu+1)}\, -\hyp{0}{1}{-}{\nu+1}{-\frac{z^2}{4}}. -\end{equation} - -\section{The binomial theorem and other summation formulas} -\par\setcounter{equation}{0} -\label{summation formulas} - -One of the most important summation formulas for hypergeometric series is -given by the binomial theorem: -\begin{equation} -\label{binomial}\index{Binomial theorem}\index{Summation formula!Binomial theorem} -\hyp{1}{0}{a}{-}{z}=\sum_{n=0}^{\infty}\frac{(a)_n}{n!}z^n=(1-z)^{-a}, -% \constraint{ $\quad |z|<1$ } -\end{equation} -which is a generalization of Newton's binomium -\begin{equation} -\label{Newton} -\hyp{1}{0}{-n}{-}{z}=\sum_{k=0}^n\frac{(-n)_k}{k!}z^k -=\sum_{k=0}^n\binom{n}{k}(-z)^k=(1-z)^n,\quad n=0,1,2,\ldots. -\end{equation} - -We also have Gauss's summation formula -\begin{equation} -\label{Gauss}\index{Gauss summation formula}\index{Summation formula!Gauss} -\hyp{2}{1}{a,b}{c}{1}= -\frac{\Gamma(c)\Gamma(c-a-b)}{\Gamma(c-a)\Gamma(c-b)} -% \constraint{ $\textrm{Re}(c-a-b)>0$ } -\end{equation} -and the Vandermonde or Chu-Vandermonde summation formula -\begin{equation} -\label{ChuVandermonde} -\index{Vandermonde summation formula}\index{Summation formula!Vandermonde} -\index{Chu-Vandermonde summation formula}\index{Summation formula!Chu-Vandermonde} -\hyp{2}{1}{-n,b}{c}{1}=\frac{(c-b)_n}{(c)_n},\quad n=0,1,2,\ldots. -\end{equation} - -On the next level we have the summation formula -\begin{equation} -\label{PfaffSaalschutz} -\index{Saalsch\"{u}tz summation formula}\index{Summation formula!Saalsch\"{u}tz} -\index{Pfaff-Saalsch\"{u}tz summation formula}\index{Summation formula!Pfaff-Saalsch\"{u}tz} -\hyp{3}{2}{-n,a,b}{c,1+a+b-c-n}{1}=\frac{(c-a)_n(c-b)_n}{(c)_n(c-a-b)_n}, -\quad n=0,1,2,\ldots, -\end{equation} -which is called the Saalsch\"{u}tz or Pfaff-Saalsch\"{u}tz summation formula. - -For a very-well-poised ${}_5F_4$ we have the summation formula -\begin{eqnarray} -\label{wellpoised}\index{Summation formula!for a very-well-poised ${}_5F_4$} -& &\hyp{5}{4}{1+a/2,a,b,c,d}{a/2,1+a-b,1+a-c,1+a-d}{1}\nonumber\\ -& &{}=\frac{\Gamma(1+a-b)\Gamma(1+a-c)\Gamma(1+a-d)\Gamma(1+a-b-c-d)} -{\Gamma(1+a)\Gamma(1+a-b-c)\Gamma(1+a-b-d)\Gamma(1+a-c-d)}. -\end{eqnarray} -The limit case $d\rightarrow -\infty$ leads to -\begin{equation} -\label{wellpoisedlimit} -\hyp{4}{3}{1+a/2,a,b,c}{a/2,1+a-b,1+a-c}{-1} -=\frac{\Gamma(1+a-b)\Gamma(1+a-c)}{\Gamma(1+a)\Gamma(1+a-b-c)}. -\end{equation} - -Finally, we mention Dougall's bilateral sum -\begin{equation} -\label{Dougall1}\index{Dougall's bilateral sum}\index{Summation formula!Dougall} -\sum_{n=-\infty}^{\infty}\frac{\Gamma(n+a)\Gamma(n+b)}{\Gamma(n+c)\Gamma(n+d)} -=\frac{\Gamma(a)\Gamma(1-a)\Gamma(b)\Gamma(1-b)\Gamma(c+d-a-b-1)} -{\Gamma(c-a)\Gamma(d-a)\Gamma(c-b)\Gamma(d-b)}, -\end{equation} -which holds for $\textrm{Re}(a+b)+1<\textrm{Re}(c+d)$.\\ -By using -$$\Gamma(n+a)\Gamma(n+b)=\frac{\Gamma(a)\Gamma(1-a)\Gamma(b)\Gamma(1-b)} -{\Gamma(1-a-n)\Gamma(1-b-n)},\quad n\in\mathbb{Z},$$ -Dougall's bilateral sum can also be written in the form -\begin{eqnarray} -\label{Dougall2} -& &\sum_{n=-\infty}^{\infty}\frac{1}{\Gamma(n+c)\Gamma(n+d)\Gamma(1-a-n)\Gamma(1-b-n)}\nonumber\\ -& &{}=\frac{\Gamma(c+d-a-b-1)}{\Gamma(c-a)\Gamma(d-a)\Gamma(c-b)\Gamma(d-b)} -\end{eqnarray} -for $\textrm{Re}(a+b)+1<\textrm{Re}(c+d)$. - -\section{Some integrals} -\par\setcounter{equation}{0} -\label{integals1} - -For the ${}_2F_1$ hypergeometric function we have Euler's integral representation -\begin{equation} -\label{Eulerint}\index{Euler's integral representation for a ${}_2F_1$} -\index{Hypergeometric function!Euler's integral representation} -\hyp{2}{1}{a,b}{c}{z}=\frac{\Gamma(c)}{\Gamma(b)\Gamma(c-b)} -\int_0^1t^{b-1}(1-t)^{c-b-1}(1-zt)^{-a}\,dt, -\end{equation} -where $\textrm{Re}\,c>\textrm{Re}\,b>0$, which holds for $z\in\mathbb{C}\setminus(1,\infty)$. -Here it is understood that $\arg t=\arg(1-t)=0$ and that $(1-zt)^{-a}$ has its -principal value. - -We also have Barnes' integral representation -\begin{equation} -\label{Barnes}\index{Barnes' integral representation} -\index{Hypergeometric function!Barnes' integral representation} -\frac{\Gamma(a)\Gamma(b)}{\Gamma(c)}\,\hyp{2}{1}{a,b}{c}{z}=\frac{1}{2\pi i} -\int_{-i\infty}^{i\infty}\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(-s)}{\Gamma(c+s)}(-z)^s\,ds -\end{equation} -for $|z|<1$ with $\arg(-z)<\pi$, where the path of integration is deformed -if necessary, to separate the decreasing poles $s=-a-n$ and $s=-b-n$ from the -increasing poles $s=n$ for $n\in\{0,1,2,\ldots\}$. Such a path always exists if -$a,b\notin\{\ldots,-3,-2,-1\}$. - -Secondly, we have the Mellin-Barnes integral or Barnes' first lemma -\begin{eqnarray} -\label{Mellin-Barnes1}\index{Mellin-Barnes integral}\index{Barnes' first lemma} -& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty}\Gamma(a+s)\Gamma(b+s)\Gamma(c-s)\Gamma(d-s)\,ds\nonumber\\ -& &{}=\frac{\Gamma(a+c)\Gamma(a+d)\Gamma(b+c)\Gamma(b+d)}{\Gamma(a+b+c+d)} -\end{eqnarray} -for $\textrm{Re}(a+b+c+d)<1$, where the contour must also be taken in a such a -way that the increasing poles and the decreasing poles remain separate. By using -analytic continuation, one can avoid the condition $\textrm{Re}(a+b+c+d)<1$. The -Barnes integral (\ref{Mellin-Barnes1}) can be seen as a continuous analogue of -Gauss' summation formula (\ref{Gauss}). - -We also have a continuous analogue of the Pfaff-Saalsch\"utz summation -formula (\ref{PfaffSaalschutz}) given by the integral, which is also -called Barnes' second lemma\index{Barnes' second lemma}, -\begin{eqnarray} -\label{Mellin-Barnes2} -& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} -\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(1-d-s)\Gamma(-s)}{\Gamma(e+s)}\,ds\nonumber\\ -& &{}=\frac{\Gamma(a)\Gamma(b)\Gamma(c)\Gamma(1+a-d)\Gamma(1+b-d)\Gamma(1+c-d)} -{\Gamma(e-a)\Gamma(e-b)\Gamma(e-c)} -\end{eqnarray} -with $d+e=a+b+c+1$, where the contour must be taken in a such a way that -the increasing poles and the decreasing poles stay separated. - -A continuous analogue of the summation formula (\ref{wellpoised}) for a very-well-poised -${}_5F_4$ is given by Bailey's integral (see also \cite{Bailey35}) -\begin{eqnarray} -\label{Bailey1}\index{Bailey's integral} -& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} -\frac{\Gamma(1+a/2+s)\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(d+s)\Gamma(b-a-s)\Gamma(-s)} -{\Gamma(a/2+s)\Gamma(1+a-c+s)\Gamma(1+a-d+s)}\,ds\nonumber\\ -& &{}=\frac{\Gamma(b)\Gamma(c)\Gamma(d)\Gamma(b+c-a)\Gamma(b+d-a)} -{2\,\Gamma(1+a-c-d)\Gamma(b+c+d-a)} -\end{eqnarray} -which can also be written in a more symmetric form -\begin{eqnarray} -\label{Bailey2} -& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} -\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(d+s)}{\Gamma(a+2s)}\nonumber\\ -& &{}\mathindent\times\frac{\Gamma(-s)\Gamma(b-a-s)\Gamma(c-a-s)\Gamma(d-a-s)}{\Gamma(-a-2s)}\,ds\nonumber\\ -& &{}=\frac{2\,\Gamma(b)\Gamma(c)\Gamma(d)\Gamma(b+c-a)\Gamma(b+d-a)\Gamma(c+d-a)}{\Gamma(b+c+d-a)} -\end{eqnarray} -and also in the following form due to Wilson (see also \cite{Wilson80}) -\begin{eqnarray} -\label{Bailey3} -& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} -\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(d+s)\Gamma(a-s)\Gamma(b-s)\Gamma(c-s)\Gamma(d-s)} -{\Gamma(2s)\Gamma(-2s)}\,ds\nonumber\\ -& &{}=\frac{2\,\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b+c)\Gamma(b+d)\Gamma(c+d)}{\Gamma(a+b+c+d)}, -\end{eqnarray} -where the contours must be taken in a such a way that the increasing poles and the -decreasing poles remain separate. - -We also mention the integral -\begin{equation} -\label{Slater} -\frac{1}{2\pi i}\int_{-i\infty}^{i\infty}\Gamma(a+s)\Gamma(b-s)z^{-s}\,ds -=\Gamma(a+b)\frac{z^a}{(1+z)^{a+b}}. -\end{equation} -Again the contour must be taken in such a way that the increasing poles of $\Gamma(b-s)$ and -the decreasing poles of $\Gamma(a+s)$ remain separate. - -The integrals (\ref{Mellin-Barnes1}) through (\ref{Bailey3}) are all special cases of a more -general formula (id est formula (4.5.1.2) in \cite{Slater}), which has more interesting and -useful special cases such as -\begin{equation} -\label{Slater1} -\frac{1}{2\pi i}\int_{-i\infty}^{i\infty}\frac{\Gamma(a+s)\Gamma(b-s)}{\Gamma(c+s)\Gamma(d-s)}\,ds -=\frac{\Gamma(a+b)\Gamma(c+d-a-b-1)}{\Gamma(c+d-1)\Gamma(c-a)\Gamma(d-b)}, -\end{equation} -where the contour must be taken in a such a way that the increasing poles and the decreasing poles -remain separate and -\begin{eqnarray} -\label{Slater2} -& &\frac{1}{2\pi i}\int_{-i\infty}^{i\infty} -\frac{\Gamma(a+s)\Gamma(b+s)\Gamma(c+s)\Gamma(-s)\Gamma(b-a-s)\Gamma(c-a-s)} -{\Gamma(a+2s)\Gamma(-a-2s)}\,ds\nonumber\\ -& &{}=\frac{1}{2}\Gamma(b)\Gamma(c)\Gamma(b+c-a), -\end{eqnarray} -where the contour must be taken in a such a way that the increasing poles and the decreasing poles -remain separate. - -If $a,b,c,d$ are positive or $b=\overline{a}$ and/or $d=\overline{c}$ and the real parts are -positive, Wilson's integral (\ref{Bailey3}) can be written in the form -\begin{eqnarray} -\label{Wilson1}\index{Wilson's integral} -& &\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\,dx\nonumber\\ -& &{}=\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b+c)\Gamma(b+d)\Gamma(c+d)}{\Gamma(a+b+c+d)}. -\end{eqnarray} -The limit case $d\rightarrow\infty$ leads to -\begin{equation} -\label{Wilson2} -\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)}{\Gamma(2ix)}\right|^2\,dx -=\Gamma(a+b)\Gamma(a+c)\Gamma(b+c). -\end{equation} - -\section{Transformation formulas for generalized hypergeometric functions} -\par\setcounter{equation}{0} -\label{transformation formulas} - -In this section we list a number of transformation formulas which can be used to -transform hypergeometric representations and other formulas into equivalent -but different forms. - -First of all we have Euler's transformation formula: -\begin{equation} -\label{Eulertrans}\index{Euler's transformation formula} -\index{Transformation formula!Euler} -\hyp{2}{1}{a,b}{c}{z}=(1-z)^{c-a-b}\,\hyp{2}{1}{c-a,c-b}{c}{z}. -\end{equation} - -Another transformation formula for the ${}_2F_1$ series, which is also due to Euler, is -\begin{equation} -\label{PfaffKummer}\index{Pfaff-Kummer transformation formula} -\index{Transformation formula!Pfaff-Kummer} -\hyp{2}{1}{a,b}{c}{z}=(1-z)^{-a}\,\hyp{2}{1}{a,c-b}{c}{\frac{z}{z-1}}. -\end{equation} -This transformation formula is also known as the Pfaff or Pfaff-Kummer transformation formula. - -As a limit case of the Pfaff-Kummer transformation formula we have Kummer's transformation -formula for the confluent hypergeometric series: -\begin{equation} -\label{Kummer}\index{Kummer's transformation formula}\index{Transformation formula!Kummer} -\hyp{1}{1}{a}{c}{z}=\e^z\,\hyp{1}{1}{c-a}{c}{-z}. -\end{equation} - -If we reverse the order of summation in a terminating ${}_1F_1$ series, we -obtain a ${}_2F_0$ series; in fact we have -\begin{equation} -\label{reverse1} -\hyp{1}{1}{-n}{a}{x}=\frac{(-x)^n}{(a)_n}\,\hyp{2}{0}{-n,-a-n+1}{-}{-\frac{1}{x}}, -\quad n=0,1,2,\ldots. -\end{equation} -If we apply this technique to a terminating ${}_2F_1$ series, we find -\begin{equation} -\label{reverse2} -\hyp{2}{1}{-n,b}{c}{x}=\frac{(b)_n}{(c)_n}(-x)^n\,\hyp{2}{1}{-n,-c-n+1}{-b-n+1}{\frac{1}{x}}, -\quad n=0,1,2,\ldots. -\end{equation} - -On the next level we have Whipple's transformation formula for a terminating balanced -${}_4F_3$ series: -\begin{eqnarray} -\label{Whipple}\index{Whipple's transformation formula}\index{Transformation formula!Whipple} -& &\hyp{4}{3}{-n,a,b,c}{d,e,f}{1}\nonumber\\ -& &{}=\frac{(e-a)_n(f-a)_n}{(e)_n(f)_n}\hyp{4}{3}{-n,a,d-b,d-c}{d,a-e-n+1,a-f-n+1}{1} -\end{eqnarray} -provided that $a+b+c+1=d+e+f+n$. - -\section{The $q$-shifted factorial} -\par\setcounter{equation}{0} -\label{qshifted factorial} - -The theory of $q$-analogues or $q$-extensions of classical formulas and -functions is based on the observation that -$$\lim\limits_{q\rightarrow 1}\frac{1-q^{\alpha}}{1-q}=\alpha.$$ -Therefore the number $(1-q^{\alpha})/(1-q)$ is sometimes called the -\emph{basic number} $[\alpha]$. For $q\neq 0$ and $q\neq 1$ we define -\begin{equation} -\label{basic} -[\alpha]:=\frac{1-q^{\alpha}}{1-q}, -\end{equation} -which implies that -\begin{equation} -\label{basicdef} -[0]=0,\quad [n]=\frac{1-q^n}{1-q}=\sum_{k=0}^{n-1}q^k,\quad n=1,2,3,\ldots. -\end{equation} - -Now we can give a $q$-analogue of the Pochhammer symbol $(a)_k$ defined by -(\ref{Pochhammer}): -\begin{equation} -\label{qsh}\index{q-Shifted factorial@$q$-Shifted factorial} -(a;q)_0:=1\quad\textrm{and}\quad (a;q)_k:=\prod_{n=1}^k(1-aq^{n-1}) -% \constraint{ $k=1,2,3,\ldots$ } -\end{equation} -It is clear that -\begin{equation} -\label{limitqsh} -\lim\limits_{q\rightarrow 1}\frac{(q^{\alpha};q)_k}{(1-q)^k}=(\alpha)_k. -\end{equation} -The symbols $(a;q)_k$ are called $q$-shifted factorials. For negative subscripts we define -\begin{equation} -\label{qsh1} -(a;q)_{-k}:=\frac{1}{\displaystyle\prod_{n=1}^{k}(1-aq^{-n})},\quad a\neq q,q^2,q^3,\ldots,q^k, -\quad k=1,2,3,\ldots. -\end{equation} -Now we have -\begin{equation} -\label{qsh2} -(a;q)_{-n}=\frac{1}{(aq^{-n};q)_n}=\frac{(-qa^{-1})^n}{(qa^{-1};q)_n} -q^{\binom{n}{2}},\quad n=0,1,2,\ldots. -\end{equation} - -If we replace $q$ by $q^{-1}$, we obtain -\begin{equation} -\label{qsh3} -(a;q^{-1})_n=(a^{-1};q)_n(-a)^nq^{-\binom{n}{2}},\quad a\neq 0. -\end{equation} - -We can also define -$$(a;q)_{\infty}=\prod_{k=0}^{\infty}(1-aq^k),\quad 0<|q|<1.$$ -This implies that -\begin{equation} -\label{qsh4} -(a;q)_n=\frac{(a;q)_{\infty}}{(aq^n;q)_{\infty}},\quad 0<|q|<1, -\end{equation} -and, for any complex number $\lambda$, -\begin{equation} -\label{qsh5} -(a;q)_{\lambda}=\frac{(a;q)_{\infty}}{(aq^{\lambda};q)_{\infty}},\quad 0<|q|<1, -\end{equation} -where the principal value of $q^{\lambda}$ is taken. - -Finally, we list a number of transformation formulas for the $q$-shifted -factorials, where $k$ and $n$ are nonnegative integers: -\begin{equation} -\label{qsh6} -(a;q)_{n+k}=(a;q)_n(aq^n;q)_k, -\end{equation} -\begin{equation} -\label{qsh7} -\frac{(aq^n;q)_k}{(aq^k;q)_n}=\frac{(a;q)_k}{(a;q)_n}, -\end{equation} -\begin{equation} -\label{qsh8} -(aq^k;q)_{n-k}=\frac{(a;q)_n}{(a;q)_k},\quad k=0,1,2,\ldots,n, -\end{equation} -\begin{equation} -\label{qsh9} -(a;q)_n=(a^{-1}q^{1-n};q)_n(-a)^nq^{\binom{n}{2}},\quad a\neq 0, -\end{equation} -\begin{equation} -\label{qsh10} -(aq^{-n};q)_n=(a^{-1}q;q)_n(-a)^nq^{-n-\binom{n}{2}},\quad a\neq 0, -\end{equation} -\begin{equation} -\label{qsh11} -\frac{(aq^{-n};q)_n}{(bq^{-n};q)_n}=\frac{(a^{-1}q;q)_n}{(b^{-1}q;q)_n} -\left(\frac{a}{b}\right)^n -% \constraint{ -% $a\neq 0$ & -% $b\neq 0$ } -\end{equation} -\begin{equation} -\label{qsh12} -(a;q)_{n-k}=\frac{(a;q)_n}{(a^{-1}q^{1-n};q)_k}\left(-\frac{q}{a}\right)^k -q^{\binom{k}{2}-nk},\quad a\neq 0,\quad k=0,1,2,\ldots,n, -\end{equation} -\begin{eqnarray} -\label{qsh13} -& &\frac{(a;q)_{n-k}}{(b;q)_{n-k}}=\frac{(a;q)_n}{(b;q)_n} -\frac{(b^{-1}q^{1-n};q)_k}{(a^{-1}q^{1-n};q)_k}\left(\frac{b}{a}\right)^k,\nonumber\\ -& &{}\mathindent\mathindent\mathindent a\neq 0,\quad b\neq 0,\quad k=0,1,2,\ldots,n, -\end{eqnarray} -\begin{equation} -\label{qsh14} -(q^{-n};q)_k=\frac{(q;q)_n}{(q;q)_{n-k}}(-1)^kq^{\binom{k}{2}-nk}, -\quad k=0,1,2,\ldots,n, -\end{equation} -\begin{equation} -\label{qsh15} -(aq^{-n};q)_k=\frac{(a^{-1}q;q)_n}{(a^{-1}q^{1-k};q)_n}(a;q)_kq^{-nk}, -\quad a\neq 0, -\end{equation} -\begin{eqnarray} -\label{qsh16} -& &(aq^{-n};q)_{n-k}=\frac{(a^{-1}q;q)_n}{(a^{-1}q;q)_k} -\left(-\frac{a}{q}\right)^{n-k}q^{\binom{k}{2}-\binom{n}{2}},\nonumber\\ -& &{}\mathindent\mathindent\mathindent a\neq 0,\quad k=0,1,2,\ldots,n, -\end{eqnarray} -\begin{equation} -\label{qsh17} -(a;q)_{2n}=(a;q^2)_n(aq;q^2)_n, -\end{equation} -\begin{equation} -\label{qsh18} -(a^2;q^2)_n=(a;q)_n(-a;q)_n, -\end{equation} -\begin{equation} -\label{qsh19} -(a;q)_{\infty}=(a;q^2)_{\infty}(aq;q^2)_{\infty},\quad 0<|q|<1, -\end{equation} -\begin{equation} -\label{qsh20} -(a^2;q^2)_{\infty}=(a;q)_{\infty}(-a;q)_{\infty},\quad 0<|q|<1. -\end{equation} - -We remark that by using (\ref{qsh18}) we have -\begin{equation} -\label{qsh21} -\frac{1-a^2q^{2n}}{1-a^2}=\frac{(a^2q^2;q^2)_n}{(a^2;q^2)_n} -=\frac{(aq;q)_n(-aq;q)_n}{(a;q)_n(-a;q)_n}. -\end{equation} - -\section{The $q$-gamma function and $q$-binomial coefficients} -\par\setcounter{equation}{0} -\label{qgamma function} - -The $q$-gamma function is defined by -\begin{equation} -\label{DefqGamma}\index{q-Gamma function@$q$-Gamma function} -\Gamma_q(x):=\frac{(q;q)_{\infty}}{(q^x;q)_{\infty}}(1-q)^{1-x},\quad 01$ the $q$-gamma function can be defined by -\begin{equation} -\label{DefqGamma2} -\Gamma_q(x)=\frac{(q^{-1};q^{-1})_{\infty}}{(q^{-x};q^{-1})_{\infty}} -q^{\binom{x}{2}}(q-1)^{1-x},\quad q>1. -\end{equation} - -The $q$-binomial coefficient is defined by -\begin{equation} -\label{DefqBinomial1}\index{q-Binomial coefficient@$q$-Binomial coefficient} -\genfrac{[}{]}{0pt}{}{n}{k}_q:=\frac{(q;q)_n}{(q;q)_k(q;q)_{n-k}}=\genfrac{[}{]}{0pt}{}{n}{n-k}_q, -\quad k=0,1,2,\ldots,n, -\end{equation} -where $n$ denotes a nonnegative integer. - -This definition can be generalized in the following way. For arbitrary -complex $\alpha$ we have -\begin{equation} -\label{DefqBinomial2} -\genfrac{[}{]}{0pt}{}{\alpha}{k}_q:=\frac{(q^{-\alpha};q)_k}{(q;q)_k} -(-1)^kq^{k\alpha-\binom{k}{2}}. -\end{equation} -Or more general, for all complex $\alpha$ and $\beta$ and $0<|q|<1$ we have -\begin{equation} -\label{DefqBinomial3} -\genfrac{[}{]}{0pt}{}{\alpha}{\beta}_q:=\frac{\Gamma_q(\alpha+1)}{\Gamma_q(\beta+1)\Gamma_q(\alpha-\beta+1)} -=\frac{(q^{\beta+1};q)_{\infty}(q^{\alpha-\beta+1};q)_{\infty}} -{(q;q)_{\infty}(q^{\alpha+1};q)_{\infty}}. -\end{equation} - -For instance this implies that -$$\frac{(q^{\alpha+1};q)_n}{(q;q)_n}=\genfrac{[}{]}{0pt}{}{n+\alpha}{n}_q.$$ - -Note that -$$\lim\limits_{q\rightarrow 1}\genfrac{[}{]}{0pt}{}{\alpha}{\beta}_q -=\frac{\Gamma(\alpha+1)}{\Gamma(\beta+1)\Gamma(\alpha-\beta+1)}=\binom{\alpha}{\beta}.$$ - -Finally, we remark that -\begin{equation} -\label{qqn} -\frac{1}{(q;q)_n}=\sum_{k=0}^n\frac{q^k}{(q;q)_k},\quad n=0,1,2,\ldots, -\end{equation} -which can easily be shown by induction, and that -\begin{equation} -\label{aqn} -(a;q)_n=\sum_{k=0}^n\genfrac{[}{]}{0pt}{}{n}{k}_qq^{\binom{k}{2}}(-a)^k,\quad n=0,1,2,\ldots, -\end{equation} -which is a special case of (\ref{qbinomialn}). - -\section{Basic hypergeometric functions} -\par\setcounter{equation}{0}\label{hypergeometric} -\label{qhypergeometric functions} - -The basic hypergeometric or $q$-hypergeometric function $\mbox{}_r\phi_s$ is defined by the series -\begin{eqnarray} -\label{DefBasHyp}\index{Basic hypergeometric function} -& &\qhyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{z}\nonumber\\ -& &{}:=\sum\limits_{k=0}^{\infty}\frac{(a_1,\ldots,a_r;q)_k}{(b_1,\ldots,b_s;q)_k} -(-1)^{(1+s-r)k}q^{(1+s-r)\binom{k}{2}}\frac{z^k}{(q;q)_k}, -\end{eqnarray} -where -$$(a_1,\ldots,a_r;q)_k:=(a_1;q)_k\cdots(a_r;q)_k.$$ -Again we assume that the parameters are such that the denominator factors -in the terms of the series are never zero. If one of the numerator -parameters $a_j$ equals $q^{-n}$, where $n$ is a nonnegative integer, this -basic hypergeometric function is a polynomial in $z$. Otherwise the radius of -convergence $\rho$ of the basic hypergeometric series is given by -$$\rho=\left\{\begin{array}{ll} -\displaystyle \infty & \quad\textrm{if}\quad r < s+1\\[5mm] -\displaystyle 1 & \quad\textrm{if}\quad r = s+1\\[5mm] -\displaystyle 0 & \quad\textrm{if}\quad r > s+1.\end{array}\right.$$ - -The special case $r=s+1$ reads -$$\qhyp{s+1}{s}{a_1,\ldots,a_{s+1}}{b_1,\ldots,b_s}{z}= -\sum\limits_{k=0}^{\infty}\frac{(a_1,\ldots,a_{s+1};q)_k}{(b_1,\ldots,b_s;q)_k} -\frac{z^k}{(q;q)_k}.$$ -This basic hypergeometric series was first introduced by Heine in 1846; therefore it is -sometimes called Heine's\index{Heine's series} series. A basic hypergeometric series of -this form is called balanced\index{Basic hypergeometric function!Balanced} -or Saalsch\"{u}tzian\index{Basic hypergeometric function!Saalsch\"{u}tzian} if $z=q$ and -$a_1a_2 \cdots a_{s+1}q=b_1b_2 \cdots b_s$. - -The $q$-hypergeometric function is a $q$-analogue of the hypergeometric function -defined by (\ref{DefHyp}) since -$$\lim\limits_{q\rightarrow 1} -\qhyp{r}{s}{q^{a_1},\ldots,q^{a_r}}{q^{b_1},\ldots,q^{b_s}}{(q-1)^{1+s-r}z} -=\hyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{z}.$$ -This limit will be used frequently in chapter~\ref{BasicHyperOrtPol}. In all -cases the hypergeometric series involved is in fact a polynomial so that -convergence is guaranteed. - -In the sequel of this paragraph we also assume that each (basic) hypergeometric -function is in fact a polynomial. We remark that -$$\lim\limits_{a_r\rightarrow\infty} -\qhyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_s}{\frac{z}{a_r}}= -\qhyp{r-1}{s}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_s}{z}.$$ -In fact this is the reason for the factors -$(-1)^{(1+s-r)k}q^{(1+s-r)\binom{k}{2}}$ in the definition (\ref{DefBasHyp}) -of the basic hypergeometric function. - -Many limit relations between basic hypergeometric orthogonal polynomials -are based on the observations that -\begin{equation} -\label{qhypsub} -\qhyp{r}{s}{a_1,\ldots,a_{r-1},\mu}{b_1,\ldots,b_{s-1},\mu}{z}= -\qhyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{z}, -\end{equation} -\begin{equation} -\label{qhyplim1} -\lim\limits_{\lambda\rightarrow\infty} -\qhyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_s}{\frac{z}{\lambda}} -=\qhyp{r-1}{s}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_s}{a_rz}, -\end{equation} -\begin{equation} -\label{qhyplim2} -\lim\limits_{\lambda\rightarrow\infty} -\qhyp{r}{s}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{\lambda z}= -\qhyp{r}{s-1}{a_1,\ldots,a_r}{b_1,\ldots,b_{s-1}}{\frac{z}{b_s}}, -\end{equation} -and -\begin{equation} -\label{qhyplim3} -\lim\limits_{\lambda\rightarrow\infty} -\qhyp{r}{s}{a_1,\ldots,a_{r-1},\lambda a_r}{b_1,\ldots,b_{s-1},\lambda b_s}{z} -=\qhyp{r-1}{s-1}{a_1,\ldots,a_{r-1}}{b_1,\ldots,b_{s-1}}{\frac{a_rz}{b_s}}. -\end{equation} - -Mostly, the left-hand side of (\ref{qhypsub}) occurs as a limit case when some numerator -parameter and some denominator parameter tend to the same value. - -All families of discrete orthogonal polynomials $\{P_n(x)\}_{n=0}^N$ are -defined for $n=0,1,2,\ldots,N$, where $N$ is a positive integer. In these -cases something like (\ref{qhypsub}) occurs in the basic hypergeometric representation -when $n=N$. In these cases we have to be aware of the fact that we still have a polynomial -(in that case of degree $N$). For instance, if we take $n=N$ in the basic hypergeometric -representation (\ref{DefqHahn}) of the $q$-Hahn polynomials, we have -$$Q_N(q^{-x};\alpha,\beta,N|q)=\sum_{k=0}^N -\frac{(\alpha\beta q^{N+1};q)_k(q^{-x};q)_k}{(\alpha q;q)_k(q;q)_k}q^k.$$ -So these cases must be understood by continuity. - -\section{The $q$-binomial theorem and other summation formulas} -\par\setcounter{equation}{0} -\label{qsummation formulas} - -A $q$-analogue of the binomial theorem (\ref{binomial}) is called the $q$-binomial theorem: -\begin{equation} -\label{qbinomial}\index{q-Binomial theorem@$q$-Binomial theorem} -\index{Summation formula!q-Binomial theorem@$q$-Binomial theorem} -\qhyp{1}{0}{a}{-}{z}=\sum_{n=0}^{\infty}\frac{(a;q)_n}{(q;q)_n}z^n= -\frac{(az;q)_{\infty}}{(z;q)_{\infty}},\quad 0<|q|<1,\quad |z|<1. -\end{equation} -For $a=q^{-n}$ with $n$ a nonnegative integer we find -\begin{equation} -\label{qbinomialn} -\qhyp{1}{0}{q^{-n}}{-}{z}=(zq^{-n};q)_n,\quad n=0,1,2,\ldots. -\end{equation} -In fact this is a $q$-analogue of Newton's binomium (\ref{Newton}). -Note that the case $a=0$ of (\ref{qbinomial}) is the limit case ($n\rightarrow\infty$) of (\ref{qqn}). - -Gauss's summation formula (\ref{Gauss}) and the Vandermonde or Chu-Vandermonde -summation formula (\ref{ChuVandermonde}) have the following $q$-analogues: -\begin{equation} -\label{qChuVandermonde1}\index{q-Gauss summation formula@$q$-Gauss summation formula} -\index{Summation formula!q-Gauss@$q$-Gauss} -\qhyp{2}{1}{a,b}{c}{\frac{c}{ab}}=\frac{(a^{-1}c,b^{-1}c;q)_{\infty}} -{(c,a^{-1}b^{-1}c;q)_{\infty}},\quad 0<|q|<1,\quad\left|\frac{c}{ab}\right|<1, -\end{equation} -\begin{equation} -\label{qChuVandermonde2}\index{q-Vandermonde summation formula@$q$-Vandermonde summation formula} -\index{Summation formula!q-Vandermonde@$q$-Vandermonde} -\index{q-Chu-Vandermonde summation formula@$q$-Chu-Vandermonde summation formula} -\index{Summation formula!q-Chu-Vandermonde@$q$-Chu-Vandermonde} -\qhyp{2}{1}{q^{-n},b}{c}{\frac{cq^n}{b}}=\frac{(b^{-1}c;q)_n}{(c;q)_n},\quad n=0,1,2,\ldots -\end{equation} -and -\begin{equation} -\label{qChuVandermonde3} -\qhyp{2}{1}{q^{-n},b}{c}{q}=\frac{(b^{-1}c;q)_n}{(c;q)_n}b^n,\quad n=0,1,2,\ldots. -\end{equation} -By taking the limit $b\rightarrow\infty$ in (\ref{qChuVandermonde1}) we also obtain a summation -formula for the ${}_1\phi_1$ series: -\begin{equation} -\label{sum1phi1}\index{Summation formula!for a ${}_1\phi_1$} -\qhyp{1}{1}{a}{c}{\frac{c}{a}}=\frac{(a^{-1}c;q)_{\infty}}{(c;q)_{\infty}},\quad 0<|q|<1. -\end{equation} -By taking the limit $c\rightarrow\infty$ in (\ref{qChuVandermonde2}) we obtain a summation -formula for a terminating ${}_2\phi_0$ series: -\begin{equation} -\label{sum2phi0}\index{Summation formula!for a terminating ${}_2\phi_0$} -\qhyp{2}{0}{q^{-n},b}{-}{\frac{q^n}{b}}=\frac{1}{b^n},\quad n=0,1,2,\ldots. -\end{equation} -By taking the limit $a\rightarrow\infty$ in (\ref{sum1phi1}) we obtain -\begin{equation} -\label{sum0phi1}\index{Summation formula!for a ${}_0\phi_1$} -\qhyp{0}{1}{-}{c}{c}=\frac{1}{(c;q)_{\infty}},\quad 0<|q|<1. -\end{equation} - -On the ${}_3\phi_2$ level we have the summation formula -\begin{equation} -\label{qPfaffSaalschutz} -\index{q-Saalschutz summation formula@$q$-Saalsch\"{u}tz summation formula} -\index{Summation formula!q-Saalschutz@$q$-Saalsch\"{u}tz} -\index{q-Pfaff-Saalschutz summation formula@$q$-Pfaff-Saalsch\"{u}tz summation formula} -\index{Summation formula!q-Pfaff-Saalschutz@$q$-Pfaff-Saalsch\"{u}tz} -\qhyp{3}{2}{q^{-n},a,b}{c,abc^{-1}q^{1-n}}{q}=\frac{(a^{-1}c,b^{-1}c;q)_n} -{(c,a^{-1}b^{-1}c;q)_n},\quad n=0,1,2,\ldots, -\end{equation} -which is a $q$-analogue of the Saalsch\"utz or Pfaff-Saalsch\"utz summation formula -(\ref{PfaffSaalschutz}). - -On the ${}_6\phi_5$ level we have the Jackson summation formula -\begin{eqnarray} -\label{qJackson1}\index{Jackson's summation formula}\index{Summation formula!Jackson} -\index{Summation formula!for a very-well-poised ${}_6\phi_5$} -& &\qhyp{6}{5}{q\sqrt{a},-q\sqrt{a},a,b,c,d}{\sqrt{a},-\sqrt{a},ab^{-1}q,ac^{-1}q,ad^{-1}q}{\frac{aq}{bcd}}\nonumber\\ -& &{}=\frac{(aq,ab^{-1}c^{-1}q,ab^{-1}d^{-1}q,ac^{-1}d^{-1}q;q)_{\infty}} -{(ab^{-1}q,ac^{-1}q,ad^{-1}q,ab^{-1}c^{-1}d^{-1}q;q)_{\infty}},\quad\left|\frac{aq}{bcd}\right|<1 -\end{eqnarray} -for a non-terminating very-well-poised ${}_6\phi_5$. We also have the summation formula -\begin{eqnarray} -\label{qJackson2} -& &\qhyp{6}{5}{q\sqrt{a},-q\sqrt{a},a,b,c,q^{-n}}{\sqrt{a},-\sqrt{a},ab^{-1}q,ac^{-1}q,aq^{n+1}}{\frac{aq^{n+1}}{bc}}\nonumber\\ -& &{}=\frac{(aq,ab^{-1}c^{-1}q;q)_n}{(ab^{-1}q,ac^{-1}q;q)_n},\quad n=0,1,2,\ldots -\end{eqnarray} -for a terminating very-well-poised ${}_6\phi_5$, which is also due to Jackson. -By taking the limit $c\rightarrow 0$ we obtain -\begin{eqnarray} -\label{qJackson3} -& &\qhyp{6}{4}{q\sqrt{a},-q\sqrt{a},a,b,0,q^{-n}}{\sqrt{a},-\sqrt{a},ab^{-1}q,aq^{n+1}}{\frac{q^n}{b}}\nonumber\\ -& &{}=\frac{(aq;q)_n}{(ab^{-1}q;q)_n}b^{-n},\quad n=0,1,2,\ldots. -\end{eqnarray} -If we take the limit $b\rightarrow 0$ we obtain -\begin{eqnarray} -\label{qJackson4} -& &\qhyp{6}{3}{q\sqrt{a},-q\sqrt{a},a,0,0,q^{-n}}{\sqrt{a},-\sqrt{a},aq^{n+1}}{\frac{q^{n-1}}{a}}\nonumber\\ -& &{}=(-1)^na^{-n}q^{-\binom{n+1}{2}}(aq;q)_n,\quad n=0,1,2,\ldots. -\end{eqnarray} - -\section{More integrals} -\par\setcounter{equation}{0} -\label{integrals2} - -In this section we list some $q$-extensions of the beta integral. -For instance, we will need the following integral: -\begin{equation} -\label{int1} -\int_0^{\infty}x^{c-1}\frac{(-ax,-bq/x;q)_{\infty}}{(-x,-q/x;q)_{\infty}}\,dx -=\frac{\pi}{\sin(\pi c)}\,\frac{(ab,q^c,q^{1-c};q)_{\infty}}{(bq^c,aq^{-c},q;q)_{\infty}}, -\end{equation} -which holds for $00$ and $\left|aq^{-c}\right|<1$. -If we set $b=1$ in (\ref{int1}), we find that -\begin{equation} -\label{int2} -\int_0^{\infty}x^{c-1}\frac{(-ax;q)_{\infty}}{(-x;q)_{\infty}}\,dx -=\frac{\pi}{\sin(\pi c)}\,\frac{(a,q^{1-c};q)_{\infty}}{(aq^{-c},q;q)_{\infty}} -\end{equation} -for $00$ and $\left|aq^{-c}\right|<1$, -and by taking the limit $c\rightarrow 1$ in (\ref{int1}), we obtain -\begin{equation} -\label{int3} -\int_0^{\infty}\frac{(-ax,-bq/x;q)_{\infty}}{(-x,-q/x;q)_{\infty}}\,dx -=-\ln q\,\frac{(ab,q;q)_{\infty}}{(bq,a/q;q)_{\infty}} -\end{equation} -for $00$ and non-real parameters occur in conjugate pairs, then -\begin{eqnarray} -\label{OrthIWilson} -& &\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, -\end{eqnarray} -where -\begin{eqnarray*} -& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ -& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). -\end{eqnarray*} -If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates -occur with positive real parts, then -\begin{eqnarray} -\label{OrtIIWilson} -& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ -& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} -{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} -\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ -& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecWilson} --\left(a^2+x^2\right){\tilde{W}}_n(x^2) -=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), -\end{equation} -where -$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecWilson} -xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvWilson} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=W_n(x^2;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] -\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1WilsonI} -& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) --W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1WilsonII} -& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ -& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{eqnarray} - -\newpage - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2WilsonI} -& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) -(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) -W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2WilsonII} -& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ -& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodWilson} -& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ -& &{}=\left(\frac{\delta}{\delta x^2}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenWilson1} -\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson2} -\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson3} -\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. -\end{equation} - -\begin{eqnarray} -\label{GenWilson4} -& &(1-t)^{1-a-b-c-d}\nonumber\\ -& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} -{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} -The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the -Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: -\begin{equation} -\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson -polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, -$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following -way: -\begin{equation} -\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson -polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Remarks} -Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then -\begin{eqnarray} -\label{OrtContHahn} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) -p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} -{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecContHahn} -(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), -\end{equation} -where -$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecContHahn} -xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvContHahn} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] -\displaystyle D(x)=(a+ix)(b+ix). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1ContHahnI} -& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, -b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1ContHahnII} -\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) -p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2ContHahnI} -& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, -b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2ContHahnII} -& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ -& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ -& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodContHahn} -& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ -& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenContHahn1} -\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenContHahn2} -\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenContHahn3} -& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} -{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials are obtained from the Wilson polynomials given by -(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, -$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit -$t\rightarrow\infty$ in the following way: -$$\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the -continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ -and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. -\end{equation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials -by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous -Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray} - -\subsection*{Remark} -Since we have for $k-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have -\begin{eqnarray} -\label{OrtHahn} -& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHahn} --xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), -\end{equation} -where -$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] -\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHahn} -xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvHahn} -n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] -\displaystyle D(x)=x(x-\beta-N-1). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1HahnI} -& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1HahnII} -\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2HahnI} -& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ -& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2HahnII} -& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ -& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), -\end{eqnarray} -where -$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodHahn} -& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenHahn1} -\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenHahn2} -& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenHahn3} -& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} -{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Hahn} -If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we obtain the Hahn polynomials. Hence -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ -And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we also obtain the Hahn polynomials: -$$\lim_{\gamma\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ -Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in -the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit -$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take -$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials -by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials -if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the -dual Hahn polynomials given by (\ref{DefDualHahn}). - -\noindent -Since -$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ -we obtain the dual orthogonality relation for the Hahn polynomials from the -orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} -Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ -& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. -\end{eqnarray*} - -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, -\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, -\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, -\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, -\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, -\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, -\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, -\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, -\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, -\cite{Zarzo+}. - - -\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefDualHahn} -R_n(\lambda(x);\gamma,\delta,N)= -\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\lambda(x)=x(x+\gamma+\delta+1).$$ - -\subsection*{Orthogonality relation} -For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have -\begin{eqnarray} -\label{OrtDualHahn} -& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDualHahn} -\lambda(x)R_n(\lambda(x)) -=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), -\end{equation} -where -$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] -\displaystyle C_n=n(n-\delta-N-1). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDualHahn} -xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvDualHahn} --ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] -\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualHahnI} -& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1DualHahnII} -\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= --\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualHahnI} -& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ -& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualHahnII} -& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ -& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), -\end{eqnarray} -where -$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} -{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ - -\newpage - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDualHahn} -\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) -=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], -\end{equation} -where -$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenDualHahn1} -(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn2} -& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ -& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{eqnarray} - -\begin{equation} -\label{GenDualHahn3} -\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N -\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn4} -& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, -\quad\textrm{$\epsilon$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Dual Hahn} -If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we obtain the dual Hahn polynomials: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we also obtain the dual Hahn polynomials: -$$\lim_{\alpha\rightarrow\infty} -R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition -(\ref{DefRacah}) of the Racah polynomials and take the limit -$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials -if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). -\end{equation} - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual -Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) -of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). - -\noindent -Since -$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ -we obtain the dual orthogonality relation for the dual Hahn polynomials -from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ -& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. -\end{eqnarray*} - -\subsection*{References} -\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, -\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, -\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. - - -\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMP} -P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, -\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMP} -\frac{1}{2\pi}\int_{-\infty}^{\infty} -\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 -P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx -{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, -% \constraint{ -% $\lambda > 0$ & -% $0 < \phi < \pi$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMP} -& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] -P_n^{(\lambda)}(x;\phi)\nonumber\\ -& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMP} -xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ -\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), -\end{equation} -where -$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvMP} -& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ -& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MPI} -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) -P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MPII} -\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} -=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2MPI} -& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ -\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ -& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2MPII} -\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= --(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) -P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), -\end{equation} -where -$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMP} -\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} -\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. -\end{equation} - -\newpage - -\subsection*{Generating functions} -\begin{equation} -\label{GenMP1} -(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= -\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. -\end{equation} - -\begin{equation} -\label{GenMP2} -\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= -\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenMP3} -& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials -given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, -$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the -definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit -$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: -$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ - -\newpage - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the -Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -\begin{equation} -\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek -polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -and then let $\lambda\rightarrow\infty$: -\begin{equation} -\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remark} -Since we have for $k-1$ and $\beta>-1$ we have -\begin{eqnarray} -\label{OrtJacobi1} -& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ -& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. -\end{eqnarray} -For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have -\begin{eqnarray} -\label{OrtJacobi2} -& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ -& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecJacobi} -xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} -{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) -\end{eqnarray} -where -$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{eqnarray} -\label{dvJacobi} -& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ -& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Jacobi} -\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2JacobiI} -& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ -\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2JacobiII} -& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ -& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodJacobi} -(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= -\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenJacobi1} -\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= -\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{eqnarray} -\label{GenJacobi2} -& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi3} -& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi4} -& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi5} -& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2} -\end{eqnarray} -with $\gamma$ arbitrary. - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by -substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -$$\lim_{t\rightarrow\infty} -\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} -{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) -by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ -in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take -$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have -$$\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi -polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials -if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: -\begin{equation} -\lim_{\alpha\rightarrow-\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials -by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: -$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} -(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ -In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ -and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the -following connection with the Meixner polynomials given by (\ref{DefMeixner}): -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by -(\ref{DefPseudoJacobi}) in the following way: -$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ - -\noindent -The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials -given by (\ref{DefGegenbauer}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, -\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, -\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, -\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, -\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, -\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, -\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, -\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, -\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, -\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, -\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, -\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, -\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, -\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, -\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, -\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, -\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, -\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, -\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, -\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, -\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, -\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, -\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, -\cite{Zayed}. - -\section*{Special cases} - -\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} -\index{Ultraspherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with -$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: -\begin{eqnarray} -\label{DefGegenbauer} -C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ -&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} -{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtGegenbauer} -& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ -& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, -\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecGegenbauer} -2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecGegenbauer} -xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), -\end{equation} -where -$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvGegenbauer} -(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Gegenbauer} -\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2GegenbauerI} -(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= --\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) -\end{equation} -or equivalently -\begin{eqnarray} -\label{shift2GegenbauerII} -& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ -& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodGegenbauer} -(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= -\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenGegenbauer1} -(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer2} -R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} -\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenGegenbauer3} -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} -=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer4} -\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenGegenbauer5} -& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenGegenbauer6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} -{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or -ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remarks} -The case $\lambda=0$ needs another normalization. In that case we have the -Chebyshev polynomials of the first kind described in the next subsection. - -\noindent -The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials -given by (\ref{DefJacobi}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, -\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, -\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, -\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, -\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, -\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, -\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, -\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, -\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, -\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, -\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, -\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. - -\subsection{Chebyshev}\index{Chebyshev polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Chebyshev polynomials of the first kind can be obtained from the Jacobi -polynomials by taking $\alpha=\beta=-\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevI} -T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} -=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} -\end{equation} -and the Chebyshev polynomials of the second kind can be obtained from the -Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevII} -U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} -=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtChebyshevI} -\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= -\left\{\begin{array}{ll} -\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] -\cpi\,\delta_{mn}, & n=0. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{OrtChebyshevII} -\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relations} -\begin{equation} -\label{RecChebyshevI} -2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. -\end{equation} - -\begin{equation} -\label{RecChebyshevII} -2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. -\end{equation} - -\subsection*{Normalized recurrence relations} -\begin{equation} -\label{NormRecChebyshevI} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ - -\begin{equation} -\label{NormRecChebyshevII} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$U_n(x)=2^np_n(x).$$ - -\subsection*{Differential equations} -\begin{equation} -\label{dvChebyshevI} -(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). -\end{equation} - -\begin{equation} -\label{dvChebyshevII} -(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Chebyshev} -\frac{d}{dx}T_n(x)=nU_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2ChebyshevI} -(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2ChebyshevII} -\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] -=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formulas} -\begin{equation} -\label{RodChebyshevI} -(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. -\end{equation} - -\begin{equation} -\label{RodChebyshevII} -(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenChebyshevI1} -\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI2} -R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} -\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevI3} -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevI5} -& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevI6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{equation} -\label{GenChebyshevII1} -\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII2} -\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} -\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevII3} -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevII5} -& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevII6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Remarks} -The Chebyshev polynomials can also be written as: -$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ -and -$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ -Further we have -$$U_n(x)=C_n^{(1)}(x)$$ -where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) -polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. - -\subsection*{References} -\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, -\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, -\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, -\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, -\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, -\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. - -\subsection{Legendre / Spherical}\index{Legendre polynomials} -\index{Spherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: -\begin{equation} -\label{DefLegendre} -P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLegendre} -\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLegendre} -(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLegendre} -xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), -\end{equation} -where -$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLegendre} -(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLegendre} -P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLegendre1} -\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre2} -\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre3} -\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenLegendre4} -& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenLegendre5} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{References} -\cite{Abram}, \cite{Alladi}, \cite{AlSalam90}, \cite{Bhonsle}, \cite{Brafman51}, -\cite{Carlitz57II}, \cite{Chihara78}, \cite{Danese}, \cite{Dattoli2001}, -\cite{DilcherStolarsky}, \cite{ElbertLaforgia94}, \cite{Erdelyi+}, \cite{Grad}, -\cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Rainville}, -\cite{Szego75}, \cite{Temme}, \cite{Zayed}. - -\newpage - -\section{Pseudo Jacobi}\index{Pseudo Jacobi polynomials}\index{Jacobi polynomials!Pseudo} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefPseudoJacobi} -P_n(x;\nu,N)&=&\frac{(-2i)^n(-N+i\nu)_n}{(n-2N-1)_n}\,\hyp{2}{1}{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}}\\ -&=&(x+i)^n\,\hyp{2}{1}{-n,N+1-n-i\nu}{2N+2-2n}{\frac{2}{1-ix}},\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtPseudoJacobi} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_m(x;\nu,N)P_n(x;\nu,N)\,dx\nonumber\\ -& &{}=\frac{\Gamma(2N+1-2n)\Gamma(2N+2-2n)2^{2n-2N-1}n!}{\Gamma(2N+2-n)\left|\Gamma(N+1-n+i\nu)\right|^2}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecPseudoJacobi} -xP_n(x;\nu,N)&=&P_{n+1}(x;\nu,N)+\frac{(N+1)\nu}{(n-N-1)(n-N)}P_n(x;\nu,N)\nonumber\\ -& &{}\mathindent{}-\frac{n(n-2N-2)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}\nonumber\\ -& &{}\mathindent\mathindent\times(n-N-1-i\nu)(n-N-1+i\nu)P_{n-1}(x;\nu,N). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecPseudoJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{(N+1)\nu}{(n-N-1)(n-N)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{n(n-2N-2)(n-N-1-i\nu)(n-N-1+i\nu)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}p_{n-1}(x), -\end{eqnarray} -where -$$P_n(x;\nu,N)=p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvPseudoJacobi} -(1+x^2)y''(x)+2\left(\nu-Nx\right)y'(x)-n(n-2N-1)y(x)=0, -\end{equation} -where -$$y(x)=P_n(x;\nu,N).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1PseudoJacobi} -\frac{d}{dx}P_n(x;\nu,N)=nP_{n-1}(x;\nu,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2PseudoJacobiI} -& &(1+x^2)\frac{d}{dx}P_n(x;\nu,N)+2\left[\nu-(N+1)x\right]P_n(x;\nu,N)\nonumber\\ -& &{}=(n-2N-2)P_{n+1}(x;\nu,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2PseudoJacobiII} -& &\frac{d}{dx}\left[(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_n(x;\nu,N)\right]\nonumber\\ -& &{}=(n-2N-2)(1+x^2)^{-N-2}\e^{2\nu\arctan x}P_{n+1}(x;\nu,N+1). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodPseudoJacobi} -P_n(x;\nu,N)=\frac{(1+x^2)^{N+1}\expe^{-2\nu\arctan x}}{(n-2N-1)_n} -\left(\frac{d}{dx}\right)^n\left[(1+x^2)^{n-N-1}\expe^{2\nu\arctan x}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{eqnarray} -\label{GenPseudoJacobi} -& &\left[\hyp{0}{1}{-}{-N+i\nu}{(x+i)t}\,\hyp{0}{1}{-}{-N-i\nu}{(x-i)t}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(n-2N-1)_n}{(-N+i\nu)_n(-N-i\nu)_nn!}P_n(x;\nu,N)t^n. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials follow from the continuous Hahn polynomials given by -(\ref{DefContHahn}) by the substitutions $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray*} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray*} - -\subsection*{Remarks} -Since we have for $k 0$ & -% $0 < c < 1$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMeixner} -(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ -& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMeixner} -xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ -\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), -\end{equation} -where -$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvMeixner} -n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), -\end{equation} -where -$$y(x)=M_n(x;\beta,c).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MeixnerI} -M_n(x+1;\beta,c)-M_n(x;\beta,c)= -\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MeixnerII} -\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2MeixnerI} -c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift2MeixnerII} -\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= -\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMeixner} -\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenMeixner1} -\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= -\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner2} -\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= -\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner3} -(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) -of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: -$$\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -To obtain the Meixner polynomials from the dual Hahn polynomials we have to take -$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of -the dual Hahn polynomials and let $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials -if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: -\begin{equation} -\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. -\end{equation} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials -if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). -\end{equation} - -\subsection*{Remarks} -The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) -in the following way: -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Meixner polynomials are also related to the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) in the following way: -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{Alvarez+}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyIsmail76}, -\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Bavinck98}, -\cite{BavinckHaeringen}, \cite{Campigotto+}, \cite{Chihara78}, \cite{Cooper+}, -\cite{Erdelyi+}, \cite{FoataLabelle}, \cite{Gabutti}, \cite{GabuttiMathis}, \cite{Gasper73I}, -\cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{IsmailLetVal88}, -\cite{IsmailLi}, \cite{IsmailMuldoon}, \cite{IsmailStanton97}, \cite{JinWong}, -\cite{Karlin58}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rahman78I}, \cite{ValentAssche}, -\cite{Viennot}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Krawtchouk}\index{Krawtchouk polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefKrawtchouk} -K_n(x;p,N)=\hyp{2}{1}{-n,-x}{-N}{\frac{1}{p}},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtKrawtchouk} -& &\sum_{x=0}^N\binom{N}{x}p^x(1-p)^{N-x} K_m(x;p,N)K_n(x;p,N)\nonumber\\ -& &{}=\frac{(-1)^nn!}{(-N)_n}\left(\frac{1-p}{p}\right)^n\,\delta_{mn},\quad0 < p < 1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecKrawtchouk} --xK_n(x;p,N)&=&p(N-n)K_{n+1}(x;p,N)\nonumber\\ -& &{}\mathindent{}-\left[p(N-n)+n(1-p)\right]K_n(x;p,N)\nonumber\\ -& &{}\mathindent\mathindent{}+n(1-p)K_{n-1}(x;p,N). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+\left[p(N-n)+n(1-p)\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+np(1-p)(N+1-n)p_{n-1}(x), -\end{eqnarray} -where -$$K_n(x;p,N)=\frac{1}{(-N)_np^n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvKrawtchouk} --ny(x)&=&p(N-x)y(x+1)\nonumber\\ -& &{}\mathindent{}-\left[p(N-x)+x(1-p)\right]y(x)+x(1-p)y(x-1), -\end{eqnarray} -where -$$y(x)=K_n(x;p,N).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1KrawtchoukI} -K_n(x+1;p,N)-K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1) -\end{equation} -or equivalently -\begin{equation} -\label{shift1KrawtchoukII} -\Delta K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2KrawtchoukI} -& &(N+1-x)K_n(x;p,N)-x\left(\frac{1-p}{p}\right)K_n(x-1;p,N)\nonumber\\ -& &{}=(N+1)K_{n+1}(x;p,N+1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2KrawtchoukII} -\nabla\left[\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)\right]= -\binom{N+1}{x}\left(\frac{p}{1-p}\right)^xK_{n+1}(x;p,N+1). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodKrawtchouk} -\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)= -\nabla^n\left[\binom{N-n}{x}\left(\frac{p}{1-p}\right)^x\right]. -\end{equation} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenKrawtchouk1} -\left(1-\frac{(1-p)}{p}t\right)^x(1+t)^{N-x}= -\sum_{n=0}^N\binom{N}{n}K_n(x;p,N)t^n. -\end{equation} - -\begin{equation} -\label{GenKrawtchouk2} -\left[\expe^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}\right]_N= -\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenKrawtchouk3} -& &\left[(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{-N}{\frac{t}{p(t-1)}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\gamma)_n}{n!}K_n(x;p,N)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -If we take $\alpha=pt$ and $\beta=(1-p)t$ in the definition (\ref{DefHahn}) of the Hahn -polynomials and let $t\rightarrow\infty$ we obtain the Krawtchouk polynomials: -$$\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials follow from the dual Hahn polynomials given by -(\ref{DefDualHahn}) if we set $\gamma=pt$, $\delta=(1-p)t$ and let $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) can be found from the Krawtchouk -polynomials by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a). -\end{equation} - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Krawtchouk polynomials -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}. -\end{equation} - -\subsection*{Remarks} -The Krawtchouk polynomials are self-dual, which means that -$$K_n(x;p,N)=K_x(n;p,N),\quad n,x\in\{0,1,2,\ldots,N\}.$$ -By using this relation we easily obtain the so-called dual orthogonality -relation from the orthogonality relation (\ref{OrtKrawtchouk}): -$$\sum_{n=0}^N\binom{N}{n}p^n(1-p)^{N-n} K_n(x;p,N)K_n(y;p,N)= -\frac{\displaystyle\left(\frac{1-p}{p}\right)^x}{\dbinom{N}{x}}\delta_{xy},$$ -where $0 < p < 1$ and $x,y\in\{0,1,2,\ldots,N\}$. - -\noindent -The Krawtchouk polynomials are related to the Meixner polynomials given by (\ref{DefMeixner}) -in the following way: -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, -\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, -\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, -\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, -\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Laguerre}\index{Laguerre polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefLaguerre} -L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLaguerre} -\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= -\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLaguerre} -(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLaguerre} -xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), -\end{equation} -where -$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLaguerre} -xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). -\end{equation} - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Laguerre} -\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2LaguerreI} -x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2LaguerreII} -\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLaguerre} -\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLaguerre1} -(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= -\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre2} -\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre3} -(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by -(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -$$\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) -if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: -$$\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition -(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain -the Laguerre polynomials: -$$\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre -polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be -written as: -$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ -In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. -Therefore they can be defined for all $\alpha$. - -\noindent -The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\noindent -The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\noindent -In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook -polynomials. - -\subsection*{References} -\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, -\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, -\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, -\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, -\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, -\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, -\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, -\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, -\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, -\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, -\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, -\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, -\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, -\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, -\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, -\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, -\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, -\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, -\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. - - -\section{Bessel}\index{Bessel polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefBessel} -y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ -&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, -\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBessel} -& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ -& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBessel} -& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ -& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ -& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecBessel} -xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), -\end{eqnarray} -where -$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvBessel} -x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Bessel} -\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2BesselI} -x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) -\end{equation} -or equivalently -\begin{equation} -\label{shift2BesselII} -\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodBessel} -y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenBessel} -\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a -\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. -\end{equation} - -\subsection*{Limit relation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials -and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: -$$\lim_{\alpha\rightarrow -\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ - -\subsection*{Remarks} -The following notations are also used for the Bessel polynomials: -$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ -However, the Bessel polynomials essentially depend on only one parameter. - -\noindent -The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi -polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the -pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: -$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, -\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, -\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. - - -\section{Charlier}\index{Charlier polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefCharlier} -C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtCharlier} -\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= -a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecCharlier} --xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecCharlier} -xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), -\end{equation} -where -$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvCharlier} --ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1CharlierI} -C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift1CharlierII} -\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2CharlierI} -C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift2CharlierII} -\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodCharlier} -\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenCharlier} -\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials -and let $\beta\rightarrow\infty$ we find the Charlier polynomials: -$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials can be found from the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials -if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). -\end{equation} - -\subsection*{Remark} -The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, -\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, -\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, -\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, -\cite{Zeng90}. - - -\section{Hermite}\index{Hermite polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefHermite} -H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtHermite} -\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx -=2^nn!\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHermite} -H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHermite} -xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), -\end{equation} -where -$$H_n(x)=2^np_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvHermite} -y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Hermite} -\frac{d}{dx}H_n(x)=2nH_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2HermiteI} -\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2HermiteII} -\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodHermite} -\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenHermite1} -\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenHermite2} -\left\{\begin{array}{l} -\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] -\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite3} -\left\{\begin{array}{l} -\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] -\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite4} -\left\{\begin{array}{l} -\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= -\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] -\displaystyle\frac{xt}{\sqrt{1+t^2}}\, -\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} -=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} -\end{array}\right. -\end{equation} -with $\gamma$ arbitrary. - -\begin{equation} -\label{GenHermite5} -\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) -=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, -\end{equation} -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and -then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: -$$\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by -taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by -(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials can be obtained from the Laguerre polynomials given by -(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) -of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite -polynomials. In fact we have -$$\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ - -\subsection*{Remarks} -The Hermite polynomials can also be written as: -$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} -\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\noindent -The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\subsection*{References} -\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, -\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, -\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, -\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, -\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, -\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, -\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, -\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, -\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, -\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, -\cite{Weisner59}, \cite{Wyman}. - -\end{document} diff --git a/KLSadd_insertion/chap14.tex b/KLSadd_insertion/chap14.tex deleted file mode 100644 index 0b5f396..0000000 --- a/KLSadd_insertion/chap14.tex +++ /dev/null @@ -1,5734 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\textheight 25cm - -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\large - -\pagenumbering{roman} -\addtocounter{chapter}{13} - -\chapter{Basic hypergeometric orthogonal polynomials} -\label{BasicHyperOrtPol} - - -In this chapter we deal with all families of basic hypergeometric orthogonal polynomials -appearing in the $q$-analogue of the Askey scheme on the pages~\pageref{qscheme1} and -\pageref{qscheme2}. For each family of orthogonal polynomials we state the most important -properties such as a representation as a basic hypergeometric function, orthogonality -relation(s), the three-term recurrence relation, the second-order $q$-difference equation, -the forward shift (or degree lowering) and backward shift (or degree raising) operator, a -Rodrigues-type formula and some generating functions. Throughout this chapter we assume -that $01$ and $b,c,d$ are real or one is real and the other two are complex conjugates,\\ -$\max(|b|,|c|,|d|)<1$ and the pairwise products of $a,b,c$ and $d$ have -absolute value less than $1$, then we have another orthogonality relation -given by: -\begin{eqnarray} -\label{OrtAskeyWilsonII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c,d|q)p_n(x;a,b,c,d|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 11$ and $b$ and $c$ are real or complex conjugates, -$\max(|b|,|c|)<1$ and the pairwise products of $a,b$ and $c$ have -absolute value less than $1$, then we have another orthogonality relation -given by: -\begin{eqnarray} -\label{OrtContDualqHahnII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c|q)p_n(x;a,b,c|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10$) in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we -obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): -\begin{equation} -\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). -\end{equation} - -\subsubsection*{Big $q$-Jacobi $\rightarrow$ Jacobi} -If we set $c=0$, $a=q^{\alpha}$ and $b=q^{\beta}$ in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and let $q\rightarrow 1$ we find the Jacobi -polynomials given by (\ref{DefJacobi}): -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},0;q)=\frac{P_n^{(\alpha,\beta)}(2x-1)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} -If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we -find -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},-q^{\gamma};q)=\frac{P_n^{(\alpha,\beta)}(x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsection*{Remarks} -The big $q$-Jacobi polynomials with $c=0$ and the little -$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related -in the following way: -$$P_n(x;a,b,0;q)=\frac{(bq;q)_n}{(aq;q)_n}(-1)^na^nq^{n+\binom{n}{2}}p_n(a^{-1}q^{-1}x;b,a|q).$$ - -\noindent -Sometimes the big $q$-Jacobi polynomials are defined in terms of four -parameters instead of three. In fact the polynomials given by the definition -$$P_n(x;a,b,c,d;q)=\qhyp{3}{2}{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}$$ -are orthogonal on the interval $[-d,c]$ with respect to the weight function -$$\frac{(c^{-1}qx,-d^{-1}qx;q)_{\infty}}{(ac^{-1}qx,-bd^{-1}qx;q)_{\infty}}d_qx.$$ -These polynomials are not really different from those given by -(\ref{DefBigqJacobi}) since we have -$$P_n(x;a,b,c,d;q)=P_n(ac^{-1}qx;a,b,-ac^{-1}d;q)$$ -and -$$P_n(x;a,b,c;q)=P_n(x;a,b,aq,-cq;q).$$ - -\subsection*{References} -\cite{NAlSalam89}, \cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{AtakKlimyk2004}, -\cite{AtakRahmanSuslov}, \cite{DattaGriffin}, \cite{FloreaniniVinetII}, -\cite{GasperRahman90}, \cite{GrunbaumHaine96}, \cite{Gupta92}, \cite{Hahn}, -\cite{Ismail86I}, \cite{IsmailStanton97}, \cite{IsmailWilson}, \cite{KalninsMiller88}, -\cite{KoelinkE}, \cite{Koorn90II}, \cite{Koorn93}, \cite{Koorn2007}, \cite{Miller89}, -\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{NoumiMimachi90III}, -\cite{NoumiMimachi91}, \cite{Spiridonov97}, \cite{SrivastavaJain90}. - - -\section*{Special case} - -\subsection{Big $q$-Legendre} -\index{Big q-Legendre polynomials@Big $q$-Legendre polynomials} -\index{q-Legendre polynomials@$q$-Legendre polynomials!Big} -\par - -\subsection*{Basic hypergeometric representation} The big $q$-Legendre polynomials are big $q$-Jacobi polynomials -with $a=b=1$: -\begin{equation} -\label{DefBigqLegendre} -P_n(x;c;q)=\qhyp{3}{2}{q^{-n},q^{n+1},x}{q,cq}{q}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBigqLegendre} -& &\int_{cq}^{q}P_m(x;c;q)P_n(x;c;q)\,d_qx\nonumber\\ -& &{}=q(1-c)\frac{(1-q)}{(1-q^{2n+1})} -\frac{(c^{-1}q;q)_n}{(cq;q)_n}(-cq^2)^nq^{\binom{n}{2}}\,\delta_{mn},\quad c<0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBigqLegendre} -(x-1)P_n(x;c;q)&=&A_nP_{n+1}(x;c;q)-\left(A_n+C_n\right)P_n(x;c;q)\nonumber\\ -& &{}\mathindent{}+C_nP_{n-1}(x;c;q), -\end{eqnarray} -where -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n+1})(1-cq^{n+1})}{(1+q^{n+1})(1-q^{2n+1})}\\ -\\ -\displaystyle C_n=-cq^{n+1}\frac{(1-q^n)(1-c^{-1}q^n)}{(1+q^n)(1-q^{2n+1})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecBigqLegendre} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$P_n(x;c;q)=\frac{(q^{n+1};q)_n}{(q,cq;q)_n}p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvBigqLegendre} -& &q^{-n}(1-q^n)(1-q^{n+1})x^2y(x)\nonumber\\ -& &{}=B(x)y(qx)-\left[B(x)+D(x)\right]y(x)+D(x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=P_n(x;c;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=q(x-1)(x-c)\\ -\\ -\displaystyle D(x)=(x-q)(x-cq).\end{array}\right.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodBigqLegendre} -P_n(x;c;q)&=&\frac{c^nq^{n(n+1)}(1-q)^n}{(q,cq;q)_n} -\left(\mathcal{D}_q\right)^n\left[(q^{-n}x,c^{-1}q^{-n}x;q)_n\right]\\ -&=&\frac{(1-q)^n}{(q,cq;q)_n}\left(\mathcal{D}_q\right)^n -\left[(qx^{-1},cqx^{-1};q)_nx^{2n}\right].\nonumber -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenBigqLegendre1} -\qhyp{2}{1}{qx^{-1},0}{q}{xt}\,\qhyp{1}{1}{c^{-1}x}{q}{cqt} -=\sum_{n=0}^{\infty}\frac{(cq;q)_n}{(q,q;q)_n}P_n(x;c;q)t^n. -\end{equation} - -\begin{equation} -\label{GenBigqLegendre2} -\qhyp{2}{1}{cqx^{-1},0}{cq}{xt}\,\qhyp{1}{1}{c^{-1}x}{c^{-1}q}{qt} -=\sum_{n=0}^{\infty}\frac{P_n(x;c;q)}{(c^{-1}q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Legendre $\rightarrow$ Legendre / Spherical} -If we set $c=0$ in the definition (\ref{DefBigqLegendre}) of the big -$q$-Legendre polynomials and let $q\rightarrow 1$ we simply obtain the Legendre -(or spherical) polynomials given by (\ref{DefLegendre}): -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;0;q)=P_n(2x-1). -\end{equation} -If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we -find -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;-q^{\gamma};q)=P_n(x). -\end{equation} - -\subsection*{References} -\cite{Koelink95I}, \cite{Koorn90II}. - - -\section{$q$-Hahn}\index{q-Hahn polynomials@$q$-Hahn polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefqHahn} -Q_n(q^{-x};\alpha,\beta,N|q)=\qhyp{3}{2}{q^{-n},\alpha\beta q^{n+1},q^{-x}} -{\alpha q,q^{-N}}{q},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -For $0<\alpha q<1$ and $0<\beta q<1$, or for $\alpha>q^{-N}$ and $\beta>q^{-N}$, we have -\begin{eqnarray} -\label{OrtqHahn} -& &\sum_{x=0}^N\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta q)^{-x} -Q_m(q^{-x};\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=\frac{(\alpha\beta q^2;q)_N}{(\beta q;q)_N(\alpha q)^N} -\frac{(q,\alpha\beta q^{N+2},\beta q;q)_n}{(\alpha q,\alpha\beta q,q^{-N};q)_n}\, -\frac{(1-\alpha\beta q)(-\alpha q)^n}{(1-\alpha\beta q^{2n+1})} -q^{\binom{n}{2}-Nn}\,\delta_{mn}. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqHahn} --\left(1-q^{-x}\right)Q_n(q^{-x})&=&A_nQ_{n+1}(q^{-x})-\left(A_n+C_n\right)Q_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+C_nQ_{n-1}(q^{-x}), -\end{eqnarray} -where -$$Q_n(q^{-x}):=Q_n(q^{-x};\alpha,\beta,N|q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n-N})(1-\alpha q^{n+1})(1-\alpha\beta q^{n+1})}{(1-\alpha\beta q^{2n+1})(1-\alpha\beta q^{2n+2})}\\ -\\ -\displaystyle C_n=-\frac{\alpha q^{n-N}(1-q^n)(1-\alpha\beta q^{n+N+1})(1-\beta q^n)}{(1-\alpha\beta q^{2n})(1-\alpha\beta q^{2n+1})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqHahn} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(q^{-x};\alpha,\beta,N|q)= -\frac{(\alpha\beta q^{n+1};q)_n}{(\alpha q,q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqHahn} -& &q^{-n}(1-q^n)(1-\alpha\beta q^{n+1})y(x)\nonumber\\ -& &{}=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{eqnarray} -where -$$y(x)=Q_n(q^{-x};\alpha,\beta,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=(1-q^{x-N})(1-\alpha q^{x+1})\\ -\\ -\displaystyle D(x)=\alpha q(1-q^x)(\beta-q^{x-N-1}).\end{array}\right.$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qHahnI} -& &Q_n(q^{-x-1};\alpha,\beta,N|q)-Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-\alpha q)(1-q^{-N})} -Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1qHahnII} -\frac{\Delta Q_n(q^{-x};\alpha,\beta,N|q)}{\Delta q^{-x}} -&=&\frac{q^{-n+1}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-q)(1-\alpha q)(1-q^{-N})}\nonumber\\ -& &{}\mathindent{}\times Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q). -\end{eqnarray} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qHahnI} -& &(1-\alpha q^x)(1-q^{x-N-1})Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}\mathindent{}-\alpha(1-q^x)(\beta-q^{x-N-1})Q_n(q^{-x+1};\alpha,\beta,N|q)\nonumber\\ -& &{}=q^x(1-\alpha)(1-q^{-N-1})Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qHahnII} -& &\frac{\nabla\left[w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;\alpha q^{-1},\beta q^{-1},N+1|q)Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q), -\end{eqnarray} -where -$$w(x;\alpha,\beta,N|q)=\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta)^{-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodqHahn} -& &w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=(1-q)^n\left(\nabla_q\right)^n\left[w(x;\alpha q^n,\beta q^n,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenqHahn1} -& &\qhyp{1}{1}{q^{-x}}{\alpha q}{\alpha qt}\,\qhyp{2}{1}{q^{x-N},0}{\beta q}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(\beta q,q;q)_n}Q_n(q^{-x};\alpha,\beta,N|q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenqHahn2} -& &\qhyp{2}{1}{q^{-x},\beta q^{N+1-x}}{0}{-\alpha q^{x-N+1}t}\, -\qhyp{2}{0}{q^{x-N},\alpha q^{x+1}}{-}{-q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha q,q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}Q_n(q^{-x};\alpha,\beta,N|q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ $q$-Hahn} -The $q$-Hahn polynomials follow from the $q$-Racah polynomials by the substitution -$\delta=0$ and $\gamma q=q^{-N}$ in the definition (\ref{DefqRacah}) of the -$q$-Racah polynomials: -$$R_n(\mu(x);\alpha,\beta,q^{-N-1},0|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ -Another way to obtain the $q$-Hahn polynomials from the $q$-Racah -polynomials is by setting $\gamma=0$ and $\delta=\beta^{-1}q^{-N-1}$ in the definition -(\ref{DefqRacah}): -$$R_n(\mu(x);\alpha,\beta,0,\beta^{-1}q^{-N-1}|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ -And if we take $\alpha q=q^{-N}$, $\beta\rightarrow\beta\gamma q^{N+1}$ and $\delta=0$ in the -definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the -$q$-Hahn polynomials given by (\ref{DefqHahn}) in the following way: -$$R_n(\mu(x);q^{-N-1},\beta\gamma q^{N+1},\gamma,0|q)=Q_n(q^{-x};\gamma,\beta,N|q).$$ -Note that $\mu(x)=q^{-x}$ in each case. - -\subsubsection*{$q$-Hahn $\rightarrow$ Little $q$-Jacobi} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqHahn}) of the $q$-Hahn -polynomials and take the limit $N\rightarrow\infty$ we find the little $q$-Jacobi polynomials: -\begin{equation} -\lim _{N\rightarrow\infty} Q_n(q^{x-N};\alpha,\beta,N|q)=p_n(q^x;\alpha,\beta|q), -\end{equation} -where $p_n(q^x;\alpha,\beta|q)$ is given by (\ref{DefLittleqJacobi}). - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials -by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the -$q$-Hahn polynomials and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} -The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of -the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: -\begin{equation} -\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} -If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials -and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by -(\ref{DefqKrawtchouk}): -\begin{equation} -\lim_{\alpha\rightarrow 0} -Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} -The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -can be obtained from the $q$-Hahn polynomials by the substitution $\alpha=p$ and -$\beta=0$ in (\ref{DefqHahn}): -\begin{equation} -Q_n(q^{-x};p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Hahn} -The Hahn polynomials given by (\ref{DefHahn}) simply follow from the $q$-Hahn -polynomials given by (\ref{DefqHahn}), after setting $\alpha\rightarrow q^{\alpha}$ -and $\beta\rightarrow q^{\beta}$, in the following way: -\begin{equation} -\lim_{q\rightarrow 1}Q_n(q^{-x};q^{\alpha},q^{\beta},N|q)=Q_n(x;\alpha,\beta,N). -\end{equation} - -\subsection*{Remark} -The $q$-Hahn polynomials given by (\ref{DefqHahn}) and the dual $q$-Hahn -polynomials given by (\ref{DefDualqHahn}) are related in the following way: -$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ -with -$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ -or -$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ -where -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlvarezRonveaux}, \cite{AndrewsAskey85}, -\cite{AskeyWilson79}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, -\cite{Dunkl78II}, \cite{Fischer95}, \cite{GasperRahman84}, -\cite{GasperRahman90}, \cite{Hahn}, \cite{KalninsMiller88}, -\cite{Koelink96I}, \cite{KoelinkKoorn}, \cite{Koorn89III}, \cite{Koorn90II}, -\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{Rahman82}, -\cite{Stanton80II}, \cite{Stanton84}, \cite{Stanton90}. - - -\section{Dual $q$-Hahn}\index{Dual q-Hahn polynomials@Dual $q$-Hahn polynomials} -\index{q-Hahn polynomials@$q$-Hahn polynomials!Dual} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefDualqHahn} -R_n(\mu(x);\gamma,\delta,N|q)= -\qhyp{3}{2}{q^{-n},q^{-x},\gamma\delta q^{x+1}}{\gamma q,q^{-N}}{q},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\mu(x):=q^{-x}+\gamma\delta q^{x+1}.$$ - -\newpage - -\subsection*{Orthogonality relation} -For $0<\gamma q<1$ and $0<\delta q<1$, or for $\gamma>q^{-N}$ and $\delta>q^{-N}$, we have -\begin{eqnarray} -\label{OrtDualqHahn} -& &\sum_{x=0}^N\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x}{(q,\gamma\delta q^{N+2},\delta q;q)_x} -\frac{(1-\gamma\delta q^{2x+1})}{(1-\gamma\delta q)(-\gamma q)^x}q^{Nx-\binom{x}{2}}\nonumber\\ -& &{}\mathindent{}\times R_m(\mu(x);\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=\frac{(\gamma\delta q^2;q)_N}{(\delta q;q)_N}(\gamma q)^{-N} -\frac{(q,\delta^{-1}q^{-N};q)_n}{(\gamma q,q^{-N};q)_n}(\gamma\delta q)^n\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecDualqHahn} -& &-\left(1-q^{-x}\right)\left(1-\gamma\delta q^{x+1}\right)R_n(\mu(x))\nonumber\\ -& &{}=A_nR_{n+1}(\mu(x))-\left(A_n+C_n\right)R_n(\mu(x))+C_nR_{n-1}(\mu(x)), -\end{eqnarray} -where -$$R_n(\mu(x)):=R_n(\mu(x);\gamma,\delta,N|q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\left(1-q^{n-N}\right)\left(1-\gamma q^{n+1}\right)\\ -\\ -\displaystyle C_n=\gamma q\left(1-q^n\right)\left(\delta -q^{n-N-1}\right). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecDualqHahn} -xp_n(x)&=&p_{n+1}(x)+\left[1+\gamma\delta q-(A_n+C_n)\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+\gamma q(1-q^n)(1-\gamma q^n)\nonumber\\ -& &{}\mathindent\mathindent{}\times(1-q^{n-N-1})(\delta-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$R_n(\mu(x);\gamma,\delta,N|q)=\frac{1}{(\gamma q,q^{-N};q)_n}p_n(\mu(x)).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDualqHahn} -q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x) -+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\mu(x);\gamma,\delta,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-\gamma q^{x+1})(1-\gamma\delta q^{x+1})} -{(1-\gamma\delta q^{2x+1})(1-\gamma\delta q^{2x+2})}\\ -\\ -\displaystyle D(x)=-\frac{\gamma q^{x-N}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)} -{(1-\gamma\delta q^{2x})(1-\gamma\delta q^{2x+1})}.\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualqHahnI} -& &R_n(\mu(x+1);\gamma,\delta,N|q)-R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-\gamma\delta q^{2x+2})}{(1-\gamma q)(1-q^{-N})} -R_{n-1}(\mu(x);\gamma q,\delta,N-1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1DualqHahnII} -& &\frac{\Delta R_n(\mu(x);\gamma,\delta,N|q)}{\Delta\mu(x)}\nonumber\\ -& &{}=\frac{q^{-n+1}(1-q^n)}{(1-q)(1-\gamma q)(1-q^{-N})}R_{n-1}(\mu(x);\gamma q,\delta,N-1|q). -\end{eqnarray} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualqHahnI} -& &(1-\gamma q^x)(1-\gamma\delta q^x)(1-q^{x-N-1})R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}\mathindent{}+\gamma q^{x-N-1}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)R_n(\mu(x-1);\gamma,\delta,N|q)\nonumber\\ -& &{}=q^x(1-\gamma)(1-q^{-N-1})(1-\gamma\delta q^{2x})R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualqHahnII} -& &\frac{\nabla\left[w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\right]}{\nabla\mu(x)}\nonumber\\ -& &{}=\frac{1}{(1-q)(1-\gamma\delta)}w(x;\gamma q^{-1},\delta,N+1|q)\nonumber\\ -& &{}\mathindent{}\times R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q), -\end{eqnarray} -where -$$w(x;\gamma,\delta,N|q)=\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x} -{(q,\gamma\delta q^{N+2},\delta q;q)_x}(-\gamma^{-1})^x q^{Nx-\binom{x}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodDualqHahn} -& &w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=(1-q)^n(\gamma\delta q;q)_n -\left(\nabla_{\mu}\right)^n\left[w(x;\gamma q^n,\delta,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_{\mu}:=\frac{\nabla}{\nabla\mu(x)}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenDualqHahn1} -& &(q^{-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},\delta^{-1}q^{-x}}{\gamma q}{\gamma\delta q^{x+1}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenDualqHahn2} -& &(\gamma\delta qt;q)_x\cdot\qhyp{2}{1}{q^{x-N},\gamma q^{x+1}}{\delta^{-1}q^{-N}}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N -\frac{(q^{-N},\gamma q;q)_n}{(\delta^{-1}q^{-N},q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Hahn} -To obtain the dual $q$-Hahn polynomials from the $q$-Racah polynomials we have to -take $\beta=0$ and $\alpha q=q^{-N}$ in (\ref{DefqRacah}): -$$R_n(\mu(x);q^{-N-1},0,\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q),$$ -with -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ -We may also take $\alpha=0$ and $\beta=\delta^{-1}q^{-N-1}$ in (\ref{DefqRacah}) to obtain -the dual $q$-Hahn polynomials from the $q$-Racah polynomials: -$$R_n(\mu(x);0,\delta^{-1}q^{-N-1},\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q).$$ -And if we take $\gamma q=q^{-N}$, $\delta\rightarrow\alpha\delta q^{N+1}$ and $\beta=0$ in the -definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the dual -$q$-Hahn polynomials given by (\ref{DefDualqHahn}) in the following way: -$$R_n(\mu(x);\alpha,0,q^{-N-1},\alpha\delta q^{N+1}|q)=R_n({\tilde \mu}(x);\alpha,\delta,N|q),$$ -with -$${\tilde \mu}(x)=q^{-x}+\alpha\delta q^{x+1}.$$ - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} -The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -can be obtained from the dual $q$-Hahn polynomials by the substitution $\gamma=p$ -and $\delta=0$ in (\ref{DefDualqHahn}): -\begin{equation} -R_n(\mu(x);p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). -\end{equation} -Note that $\mu(x)=q^{-x}$ in this case. - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} -The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can -be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ -in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: -\begin{equation} -\lim_{\gamma\rightarrow 0} -R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q). -\end{equation} - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual Hahn} -The dual Hahn polynomials given by (\ref{DefDualHahn}) follow from the dual $q$-Hahn -polynomials by simply taking the limit $q\rightarrow 1$ in the definition (\ref{DefDualqHahn}) -of the dual $q$-Hahn polynomials after applying the substitution -$\gamma\rightarrow q^{\gamma}$ and $\delta\rightarrow q^{\delta}$: -\begin{equation} -\lim_{q\rightarrow 1}R_n(\mu(x);q^{\gamma},q^{\delta},N|q)=R_n(\lambda(x);\gamma,\delta,N), -\end{equation} -where -$$\left\{\begin{array}{l} -\displaystyle\mu(x)=q^{-x}+q^{x+\gamma+\delta+1}\\[5mm] -\displaystyle\lambda(x)=x(x+\gamma+\delta+1). -\end{array}\right.$$ - -\subsection*{Remark} -The dual $q$-Hahn polynomials given by (\ref{DefDualqHahn}) and the -$q$-Hahn polynomials given by (\ref{DefqHahn}) are related in the following way: -$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ -with -$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ -or -$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ -where -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ - -\subsection*{References} -\cite{AlvarezSmirnov}, \cite{AndrewsAskey85}, \cite{AskeyWilson79}, -\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, -\cite{KoelinkKoorn}, \cite{Nikiforov+}, \cite{Stanton84}. - - -\section{Al-Salam-Chihara}\index{Al-Salam-Chihara polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefAlSalamChihara} -Q_n(x;a,b|q)&=&\frac{(ab;q)_n}{a^n}\, -\qhyp{3}{2}{q^{-n},a\e^{i\theta},a\e^{-i\theta}}{ab,0}{q}\\ -&=&(a\e^{i\theta};q)_n\e^{-in\theta}\,\qhyp{2}{1}{q^{-n},b\e^{-i\theta}} -{a^{-1}q^{-n+1}\e^{-i\theta}}{a^{-1}q\e^{i\theta}}\nonumber\\ -&=&(b\e^{-i\theta};q)_n\e^{in\theta}\,\qhyp{2}{1}{q^{-n},a\e^{i\theta}} -{b^{-1}q^{-n+1}\e^{i\theta}}{b^{-1}q\e^{-i\theta}},\quad x=\cos\theta.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -If $a$ and $b$ are real or complex conjugates and $\max(|a|,|b|)<1$, then we have the following orthogonality relation -\begin{equation} -\label{OrtAlSalamChiharaI} -\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx -=\frac{\,\delta_{mn}}{(q^{n+1},abq^n;q)_{\infty}}, -\end{equation} -where -$$w(x):=w(x;a,b|q)=\left|\frac{(\e^{2i\theta};q)_{\infty}} -{(a\e^{i\theta},b\e^{i\theta};q)_{\infty}}\right|^2 -=\frac{h(x,1)h(x,-1)h(x,q^{\frac{1}{2}})h(x,-q^{\frac{1}{2}})}{h(x,a)h(x,b)},$$ -with -$$h(x,\alpha):=\prod_{k=0}^{\infty}\left(1-2\alpha xq^k+\alpha^2q^{2k}\right) -=\left(\alpha\e^{i\theta},\alpha\e^{-i\theta};q\right)_{\infty},\quad x=\cos\theta.$$ -If $a>1$ and $|ab|<1$, then we have another orthogonality relation given by: -\begin{eqnarray} -\label{OrtAlSalamChiharaII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqMeixner} -& &q^{2n+1}(1-q^{-x})M_n(q^{-x})\nonumber\\ -& &{}=c(1-bq^{n+1})M_{n+1}(q^{-x})\nonumber\\ -& &{}\mathindent{}-\left[c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right]M_n(q^{-x})\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^n)(c+q^n)M_{n-1}(q^{-x}), -\end{eqnarray} -where -$$M_n(q^{-x}):=M_n(q^{-x};b,c;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqMeixner} -xp_n(x)&=&p_{n+1}(x)+ -\left[1+q^{-2n-1}\left\{c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+cq^{-4n+1}(1-q^n)(1-bq^n)(c+q^n)p_{n-1}(x), -\end{eqnarray} -where -$$M_n(q^{-x};b,c;q)=\frac{(-1)^nq^{n^2}}{(bq;q)_nc^n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqMeixner} --(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=M_n(q^{-x};b,c;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=cq^x(1-bq^{x+1})\\ -\\ -\displaystyle D(x)=(1-q^x)(1+bcq^x).\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qMeixnerI} -& &M_n(q^{-x-1};b,c;q)-M_n(q^{-x};b,c;q)\nonumber\\ -& &{}=-\frac{q^{-x}(1-q^n)}{c(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1qMeixnerII} -\frac{\Delta M_n(q^{-x};b,c;q)}{\Delta q^{-x}} -=-\frac{q(1-q^n)}{c(1-q)(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qMeixnerI} -& &cq^x(1-bq^x)M_n(q^{-x};b,c;q)-(1-q^x)(1+bcq^x)M_n(q^{-x+1};b,c;q)\nonumber\\ -& &{}=cq^x(1-b)M_{n+1}(q^{-x};bq^{-1},cq;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qMeixnerII} -& &\frac{\nabla\left[w(x;b,c;q)M_n(q^{-x};b,c;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;bq^{-1},cq;q)M_{n+1}(q^{-x};bq^{-1},cq;q), -\end{eqnarray} -where -$$w(x;b,c;q)=\frac{(bq;q)_x}{(q,-bcq;q)_x}c^xq^{\binom{x+1}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqMeixner} -w(x;b,c;q)M_n(q^{-x};b,c;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;bq^n,cq^{-n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} -\begin{equation} -\label{GenqMeixner1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{bq}{-c^{-1}qt} -=\sum_{n=0}^{\infty}\frac{M_n(q^{-x};b,c;q)}{(q;q)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenqMeixner2} -& &\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-b^{-1}c^{-1}q^{-x}}{-c^{-1}q}{bqt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(bq;q)_n}{(-c^{-1}q,q;q)_n}M_n(q^{-x};b,c;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Jacobi $\rightarrow$ $q$-Meixner} -If we set $b=-a^{-1}cd^{-1}$ (with $d>0$) in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we -obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): -\begin{equation} -\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials -by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the -$q$-Hahn polynomials and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q).$$ - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained -from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting -$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition -(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit -$c\rightarrow\infty$: -\begin{equation} -\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be -obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ -in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: -\begin{equation} -M_n(x;0,c;q)=C_n(x;c;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ Al-Salam-Carlitz~II} -The Al-Salam-Carlitz~II polynomials given by (\ref{DefAlSalamCarlitzII}) -can be obtained from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) -by setting $b=-ac^{-1}$ in the definition (\ref{DefqMeixner}) of the -$q$-Meixner polynomials and then taking the limit $c\rightarrow 0$: -\begin{equation} -\lim_{c\rightarrow 0}M_n(x;-ac^{-1},c;q)= -\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ Meixner} -To find the Meixner polynomials given by (\ref{DefMeixner}) from the $q$-Meixner polynomials given by -(\ref{DefqMeixner}) we set $b=q^{\beta-1}$ and $c\rightarrow (1-c)^{-1}c$ and let $q\rightarrow 1$: -\begin{equation} -\lim_{q\rightarrow 1}M_n(q^{-x};q^{\beta-1},(1-c)^{-1}c;q)=M_n(x;\beta,c). -\end{equation} - -\subsection*{Remarks} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) and the little -$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related in the -following way: -$$M_n(q^{-x};b,c;q)=p_n(-c^{-1}q^n;b,b^{-1}q^{-n-x-1}|q).$$ - -\noindent -The $q$-Meixner polynomials and the quantum $q$-Krawtchouk polynomials -given by (\ref{DefQuantumqKrawtchouk}) are related in the following way: -$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamVerma82II}, \cite{AlSalamVerma88}, \cite{AlvarezRonveaux}, -\cite{AtakAtakKlimyk}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, \cite{GasperRahman90}, -\cite{Hahn}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Smirnov}. - - -\section{Quantum $q$-Krawtchouk} -\index{Quantum q-Krawtchouk polynomials@Quantum $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Quantum} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefQuantumqKrawtchouk} -K_n^{qtm}(q^{-x};p,N;q)= -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{-N}}{pq^{n+1}},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtQuantumqKrawtchouk} -& &\sum_{x=0}^N\frac{(pq;q)_{N-x}}{(q;q)_x(q;q)_{N-x}}(-1)^{N-x}q^{\binom{x}{2}} -K_m^{qtm}(q^{-x};p,N;q)K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{(-1)^np^N(q;q)_{N-n}(q,pq;q)_n}{(q,q;q)_N} -q^{\binom{N+1}{2}-\binom{n+1}{2}+Nn}\,\delta_{mn},\quad p>q^{-N}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecQuantumqKrawtchouk} -& &-pq^{2n+1}(1-q^{-x})K_n^{qtm}(q^{-x})\nonumber\\ -& &{}=(1-q^{n-N})K_{n+1}^{qtm}(q^{-x})\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n-N})+q(1-q^n)(1-pq^n)\right]K_n^{qtm}(q^{-x})\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^n)(1-pq^n)K_{n-1}^{qtm}(q^{-x}), -\end{eqnarray} -where -$$K_n^{qtm}(q^{-x}):=K_n^{qtm}(q^{-x};p,N;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecQuantumqKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+ -\left[1-p^{-1}q^{-2n-1}\left\{(1-q^{n-N})+q(1-q^n)(1-pq^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+p^{-2}q^{-4n+1}(1-q^n)(1-pq^n)(1-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$K_n^{qtm}(q^{-x};p,N;q)=\frac{p^nq^{n^2}}{(q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvQuantumqKrawtchouk} --p(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=K_n^{qtm}(q^{-x};p,N;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=-q^x(1-q^{x-N})\\ -\\ -\displaystyle D(x)=(1-q^x)(p-q^{x-N-1}).\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1QuantumqKrawtchoukI} -& &K_n^{qtm}(q^{-x-1};p,N;q)-K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{pq^{-x}(1-q^n)}{1-q^{-N}}K_{n-1}^{qtm}(q^{-x};pq,N-1;q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1QuantumqKrawtchoukII} -\frac{\Delta K_n^{qtm}(q^{-x};p,N;q)}{\Delta q^{-x}}= -\frac{pq(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}^{qtm}(q^{-x};pq,N-1;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2QuantumqKrawtchoukI} -& &(1-q^{x-N-1})K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}\mathindent{}+q^{-x}(1-q^x)(p-q^{x-N-1})K_n^{qtm}(q^{-x+1};p,N;q)\nonumber\\ -& &{}=(1-q^{-N-1})K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2QuantumqKrawtchoukII} -& &\frac{\nabla\left[w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;pq^{-1},N+1;q)K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q), -\end{eqnarray} -where -$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q,p^{-1}q^{-N};q)_x}(-p)^{-x}q^{\binom{x+1}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodQuantumqKrawtchouk} -w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^n,N-n;q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenQuantumqKrawtchouk1} -& &(q^{x-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},pq^{N+1-x}}{0}{q^{x-N}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenQuantumqKrawtchouk2} -& &(q^{-x}t;q)_x\cdot\qhyp{2}{1}{q^{x-N},0}{pq}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(pq,q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} -The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of -the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: -$$\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q).$$ - -\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~II} -If we set $p=a^{-1}q^{-N-1}$ in the definition (\ref{DefQuantumqKrawtchouk}) -of the quantum $q$-Krawtchouk polynomials and let $N\rightarrow\infty$ we -obtain the Al-Salam-Carlitz~II polynomials given by -(\ref{DefAlSalamCarlitzII}). In fact we have -\begin{equation} -\lim_{N\rightarrow\infty}K_n^{qtm}(x;a^{-1}q^{-N-1},N;q)= -\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). -\end{equation} - -\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) easily follow from -the quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -in the following way: -\begin{equation} -\lim_{q\rightarrow 1}K_n^{qtm}(q^{-x};p,N;q)=K_n(x;p^{-1},N). -\end{equation} - -\subsection*{Remarks} -The quantum $q$-Krawtchouk polynomials given by -(\ref{DefQuantumqKrawtchouk}) and the $q$-Meixner polynomials given by -(\ref{DefqMeixner}) are related in the following way: -$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ - -\noindent -The quantum $q$-Krawtchouk polynomials are related to the affine -$q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -by the transformation $q\leftrightarrow q^{-1}$ in the following way: -$$K_n^{qtm}(q^x;p,N;q^{-1})=(p^{-1}q;q)_n\left(-\frac{p}{q}\right)^nq^{-\binom{n}{2}} -K_n^{Aff}(q^{x-N};p^{-1},N;q).$$ - -\subsection*{References} -\cite{GasperRahman90}, \cite{Koorn89III}, \cite{Koorn90II}, \cite{Smirnov}. - - -\section{$q$-Krawtchouk}\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} For $n=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{DefqKrawtchouk} -K_n(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}\\ -&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{-pq^{n+N+1}}.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqKrawtchouk} -& &\sum_{x=0}^N\frac{(q^{-N};q)_x}{(q;q)_x}(-p)^{-x}K_m(q^{-x};p,N;q)K_n(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{(q,-pq^{N+1};q)_n}{(-p,q^{-N};q)_n}\frac{(1+p)}{(1+pq^{2n})}\nonumber\\ -& &{}\mathindent{}\times (-pq;q)_Np^{-N}q^{-\binom{N+1}{2}} -\left(-pq^{-N}\right)^nq^{n^2}\,\delta_{mn},\quad p>0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqKrawtchouk} --\left(1-q^{-x}\right)K_n(q^{-x})&=&A_nK_{n+1}(q^{-x})-\left(A_n+C_n\right)K_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+C_nK_{n-1}(q^{-x}), -\end{eqnarray} -where -$$K_n(q^{-x}):=K_n(q^{-x};p,N;q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n-N})(1+pq^n)}{(1+pq^{2n})(1+pq^{2n+1})}\\ -\\ -\displaystyle C_n=-pq^{2n-N-1}\frac{(1+pq^{n+N})(1-q^n)}{(1+pq^{2n-1})(1+pq^{2n})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqKrawtchouk} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$K_n(q^{-x};p,N;q)=\frac{(-pq^n;q)_n}{(q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqKrawtchouk} -& &q^{-n}(1-q^n)(1+pq^n)y(x)\nonumber\\ -& &{}=(1-q^{x-N})y(x+1)-\left[(1-q^{x-N})-p(1-q^x)\right]y(x)\nonumber\\ -& &{}\mathindent{}-p(1-q^x)y(x-1), -\end{eqnarray} -where -$$y(x)=K_n(q^{-x};p,N;q).$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qKrawtchoukI} -& &K_n(q^{-x-1};p,N;q)-K_n(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1+pq^n)}{1-q^{-N}}K_{n-1}(q^{-x};pq^2,N-1;q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1qKrawtchoukII} -\frac{\Delta K_n(q^{-x};p,N;q)}{\Delta q^{-x}}= -\frac{q^{-n+1}(1-q^n)(1+pq^n)}{(1-q)(1-q^{-N})}K_{n-1}(q^{-x};pq^2,N-1;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qKrawtchoukI} -& &(1-q^{x-N-1})K_n(q^{-x};p,N;q)+pq^{-1}(1-q^x)K_n(q^{-x+1};p,N;q)\nonumber\\ -& &{}=q^x(1-q^{-N-1})K_{n+1}(q^{-x};pq^{-2},N+1;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qKrawtchoukII} -& &\frac{\nabla\left[w(x;p,N;q)K_n(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;pq^{-2},N+1;q)K_{n+1}(q^{-x};pq^{-2},N+1;q), -\end{eqnarray} -where -$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q;q)_x}\left(-\frac{q}{p}\right)^x.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqKrawtchouk} -w(x;p,N;q)K_n(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^{2n},N-n;q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenqKrawtchouk} -& &\qhyp{1}{1}{q^{-x}}{0}{pqt}\,\qhyp{2}{0}{q^{x-N},0}{-}{-q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}K_n(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ $q$-Krawtchouk} -The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) can be obtained from -the $q$-Racah polynomials by setting $\alpha q=q^{-N}$, $\beta=-pq^N$ and -$\gamma=\delta=0$ in the definition (\ref{DefqRacah}) of the $q$-Racah polynomials: -$$R_n(q^{-x};q^{-N-1},-pq^N,0,0|q)=K_n(q^{-x};p,N;q).$$ -Note that $\mu(x)=q^{-x}$ in this case. - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} -If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials -and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by -(\ref{DefqKrawtchouk}): -$$\lim_{\alpha\rightarrow 0} -Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q).$$ - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we -obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} -By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we -obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ Krawtchouk} -If we take the limit $q\rightarrow 1$ in the definition (\ref{DefqKrawtchouk}) of the $q$-Krawtchouk -polynomials we simply find the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) in the -following way: -\begin{equation} -\lim_{q\rightarrow 1}K_n(q^{-x};p,N;q)=K_n(x;(p+1)^{-1},N). -\end{equation} - -\subsection*{Remark} -The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) and the -dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) are -related in the following way: -$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ -with -$$\lambda(n)=q^{-n}-pq^n$$ -or -$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ -with -$$\lambda(x)=q^{-x}+cq^{x-N}.$$ - -\subsection*{References} -\cite{AlvarezRonveaux}, \cite{AskeyWilson79}, \cite{AtakRahmanSuslov}, -\cite{Campigotto+}, \cite{GasperRahman90}, \cite{Nikiforov+}, -\cite{NoumiMimachi91}, \cite{Stanton80III}, \cite{Stanton84}. - - -\newpage - -\section{Affine $q$-Krawtchouk} -\index{Affine q-Krawtchouk polynomials@Affine $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Affine} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefAffqKrawtchouk} -K_n^{Aff}(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}\\ -&=&\frac{(-pq)^nq^{\binom{n}{2}}}{(pq;q)_n}\, -\qhyp{2}{1}{q^{-n},q^{x-N}}{q^{-N}}{\frac{q^{-x}}{p}},\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAffqKrawtchouk} -& &\sum_{x=0}^N\frac{(pq;q)_x(q;q)_N}{(q;q)_x(q;q)_{N-x}}(pq)^{-x}K_m^{Aff}(q^{-x};p,N;q)K_n^{Aff}(q^{-x};p,N;q)\nonumber\\ -& &{}=(pq)^{n-N}\frac{(q;q)_n(q;q)_{N-n}}{(pq;q)_n(q;q)_N}\,\delta_{mn},\quad 01$, then we have another orthogonality relation given by: -\begin{eqnarray} -\label{OrtContBigqHermite2} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}H_m(x;a|q)H_n(x;a|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1-1 -\end{eqnarray} -and -\begin{eqnarray} -\label{OrtqLaguerre2} -& &\sum_{k=-\infty}^{\infty}\frac{q^{k\alpha+k}}{(-cq^k;q)_{\infty}}L_m^{(\alpha)}(cq^k;q)L_n^{(\alpha)}(cq^k;q)\nonumber\\ -& &{}=\frac{(q,-cq^{\alpha+1},-c^{-1}q^{-\alpha};q)_{\infty}} -{(q^{\alpha+1},-c,-c^{-1}q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn}, -\quad\alpha>-1,\quad c>0. -\end{eqnarray} -For $c=1$ the latter orthogonality relation can also be written as -\begin{eqnarray} -\label{OrtqLaguerre3} -& &\int_0^{\infty}\frac{x^{\alpha}}{(-x;q)_{\infty}}L_m^{(\alpha)}(x;q)L_n^{(\alpha)}(x;q)\,d_qx\nonumber\\ -& &{}=\frac{1-q}{2}\,\frac{(q,-q^{\alpha+1},-q^{-\alpha};q)_{\infty}} -{(q^{\alpha+1},-q,-q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn},\quad\alpha>-1. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqLaguerre} --q^{2n+\alpha+1}xL_n^{(\alpha)}(x;q)&=&(1-q^{n+1})L_{n+1}^{(\alpha)}(x;q)\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]L_n^{(\alpha)}(x;q)\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^{n+\alpha})L_{n-1}^{(\alpha)}(x;q). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqLaguerre} -xp_n(x)&=&p_{n+1}(x)+q^{-2n-\alpha-1}\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+q^{-4n-2\alpha+1}(1-q^n)(1-q^{n+\alpha})p_{n-1}(x), -\end{eqnarray} -where -$$L_n^{(\alpha)}(x;q)=\frac{(-1)^nq^{n(n+\alpha)}}{(q;q)_n}p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqLaguerre} --q^{\alpha}(1-q^n)xy(x)=q^{\alpha}(1+x)y(qx)-\left[1+q^{\alpha}(1+x)\right]y(x)+y(q^{-1}x), -\end{equation} -where -$$y(x)=L_n^{(\alpha)}(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qLaguerreI} -L_n^{(\alpha)}(x;q)-L_n^{(\alpha)}(qx;q)=-q^{\alpha+1}xL_{n-1}^{(\alpha+1)}(qx;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qLaguerreII} -\mathcal{D}_qL_n^{(\alpha)}(x;q)=-\frac{q^{\alpha+1}}{1-q}L_{n-1}^{(\alpha+1)}(qx;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qLaguerreI} -L_n^{(\alpha)}(x;q)-q^{\alpha}(1+x)L_n^{(\alpha)}(qx;q)=(1-q^{n+1})L_{n+1}^{(\alpha-1)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qLaguerreII} -\mathcal{D}_q\left[w(x;\alpha;q)L_n^{(\alpha)}(x;q)\right]= -\frac{1-q^{n+1}}{1-q}w(x;\alpha-1;q)L_{n+1}^{(\alpha-1)}(x;q), -\end{equation} -where -$$w(x;\alpha;q)=\frac{x^{\alpha}}{(-x;q)_{\infty}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqLaguerre} -w(x;\alpha;q)L_n^{(\alpha)}(x;q)= -\frac{(1-q)^n}{(q;q)_n}\left(\mathcal{D}_q\right)^n\left[w(x;\alpha+n;q)\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenqLaguerre1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-x}{0}{q^{\alpha+1}t} -=\sum_{n=0}^{\infty}L_n^{(\alpha)}(x;q)t^n. -\end{equation} - -\begin{equation} -\label{GenqLaguerre2} -\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{q^{\alpha+1}}{-q^{\alpha+1}xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x;q)}{(q^{\alpha+1};q)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenqLaguerre3} -(t;q)_{\infty}\cdot\qhyp{0}{2}{-}{q^{\alpha+1},t}{-q^{\alpha+1}xt} -=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenqLaguerre4} -& &\frac{(\gamma t;q)_{\infty}}{(t;q)_{\infty}}\,\qhyp{1}{2}{\gamma}{q^{\alpha+1},\gamma t}{-q^{\alpha+1}xt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Laguerre} -If we substitute $a=q^{\alpha}$ and $x\rightarrow -b^{-1}q^{-1}x$ in the definition -(\ref{DefLittleqJacobi}) of the little $q$-Jacobi polynomials and then take the limit -$b\rightarrow -\infty$ we find the $q$-Laguerre polynomials given by (\ref{DefqLaguerre}): -$$\lim_{b\rightarrow -\infty}p_n(-b^{-1}q^{-1}x;q^{\alpha},b|q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained -from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting -$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition -(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit -$c\rightarrow\infty$: -$$\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ - -\subsubsection*{$q$-Laguerre $\rightarrow$ Stieltjes-Wigert} -If we set $x\rightarrow xq^{-\alpha}$ in the definition -(\ref{DefqLaguerre}) of the $q$-Laguerre polynomials and take the limit -$\alpha\rightarrow\infty$ we simply obtain the Stieltjes-Wigert polynomials given -by (\ref{DefStieltjesWigert}): -\begin{equation} -\lim_{\alpha\rightarrow\infty}L_n^{(\alpha)}\left(xq^{-\alpha};q\right)=S_n(x;q). -\end{equation} - -\subsubsection*{$q$-Laguerre $\rightarrow$ Laguerre / Charlier} -If we set $x\rightarrow (1-q)x$ in the definition (\ref{DefqLaguerre}) -of the $q$-Laguerre polynomials and take the limit $q\rightarrow 1$ we obtain -the Laguerre polynomials given by (\ref{DefLaguerre}): -\begin{equation} -\lim_{q\rightarrow 1}L_n^{(\alpha)}((1-q)x;q)=L_n^{(\alpha)}(x). -\end{equation} - -If we set $x\rightarrow -q^{-x}$ and $q^{\alpha}=a^{-1}(q-1)^{-1}$ (or -$\alpha=-(\ln q)^{-1}\ln (q-1)a$) in the definition (\ref{DefqLaguerre}) of the -$q$-Laguerre polynomials, multiply by $(q;q)_n$, and take the limit -$q\rightarrow 1$ we obtain the Charlier polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\,(q;q)_nL_n^{(\alpha)}(-q^{-x};q)=C_n(x;a), -\end{equation} -where -$$q^{\alpha}=\frac{1}{a(q-1)}\quad\textrm{or}\quad\alpha=-\frac{\ln (q-1)a}{\ln q}.$$ - -\subsection*{Remarks} -The $q$-Laguerre polynomials are sometimes called the -generalized Stieltjes-Wigert polynomials. - -If we replace $q$ by $q^{-1}$ we obtain the little $q$-Laguerre -(or Wall) polynomials given by (\ref{DefLittleqLaguerre}) in the following -way: -$$L_n^{(\alpha)}(x;q^{-1})=\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^{n\alpha}}p_n(-x;q^{\alpha}|q).$$ - -\noindent -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the $q$-Bessel polynomials -given by (\ref{DefqBessel}) are related in the following way: -$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ - -\noindent -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the -$q$-Charlier polynomials given by (\ref{DefqCharlier}) are related in the -following way: -$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ - -\noindent -Since the Stieltjes and Hamburger moment problems corresponding to the -$q$-Laguerre polynomials are indeterminate there exist many different weight -functions. - -\subsection*{References} -\cite{NAlSalam89}, \cite{AlSalam90}, \cite{Askey86}, \cite{Askey89I}, \cite{AskeyWilson85}, -\cite{AtakAtakI}, \cite{ChenIsmailMuttalib}, \cite{Chihara68II}, \cite{Chihara78}, -\cite{Chihara79}, \cite{Chris}, \cite{Exton77}, \cite{GasperRahman90}, \cite{GrunbaumHaine96}, -\cite{Ismail2005I}, \cite{IsmailRahman98}, \cite{Jain95}, \cite{Moak}. - - -\section{$q$-Bessel} -\index{q-Bessel polynomials@$q$-Bessel polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefqBessel} -y_n(x;a;q)&=&\qhyp{2}{1}{q^{-n},-aq^n}{0}{qx}\\ -&=&(q^{-n+1}x;q)_n\cdot\qhyp{1}{1}{q^{-n}}{q^{-n+1}x}{-aq^{n+1}x}\nonumber\\ -&=&\left(-aq^nx\right)^n\cdot\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-\frac{q^{-n+1}}{a}}.\nonumber -\end{eqnarray} - -\newpage - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqBessel} -& &\sum_{k=0}^{\infty}\frac{a^k}{(q;q)_k}q^{\binom{k+1}{2}}y_m(q^k;a;q)y_n(q^k;a;q)\nonumber\\ -& &{}=(q;q)_n(-aq^n;q)_{\infty}\frac{a^nq^{\binom{n+1}{2}}}{(1+aq^{2n})}\,\delta_{mn},\quad a>0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecqBessel} --xy_n(x;a;q)=A_ny_{n+1}(x;a;q)-(A_n+C_n)y_n(x;a;q)+C_ny_{n-1}(x;a;q), -\end{equation} -where -$$\left\{\begin{array}{l}\displaystyle A_n=q^n\frac{(1+aq^n)}{(1+aq^{2n})(1+aq^{2n+1})}\\ -\\ -\displaystyle C_n=aq^{2n-1}\frac{(1-q^n)}{(1+aq^{2n-1})(1+aq^{2n})}.\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqBessel} -xp_n(x)=p_{n+1}(x)+(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$y_n(x;a;q)=(-1)^nq^{-\binom{n}{2}}(-aq^n;q)_np_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqBessel} -& &-q^{-n}(1-q^n)(1+aq^n)xy(x)\nonumber\\ -& &{}=axy(qx)-(ax+1-x)y(x)+(1-x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=y_n(x;a;q).$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qBesselI} -y_n(x;a;q)-y_n(qx;a;q)=-q^{-n+1}(1-q^n)(1+aq^n)xy_{n-1}(x;aq^2;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qBesselII} -\mathcal{D}_qy_n(x;a;q)=-\frac{q^{-n+1}(1-q^n)(1+aq^n)}{1-q}y_{n-1}(x;aq^2;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qBesselI} -aq^{x-1}y_n(q^x;a;q)-(1-q^x)y_n(q^{x-1}x;a;q)=-y_{n+1}(q^x;aq^{-2};q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qBesselII} -\frac{\nabla\left[w(x;a;q)y_n(q^x;a;q)\right]}{\nabla q^x}= -\frac{q^2}{a(1-q)}w(x;aq^{-2};q)y_{n+1}(q^x;aq^{-2};q), -\end{equation} -where -$$w(x;a;q)=\frac{a^xq^{\binom{x}{2}}}{(q;q)_x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqBessel} -w(x;a;q)y_n(q^x;a;q)=a^n(1-q)^nq^{n(n-1)}\left(\nabla_q\right)^n\left[w(x;aq^{2n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^x}.$$ - -\subsection*{Generating functions} -\begin{eqnarray} -\label{GenqBessel1} -& &\qhyp{0}{1}{-}{0}{-aq^{x+1}t}\,\qhyp{2}{0}{q^{-x},0}{-}{q^xt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{y_n(q^x;a;q)}{(q;q)_n}t^n,\quad x=0,1,2,\ldots. -\end{eqnarray} - -\begin{equation} -\label{GenqBessel2} -\frac{(t;q)_{\infty}}{(xt;q)_{\infty}}\,\qhyp{1}{3}{xt}{0,0,t}{-aqxt}= -\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q;q)_n}y_n(x;a;q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Bessel} -If we set $b\rightarrow -a^{-1}q^{-1}b$ in the definition (\ref{DefLittleqJacobi}) of -the little $q$-Jacobi polynomials and then take the limit $a\rightarrow 0$ we obtain -the $q$-Bessel polynomials given by (\ref{DefqBessel}): -$$\lim_{a\rightarrow 0}p_n(x;a,-a^{-1}q^{-1}b|q)=y_n(x;b;q).$$ - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we -obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): -$$\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q).$$ - -\subsubsection*{$q$-Bessel $\rightarrow$ Stieltjes-Wigert} -The Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) can be obtained -from the $q$-Bessel polynomials by setting $x\rightarrow a^{-1}x$ in the definition -(\ref{DefqBessel}) of the $q$-Bessel polynomials and then taking the limit -$a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty}y_n(a^{-1}x;a;q)=(q;q)_nS_n(x;q). -\end{equation} - -\subsubsection*{$q$-Bessel $\rightarrow$ Bessel} -If we set $x\rightarrow -\frac{1}{2}(1-q)^{-1}x$ and $a\rightarrow -q^{a+1}$ in the definition -(\ref{DefqBessel}) of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ -we find the Bessel polynomials given by (\ref{DefBessel}): -\begin{equation} -\lim_{q\rightarrow 1}y_n(-\textstyle\frac{1}{2}(1-q)^{-1}x;-q^{a+1};q)=y_n(x;a). -\end{equation} - -\subsubsection*{$q$-Bessel $\rightarrow$ Charlier} -If we set $x\rightarrow q^x$ and $a\rightarrow a(1-q)$ in the definition (\ref{DefqBessel}) -of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ we find the Charlier -polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\frac{y_n(q^x;a(1-q);q)}{(q-1)^n}=a^nC_n(x;a). -\end{equation} - -\subsection*{Remark} -In \cite{Koekoek94} and \cite{Koekoek98} these $q$-Bessel polynomials were called -\emph{alternative $q$-Charlier polynomials}. - -\noindent -The $q$-Bessel polynomials given by (\ref{DefqBessel}) and the $q$-Laguerre -polynomials given by (\ref{DefqLaguerre}) are related in the following way: -$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ - -\subsection*{Reference} -\cite{DattaGriffin}. - - -\section{$q$-Charlier}\index{q-Charlier polynomials@$q$-Charlier polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefqCharlier} -C_n(q^{-x};a;q)&=&\qhyp{2}{1}{q^{-n},q^{-x}}{0}{-\frac{q^{n+1}}{a}}\\ -&=&(-a^{-1}q;q)_n\cdot\qhyp{1}{1}{q^{-n}}{-a^{-1}q}{-\frac{q^{n+1-x}}{a}}.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqCharlier} -& &\sum_{x=0}^{\infty}\frac{a^x}{(q;q)_x}q^{\binom{x}{2}}C_m(q^{-x};a;q)C_n(q^{-x};a;q)\nonumber\\ -& &{}=q^{-n}(-a;q)_{\infty}(-a^{-1}q,q;q)_n\,\delta_{mn},\quad a>0. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqCharlier} -& &q^{2n+1}(1-q^{-x})C_n(q^{-x})\nonumber\\ -& &{}=aC_{n+1}(q^{-x})-\left[a+q(1-q^n)(a+q^n)\right]C_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+q(1-q^n)(a+q^n)C_{n-1}(q^{-x}), -\end{eqnarray} -where -$$C_n(q^{-x}):=C_n(q^{-x};a;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqCharlier} -xp_n(x)&=&p_{n+1}(x)+\left[1+q^{-2n-1}\left\{a+q(1-q^n)(a+q^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+aq^{-4n+1}(1-q^n)(a+q^n)p_{n-1}(x), -\end{eqnarray} -where -$$C_n(q^{-x};a;q)=\frac{(-1)^nq^{n^2}}{a^n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqCharlier} -q^ny(x)=aq^xy(x+1)-q^x(a-1)y(x)+(1-q^x)y(x-1), -\end{equation} -where -$$y(x)=C_n(q^{-x};a;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qCharlierI} -C_n(q^{-x-1};a;q)-C_n(q^{-x};a;q)=-a^{-1}q^{-x}(1-q^n)C_{n-1}(q^{-x};aq^{-1};q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qCharlierII} -\frac{\Delta C_n(q^{-x};a;q)}{\Delta q^{-x}}=-\frac{q(1-q^n)}{a(1-q)}C_{n-1}(q^{-x};aq^{-1};q). -\end{equation} - -\newpage - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qCharlierI} -C_n(q^{-x};a;q)-a^{-1}q^{-x}(1-q^x)C_n(q^{-x+1};a;q)=C_{n+1}(q^{-x};aq;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qCharlierII} -\frac{\nabla\left[w(x;a;q)C_n(q^{-x};a;q)\right]}{\nabla q^{-x}} -=\frac{1}{1-q}w(x;aq;q)C_{n+1}(q^{-x};aq;q), -\end{equation} -where -$$w(x;a;q)=\frac{a^xq^{\binom{x+1}{2}}}{(q;q)_x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqCharlier} -w(x;a;q)C_n(q^{-x};a;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;aq^{-n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} -\begin{equation} -\label{GenqCharlier1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{0}{-a^{-1}qt} -=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(q;q)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenqCharlier2} -\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{-a^{-1}q}{-a^{-1}q^{-x+1}t} -=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(-a^{-1}q,q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be -obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ -in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: -\begin{equation} -M_n(x;0,c;q)=C_n(x;c;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} -By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we -obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): -$$\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q).$$ - -\subsubsection*{$q$-Charlier $\rightarrow$ Stieltjes-Wigert} -If we set $q^{-x}\rightarrow ax$ in the definition (\ref{DefqCharlier}) of the -$q$-Charlier polynomials and take the limit $a\rightarrow\infty$ we obtain -the Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) in the -following way: -\begin{equation} -\lim_{a\rightarrow\infty}C_n(ax;a;q)=(q;q)_nS_n(x;q). -\end{equation} - -\subsubsection*{$q$-Charlier $\rightarrow$ Charlier} -If we set $a\rightarrow a(1-q)$ in the definition (\ref{DefqCharlier}) -of the $q$-Charlier polynomials and take the limit $q\rightarrow 1$ we obtain the -Charlier polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}C_n(q^{-x};a(1-q);q)=C_n(x;a). -\end{equation} - -\subsection*{Remark} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) and the -$q$-Laguerre polynomials given by (\ref{DefqLaguerre}) are related in the -following way: -$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ - -\subsection*{References} -\cite{AlvarezRonveaux}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, -\cite{Hahn}, \cite{Koelink96III}, \cite{Nikiforov+}, \cite{Zeng95}. - - -\section{Al-Salam-Carlitz~I}\index{Al-Salam-Carlitz~I polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefAlSalamCarlitzI} -U_n^{(a)}(x;q)=(-a)^nq^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{\frac{qx}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAlSalamCarlitzI} -& &\int_a^1(qx,a^{-1}qx;q)_{\infty}U_m^{(a)}(x;q)U_n^{(a)}(x;q)\,d_qx\nonumber\\ -& &{}=(-a)^n(1-q)(q;q)_n(q,a,a^{-1}q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn},\quad a<0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecAlSalamCarlitzI} -xU_n^{(a)}(x;q)=U_{n+1}^{(a)}(x;q)+(a+1)q^nU_n^{(a)}(x;q) --aq^{n-1}(1-q^n)U_{n-1}^{(a)}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecAlSalamCarlitzI} -xp_n(x)=p_{n+1}(x)+(a+1)q^np_n(x)-aq^{n-1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$$U_n^{(a)}(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvAlSalamCarlitzI} -(1-q^n)x^2y(x)&=&aq^{n-1}y(qx)-\left[aq^{n-1}+q^n(1-x)(a-x)\right]y(x)\nonumber\\ -& &{}\mathindent{}+q^n(1-x)(a-x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=U_n^{(a)}(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1AlSalamCarlitzI-I} -U_n^{(a)}(x;q)-U_n^{(a)}(qx;q)=(1-q^n)xU_{n-1}^{(a)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1AlSalamCarlitzI-II} -\mathcal{D}_qU_n^{(a)}(x;q)=\frac{1-q^n}{1-q}U_{n-1}^{(a)}(x;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2AlSalamCarlitzI-I} -aU_n^{(a)}(x;q)-(1-x)(a-x)U_n^{(a)}(q^{-1}x;q)=-q^{-n}xU_{n+1}^{(a)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2AlSalamCarlitzI-II} -\mathcal{D}_{q^{-1}}\left[w(x;a;q)U_n^{(a)}(x;q)\right]= -\frac{q^{-n+1}}{a(1-q)}w(x;a;q)U_{n+1}^{(a)}(x;q), -\end{equation} -where -$$w(x;a;q)=(qx,a^{-1}qx;q)_{\infty}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodAlSalamCarlitzI} -w(x;a;q)U_n^{(a)}(x;q)=a^nq^{\frac{1}{2}n(n-3)}(1-q)^n -\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;a;q)\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenAlSalamCarlitzI} -\frac{(t,at;q)_{\infty}}{(xt;q)_{\infty}}= -\sum_{n=0}^{\infty}\frac{U_n^{(a)}(x;q)}{(q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Laguerre $\rightarrow$ Al-Salam-Carlitz~I} -If we set $x\rightarrow aqx$ and $b\rightarrow ab$ in the definition -(\ref{DefBigqLaguerre}) of the big $q$-Laguerre polynomials and take the -limit $a\rightarrow 0$ we obtain the Al-Salam-Carlitz~I polynomials given by -(\ref{DefAlSalamCarlitzI}): -$$\lim_{a\rightarrow 0}\frac{P_n(aqx;a,ab;q)}{a^n}=q^nU_n^{(b)}(x;q).$$ - -\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} -If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) -of the dual $q$-Krawtchouk polynomials and take the limit -$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials -given by (\ref{DefAlSalamCarlitzI}): -$$\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= -\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q).$$ -Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} -The discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) can easily be obtained from the -Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the -substitution $a=-1$: -\begin{equation} -U_n^{(-1)}(x;q)=h_n(x;q). -\end{equation} - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Charlier / Hermite} -If we set $a\rightarrow a(q-1)$ and $x\rightarrow q^x$ in the definition -(\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I polynomials and take the -limit $q\rightarrow 1$ after dividing by $a^n(1-q)^n$ we obtain the Charlier -polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\frac{U_n^{(a(q-1))}(q^x;q)}{(1-q)^n}=a^nC_n(x;a). -\end{equation} - -If we set $x\rightarrow x\sqrt{1-q^2}$ and $a\rightarrow a\sqrt{1-q^2}-1$ -in the definition (\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I -polynomials, divide by $(1-q^2)^{\frac{n}{2}}$, and let $q$ tend to $1$ we -obtain the Hermite polynomials given by (\ref{DefHermite}) with shifted -argument. In fact we have -\begin{equation} -\lim_{q\rightarrow 1}\frac{U_n^{(a\sqrt{1-q^2}-1)}(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x-a)}{2^n}. -\end{equation} - -\subsection*{Remark} -The Al-Salam-Carlitz~I polynomials are related to the Al-Salam-Carlitz~II -polynomials given by (\ref{DefAlSalamCarlitzII}) in the following way: -$$U_n^{(a)}(x;q^{-1})=V_n^{(a)}(x;q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AlSalamChihara76}, \cite{AskeySuslovII}, -\cite{AtakRahmanSuslov}, \cite{Chihara68II}, \cite{Chihara78}, \cite{DattaGriffin}, -\cite{Dehesa}, \cite{DohaAhmed2005}, \cite{GasperRahman90}, \cite{Ismail85I}, -\cite{IsmailMuldoon}, \cite{Kim}, \cite{Zeng95}. - - -\section{Al-Salam-Carlitz~II}\index{Al-Salam-Carlitz~II polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefAlSalamCarlitzII} -V_n^{(a)}(x;q)= -(-a)^nq^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},x}{-}{\frac{q^n}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAlSalamCarlitzII} -& &\sum_{k=0}^{\infty}\frac{q^{k^2}a^k}{(q;q)_k(aq;q)_k} -V_m^{(a)}(q^{-k};q)V_n^{(a)}(q^{-k};q)\nonumber\\ -& &{}=\frac{(q;q)_na^n}{(aq;q)_{\infty}q^{n^2}}\,\delta_{mn},\quad 00,\quad\textrm{with}\quad -\gamma^2=-\frac{1}{2\ln q}.$$ - -\subsection*{References} -\cite{Askey86}, \cite{Askey89I}, \cite{AtakAtakIII}, \cite{Chihara70}, \cite{Chihara78}, -\cite{Dehesa}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Stieltjes}, \cite{Szego75}, -\cite{ValentAssche}, \cite{Wigert}. - - -\section{Discrete $q$-Hermite~I} -\index{Discrete q-Hermite~I polynomials@Discrete $q$-Hermite~I polynomials} -\index{q-Hermite~I polynomials@$q$-Hermite~I polynomials!Discrete} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -The discrete $q$-Hermite~I polynomials are Al-Salam-Carlitz~I polynomials -with $a=-1$: -\begin{eqnarray} -\label{DefDiscreteqHermiteI} -h_n(x;q)=U_n^{(-1)}(x;q)&=&q^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-qx}\\ -&=&x^n\qhypK{2}{0}{q^{-n},q^{-n+1}}{0}{q^2,\frac{q^{2n-1}}{x^2}}\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDiscreteqHermiteI} -& &\int_{-1}^1(qx,-qx;q)_{\infty}h_m(x;q)h_n(x;q)\,d_qx\nonumber\\ -& &{}=(1-q)(q;q)_n(q,-1,-q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDiscreteqHermiteI} -xh_n(x;q)=h_{n+1}(x;q)+q^{n-1}(1-q^n)h_{n-1}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDiscreteqHermiteI} -xp_n(x)=p_{n+1}(x)+q^{n-1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$$h_n(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDiscreteqHermiteI} --q^{-n+1}x^2y(x)=y(qx)-(1+q)y(x)+q(1-x^2)y(q^{-1}x), -\end{equation} -where -$$y(x)=h_n(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1DiscreteqHermiteI-I} -h_n(x;q)-h_n(qx;q)=(1-q^n)xh_{n-1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1DiscreteqHermiteI-II} -\mathcal{D}_qh_n(x;q)=\frac{1-q^n}{1-q}h_{n-1}(x;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2DiscreteqHermiteI-I} -h_n(x;q)-(1-x^2)h_n(q^{-1}x;q)=q^{-n}xh_{n+1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2DiscreteqHermiteI-II} -\mathcal{D}_{q^{-1}}\left[w(x;q)h_n(x;q)\right] -=-\frac{q^{-n+1}}{1-q}w(x;q)h_{n+1}(x;q), -\end{equation} -where -$$w(x;q)=(qx,-qx;q)_{\infty}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDiscreteqHermiteI} -w(x;q)h_n(x;q)=(q-1)^nq^{\frac{1}{2}n(n-3)} -\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;q)\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenDiscreteqHermiteI} -\frac{(t^2;q^2)_{\infty}}{(xt;q)_{\infty}}= -\sum_{n=0}^{\infty}\frac{h_n(x;q)}{(q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} -The discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) can easily be obtained from the -Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the -substitution $a=-1$: -$$U_n^{(-1)}(x;q)=h_n(x;q).$$ - -\subsubsection*{Discrete $q$-Hermite~I $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be found -from the discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) in the following way: -\begin{equation} -\lim_{q\rightarrow 1}\frac{h_n(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. -\end{equation} - -\subsection*{Remark} The discrete $q$-Hermite~I polynomials are related to the -discrete $q$-Hermite~II polynomials given by (\ref{DefDiscreteqHermiteII}) -in the following way: -$$h_n(ix;q^{-1})=i^n{\tilde h}_n(x;q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AtakRahmanSuslov}, -\cite{BergIsmail}, \cite{BustozIsmail82}, \cite{GasperRahman90}, \cite{Hahn}, -\cite{Koorn97}. - - -\newpage - -\section{Discrete $q$-Hermite~II} -\index{Discrete q-Hermite~II polynomials@Discrete $q$-Hermite~II polynomials} -\index{q-Hermite~II polynomials@$q$-Hermite~II polynomials!Discrete} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -The discrete $q$-Hermite~II polynomials are Al-Salam-Carlitz~II polynomials -with $a=-1$: -\begin{eqnarray} -\label{DefDiscreteqHermiteII} -{\tilde h}_n(x;q)=i^{-n}V_n^{(-1)}(ix;q) -&=&i^{-n}q^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},ix}{-}{-q^n}\\ -&=&x^n -\qhypK{2}{1}{q^{-n},q^{-n+1}}{0}{q^2,-\frac{q^2}{x^2}}\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDiscreteqHermiteIIa} -& &\sum_{k=-\infty}^{\infty}\left[{\tilde h}_m(cq^k;q) -{\tilde h}_n(cq^k;q)+{\tilde h}_m(-cq^k;q){\tilde h}_n(-cq^k;q)\right] -w(cq^k;q)q^k\nonumber\\ -& &{}=2\frac{(q^2,-c^2q,-c^{-2}q;q^2)_{\infty}}{(q,-c^2,-c^{-2}q^2;q^2)_{\infty}} -\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn},\quad c>0, -\end{eqnarray} -where -$$w(x;q)=\frac{1}{(ix,-ix;q)_{\infty}}=\frac{1}{(-x^2;q^2)_{\infty}}.$$ -For $c=1$ this orthogonality relation can also be written as -\begin{equation} -\label{OrtDiscreteqHermiteIIb} -\int_{-\infty}^{\infty}\frac{{\tilde h}_m(x;q){\tilde h}_n(x;q)}{(-x^2;q^2)_{\infty}}\,d_qx -=\frac{\left(q^2,-q,-q;q^2\right)_{\infty}}{\left(q^3,-q^2,-q^2;q^2\right)_{\infty}} -\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDiscreteqHermiteII} -x{\tilde h}_n(x;q)={\tilde h}_{n+1}(x;q)+q^{-2n+1}(1-q^n){\tilde h}_{n-1}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDiscreteqHermiteII} -xp_n(x)=p_{n+1}(x)+q^{-2n+1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$${\tilde h}_n(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvDiscreteqHermiteII} -& &-(1-q^n)x^2{\tilde h}_n(x;q)\nonumber\\ -& &{}=(1+x^2){\tilde h}_n(qx;q)-(1+x^2+q){\tilde h}_n(x;q)+q{\tilde h}_n(q^{-1}x;q). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1DiscreteqHermiteII-I} -\tilde{h}_n(x;q)-\tilde{h}_n(qx;q)=q^{-n+1}(1-q^n)x\tilde{h}_{n-1}(qx;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1DiscreteqHermiteII-II} -\mathcal{D}_q\tilde{h}_n(x;q)=\frac{q^{-n+1}(1-q^n)}{1-q}\tilde{h}_{n-1}(qx;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2DiscreteqHermiteII-I} -\tilde{h}_n(x;q)-(1+x^2)\tilde{h}_n(qx;q)=-q^nx\tilde{h}_{n+1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2DiscreteqHermiteII-II} -\mathcal{D}_q\left[w(x;q)\tilde{h}_n(x;q)\right] -=-\frac{q^n}{1-q}w(x;q)\tilde{h}_{n+1}(x;q). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDiscreteqHermiteII} -w(x;q)\tilde{h}_n(x;q)=(q-1)^nq^{-\binom{n}{2}} -\left(\mathcal{D}_q\right)^n\left[w(x;q)\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenDiscreteqHermiteII1} -\frac{(-xt;q)_{\infty}}{(-t^2;q^2)_{\infty}}=\sum_{n=0}^{\infty} -\frac{q^{\binom{n}{2}}}{(q;q)_n}{\tilde h}_n(x;q)t^n. -\end{equation} - -\begin{equation} -\label{GenDiscreteqHermiteII2} -(-it;q)_{\infty}\cdot\qhyp{1}{1}{ix}{-it}{it}=\sum_{n=0}^{\infty} -\frac{(-1)^nq^{n(n-1)}}{(q;q)_n}{\tilde h}_n(x;q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Al-Salam-Carlitz~II $\rightarrow$ Discrete $q$-Hermite~II} -The discrete $q$-Hermite~II polynomials given by -(\ref{DefDiscreteqHermiteII}) follow from the Al-Salam-Carlitz~II -polynomials given by (\ref{DefAlSalamCarlitzII}) by the substitution $a=-1$ -in the following way: -$$i^{-n}V_n^{(-1)}(ix;q)={\tilde h}_n(x;q).$$ - -\subsubsection*{Discrete $q$-Hermite~II $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be found -from the discrete $q$-Hermite~II polynomials given by -(\ref{DefDiscreteqHermiteII}) in the following way: -\begin{equation} -\lim_{q\rightarrow 1}\frac{{\tilde h}_n(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. -\end{equation} - -\subsection*{Remark} The discrete $q$-Hermite~II polynomials are related to the -discrete $q$-Hermite~I polynomials given by (\ref{DefDiscreteqHermiteI}) -in the following way: -$${\tilde h}_n(x;q^{-1})=i^{-n}h_n(ix;q).$$ - -\subsection*{References} -\cite{BergIsmail}, \cite{Koorn97}. - -\end{document} diff --git a/KLSadd_insertion/newtempchap09.tex b/KLSadd_insertion/newtempchap09.tex deleted file mode 100644 index 8186c8d..0000000 --- a/KLSadd_insertion/newtempchap09.tex +++ /dev/null @@ -1,3934 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\usepackage[pdftex]{hyperref} -\usepackage {xparse} -\usepackage{cite} -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\textheight 25cm - -\newcommand\sa{\smallskipamount} -\newcommand\sLP{\\[\sa]} -\newcommand\sPP{\\[\sa]\indent} -\newcommand\ba{\bigskipamount} -\newcommand\bLP{\\[\ba]} -\newcommand\CC{\mathbb{C}} -\newcommand\RR{\mathbb{R}} -\newcommand\ZZ{\mathbb{Z}} -\newcommand\al\alpha -\newcommand\be\beta -\newcommand\ga\gamma -\newcommand\de\delta -\newcommand\tha\theta -\newcommand\la\lambda -\newcommand\om\omega -\newcommand\Ga{\Gamma} -\newcommand\half{\frac12} -\newcommand\thalf{\tfrac12} -\newcommand\iy\infty -\newcommand\wt{\widetilde} -\newcommand\const{{\rm const.}\,} -\newcommand\Zpos{\ZZ_{>0}} -\newcommand\Znonneg{\ZZ_{\ge0}} -\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} -\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} -\newcommand\LHS{left-hand side} -\newcommand\RHS{right-hand side} -\renewcommand\Re{{\rm Re}\,} -\renewcommand\Im{{\rm Im}\,} - -\NewDocumentCommand\mycite{m g}{% - \IfNoValueTF{#2} - {[\hyperlink{#1}{#1}]} - {[\hyperlink{#1}{#1}, #2]}% -} -\newcommand\mybibitem[1]{\bibitem[#1]{#1}\hypertarget{#1}{}} -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\large - -\addtocounter{chapter}{8} -\pagenumbering{roman} -\chapter{Hypergeometric orthogonal polynomials} -\label{HyperOrtPol} - - -In this chapter we deal with all families of hypergeometric orthogonal polynomials -appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal -polynomials we state the most important properties such as a representation as a -hypergeometric function, orthogonality relation(s), the three-term recurrence relation, -the second-order differential or difference equation, the forward shift (or degree lowering) -and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating -functions. In each case we use the notation which seems to be most common in the literature. -Moreover, in each case we mention the connection between various families by stating the -appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of -this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. -For notations the reader is referred to chapter~\ref{Definitions}. - -\section{Wilson}\index{Wilson polynomials} - -\par - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefWilson} -& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ -& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. -\end{eqnarray} - -\newpage - -\subsection*{Orthogonality relation} -If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then -\begin{eqnarray} -\label{OrthIWilson} -& &\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, -\end{eqnarray} -where -\begin{eqnarray*} -& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ -& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). -\end{eqnarray*} -If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates -occur with positive real parts, then -\begin{eqnarray} -\label{OrtIIWilson} -& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ -& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} -{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} -\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ -& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecWilson} --\left(a^2+x^2\right){\tilde{W}}_n(x^2) -=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), -\end{equation} -where -$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecWilson} -xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvWilson} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=W_n(x^2;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] -\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1WilsonI} -& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) --W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1WilsonII} -& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ -& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{eqnarray} - -\newpage - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2WilsonI} -& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) -(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) -W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2WilsonII} -& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ -& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodWilson} -& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ -& &{}=\left(\frac{\delta}{\delta x^2}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenWilson1} -\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson2} -\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson3} -\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. -\end{equation} - -\begin{eqnarray} -\label{GenWilson4} -& &(1-t)^{1-a-b-c-d}\nonumber\\ -& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} -{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} -The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the -Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: -\begin{equation} -\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson -polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, -$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following -way: -\begin{equation} -\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson -polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Remarks} -Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then -\begin{eqnarray} -\label{OrtContHahn} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) -p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} -{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecContHahn} -(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), -\end{equation} -where -$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecContHahn} -xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvContHahn} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] -\displaystyle D(x)=(a+ix)(b+ix). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1ContHahnI} -& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, -b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1ContHahnII} -\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) -p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2ContHahnI} -& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, -b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2ContHahnII} -& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ -& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ -& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodContHahn} -& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ -& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenContHahn1} -\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenContHahn2} -\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenContHahn3} -& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} -{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials are obtained from the Wilson polynomials given by -(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, -$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit -$t\rightarrow\infty$ in the following way: -$$\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the -continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ -and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. -\end{equation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials -by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous -Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray} - -\subsection*{Remark} -Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ -Thus, under these assumptions, the continuous Hahn polynomial -$p_n(x;a,b,c,d)$ -is symmetric in $a,b$ and in $c,d$. -This follows from the orthogonality relation (9.4.2) -together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ -As a consequence, it is sufficient to give generating function (9.4.11). Then the generating -function (9.4.12) will follow by symmetry in the parameters. -% -\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{\large\bf KLSadd: Special cases}In the following special case there is a reduction to -Meixner-Pollaczek: -\begin{equation} -p_n(x;a,a+\thalf,a,a+\thalf)= -\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). -\end{equation} -See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the -Meixner-Pollaczek polynonmials are defined different from (9.7.1), -without a constant factor in front). - -For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have -\begin{eqnarray} -\label{OrtHahn} -& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHahn} --xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), -\end{equation} -where -$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] -\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHahn} -xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvHahn} -n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] -\displaystyle D(x)=x(x-\beta-N-1). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1HahnI} -& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1HahnII} -\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2HahnI} -& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ -& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2HahnII} -& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ -& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), -\end{eqnarray} -where -$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodHahn} -& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenHahn1} -\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenHahn2} -& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenHahn3} -& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} -{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Hahn} -If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we obtain the Hahn polynomials. Hence -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ -And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we also obtain the Hahn polynomials: -$$\lim_{\gamma\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ -Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in -the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit -$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take -$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials -by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials -if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the -dual Hahn polynomials given by (\ref{DefDualHahn}). - -\noindent -Since -$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ -we obtain the dual orthogonality relation for the Hahn polynomials from the -orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} -Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ -& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. -\end{eqnarray*} -% RS: add begin\label{sec9.5} -% -\paragraph{\large\bf KLSadd: Special values}\begin{equation} -Q_n(0;\al,\be,N)=1,\quad -Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{95} -\end{equation} -Use (9.5.1) and compare with (9.8.1) and \eqref{50}. - -From (9.5.3) and \eqref{1} it follows that -\begin{equation} -Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. -\label{30} -\end{equation} -From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that -\begin{equation} -Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). -\label{44} -\end{equation} -% -\paragraph{\large\bf KLSadd: Symmetries}By the orthogonality relation (9.5.2): -\begin{equation} -\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), -\label{96} -\end{equation} -It follows from \eqref{97} and \eqref{45} that -\begin{equation} -\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} -=Q_n(x;-N-\be-1,-N-\al-1,N) -\qquad(x=0,1,\ldots,N). -\label{100} -\end{equation} -% -\paragraph{\large\bf KLSadd: Duality}The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: -% -\begin{equation} -Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). -\label{45} -\end{equation} -% -% RS: add end -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, -\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, -\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, -\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, -\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, -\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, -\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, -\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, -\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, -\cite{Zarzo+}. - - -\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefDualHahn} -R_n(\lambda(x);\gamma,\delta,N)= -\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\lambda(x)=x(x+\gamma+\delta+1).$$ - -\subsection*{Orthogonality relation} -For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have -\begin{eqnarray} -\label{OrtDualHahn} -& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDualHahn} -\lambda(x)R_n(\lambda(x)) -=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), -\end{equation} -where -$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] -\displaystyle C_n=n(n-\delta-N-1). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDualHahn} -xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvDualHahn} --ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] -\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualHahnI} -& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1DualHahnII} -\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= --\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualHahnI} -& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ -& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualHahnII} -& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ -& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), -\end{eqnarray} -where -$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} -{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ - -\newpage - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDualHahn} -\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) -=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], -\end{equation} -where -$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenDualHahn1} -(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn2} -& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ -& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{eqnarray} - -\begin{equation} -\label{GenDualHahn3} -\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N -\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn4} -& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, -\quad\textrm{$\epsilon$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Dual Hahn} -If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we obtain the dual Hahn polynomials: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we also obtain the dual Hahn polynomials: -$$\lim_{\alpha\rightarrow\infty} -R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition -(\ref{DefRacah}) of the Racah polynomials and take the limit -$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials -if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). -\end{equation} - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual -Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) -of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). - -\noindent -Since -$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ -we obtain the dual orthogonality relation for the dual Hahn polynomials -from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ -& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. -\end{eqnarray*} -% RS: add begin\label{sec9.6} -% -\paragraph{\large\bf KLSadd: Special values}By \eqref{44} and \eqref{45} we have -\begin{equation} -R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. -\label{47} -\end{equation} -It follows from \eqref{95} and \eqref{45} that -\begin{equation} -R_N(x(x+\ga+\de+1);\ga,\de,N) -=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). -\label{101} -\end{equation} -% -\paragraph{\large\bf KLSadd: Symmetries}Write the weight in (9.6.2) as -\begin{equation} -w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, -\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. -\label{98} -\end{equation} -Then -\begin{equation} -(\de+1)_N\,w_{N-x}(\ga,\de,N)= -(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). -\label{99} -\end{equation} -Hence, by (9.6.2), -\begin{equation} -\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} -=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). -\label{97} -\end{equation} -Alternatively, \eqref{97} follows from (9.6.1) and -\mycite{DLMF}{(16.4.11)}. - -It follows from \eqref{96} and \eqref{45} that -\begin{equation} -\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} -{R_N(x(x+\ga+\de+1);\ga,\de,N)} -=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). -\label{102} -\end{equation} -% -\paragraph{\large\bf KLSadd: Re: (9.6.11).}The generating function (9.6.11) can be written in a more conceptual way as -\begin{equation} -(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, -\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, -\label{2} -\end{equation} -where -\begin{equation} -\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, -\label{3} -\end{equation} -i.e., the denominator on the \RHS\ of (9.6.2). -By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in -terms of Hahn polynomials: -\begin{equation} -(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, -\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, -\label{4} -\end{equation} -where -\begin{equation} -w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, -\label{5} -\end{equation} -i.e., the weight occurring in the orthogonality relation (9.5.2) -for Hahn polynomials. -\paragraph{\large\bf KLSadd: Re: (9.6.15).}There should be a closing bracket before the equality sign. -% -% RS: add end -\subsection*{References} -\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, -\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, -\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. - - -\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMP} -P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, -\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMP} -\frac{1}{2\pi}\int_{-\infty}^{\infty} -\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 -P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx -{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, -% \constraint{ -% $\lambda > 0$ & -% $0 < \phi < \pi$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMP} -& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] -P_n^{(\lambda)}(x;\phi)\nonumber\\ -& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMP} -xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ -\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), -\end{equation} -where -$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvMP} -& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ -& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MPI} -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) -P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MPII} -\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} -=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2MPI} -& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ -\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ -& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2MPII} -\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= --(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) -P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), -\end{equation} -where -$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMP} -\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} -\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. -\end{equation} - -\newpage - -\subsection*{Generating functions} -\begin{equation} -\label{GenMP1} -(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= -\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. -\end{equation} - -\begin{equation} -\label{GenMP2} -\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= -\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenMP3} -& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials -given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, -$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the -definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit -$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: -$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ - -\newpage - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the -Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -\begin{equation} -\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek -polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -and then let $\lambda\rightarrow\infty$: -\begin{equation} -\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remark} -Since we have for $k-1$ and $\beta>-1$ we have -\begin{eqnarray} -\label{OrtJacobi1} -& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ -& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. -\end{eqnarray} -For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have -\begin{eqnarray} -\label{OrtJacobi2} -& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ -& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecJacobi} -xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} -{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) -\end{eqnarray} -where -$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{eqnarray} -\label{dvJacobi} -& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ -& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Jacobi} -\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2JacobiI} -& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ -\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2JacobiII} -& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ -& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodJacobi} -(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= -\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenJacobi1} -\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= -\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{eqnarray} -\label{GenJacobi2} -& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi3} -& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi4} -& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi5} -& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2} -\end{eqnarray} -with $\gamma$ arbitrary. - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by -substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -$$\lim_{t\rightarrow\infty} -\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} -{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) -by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ -in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take -$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have -$$\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi -polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials -if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: -\begin{equation} -\lim_{\alpha\rightarrow-\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials -by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: -$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} -(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ -In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ -and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the -following connection with the Meixner polynomials given by (\ref{DefMeixner}): -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by -(\ref{DefPseudoJacobi}) in the following way: -$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ - -\noindent -The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials -given by (\ref{DefGegenbauer}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ -% RS: add begin\label{sec9.8} -% -\paragraph{\large\bf KLSadd: Orthogonality relation}Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\begin{split} -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP -&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. -\end{split} -\label{60} -\end{equation} - -In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be -$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: -\begin{equation} -\begin{split} -&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ -&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. -\end{split} -\label{122} -\end{equation} - -% -\paragraph{\large\bf KLSadd: Symmetry}\begin{equation} -P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). -\label{48} -\end{equation} -Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{\large\bf KLSadd: Special values}\begin{equation} -P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad -P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad -\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{50} -\end{equation} -Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{\large\bf KLSadd: Generating functions}Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. -% -\paragraph{\large\bf KLSadd: Bilateral generating functions}For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): -\begin{align} -&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac1{(1+r)^{\al+\be+1}} -\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), -\label{58}\sLP -&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} -\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). -\label{59} -\end{align} -Formulas \eqref{58} and \eqref{59} were first -given by Bailey \myciteKLS{91}{(2.1), (2.3)}. -See Stanton \myciteKLS{485} for a shorter proof. -(However, in the second line of -\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ -As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows -from \eqref{58} -by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ -to both sides of \eqref{58}. -In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi -polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. -See also the discussion in Askey \myciteKLS{46}{following (2.32)}. -% -\paragraph{\large\bf KLSadd: Quadratic transformations}\begin{align} -\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} -=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} -&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, -\label{51}\\ -\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} -=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} -&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. -\label{52} -\end{align} -See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. -Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. -% -\paragraph{\large\bf KLSadd: Differentiation formulas}Each differentiation formula is given in two equivalent forms. -\begin{equation} -\begin{split} -\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= --(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ -\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= --(n+\al)\,P_n^{(\al-1,\be+1)}(x). -\end{split} -\label{68} -\end{equation} -% -\begin{equation} -\begin{split} -\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= -(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ -\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= -(n+\be)\,P_n^{(\al+1,\be-1)}(x). -\end{split} -\label{69} -\end{equation} -Formulas \eqref{68} and \eqref{69} follow from -\mycite{DLMF}{(15.5.4), (15.5.6)} -together with (9.8.1). They also follow from each other by \eqref{48}. -% -\paragraph{\large\bf KLSadd: Generalized Gegenbauer polynomials}These are defined by -\begin{equation} -S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad -S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{70} -\end{equation} -in the notation of \myciteKLS{146}{p.156} -(see also \cite{K27}), while \cite[Section 1.5.2]{K26} -has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. -For $\al,\be>-1$ we have the orthogonality relation -\begin{equation} -\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx -=0\qquad(m\ne n). -\label{71} -\end{equation} -For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of -continuous $q$-ultraspherical polynomials, see \eqref{176}. - -If we define the {\em Dunkl operator} $T_\mu$ by -\begin{equation} -(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x -\label{72} -\end{equation} -and if we choose the constants in \eqref{70} as -\begin{equation} -S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad -S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, -x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{73} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. -\label{74} -\end{equation} -Formula \eqref{74} with \eqref{73} substituted gives rise to two -differentiation formulas involving Jacobi polynomials which are equivalent to -(9.8.7) and \eqref{69}. - -Composition of \eqref{74} with itself gives -\[ -T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, -\] -which is equivalent to the composition of (9.8.7) and \eqref{69}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) -=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). -\label{75} -\end{equation} -Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. -% -% RS: add end -\subsection*{References} -\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, -\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, -\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, -\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, -\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, -\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, -\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, -\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, -\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, -\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, -\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, -\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, -\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, -\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, -\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, -\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, -\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, -\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, -\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, -\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, -\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, -\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, -\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, -\cite{Zayed}. - -\section*{Special cases} - -\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} -\index{Ultraspherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with -$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: -\begin{eqnarray} -\label{DefGegenbauer} -C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ -&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} -{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtGegenbauer} -& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ -& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, -\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecGegenbauer} -2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecGegenbauer} -xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), -\end{equation} -where -$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvGegenbauer} -(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Gegenbauer} -\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2GegenbauerI} -(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= --\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) -\end{equation} -or equivalently -\begin{eqnarray} -\label{shift2GegenbauerII} -& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ -& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodGegenbauer} -(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= -\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenGegenbauer1} -(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer2} -R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} -\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenGegenbauer3} -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} -=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer4} -\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenGegenbauer5} -& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenGegenbauer6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} -{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or -ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remarks} -The case $\lambda=0$ needs another normalization. In that case we have the -Chebyshev polynomials of the first kind described in the next subsection. - -\noindent -The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials -given by (\ref{DefJacobi}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ -% RS: add begin\label{sec9.8.1} -% -\paragraph{\large\bf KLSadd: Notation}Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. -% -\paragraph{\large\bf KLSadd: Orthogonality relation}Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\frac{h_n}{h_0}= -\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad -h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad -\frac{h_n}{h_0\,(C_n^\la(1))^2}= -\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. -\label{61} -\end{equation} -% -\paragraph{\large\bf KLSadd: Hypergeometric representation}Beside (9.8.19) we have also -\begin{equation} -C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} -{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} -=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, -\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. -\label{57} -\end{equation} -See \mycite{DLMF}{(18.5.10)}. -% -\paragraph{\large\bf KLSadd: Special value}\begin{equation} -C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. -\label{49} -\end{equation} -Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{\large\bf KLSadd: Expression in terms of Jacobi}% -\begin{equation} -\frac{C_n^\la(x)}{C_n^\la(1)}= -\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad -C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). -\label{65} -\end{equation} -% -\paragraph{\large\bf KLSadd: Re: (9.8.21)}By iteration of recurrence relation (9.8.21): -\begin{multline} -x^2 C_n^\la(x)= -\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ -\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ -+\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). -\label{6} -\end{multline} -% -\paragraph{\large\bf KLSadd: Bilateral generating functions}\begin{multline} -\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ -(r\in(-1,1),\;x,y\in[-1,1]). -\label{66} -\end{multline} -For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. -The Poisson kernel for Gegenbauer polynomials can be derived in a similar way -from \eqref{59}, or alternatively by applying the operator -$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: -\begin{multline} -\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ -\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad -(r\in(-1,1),\;x,y\in[-1,1]). -\label{67} -\end{multline} -Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} -as a limit case of their formula for the Poisson kernel for continuous -$q$-ultraspherical polynomials. -% -\paragraph{\large\bf KLSadd: Trigonometric expansions}By \mycite{DLMF}{(18.5.11), (15.8.1)}: -\begin{align} -C_n^{\la}(\cos\tha) -&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} -=e^{in\tha}\frac{(\la)_n}{n!}\, -\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ -&=\frac{(\la)_n}{2^\la n!}\, -e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, -\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ -&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, -\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} -\end{align} -In \eqref{104} and \eqref{105} we require that -$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ -and conditional for $0<\la\le\thalf$. - -By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: -\begin{align} -C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, -\sin\big((2k+n+1)\tha\big) -\label{7}\\ -&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ -&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, -\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, -\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ -&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, -\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, -\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. -\label{106} -\end{align} -We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in -\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for -$0<\la\le\thalf$. -For $\la\in\Zpos$ the above series terminate after the term with -$k=\la-1$. -Formulas \eqref{7} and \eqref{106} are also given in -\mycite{Sz}{(4.9.22), (4.9.25)}. -% -\paragraph{\large\bf KLSadd: Fourier transform}\begin{equation} -\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, -\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, -e^{ixy}\,dy -=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). -\label{8} -\end{equation} -See \mycite{DLMF}{(18.17.17) and (18.17.18)}. -% -\paragraph{\large\bf KLSadd: Laplace transforms}\begin{equation} -\frac2{n!\,\Ga(\la)}\, -\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). -\label{56} -\end{equation} -See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) -or Feldheim \cite[(28)]{K3} (1942). -\begin{equation} -\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, -(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt -=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). -\label{46} -\end{equation} -Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with -\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. -\paragraph{\large\bf KLSadd: Addition formula}\begin{multline} -R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) -=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ -\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, -\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), -\label{108} -\end{multline} -where -\[ -R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad -\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} -{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. -\] -% -% RS: add end -\subsection*{References} -\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, -\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, -\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, -\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, -\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, -\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, -\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, -\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, -\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, -\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, -\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, -\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. - -\subsection{Chebyshev}\index{Chebyshev polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Chebyshev polynomials of the first kind can be obtained from the Jacobi -polynomials by taking $\alpha=\beta=-\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevI} -T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} -=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} -\end{equation} -and the Chebyshev polynomials of the second kind can be obtained from the -Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevII} -U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} -=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtChebyshevI} -\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= -\left\{\begin{array}{ll} -\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] -\cpi\,\delta_{mn}, & n=0. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{OrtChebyshevII} -\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relations} -\begin{equation} -\label{RecChebyshevI} -2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. -\end{equation} - -\begin{equation} -\label{RecChebyshevII} -2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. -\end{equation} - -\subsection*{Normalized recurrence relations} -\begin{equation} -\label{NormRecChebyshevI} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ - -\begin{equation} -\label{NormRecChebyshevII} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$U_n(x)=2^np_n(x).$$ - -\subsection*{Differential equations} -\begin{equation} -\label{dvChebyshevI} -(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). -\end{equation} - -\begin{equation} -\label{dvChebyshevII} -(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Chebyshev} -\frac{d}{dx}T_n(x)=nU_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2ChebyshevI} -(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2ChebyshevII} -\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] -=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formulas} -\begin{equation} -\label{RodChebyshevI} -(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. -\end{equation} - -\begin{equation} -\label{RodChebyshevII} -(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenChebyshevI1} -\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI2} -R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} -\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevI3} -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevI5} -& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevI6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{equation} -\label{GenChebyshevII1} -\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII2} -\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} -\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevII3} -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevII5} -& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevII6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Remarks} -The Chebyshev polynomials can also be written as: -$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ -and -$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ -Further we have -$$U_n(x)=C_n^{(1)}(x)$$ -where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) -polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. -% RS: add begin\label{sec9.8.2} -In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) -and $U_n$ of the second kind (9.8.36), -\begin{align} -T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} -=\cos(n\tha),\quad x=\cos\tha,\\ -U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} -=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, -\end{align} -we have Chebyshev polynomials $V_n$ {\em of the third kind} -and $W_n$ {\em of the fourth kind}, -\begin{align} -V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} -=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ -W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} -=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, -\end{align} -see \cite[Section 1.2.3]{K20}. Then there is the symmetry -\begin{equation} -V_n(-x)=(-1)^n W_n(x). -\label{140} -\end{equation} - -The names of Chebyshev polynomials of the third and fourth kind -and the notation $V_n(x)$ are due to Gautschi \cite{K21}. -The notation $W_n(x)$ was first used by Mason \cite{K22}. -Names and notations for Chebyshev polynomials of the third and fourth -kind are interchanged in \mycite{AAR}{Remark 2.5.3} and -\mycite{DLMF}{Table 18.3.1}. -% -% RS: add end -\subsection*{References} -\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, -\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, -\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, -\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, -\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, -\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. - -\subsection{Legendre / Spherical}\index{Legendre polynomials} -\index{Spherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: -\begin{equation} -\label{DefLegendre} -P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLegendre} -\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLegendre} -(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLegendre} -xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), -\end{equation} -where -$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLegendre} -(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLegendre} -P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLegendre1} -\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre2} -\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre3} -\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenLegendre4} -& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenLegendre5} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{References} -\cite{Abram}, \cite{Alladi}, \cite{AlSalam90}, \cite{Bhonsle}, \cite{Brafman51}, -\cite{Carlitz57II}, \cite{Chihara78}, \cite{Danese}, \cite{Dattoli2001}, -\cite{DilcherStolarsky}, \cite{ElbertLaforgia94}, \cite{Erdelyi+}, \cite{Grad}, -\cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Rainville}, -\cite{Szego75}, \cite{Temme}, \cite{Zayed}. - -\newpage - -\section{Pseudo Jacobi}\index{Pseudo Jacobi polynomials}\index{Jacobi polynomials!Pseudo} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefPseudoJacobi} -P_n(x;\nu,N)&=&\frac{(-2i)^n(-N+i\nu)_n}{(n-2N-1)_n}\,\hyp{2}{1}{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}}\\ -&=&(x+i)^n\,\hyp{2}{1}{-n,N+1-n-i\nu}{2N+2-2n}{\frac{2}{1-ix}},\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtPseudoJacobi} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_m(x;\nu,N)P_n(x;\nu,N)\,dx\nonumber\\ -& &{}=\frac{\Gamma(2N+1-2n)\Gamma(2N+2-2n)2^{2n-2N-1}n!}{\Gamma(2N+2-n)\left|\Gamma(N+1-n+i\nu)\right|^2}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecPseudoJacobi} -xP_n(x;\nu,N)&=&P_{n+1}(x;\nu,N)+\frac{(N+1)\nu}{(n-N-1)(n-N)}P_n(x;\nu,N)\nonumber\\ -& &{}\mathindent{}-\frac{n(n-2N-2)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}\nonumber\\ -& &{}\mathindent\mathindent\times(n-N-1-i\nu)(n-N-1+i\nu)P_{n-1}(x;\nu,N). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecPseudoJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{(N+1)\nu}{(n-N-1)(n-N)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{n(n-2N-2)(n-N-1-i\nu)(n-N-1+i\nu)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}p_{n-1}(x), -\end{eqnarray} -where -$$P_n(x;\nu,N)=p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvPseudoJacobi} -(1+x^2)y''(x)+2\left(\nu-Nx\right)y'(x)-n(n-2N-1)y(x)=0, -\end{equation} -where -$$y(x)=P_n(x;\nu,N).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1PseudoJacobi} -\frac{d}{dx}P_n(x;\nu,N)=nP_{n-1}(x;\nu,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2PseudoJacobiI} -& &(1+x^2)\frac{d}{dx}P_n(x;\nu,N)+2\left[\nu-(N+1)x\right]P_n(x;\nu,N)\nonumber\\ -& &{}=(n-2N-2)P_{n+1}(x;\nu,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2PseudoJacobiII} -& &\frac{d}{dx}\left[(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_n(x;\nu,N)\right]\nonumber\\ -& &{}=(n-2N-2)(1+x^2)^{-N-2}\e^{2\nu\arctan x}P_{n+1}(x;\nu,N+1). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodPseudoJacobi} -P_n(x;\nu,N)=\frac{(1+x^2)^{N+1}\expe^{-2\nu\arctan x}}{(n-2N-1)_n} -\left(\frac{d}{dx}\right)^n\left[(1+x^2)^{n-N-1}\expe^{2\nu\arctan x}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{eqnarray} -\label{GenPseudoJacobi} -& &\left[\hyp{0}{1}{-}{-N+i\nu}{(x+i)t}\,\hyp{0}{1}{-}{-N-i\nu}{(x-i)t}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(n-2N-1)_n}{(-N+i\nu)_n(-N-i\nu)_nn!}P_n(x;\nu,N)t^n. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials follow from the continuous Hahn polynomials given by -(\ref{DefContHahn}) by the substitutions $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray*} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray*} - -\subsection*{Remarks} -Since we have for $k 0$ & -% $0 < c < 1$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMeixner} -(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ -& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMeixner} -xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ -\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), -\end{equation} -where -$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvMeixner} -n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), -\end{equation} -where -$$y(x)=M_n(x;\beta,c).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MeixnerI} -M_n(x+1;\beta,c)-M_n(x;\beta,c)= -\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MeixnerII} -\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2MeixnerI} -c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift2MeixnerII} -\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= -\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMeixner} -\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenMeixner1} -\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= -\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner2} -\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= -\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner3} -(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) -of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: -$$\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -To obtain the Meixner polynomials from the dual Hahn polynomials we have to take -$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of -the dual Hahn polynomials and let $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials -if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: -\begin{equation} -\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. -\end{equation} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials -if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). -\end{equation} - -\subsection*{Remarks} -The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) -in the following way: -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Meixner polynomials are also related to the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) in the following way: -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ -% RS: add begin\label{sec9.9} -In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) -is considered -for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take -$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). -\] -Then $P_n$ can be expressed as a Meixner polynomial: -\[ -P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, -M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). -\] - -In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' -which turn out to be special Meixner polynomials: -$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. -% -\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -% RS: add end -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, -\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, -\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, -\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, -\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Laguerre}\index{Laguerre polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefLaguerre} -L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLaguerre} -\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= -\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLaguerre} -(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLaguerre} -xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), -\end{equation} -where -$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLaguerre} -xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). -\end{equation} - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Laguerre} -\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2LaguerreI} -x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2LaguerreII} -\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLaguerre} -\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLaguerre1} -(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= -\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre2} -\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre3} -(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by -(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -$$\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) -if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: -$$\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition -(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain -the Laguerre polynomials: -$$\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre -polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be -written as: -$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ -In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. -Therefore they can be defined for all $\alpha$. - -\noindent -The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\noindent -The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\noindent -In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook -polynomials. -% RS: add begin\label{sec9.11} -% -\paragraph{\large\bf KLSadd: Special values}By (9.11.1) and the binomial formula: -\begin{equation} -K_n(0;p,N)=1,\qquad -K_n(N;p,N)=(1-p^{-1})^n. -\label{9} -\end{equation} -The self-duality (p.240, Remarks, first formula) -\begin{equation} -K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) -\label{147} -\end{equation} -combined with \eqref{9} yields: -\begin{equation} -K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). -\label{148} -\end{equation} -% -\paragraph{\large\bf KLSadd: Symmetry}By the orthogonality relation (9.11.2): -\begin{equation} -\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). -\label{10} -\end{equation} -By \eqref{10} and \eqref{147} we have also -\begin{equation} -\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) -\qquad(n,x\in\{0,1,\ldots,N\}), -\label{149} -\end{equation} -and, by \eqref{149}, \eqref{10} and \eqref{9}, -\begin{equation} -K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) -\qquad(n,x\in\{0,1,\ldots,N\}). -\label{150} -\end{equation} -A particular case of \eqref{10} is: -\begin{equation} -K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). -\label{11} -\end{equation} -Hence -\begin{equation} -K_{2m+1}(N;\thalf,2N)=0. -\label{12} -\end{equation} -From (9.11.11): -\begin{equation} -K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. -\label{13} -\end{equation} -% -\paragraph{\large\bf KLSadd: Quadratic transformations}\begin{align} -K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, -R_m(x^2;-\thalf,-\thalf,N), -\label{31}\\ -K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, -x\,R_m(x^2-1;\thalf,\thalf,N-1), -\label{33}\\ -K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, -R_m(x(x+1);-\thalf,\thalf,N), -\label{32}\\ -K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, -(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), -\label{34} -\end{align} -where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use -(9.6.2), (9.11.2), (9.6.4) and (9.11.4). -% -\paragraph{\large\bf KLSadd: Generating functions}\begin{multline} -\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ -=\left(\frac{p-z+pz}p\right)^m -\left(\frac{q-z+qz}q\right)^n -(1+z)^{N-m-n} -K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). -\label{107} -\end{multline} -This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back -to Meixner \cite{K9}. -% -% RS: add end -\subsection*{References} -\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, -\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, -\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, -\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, -\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, -\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, -\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, -\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, -\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, -\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, -\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, -\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, -\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, -\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, -\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, -\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, -\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, -\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, -\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. - - -\section{Bessel}\index{Bessel polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefBessel} -y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ -&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, -\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBessel} -& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ -& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBessel} -& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ -& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ -& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecBessel} -xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), -\end{eqnarray} -where -$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvBessel} -x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Bessel} -\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2BesselI} -x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) -\end{equation} -or equivalently -\begin{equation} -\label{shift2BesselII} -\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodBessel} -y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenBessel} -\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a -\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. -\end{equation} - -\subsection*{Limit relation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials -and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: -$$\lim_{\alpha\rightarrow -\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ - -\subsection*{Remarks} -The following notations are also used for the Bessel polynomials: -$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ -However, the Bessel polynomials essentially depend on only one parameter. - -\noindent -The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi -polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the -pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: -$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, -\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, -\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. - - -\section{Charlier}\index{Charlier polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefCharlier} -C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtCharlier} -\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= -a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecCharlier} --xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecCharlier} -xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), -\end{equation} -where -$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvCharlier} --ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1CharlierI} -C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift1CharlierII} -\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2CharlierI} -C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift2CharlierII} -\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodCharlier} -\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenCharlier} -\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials -and let $\beta\rightarrow\infty$ we find the Charlier polynomials: -$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials can be found from the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials -if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). -\end{equation} - -\subsection*{Remark} -The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ -% RS: add begin\label{sec9.12} -\paragraph{\large\bf KLSadd: Notation}Here the Laguerre polynomial is denoted by $L_n^\al$ instead of -$L_n^{(\al)}$. -% -\paragraph{\large\bf KLSadd: Hypergeometric representation}\begin{align} -L_n^\al(x)&= -\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x -\label{182}\\ -&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} -\label{183}\\ -&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), -\label{184} -\end{align} -where $C_n$ in \eqref{184} is a -\hyperref[sec9.14]{Charlier polynomial}. -Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal -of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. -It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially -\myciteKLS{416}{(2.7.10)}. -% -\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{\large\bf KLSadd: Special value}\begin{equation} -L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. -\label{53} -\end{equation} -Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. -% -\paragraph{\large\bf KLSadd: Quadratic transformations}\begin{align} -H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), -\label{54}\\ -H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). -\label{55} -\end{align} -See p.244, Remarks, last two formulas. -Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. -% -\paragraph{\large\bf KLSadd: Fourier transform}\begin{equation} -\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, -e^{-y}\,y^\al\,e^{ixy}\,dy= -i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, -\label{14} -\end{equation} -see \mycite{DLMF}{(18.17.34)}. -% -\paragraph{\large\bf KLSadd: Differentiation formulas}Each differentiation formula is given in two equivalent forms. -\begin{equation} -\frac d{dx}\left(x^\al L_n^\al(x)\right)= -(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad -\left(x\frac d{dx}+\al\right)L_n^\al(x)= -(n+\al)\,L_n^{\al-1}(x). -\label{76} -\end{equation} -% -\begin{equation} -\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= --e^{-x} L_n^{\al+1}(x),\qquad -\left(\frac d{dx}-1\right)L_n^\al(x)= --L_n^{\al+1}(x). -\label{77} -\end{equation} -% -Formulas \eqref{76} and \eqref{77} follow from -\mycite{DLMF}{(13.3.18), (13.3.20)} -together with (9.12.1). -% -\paragraph{\large\bf KLSadd: Generalized Hermite polynomials}See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. -These are defined by -\begin{equation} -H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). -\label{78} -\end{equation} -Then for $\mu>-\thalf$ we have orthogonality relation -\begin{equation} -\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx -=0\qquad(m\ne n). -\label{79} -\end{equation} -Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. -If we choose the constants in \eqref{78} as -\begin{equation} -H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, - x\,L_m^{\mu+\half}(x^2) - \label{80} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_\mu H_n^\mu=2n\,H_{n-1}^\mu. -\label{81} -\end{equation} -Formula \eqref{81} with \eqref{80} substituted gives rise to two -differentiation formulas involving Laguerre polynomials which are equivalent to -(9.12.6) and \eqref{76}. - -Composition of \eqref{81} with itself gives -\[ -T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, -\] -which is equivalent to the composition of (9.12.6) and \eqref{76}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) -=-4(n+\al)\,L_{n-1}^\al(x^2). -\label{82} -\end{equation} -% -% RS: add end -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, -\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, -\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, -\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, -\cite{Zeng90}. - - -\section{Hermite}\index{Hermite polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefHermite} -H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtHermite} -\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx -=2^nn!\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHermite} -H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHermite} -xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), -\end{equation} -where -$$H_n(x)=2^np_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvHermite} -y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Hermite} -\frac{d}{dx}H_n(x)=2nH_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2HermiteI} -\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2HermiteII} -\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodHermite} -\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenHermite1} -\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenHermite2} -\left\{\begin{array}{l} -\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] -\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite3} -\left\{\begin{array}{l} -\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] -\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite4} -\left\{\begin{array}{l} -\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= -\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] -\displaystyle\frac{xt}{\sqrt{1+t^2}}\, -\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} -=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} -\end{array}\right. -\end{equation} -with $\gamma$ arbitrary. - -\begin{equation} -\label{GenHermite5} -\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) -=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, -\end{equation} -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and -then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: -$$\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by -taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by -(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials can be obtained from the Laguerre polynomials given by -(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) -of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite -polynomials. In fact we have -$$\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ - -\subsection*{Remarks} -The Hermite polynomials can also be written as: -$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} -\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\noindent -The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ -% RS: add begin\label{sec9.14} -% -\paragraph{\large\bf KLSadd: Hypergeometric representation}\begin{align} -C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} -\label{179}\\ -&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a -\label{180}\\ -&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), -\label{181} -\end{align} -where $L_n^\al(x)$ is a -\hyperref[sec9.12]{Laguerre polynomial}. -Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal -of the summation. Finally \eqref{181} follows by \eqref{180} and -(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it -was earlier given in \myciteKLS{416}{(2.7.10)}. -% -\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -% RS: add end -\subsection*{References} -\label{sec9.15} -% -\paragraph{\large\bf KLSadd: Uniqueness of orthogonality measure}The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{\large\bf KLSadd: Fourier transforms}\begin{equation} -\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= -i^n\,H_n(x)\,e^{-\half x^2}, -\label{15} -\end{equation} -see \mycite{AAR}{(6.1.15) and Exercise 6.11}. -\begin{equation} -\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= -i^n\,x^n\,e^{-\frac14 x^2}, -\label{16} -\end{equation} -see \mycite{DLMF}{(18.17.35)}. -\begin{equation} -\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= -H_n(x)\,e^{-x^2}, -\label{17} -\end{equation} -see \mycite{AAR}{(6.1.4)}. -% -\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, -\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, -\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, -\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, -\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, -\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, -\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, -\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, -\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, -\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, -\cite{Weisner59}, \cite{Wyman}. - -\end{document} diff --git a/KLSadd_insertion/newtempchap14.tex b/KLSadd_insertion/newtempchap14.tex deleted file mode 100644 index 880a78e..0000000 --- a/KLSadd_insertion/newtempchap14.tex +++ /dev/null @@ -1,6695 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\usepackage[pdftex]{hyperref} -\usepackage {xparse} -\usepackage{cite} -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\newcommand\sa{\smallskipamount} -\newcommand\sLP{\\[\sa]} -\newcommand\sPP{\\[\sa]\indent} -\newcommand\ba{\bigskipamount} -\newcommand\bLP{\\[\ba]} -\newcommand\CC{\mathbb{C}} -\newcommand\RR{\mathbb{R}} -\newcommand\ZZ{\mathbb{Z}} -\newcommand\al\alpha -\newcommand\be\beta -\newcommand\ga\gamma -\newcommand\de\delta -\newcommand\tha\theta -\newcommand\la\lambda -\newcommand\om\omega -\newcommand\Ga{\Gamma} -\newcommand\half{\frac12} -\newcommand\thalf{\tfrac12} -\newcommand\iy\infty -\newcommand\wt{\widetilde} -\newcommand\const{{\rm const.}\,} -\newcommand\Zpos{\ZZ_{>0}} -\newcommand\Znonneg{\ZZ_{\ge0}} -\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} -\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} -\newcommand\LHS{left-hand side} -\newcommand\RHS{right-hand side} -\renewcommand\Re{{\rm Re}\,} -\renewcommand\Im{{\rm Im}\,} - -\NewDocumentCommand\mycite{m g}{% - \IfNoValueTF{#2} - {[\hyperlink{#1}{#1}]} - {[\hyperlink{#1}{#1}, #2]}% -} -\newcommand\mybibitem[1]{\bibitem[#1]{#1}\hypertarget{#1}{}} -\textheight 25cm - -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\large - -\pagenumbering{roman} -\addtocounter{chapter}{13} - -\chapter{Basic hypergeometric orthogonal polynomials} -\label{BasicHyperOrtPol} - - -In this chapter we deal with all families of basic hypergeometric orthogonal polynomials -appearing in the $q$-analogue of the Askey scheme on the pages~\pageref{qscheme1} and -\pageref{qscheme2}. For each family of orthogonal polynomials we state the most important -properties such as a representation as a basic hypergeometric function, orthogonality -relation(s), the three-term recurrence relation, the second-order $q$-difference equation, -the forward shift (or degree lowering) and backward shift (or degree raising) operator, a -Rodrigues-type formula and some generating functions. Throughout this chapter we assume -that $01$ and $b,c,d$ are real or one is real and the other two are complex conjugates,\\ -$\max(|b|,|c|,|d|)<1$ and the pairwise products of $a,b,c$ and $d$ have -absolute value less than $1$, then we have another orthogonality relation -given by: -\begin{eqnarray} -\label{OrtAskeyWilsonII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c,d|q)p_n(x;a,b,c,d|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 11$ and $b$ and $c$ are real or complex conjugates, -$\max(|b|,|c|)<1$ and the pairwise products of $a,b$ and $c$ have -absolute value less than $1$, then we have another orthogonality relation -given by: -\begin{eqnarray} -\label{OrtContDualqHahnII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c|q)p_n(x;a,b,c|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10$) in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we -obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): -\begin{equation} -\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). -\end{equation} - -\subsubsection*{Big $q$-Jacobi $\rightarrow$ Jacobi} -If we set $c=0$, $a=q^{\alpha}$ and $b=q^{\beta}$ in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and let $q\rightarrow 1$ we find the Jacobi -polynomials given by (\ref{DefJacobi}): -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},0;q)=\frac{P_n^{(\alpha,\beta)}(2x-1)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} -If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we -find -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},-q^{\gamma};q)=\frac{P_n^{(\alpha,\beta)}(x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsection*{Remarks} -The big $q$-Jacobi polynomials with $c=0$ and the little -$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related -in the following way: -$$P_n(x;a,b,0;q)=\frac{(bq;q)_n}{(aq;q)_n}(-1)^na^nq^{n+\binom{n}{2}}p_n(a^{-1}q^{-1}x;b,a|q).$$ - -\noindent -Sometimes the big $q$-Jacobi polynomials are defined in terms of four -parameters instead of three. In fact the polynomials given by the definition -$$P_n(x;a,b,c,d;q)=\qhyp{3}{2}{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}$$ -are orthogonal on the interval $[-d,c]$ with respect to the weight function -$$\frac{(c^{-1}qx,-d^{-1}qx;q)_{\infty}}{(ac^{-1}qx,-bd^{-1}qx;q)_{\infty}}d_qx.$$ -These polynomials are not really different from those given by -(\ref{DefBigqJacobi}) since we have -$$P_n(x;a,b,c,d;q)=P_n(ac^{-1}qx;a,b,-ac^{-1}d;q)$$ -and -$$P_n(x;a,b,c;q)=P_n(x;a,b,aq,-cq;q).$$ - RS: add begin\label{sec14.4} -The continuous $q$-Hahn polynomials are the special case -of Askey-Wilson polynomials with parameters -$a e^{i\phi},b e^{i\phi},a e^{-i\phi},b e^{-i\phi}$: -\[ -p_n(x;a,b,\phi\,|\, q):= -p_n(x;a e^{i\phi},b e^{i\phi},a e^{-i\phi},b e^{-i\phi}\,|\, q). -\] -In \myciteKLS{72}{(4.29)} and \mycite{GR}{(7.5.43)} -(who write $p_n(x;a,b\,|\,q)$, $x=\cos(\tha+\phi)$) -and in \mycite{KLS}{\S14.4} (who writes $p_n(x;a,b,c,d;q)$, -$x=\cos(\tha+\phi)$) -the parameter -dependence on $\phi$ is incorrectly omitted. - -Since all formulas in \S14.4 are specializations of formulas in \S14.1, -there is no real need to give these specializations explicitly. -In particular, the limit (14.4.15) is in fact a limit from Askey-Wilson to -continuous $q$-Hahn. See also \eqref{177}. -% - -\subsection*{References} -\cite{NAlSalam89}, \cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{AtakKlimyk2004}, -\cite{AtakRahmanSuslov}, \cite{DattaGriffin}, \cite{FloreaniniVinetII}, -\cite{GasperRahman90}, \cite{GrunbaumHaine96}, \cite{Gupta92}, \cite{Hahn}, -\cite{Ismail86I}, \cite{IsmailStanton97}, \cite{IsmailWilson}, \cite{KalninsMiller88}, -\cite{KoelinkE}, \cite{Koorn90II}, \cite{Koorn93}, \cite{Koorn2007}, \cite{Miller89}, -\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{NoumiMimachi90III}, -\cite{NoumiMimachi91}, \cite{Spiridonov97}, \cite{SrivastavaJain90}. - - -\section*{Special case} - -\subsection{Big $q$-Legendre} -\index{Big q-Legendre polynomials@Big $q$-Legendre polynomials} -\index{q-Legendre polynomials@$q$-Legendre polynomials!Big} -\par - -\subsection*{Basic hypergeometric representation} The big $q$-Legendre polynomials are big $q$-Jacobi polynomials -with $a=b=1$: -\begin{equation} -\label{DefBigqLegendre} -P_n(x;c;q)=\qhyp{3}{2}{q^{-n},q^{n+1},x}{q,cq}{q}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBigqLegendre} -& &\int_{cq}^{q}P_m(x;c;q)P_n(x;c;q)\,d_qx\nonumber\\ -& &{}=q(1-c)\frac{(1-q)}{(1-q^{2n+1})} -\frac{(c^{-1}q;q)_n}{(cq;q)_n}(-cq^2)^nq^{\binom{n}{2}}\,\delta_{mn},\quad c<0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBigqLegendre} -(x-1)P_n(x;c;q)&=&A_nP_{n+1}(x;c;q)-\left(A_n+C_n\right)P_n(x;c;q)\nonumber\\ -& &{}\mathindent{}+C_nP_{n-1}(x;c;q), -\end{eqnarray} -where -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n+1})(1-cq^{n+1})}{(1+q^{n+1})(1-q^{2n+1})}\\ -\\ -\displaystyle C_n=-cq^{n+1}\frac{(1-q^n)(1-c^{-1}q^n)}{(1+q^n)(1-q^{2n+1})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecBigqLegendre} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$P_n(x;c;q)=\frac{(q^{n+1};q)_n}{(q,cq;q)_n}p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvBigqLegendre} -& &q^{-n}(1-q^n)(1-q^{n+1})x^2y(x)\nonumber\\ -& &{}=B(x)y(qx)-\left[B(x)+D(x)\right]y(x)+D(x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=P_n(x;c;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=q(x-1)(x-c)\\ -\\ -\displaystyle D(x)=(x-q)(x-cq).\end{array}\right.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodBigqLegendre} -P_n(x;c;q)&=&\frac{c^nq^{n(n+1)}(1-q)^n}{(q,cq;q)_n} -\left(\mathcal{D}_q\right)^n\left[(q^{-n}x,c^{-1}q^{-n}x;q)_n\right]\\ -&=&\frac{(1-q)^n}{(q,cq;q)_n}\left(\mathcal{D}_q\right)^n -\left[(qx^{-1},cqx^{-1};q)_nx^{2n}\right].\nonumber -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenBigqLegendre1} -\qhyp{2}{1}{qx^{-1},0}{q}{xt}\,\qhyp{1}{1}{c^{-1}x}{q}{cqt} -=\sum_{n=0}^{\infty}\frac{(cq;q)_n}{(q,q;q)_n}P_n(x;c;q)t^n. -\end{equation} - -\begin{equation} -\label{GenBigqLegendre2} -\qhyp{2}{1}{cqx^{-1},0}{cq}{xt}\,\qhyp{1}{1}{c^{-1}x}{c^{-1}q}{qt} -=\sum_{n=0}^{\infty}\frac{P_n(x;c;q)}{(c^{-1}q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Legendre $\rightarrow$ Legendre / Spherical} -If we set $c=0$ in the definition (\ref{DefBigqLegendre}) of the big -$q$-Legendre polynomials and let $q\rightarrow 1$ we simply obtain the Legendre -(or spherical) polynomials given by (\ref{DefLegendre}): -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;0;q)=P_n(2x-1). -\end{equation} -If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we -find -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;-q^{\gamma};q)=P_n(x). -\end{equation} - -\subsection*{References} -\cite{Koelink95I}, \cite{Koorn90II}. - - -\section{$q$-Hahn}\index{q-Hahn polynomials@$q$-Hahn polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefqHahn} -Q_n(q^{-x};\alpha,\beta,N|q)=\qhyp{3}{2}{q^{-n},\alpha\beta q^{n+1},q^{-x}} -{\alpha q,q^{-N}}{q},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -For $0<\alpha q<1$ and $0<\beta q<1$, or for $\alpha>q^{-N}$ and $\beta>q^{-N}$, we have -\begin{eqnarray} -\label{OrtqHahn} -& &\sum_{x=0}^N\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta q)^{-x} -Q_m(q^{-x};\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=\frac{(\alpha\beta q^2;q)_N}{(\beta q;q)_N(\alpha q)^N} -\frac{(q,\alpha\beta q^{N+2},\beta q;q)_n}{(\alpha q,\alpha\beta q,q^{-N};q)_n}\, -\frac{(1-\alpha\beta q)(-\alpha q)^n}{(1-\alpha\beta q^{2n+1})} -q^{\binom{n}{2}-Nn}\,\delta_{mn}. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqHahn} --\left(1-q^{-x}\right)Q_n(q^{-x})&=&A_nQ_{n+1}(q^{-x})-\left(A_n+C_n\right)Q_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+C_nQ_{n-1}(q^{-x}), -\end{eqnarray} -where -$$Q_n(q^{-x}):=Q_n(q^{-x};\alpha,\beta,N|q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n-N})(1-\alpha q^{n+1})(1-\alpha\beta q^{n+1})}{(1-\alpha\beta q^{2n+1})(1-\alpha\beta q^{2n+2})}\\ -\\ -\displaystyle C_n=-\frac{\alpha q^{n-N}(1-q^n)(1-\alpha\beta q^{n+N+1})(1-\beta q^n)}{(1-\alpha\beta q^{2n})(1-\alpha\beta q^{2n+1})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqHahn} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(q^{-x};\alpha,\beta,N|q)= -\frac{(\alpha\beta q^{n+1};q)_n}{(\alpha q,q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqHahn} -& &q^{-n}(1-q^n)(1-\alpha\beta q^{n+1})y(x)\nonumber\\ -& &{}=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{eqnarray} -where -$$y(x)=Q_n(q^{-x};\alpha,\beta,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=(1-q^{x-N})(1-\alpha q^{x+1})\\ -\\ -\displaystyle D(x)=\alpha q(1-q^x)(\beta-q^{x-N-1}).\end{array}\right.$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qHahnI} -& &Q_n(q^{-x-1};\alpha,\beta,N|q)-Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-\alpha q)(1-q^{-N})} -Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1qHahnII} -\frac{\Delta Q_n(q^{-x};\alpha,\beta,N|q)}{\Delta q^{-x}} -&=&\frac{q^{-n+1}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-q)(1-\alpha q)(1-q^{-N})}\nonumber\\ -& &{}\mathindent{}\times Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q). -\end{eqnarray} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qHahnI} -& &(1-\alpha q^x)(1-q^{x-N-1})Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}\mathindent{}-\alpha(1-q^x)(\beta-q^{x-N-1})Q_n(q^{-x+1};\alpha,\beta,N|q)\nonumber\\ -& &{}=q^x(1-\alpha)(1-q^{-N-1})Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qHahnII} -& &\frac{\nabla\left[w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;\alpha q^{-1},\beta q^{-1},N+1|q)Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q), -\end{eqnarray} -where -$$w(x;\alpha,\beta,N|q)=\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta)^{-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodqHahn} -& &w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=(1-q)^n\left(\nabla_q\right)^n\left[w(x;\alpha q^n,\beta q^n,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenqHahn1} -& &\qhyp{1}{1}{q^{-x}}{\alpha q}{\alpha qt}\,\qhyp{2}{1}{q^{x-N},0}{\beta q}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(\beta q,q;q)_n}Q_n(q^{-x};\alpha,\beta,N|q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenqHahn2} -& &\qhyp{2}{1}{q^{-x},\beta q^{N+1-x}}{0}{-\alpha q^{x-N+1}t}\, -\qhyp{2}{0}{q^{x-N},\alpha q^{x+1}}{-}{-q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha q,q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}Q_n(q^{-x};\alpha,\beta,N|q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ $q$-Hahn} -The $q$-Hahn polynomials follow from the $q$-Racah polynomials by the substitution -$\delta=0$ and $\gamma q=q^{-N}$ in the definition (\ref{DefqRacah}) of the -$q$-Racah polynomials: -$$R_n(\mu(x);\alpha,\beta,q^{-N-1},0|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ -Another way to obtain the $q$-Hahn polynomials from the $q$-Racah -polynomials is by setting $\gamma=0$ and $\delta=\beta^{-1}q^{-N-1}$ in the definition -(\ref{DefqRacah}): -$$R_n(\mu(x);\alpha,\beta,0,\beta^{-1}q^{-N-1}|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ -And if we take $\alpha q=q^{-N}$, $\beta\rightarrow\beta\gamma q^{N+1}$ and $\delta=0$ in the -definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the -$q$-Hahn polynomials given by (\ref{DefqHahn}) in the following way: -$$R_n(\mu(x);q^{-N-1},\beta\gamma q^{N+1},\gamma,0|q)=Q_n(q^{-x};\gamma,\beta,N|q).$$ -Note that $\mu(x)=q^{-x}$ in each case. - -\subsubsection*{$q$-Hahn $\rightarrow$ Little $q$-Jacobi} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqHahn}) of the $q$-Hahn -polynomials and take the limit $N\rightarrow\infty$ we find the little $q$-Jacobi polynomials: -\begin{equation} -\lim _{N\rightarrow\infty} Q_n(q^{x-N};\alpha,\beta,N|q)=p_n(q^x;\alpha,\beta|q), -\end{equation} -where $p_n(q^x;\alpha,\beta|q)$ is given by (\ref{DefLittleqJacobi}). - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials -by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the -$q$-Hahn polynomials and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} -The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of -the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: -\begin{equation} -\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} -If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials -and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by -(\ref{DefqKrawtchouk}): -\begin{equation} -\lim_{\alpha\rightarrow 0} -Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} -The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -can be obtained from the $q$-Hahn polynomials by the substitution $\alpha=p$ and -$\beta=0$ in (\ref{DefqHahn}): -\begin{equation} -Q_n(q^{-x};p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Hahn} -The Hahn polynomials given by (\ref{DefHahn}) simply follow from the $q$-Hahn -polynomials given by (\ref{DefqHahn}), after setting $\alpha\rightarrow q^{\alpha}$ -and $\beta\rightarrow q^{\beta}$, in the following way: -\begin{equation} -\lim_{q\rightarrow 1}Q_n(q^{-x};q^{\alpha},q^{\beta},N|q)=Q_n(x;\alpha,\beta,N). -\end{equation} - -\subsection*{Remark} -The $q$-Hahn polynomials given by (\ref{DefqHahn}) and the dual $q$-Hahn -polynomials given by (\ref{DefDualqHahn}) are related in the following way: -$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ -with -$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ -or -$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ -where -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlvarezRonveaux}, \cite{AndrewsAskey85}, -\cite{AskeyWilson79}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, -\cite{Dunkl78II}, \cite{Fischer95}, \cite{GasperRahman84}, -\cite{GasperRahman90}, \cite{Hahn}, \cite{KalninsMiller88}, -\cite{Koelink96I}, \cite{KoelinkKoorn}, \cite{Koorn89III}, \cite{Koorn90II}, -\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{Rahman82}, -\cite{Stanton80II}, \cite{Stanton84}, \cite{Stanton90}. - - -\section{Dual $q$-Hahn}\index{Dual q-Hahn polynomials@Dual $q$-Hahn polynomials} -\index{q-Hahn polynomials@$q$-Hahn polynomials!Dual} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefDualqHahn} -R_n(\mu(x);\gamma,\delta,N|q)= -\qhyp{3}{2}{q^{-n},q^{-x},\gamma\delta q^{x+1}}{\gamma q,q^{-N}}{q},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\mu(x):=q^{-x}+\gamma\delta q^{x+1}.$$ - -\newpage - -\subsection*{Orthogonality relation} -For $0<\gamma q<1$ and $0<\delta q<1$, or for $\gamma>q^{-N}$ and $\delta>q^{-N}$, we have -\begin{eqnarray} -\label{OrtDualqHahn} -& &\sum_{x=0}^N\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x}{(q,\gamma\delta q^{N+2},\delta q;q)_x} -\frac{(1-\gamma\delta q^{2x+1})}{(1-\gamma\delta q)(-\gamma q)^x}q^{Nx-\binom{x}{2}}\nonumber\\ -& &{}\mathindent{}\times R_m(\mu(x);\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=\frac{(\gamma\delta q^2;q)_N}{(\delta q;q)_N}(\gamma q)^{-N} -\frac{(q,\delta^{-1}q^{-N};q)_n}{(\gamma q,q^{-N};q)_n}(\gamma\delta q)^n\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecDualqHahn} -& &-\left(1-q^{-x}\right)\left(1-\gamma\delta q^{x+1}\right)R_n(\mu(x))\nonumber\\ -& &{}=A_nR_{n+1}(\mu(x))-\left(A_n+C_n\right)R_n(\mu(x))+C_nR_{n-1}(\mu(x)), -\end{eqnarray} -where -$$R_n(\mu(x)):=R_n(\mu(x);\gamma,\delta,N|q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\left(1-q^{n-N}\right)\left(1-\gamma q^{n+1}\right)\\ -\\ -\displaystyle C_n=\gamma q\left(1-q^n\right)\left(\delta -q^{n-N-1}\right). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecDualqHahn} -xp_n(x)&=&p_{n+1}(x)+\left[1+\gamma\delta q-(A_n+C_n)\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+\gamma q(1-q^n)(1-\gamma q^n)\nonumber\\ -& &{}\mathindent\mathindent{}\times(1-q^{n-N-1})(\delta-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$R_n(\mu(x);\gamma,\delta,N|q)=\frac{1}{(\gamma q,q^{-N};q)_n}p_n(\mu(x)).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDualqHahn} -q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x) -+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\mu(x);\gamma,\delta,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-\gamma q^{x+1})(1-\gamma\delta q^{x+1})} -{(1-\gamma\delta q^{2x+1})(1-\gamma\delta q^{2x+2})}\\ -\\ -\displaystyle D(x)=-\frac{\gamma q^{x-N}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)} -{(1-\gamma\delta q^{2x})(1-\gamma\delta q^{2x+1})}.\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualqHahnI} -& &R_n(\mu(x+1);\gamma,\delta,N|q)-R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-\gamma\delta q^{2x+2})}{(1-\gamma q)(1-q^{-N})} -R_{n-1}(\mu(x);\gamma q,\delta,N-1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1DualqHahnII} -& &\frac{\Delta R_n(\mu(x);\gamma,\delta,N|q)}{\Delta\mu(x)}\nonumber\\ -& &{}=\frac{q^{-n+1}(1-q^n)}{(1-q)(1-\gamma q)(1-q^{-N})}R_{n-1}(\mu(x);\gamma q,\delta,N-1|q). -\end{eqnarray} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualqHahnI} -& &(1-\gamma q^x)(1-\gamma\delta q^x)(1-q^{x-N-1})R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}\mathindent{}+\gamma q^{x-N-1}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)R_n(\mu(x-1);\gamma,\delta,N|q)\nonumber\\ -& &{}=q^x(1-\gamma)(1-q^{-N-1})(1-\gamma\delta q^{2x})R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualqHahnII} -& &\frac{\nabla\left[w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\right]}{\nabla\mu(x)}\nonumber\\ -& &{}=\frac{1}{(1-q)(1-\gamma\delta)}w(x;\gamma q^{-1},\delta,N+1|q)\nonumber\\ -& &{}\mathindent{}\times R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q), -\end{eqnarray} -where -$$w(x;\gamma,\delta,N|q)=\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x} -{(q,\gamma\delta q^{N+2},\delta q;q)_x}(-\gamma^{-1})^x q^{Nx-\binom{x}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodDualqHahn} -& &w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=(1-q)^n(\gamma\delta q;q)_n -\left(\nabla_{\mu}\right)^n\left[w(x;\gamma q^n,\delta,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_{\mu}:=\frac{\nabla}{\nabla\mu(x)}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenDualqHahn1} -& &(q^{-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},\delta^{-1}q^{-x}}{\gamma q}{\gamma\delta q^{x+1}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenDualqHahn2} -& &(\gamma\delta qt;q)_x\cdot\qhyp{2}{1}{q^{x-N},\gamma q^{x+1}}{\delta^{-1}q^{-N}}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N -\frac{(q^{-N},\gamma q;q)_n}{(\delta^{-1}q^{-N},q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Hahn} -To obtain the dual $q$-Hahn polynomials from the $q$-Racah polynomials we have to -take $\beta=0$ and $\alpha q=q^{-N}$ in (\ref{DefqRacah}): -$$R_n(\mu(x);q^{-N-1},0,\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q),$$ -with -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ -We may also take $\alpha=0$ and $\beta=\delta^{-1}q^{-N-1}$ in (\ref{DefqRacah}) to obtain -the dual $q$-Hahn polynomials from the $q$-Racah polynomials: -$$R_n(\mu(x);0,\delta^{-1}q^{-N-1},\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q).$$ -And if we take $\gamma q=q^{-N}$, $\delta\rightarrow\alpha\delta q^{N+1}$ and $\beta=0$ in the -definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the dual -$q$-Hahn polynomials given by (\ref{DefDualqHahn}) in the following way: -$$R_n(\mu(x);\alpha,0,q^{-N-1},\alpha\delta q^{N+1}|q)=R_n({\tilde \mu}(x);\alpha,\delta,N|q),$$ -with -$${\tilde \mu}(x)=q^{-x}+\alpha\delta q^{x+1}.$$ - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} -The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -can be obtained from the dual $q$-Hahn polynomials by the substitution $\gamma=p$ -and $\delta=0$ in (\ref{DefDualqHahn}): -\begin{equation} -R_n(\mu(x);p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). -\end{equation} -Note that $\mu(x)=q^{-x}$ in this case. - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} -The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can -be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ -in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: -\begin{equation} -\lim_{\gamma\rightarrow 0} -R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q). -\end{equation} - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual Hahn} -The dual Hahn polynomials given by (\ref{DefDualHahn}) follow from the dual $q$-Hahn -polynomials by simply taking the limit $q\rightarrow 1$ in the definition (\ref{DefDualqHahn}) -of the dual $q$-Hahn polynomials after applying the substitution -$\gamma\rightarrow q^{\gamma}$ and $\delta\rightarrow q^{\delta}$: -\begin{equation} -\lim_{q\rightarrow 1}R_n(\mu(x);q^{\gamma},q^{\delta},N|q)=R_n(\lambda(x);\gamma,\delta,N), -\end{equation} -where -$$\left\{\begin{array}{l} -\displaystyle\mu(x)=q^{-x}+q^{x+\gamma+\delta+1}\\[5mm] -\displaystyle\lambda(x)=x(x+\gamma+\delta+1). -\end{array}\right.$$ - -\subsection*{Remark} -The dual $q$-Hahn polynomials given by (\ref{DefDualqHahn}) and the -$q$-Hahn polynomials given by (\ref{DefqHahn}) are related in the following way: -$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ -with -$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ -or -$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ -where -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ - RS: add begin\label{sec14.5} -% -\paragraph{\large\bf KLSadd: Different notation}See p.442, Remarks: -\begin{equation} -P_n(x;a,b,c,d;q):=P_n(qac^{-1}x;a,b,-ac^{-1}d;q) -=\qhyp32{q^{-n},q^{n+1}ab,qac^{-1}x}{qa,-qac^{-1}d}{q,q}. -\label{123} -\end{equation} -Furthermore, -\begin{equation} -P_n(x;a,b,c,d;q)=P_n(\la x;a,b,\la c,\la d;q), -\label{141} -\end{equation} -\begin{equation} -P_n(x;a,b,c;q)=P_n(-q^{-1}c^{-1}x;a,b,-ac^{-1},1;q) -\label{142} -\end{equation} -% -\paragraph{\large\bf KLSadd: Orthogonality relation}(equivalent to (14.5.2), see also \cite[(2.42), (2.41), (2.36), (2.35)]{K17}). -Let $c,d>0$ and either $a\in (-c/(qd),1/q)$, $b\in(-d/(cq),1/q)$ or -$a/c=-\overline b/d\notin\RR$. Then -\begin{equation} -\int_{-d}^c P_m(x;a,b,c,d;q) P_n(x;a,b,c,d;q)\, -\frac{(qx/c,-qx/d;q)_\iy}{(qax/c,-qbx/d;q)_\iy}\,d_qx=h_n\,\de_{m,n}\,, -\label{124} -\end{equation} -where -\begin{equation} -\frac{h_n}{h_0}=q^{\half n(n-1)}\left(\frac{q^2a^2d}c\right)^n\, -\frac{1-qab}{1-q^{2n+1}ab}\, -\frac{(q,qb,-qbc/d;q)_n}{(qa,qab,-qad/c;q)_n} -\label{125} -\end{equation} -and -\begin{equation} -h_0=(1-q)c\,\frac{(q,-d/c,-qc/d,q^2ab;q)_\iy} -{(qa,qb,-qbc/d,-qad/c;q)_\iy}\,. -\label{126} -\end{equation} -% -\paragraph{\large\bf KLSadd: Other hypergeometric representation and asymptotics}\begin{align} -&P_n(x;a,b,c,d;q) -=\frac{(-qbd^{-1}x;q)_n}{(-q^{-n}a^{-1}cd^{-1};q)_n}\, -\qhyp32{q^{-n},q^{-n}b^{-1},cx^{-1}}{qa,-q^{-n}b^{-1}dx^{-1}}{q,q} -\label{138}\\ -&\qquad=(qac^{-1}x)^n\,\frac{(qb,cx^{-1};q)_n}{(qa,-qac^{-1}d;q)_n}\, -\qhyp32{q^{-n},q^{-n}a^{-1},-qbd^{-1}x}{qb,q^{1-n}c^{-1}x} -{q,-q^{n+1}ac^{-1}d} -\label{132}\\ -&\qquad=(qac^{-1}x)^n\,\frac{(qb,q;q)_n}{(-qac^{-1}d;q)_n}\, -\sum_{k=0}^n\frac{(cx^{-1};q)_{n-k}}{(q,qa;q)_{n-k}}\, -\frac{(-qbd^{-1}x;q)_k}{(qb,q;q)_k}\,(-1)^k q^{\half k(k-1)}(-dx^{-1})^k. -\label{133} -\end{align} -Formula \eqref{138} follows from \eqref{123} by -\mycite{GR}{(III.11)} and next \eqref{132} follows by series inversion -\mycite{GR}{Exercise 1.4(ii)}. -Formulas \eqref{138} and \eqref{133} are also given in -\mycite{Ism}{(18.4.28), (18.4.29)}. -It follows from \eqref{132} or \eqref{133} that -(see \myciteKLS{298}{(1.17)} or \mycite{Ism}{(18.4.31)}) -\begin{equation} -\lim_{n\to\iy}(qac^{-1}x)^{-n} P_n(x;a,b,c,d;q) -=\frac{(cx^{-1},-dx^{-1};q)_\iy}{(-qac^{-1}d,qa;q)_\iy}\,, -\label{134} -\end{equation} -uniformly for $x$ in compact subsets of $\CC\backslash\{0\}$. -(Exclusion of the spectral points $x=cq^m,dq^m$ ($m=0,1,2,\ldots$), -as was done in \myciteKLS{298} and \mycite{Ism}, is not necessary. However, -while \eqref{134} yields 0 at these points, a more refined asymptotics -at these points is given in \myciteKLS{298} and \mycite{Ism}.)$\;$ -For the proof of \eqref{134} use that -\begin{equation} -\lim_{n\to\iy}(qac^{-1}x)^{-n} P_n(x;a,b,c,d;q) -=\frac{(qb,cx^{-1};q)_n}{(qa,-qac^{-1}d;q)_n}\, -\qhyp11{-qbd^{-1}x}{qb}{q,-dx^{-1}}, -\label{135} -\end{equation} -which can be evaluated by \mycite{GR}{(II.5)}. -Formula \eqref{135} follows formally from \eqref{132}, and it follows rigorously, by -dominated convergence, from \eqref{133}. -% -\paragraph{\large\bf KLSadd: Symmetry}(see \cite[\S2.5]{K17}). -\begin{equation} -\frac{P_n(-x;a,b,c,d;q)}{P_n(-d/(qb);a,b,c,d;q)} -=P_n(x;b,a,d,c;q). -\end{equation} -% -\paragraph{\large\bf KLSadd: Special values}\begin{align} -P_n(c/(qa);a,b,c,d;q)&=1,\\ -P_n(-d/(qb);a,b,c,d;q)&=\left(-\,\frac{ad}{bc}\right)^n\, -\frac{(qb,-qbc/d;q)_n}{(qa,-qad/c;q)_n}\,,\\ -P_n(c;a,b,c,d;q)&= -q^{\half n(n+1)}\left(\frac{ad}c\right)^n -\frac{(-qbc/d;q)_n}{(-qad/c;q)_n}\,,\\ -P_n(-d;a,b,c,d;q)&=q^{\half n(n+1)} (-a)^n\,\frac{(qb;q)_n}{(qa;q)_n}\,. -\end{align} -% -\paragraph{\large\bf KLSadd: Quadratic transformations}(see \cite[(2.48), (2.49)]{K17} and \eqref{128}).\\ -These express big $q$-Jacobi polynomials $P_m(x;a,a,1,1;q)$ in terms of little -$q$-Jacobi polynomials (see \S14.12). -\begin{align} -P_{2n}(x;a,a,1,1;q)&=\frac{p_n(x^2;q^{-1},a^2;q^2)}{p_n((qa)^{-2};q^{-1},a^2;q^2)}\,, -\label{130}\\ -P_{2n+1}(x;a,a,1,1;q)&=\frac{qax\,p_n(x^2;q,a^2;q^2)}{p_n((qa)^{-2};q,a^2;q^2)}\,. -\label{131} -\end{align} -Hence, by (14.12.1), \mycite{GR}{Exercise 1.4(ii)} and \eqref{128}, -\begin{align} -P_n(x;a,a,1,1;q)&=\frac{(qa^2;q^2)_n}{(qa^2;q)_n}\,(qax)^n\, -\qhyp21{q^{-n},q^{-n+1}}{q^{-2n+1}a^{-2}}{q^2,(ax)^{-2}} -\label{136}\\ -&=\frac{(q;q)_n}{(qa^2;q)_n}\,(qa)^n\, -\sum_{k=0}^{[\half n]}(-1)^k q^{k(k-1)} -\frac{(qa^2;q^2)_{n-k}}{(q^2;q^2)_k\,(q;q)_{n-2k}}\,x^{n-2k}. -\label{137} -\end{align} -% -\paragraph{\large\bf KLSadd: $q$-Chebyshev polynomials}In \eqref{123}, with $c=d=1$, the cases $a=b=q^{-\half}$ and $a=b=q^\half$ can be considered -as $q$-analogues of the Chebyshev polynomials of the first and second kind, respectively -(\S9.8.2) because of the limit (14.5.17). The quadratic relations \eqref{130}, \eqref{131} -can also be specialized to these cases. The definition of the $q$-Chebyshev polynomials -may vary by normalization and by dilation of argument. They were considered in -\cite{K18}. -By \myciteKLS{24}{p.279} and \eqref{130}, \eqref{131}, the {\em Al-Salam-Ismail polynomials} -$U_n(x;a,b)$ ($q$-dependence suppressed) in the case $a=q$ can be expressed as -$q$-Chebyshev polynomials of the second kind: -\begin{equation*} -U_n(x,q,b)=(q^{-3} b)^{\half n}\,\frac{1-q^{n+1}}{1-q}\, -P_n(b^{-\half}x;q^\half,q^\half,1,1;q). -\end{equation*} -Similarly, by \cite[(5.4), (5.1), (5.3)]{K19} and \eqref{130}, \eqref{131}, Cigler's $q$-Chebyshev -polynomials $T_n(x,s,q)$ and $U_n(x,s,q)$ -can be expressed in terms of the $q$-Chebyshev cases of \eqref{123}: -\begin{align*} -T_n(x,s,q)&=(-s)^{\half n}\,P_n((-qs)^{-\half} x;q^{-\half},q^{-\half},1,1;q),\\ -U_n(x,s,q)&=(-q^{-2}s)^{\half n}\,\frac{1-q^{n+1}}{1-q}\, -P_n((-qs)^{-\half} x;q^{\half},q^{\half},1,1;q). -\end{align*} -% -\paragraph{\large\bf KLSadd: Limit to Discrete $q$-Hermite I}\begin{equation} -\lim_{a\to0} a^{-n}\,P_n(x;a,a,1,1;q)=q^n\,h_n(x;q). -\label{139} -\end{equation} -Here $h_n(x;q)$ is given by (14.28.1). -For the proof of \eqref{139} use \eqref{138}. -% -\paragraph{\large\bf KLSadd: Pseudo big $q$-Jacobi polynomials}Let $a,b,c,d\in\CC$, $z_+>0$, $z_-<0$ such that -$\tfrac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}>0$ for $x\in z_- q^\ZZ\cup z_+ q^\ZZ$. -Then $(ab)/(qcd)>0$. Assume that $(ab)/(qcd)<1$. -Let $N$ be the largest nonnegative integer such that $q^{2N}>(ab)/(qcd)$. -Then -\begin{multline} -\int_{z_- q^\ZZ\cup z_+ q^\ZZ}P_m(cx;c/b,d/a,c/a;q)\,P_n(cx;c/b,d/a,c/a;q)\, -\frac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}\,d_qx=h_n\de_{m,n}\\ -(m,n=0,1,\ldots,N), -\label{114} -\end{multline} -where -\begin{equation} -\frac{h_n}{h_0}=(-1)^n\left(\frac{c^2}{ab}\right)^n q^{\half n(n-1)} q^{2n}\, -\frac{(q,qd/a,qd/b;q)_n}{(qcd/(ab),qc/a,qc/b;q)_n}\, -\frac{1-qcd/(ab)}{1-q^{2n+1}cd/(ab)} -\label{115} -\end{equation} -and -\begin{equation} -h_0=\int_{z_- q^\ZZ\cup z_+ q^\ZZ}\frac{(ax,bx;q)_\iy}{(cx,dx;q)_\iy}\,d_qx -=(1-q)z_+\, -\frac{(q,a/c,a/d,b/c,b/d;q)_\iy}{(ab/(qcd);q)_\iy}\, -\frac{\tha(z_-/z_+,cdz_-z_+;q)}{\tha(cz_-,dz_-,cz_+,dz_+;q)}\,. -\label{116} -\end{equation} -See Groenevelt \& Koelink \cite[Prop.~2.2]{K14}. -Formula \eqref{116} was first given by Slater \cite[(5)]{K15} as an evaluation -of a sum of two ${}_2\psi_2$ series. -The same formula is given in Slater \myciteKLS{471}{(7.2.6)} and in -\mycite{GR}{Exercise 5.10}, but in both cases with the same slight error, -see \cite[2nd paragraph after Lemma 2.1]{K14} for correction. -The theta function is given by \eqref{117}. -Note that -\begin{equation} -P_n(cx;c/b,d/a,c/a;q)=P_n(-q^{-1}ax;c/b,d/a,-a/b,1;q). -\label{145} -\end{equation} - -In \cite{K29} the weights of the pseudo big $q$-Jacobi polynomials -occur in certain measures on the space of $N$-point configurations -on the so-called extended Gelfand-Tsetlin graph. -% -\subsubsection*{Limit relations} -\paragraph{\large\bf KLSadd: Pseudo big $q$-Jacobi $\longrightarrow$ Discrete Hermite II}\begin{equation} -\lim_{a\to\iy}i^n q^{\half n(n-1)} P_n(q^{-1}a^{-1}ix;a,a,1,1;q)= -\wt h_n(x;q). -\label{144} -\end{equation} -For the proof use \eqref{137} and \eqref{143}. -Note that $P_n(q^{-1}a^{-1}ix;a,a,1,1;q)$ is obtained from the -\RHS\ of \eqref{144} by replacing $a,b,c,d$ by $-ia^{-1},ia^{-1},i,-i$. -% -\paragraph{\large\bf KLSadd: Pseudo big $q$-Jacobi $\longrightarrow$ Pseudo Jacobi}\begin{equation} -\lim_{q\uparrow1}P_n(iq^{\half(-N-1+i\nu)}x;-q^{-N-1},-q^{-N-1},q^{-N+i\nu-1};q) -=\frac{P_n(x;\nu,N)}{P_n(-i;\nu,N)}\,. -\label{118} -\end{equation} -Here the big $q$-Jacobi polynomial on the \LHS\ equals -$P_n(cx;c/b,d/a,c/a;q)$ with\\ -$a=iq^{\half(N+1-i\nu)}$, $b=-iq^{\half(N+1+i\nu)}$, -$c=iq^{\half(-N-1+i\nu)}$, $d=-iq^{\half(-N-1-i\nu)}$. -% - -\subsection*{References} -\cite{AlvarezSmirnov}, \cite{AndrewsAskey85}, \cite{AskeyWilson79}, -\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, -\cite{KoelinkKoorn}, \cite{Nikiforov+}, \cite{Stanton84}. - - -\section{Al-Salam-Chihara}\index{Al-Salam-Chihara polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefAlSalamChihara} -Q_n(x;a,b|q)&=&\frac{(ab;q)_n}{a^n}\, -\qhyp{3}{2}{q^{-n},a\e^{i\theta},a\e^{-i\theta}}{ab,0}{q}\\ -&=&(a\e^{i\theta};q)_n\e^{-in\theta}\,\qhyp{2}{1}{q^{-n},b\e^{-i\theta}} -{a^{-1}q^{-n+1}\e^{-i\theta}}{a^{-1}q\e^{i\theta}}\nonumber\\ -&=&(b\e^{-i\theta};q)_n\e^{in\theta}\,\qhyp{2}{1}{q^{-n},a\e^{i\theta}} -{b^{-1}q^{-n+1}\e^{i\theta}}{b^{-1}q\e^{-i\theta}},\quad x=\cos\theta.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -If $a$ and $b$ are real or complex conjugates and $\max(|a|,|b|)<1$, then we have the following orthogonality relation -\begin{equation} -\label{OrtAlSalamChiharaI} -\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx -=\frac{\,\delta_{mn}}{(q^{n+1},abq^n;q)_{\infty}}, -\end{equation} -where -$$w(x):=w(x;a,b|q)=\left|\frac{(\e^{2i\theta};q)_{\infty}} -{(a\e^{i\theta},b\e^{i\theta};q)_{\infty}}\right|^2 -=\frac{h(x,1)h(x,-1)h(x,q^{\frac{1}{2}})h(x,-q^{\frac{1}{2}})}{h(x,a)h(x,b)},$$ -with -$$h(x,\alpha):=\prod_{k=0}^{\infty}\left(1-2\alpha xq^k+\alpha^2q^{2k}\right) -=\left(\alpha\e^{i\theta},\alpha\e^{-i\theta};q\right)_{\infty},\quad x=\cos\theta.$$ -If $a>1$ and $|ab|<1$, then we have another orthogonality relation given by: -\begin{eqnarray} -\label{OrtAlSalamChiharaII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1q^{-N}$;\quad -(iv) $\ga>q^{-N}$, $\de>q^{-N}$;\quad -(v) $01,\;qb0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqMeixner} -& &q^{2n+1}(1-q^{-x})M_n(q^{-x})\nonumber\\ -& &{}=c(1-bq^{n+1})M_{n+1}(q^{-x})\nonumber\\ -& &{}\mathindent{}-\left[c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right]M_n(q^{-x})\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^n)(c+q^n)M_{n-1}(q^{-x}), -\end{eqnarray} -where -$$M_n(q^{-x}):=M_n(q^{-x};b,c;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqMeixner} -xp_n(x)&=&p_{n+1}(x)+ -\left[1+q^{-2n-1}\left\{c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+cq^{-4n+1}(1-q^n)(1-bq^n)(c+q^n)p_{n-1}(x), -\end{eqnarray} -where -$$M_n(q^{-x};b,c;q)=\frac{(-1)^nq^{n^2}}{(bq;q)_nc^n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqMeixner} --(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=M_n(q^{-x};b,c;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=cq^x(1-bq^{x+1})\\ -\\ -\displaystyle D(x)=(1-q^x)(1+bcq^x).\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qMeixnerI} -& &M_n(q^{-x-1};b,c;q)-M_n(q^{-x};b,c;q)\nonumber\\ -& &{}=-\frac{q^{-x}(1-q^n)}{c(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1qMeixnerII} -\frac{\Delta M_n(q^{-x};b,c;q)}{\Delta q^{-x}} -=-\frac{q(1-q^n)}{c(1-q)(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qMeixnerI} -& &cq^x(1-bq^x)M_n(q^{-x};b,c;q)-(1-q^x)(1+bcq^x)M_n(q^{-x+1};b,c;q)\nonumber\\ -& &{}=cq^x(1-b)M_{n+1}(q^{-x};bq^{-1},cq;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qMeixnerII} -& &\frac{\nabla\left[w(x;b,c;q)M_n(q^{-x};b,c;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;bq^{-1},cq;q)M_{n+1}(q^{-x};bq^{-1},cq;q), -\end{eqnarray} -where -$$w(x;b,c;q)=\frac{(bq;q)_x}{(q,-bcq;q)_x}c^xq^{\binom{x+1}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqMeixner} -w(x;b,c;q)M_n(q^{-x};b,c;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;bq^n,cq^{-n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} -\begin{equation} -\label{GenqMeixner1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{bq}{-c^{-1}qt} -=\sum_{n=0}^{\infty}\frac{M_n(q^{-x};b,c;q)}{(q;q)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenqMeixner2} -& &\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-b^{-1}c^{-1}q^{-x}}{-c^{-1}q}{bqt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(bq;q)_n}{(-c^{-1}q,q;q)_n}M_n(q^{-x};b,c;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Jacobi $\rightarrow$ $q$-Meixner} -If we set $b=-a^{-1}cd^{-1}$ (with $d>0$) in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we -obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): -\begin{equation} -\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials -by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the -$q$-Hahn polynomials and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q).$$ - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained -from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting -$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition -(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit -$c\rightarrow\infty$: -\begin{equation} -\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be -obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ -in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: -\begin{equation} -M_n(x;0,c;q)=C_n(x;c;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ Al-Salam-Carlitz~II} -The Al-Salam-Carlitz~II polynomials given by (\ref{DefAlSalamCarlitzII}) -can be obtained from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) -by setting $b=-ac^{-1}$ in the definition (\ref{DefqMeixner}) of the -$q$-Meixner polynomials and then taking the limit $c\rightarrow 0$: -\begin{equation} -\lim_{c\rightarrow 0}M_n(x;-ac^{-1},c;q)= -\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ Meixner} -To find the Meixner polynomials given by (\ref{DefMeixner}) from the $q$-Meixner polynomials given by -(\ref{DefqMeixner}) we set $b=q^{\beta-1}$ and $c\rightarrow (1-c)^{-1}c$ and let $q\rightarrow 1$: -\begin{equation} -\lim_{q\rightarrow 1}M_n(q^{-x};q^{\beta-1},(1-c)^{-1}c;q)=M_n(x;\beta,c). -\end{equation} - -\subsection*{Remarks} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) and the little -$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related in the -following way: -$$M_n(q^{-x};b,c;q)=p_n(-c^{-1}q^n;b,b^{-1}q^{-n-x-1}|q).$$ - -\noindent -The $q$-Meixner polynomials and the quantum $q$-Krawtchouk polynomials -given by (\ref{DefQuantumqKrawtchouk}) are related in the following way: -$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamVerma82II}, \cite{AlSalamVerma88}, \cite{AlvarezRonveaux}, -\cite{AtakAtakKlimyk}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, \cite{GasperRahman90}, -\cite{Hahn}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Smirnov}. - - -\section{Quantum $q$-Krawtchouk} -\index{Quantum q-Krawtchouk polynomials@Quantum $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Quantum} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefQuantumqKrawtchouk} -K_n^{qtm}(q^{-x};p,N;q)= -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{-N}}{pq^{n+1}},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtQuantumqKrawtchouk} -& &\sum_{x=0}^N\frac{(pq;q)_{N-x}}{(q;q)_x(q;q)_{N-x}}(-1)^{N-x}q^{\binom{x}{2}} -K_m^{qtm}(q^{-x};p,N;q)K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{(-1)^np^N(q;q)_{N-n}(q,pq;q)_n}{(q,q;q)_N} -q^{\binom{N+1}{2}-\binom{n+1}{2}+Nn}\,\delta_{mn},\quad p>q^{-N}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecQuantumqKrawtchouk} -& &-pq^{2n+1}(1-q^{-x})K_n^{qtm}(q^{-x})\nonumber\\ -& &{}=(1-q^{n-N})K_{n+1}^{qtm}(q^{-x})\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n-N})+q(1-q^n)(1-pq^n)\right]K_n^{qtm}(q^{-x})\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^n)(1-pq^n)K_{n-1}^{qtm}(q^{-x}), -\end{eqnarray} -where -$$K_n^{qtm}(q^{-x}):=K_n^{qtm}(q^{-x};p,N;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecQuantumqKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+ -\left[1-p^{-1}q^{-2n-1}\left\{(1-q^{n-N})+q(1-q^n)(1-pq^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+p^{-2}q^{-4n+1}(1-q^n)(1-pq^n)(1-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$K_n^{qtm}(q^{-x};p,N;q)=\frac{p^nq^{n^2}}{(q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvQuantumqKrawtchouk} --p(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=K_n^{qtm}(q^{-x};p,N;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=-q^x(1-q^{x-N})\\ -\\ -\displaystyle D(x)=(1-q^x)(p-q^{x-N-1}).\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1QuantumqKrawtchoukI} -& &K_n^{qtm}(q^{-x-1};p,N;q)-K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{pq^{-x}(1-q^n)}{1-q^{-N}}K_{n-1}^{qtm}(q^{-x};pq,N-1;q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1QuantumqKrawtchoukII} -\frac{\Delta K_n^{qtm}(q^{-x};p,N;q)}{\Delta q^{-x}}= -\frac{pq(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}^{qtm}(q^{-x};pq,N-1;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2QuantumqKrawtchoukI} -& &(1-q^{x-N-1})K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}\mathindent{}+q^{-x}(1-q^x)(p-q^{x-N-1})K_n^{qtm}(q^{-x+1};p,N;q)\nonumber\\ -& &{}=(1-q^{-N-1})K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2QuantumqKrawtchoukII} -& &\frac{\nabla\left[w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;pq^{-1},N+1;q)K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q), -\end{eqnarray} -where -$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q,p^{-1}q^{-N};q)_x}(-p)^{-x}q^{\binom{x+1}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodQuantumqKrawtchouk} -w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^n,N-n;q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenQuantumqKrawtchouk1} -& &(q^{x-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},pq^{N+1-x}}{0}{q^{x-N}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenQuantumqKrawtchouk2} -& &(q^{-x}t;q)_x\cdot\qhyp{2}{1}{q^{x-N},0}{pq}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(pq,q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} -The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of -the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: -$$\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q).$$ - -\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~II} -If we set $p=a^{-1}q^{-N-1}$ in the definition (\ref{DefQuantumqKrawtchouk}) -of the quantum $q$-Krawtchouk polynomials and let $N\rightarrow\infty$ we -obtain the Al-Salam-Carlitz~II polynomials given by -(\ref{DefAlSalamCarlitzII}). In fact we have -\begin{equation} -\lim_{N\rightarrow\infty}K_n^{qtm}(x;a^{-1}q^{-N-1},N;q)= -\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). -\end{equation} - -\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) easily follow from -the quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -in the following way: -\begin{equation} -\lim_{q\rightarrow 1}K_n^{qtm}(q^{-x};p,N;q)=K_n(x;p^{-1},N). -\end{equation} - -\subsection*{Remarks} -The quantum $q$-Krawtchouk polynomials given by -(\ref{DefQuantumqKrawtchouk}) and the $q$-Meixner polynomials given by -(\ref{DefqMeixner}) are related in the following way: -$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ - -\noindent -The quantum $q$-Krawtchouk polynomials are related to the affine -$q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -by the transformation $q\leftrightarrow q^{-1}$ in the following way: -$$K_n^{qtm}(q^x;p,N;q^{-1})=(p^{-1}q;q)_n\left(-\frac{p}{q}\right)^nq^{-\binom{n}{2}} -K_n^{Aff}(q^{x-N};p^{-1},N;q).$$ - RS: add begin\label{sec14.12} -% -\paragraph{\large\bf KLSadd: Notation}Here the little $q$-Jacobi polynomial is denoted by -$p_n(x;a,b;q)$ instead of -$p_n(x;a,b\,|\, q)$. -% -\paragraph{\large\bf KLSadd: Special values}(see \cite[\S2.4]{K17}). -\begin{align} -p_n(0;a,b;q)&=1,\label{127}\\ -p_n(q^{-1}b^{-1};a,b;q)&=(-qb)^{-n}\,q^{-\half n(n-1)}\,\frac{(qb;q)_n}{(qa;q)_n}\,,\label{128}\\ -p_n(1;a,b;q)&=(-a)^n\,q^{\half n(n+1)}\,\frac{(qb;q)_n}{(qa;q)_n}\,.\label{129} -\end{align} -% - -\subsection*{References} -\cite{GasperRahman90}, \cite{Koorn89III}, \cite{Koorn90II}, \cite{Smirnov}. - - -\section{$q$-Krawtchouk}\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} For $n=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{DefqKrawtchouk} -K_n(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}\\ -&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{-pq^{n+N+1}}.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqKrawtchouk} -& &\sum_{x=0}^N\frac{(q^{-N};q)_x}{(q;q)_x}(-p)^{-x}K_m(q^{-x};p,N;q)K_n(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{(q,-pq^{N+1};q)_n}{(-p,q^{-N};q)_n}\frac{(1+p)}{(1+pq^{2n})}\nonumber\\ -& &{}\mathindent{}\times (-pq;q)_Np^{-N}q^{-\binom{N+1}{2}} -\left(-pq^{-N}\right)^nq^{n^2}\,\delta_{mn},\quad p>0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqKrawtchouk} --\left(1-q^{-x}\right)K_n(q^{-x})&=&A_nK_{n+1}(q^{-x})-\left(A_n+C_n\right)K_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+C_nK_{n-1}(q^{-x}), -\end{eqnarray} -where -$$K_n(q^{-x}):=K_n(q^{-x};p,N;q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n-N})(1+pq^n)}{(1+pq^{2n})(1+pq^{2n+1})}\\ -\\ -\displaystyle C_n=-pq^{2n-N-1}\frac{(1+pq^{n+N})(1-q^n)}{(1+pq^{2n-1})(1+pq^{2n})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqKrawtchouk} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$K_n(q^{-x};p,N;q)=\frac{(-pq^n;q)_n}{(q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqKrawtchouk} -& &q^{-n}(1-q^n)(1+pq^n)y(x)\nonumber\\ -& &{}=(1-q^{x-N})y(x+1)-\left[(1-q^{x-N})-p(1-q^x)\right]y(x)\nonumber\\ -& &{}\mathindent{}-p(1-q^x)y(x-1), -\end{eqnarray} -where -$$y(x)=K_n(q^{-x};p,N;q).$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qKrawtchoukI} -& &K_n(q^{-x-1};p,N;q)-K_n(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1+pq^n)}{1-q^{-N}}K_{n-1}(q^{-x};pq^2,N-1;q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1qKrawtchoukII} -\frac{\Delta K_n(q^{-x};p,N;q)}{\Delta q^{-x}}= -\frac{q^{-n+1}(1-q^n)(1+pq^n)}{(1-q)(1-q^{-N})}K_{n-1}(q^{-x};pq^2,N-1;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qKrawtchoukI} -& &(1-q^{x-N-1})K_n(q^{-x};p,N;q)+pq^{-1}(1-q^x)K_n(q^{-x+1};p,N;q)\nonumber\\ -& &{}=q^x(1-q^{-N-1})K_{n+1}(q^{-x};pq^{-2},N+1;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qKrawtchoukII} -& &\frac{\nabla\left[w(x;p,N;q)K_n(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;pq^{-2},N+1;q)K_{n+1}(q^{-x};pq^{-2},N+1;q), -\end{eqnarray} -where -$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q;q)_x}\left(-\frac{q}{p}\right)^x.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqKrawtchouk} -w(x;p,N;q)K_n(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^{2n},N-n;q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenqKrawtchouk} -& &\qhyp{1}{1}{q^{-x}}{0}{pqt}\,\qhyp{2}{0}{q^{x-N},0}{-}{-q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}K_n(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ $q$-Krawtchouk} -The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) can be obtained from -the $q$-Racah polynomials by setting $\alpha q=q^{-N}$, $\beta=-pq^N$ and -$\gamma=\delta=0$ in the definition (\ref{DefqRacah}) of the $q$-Racah polynomials: -$$R_n(q^{-x};q^{-N-1},-pq^N,0,0|q)=K_n(q^{-x};p,N;q).$$ -Note that $\mu(x)=q^{-x}$ in this case. - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} -If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials -and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by -(\ref{DefqKrawtchouk}): -$$\lim_{\alpha\rightarrow 0} -Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q).$$ - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we -obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} -By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we -obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ Krawtchouk} -If we take the limit $q\rightarrow 1$ in the definition (\ref{DefqKrawtchouk}) of the $q$-Krawtchouk -polynomials we simply find the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) in the -following way: -\begin{equation} -\lim_{q\rightarrow 1}K_n(q^{-x};p,N;q)=K_n(x;(p+1)^{-1},N). -\end{equation} - -\subsection*{Remark} -The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) and the -dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) are -related in the following way: -$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ -with -$$\lambda(n)=q^{-n}-pq^n$$ -or -$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ -with -$$\lambda(x)=q^{-x}+cq^{x-N}.$$ - -\subsection*{References} -\cite{AlvarezRonveaux}, \cite{AskeyWilson79}, \cite{AtakRahmanSuslov}, -\cite{Campigotto+}, \cite{GasperRahman90}, \cite{Nikiforov+}, -\cite{NoumiMimachi91}, \cite{Stanton80III}, \cite{Stanton84}. - - -\newpage - -\section{Affine $q$-Krawtchouk} -\index{Affine q-Krawtchouk polynomials@Affine $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Affine} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefAffqKrawtchouk} -K_n^{Aff}(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}\\ -&=&\frac{(-pq)^nq^{\binom{n}{2}}}{(pq;q)_n}\, -\qhyp{2}{1}{q^{-n},q^{x-N}}{q^{-N}}{\frac{q^{-x}}{p}},\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAffqKrawtchouk} -& &\sum_{x=0}^N\frac{(pq;q)_x(q;q)_N}{(q;q)_x(q;q)_{N-x}}(pq)^{-x}K_m^{Aff}(q^{-x};p,N;q)K_n^{Aff}(q^{-x};p,N;q)\nonumber\\ -& &{}=(pq)^{n-N}\frac{(q;q)_n(q;q)_{N-n}}{(pq;q)_n(q;q)_N}\,\delta_{mn},\quad 01$ -if $p>q^{-1}$. -% -\paragraph{\large\bf KLSadd: History}The origin of the name of the quantum $q$-Krawtchouk polynomials -is by their interpretation -as matrix elements of irreducible corepresentations of (the quantized -function algebra of) the quantum group $SU_q(2)$ considered -with respect to its quantum subgroup $U(1)$. The orthogonality -relation and dual orthogonality relation of these polynomials -are an expression of the unitarity of these corepresentations. -See for instance \myciteKLS{343}{Section 6}. -% - -\subsection*{References} -\cite{AtakRahmanSuslov}, \cite{LChiharaStanton}, \cite{Delsarte}, -\cite{DelsarteGoethals}, \cite{Dunkl78II}, \cite{FlorisKoelink}, -\cite{GasperRahman90}, \cite{Stanton84}. - - -\section{Dual $q$-Krawtchouk} -\index{Dual q-Krawtchouk polynomials@Dual $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Dual} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefDualqKrawtchouk} -K_n(\lambda(x);c,N|q)&=&\qhyp{3}{2}{q^{-n},q^{-x},cq^{x-N}}{q^{-N},0}{q}\\ -&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{cq^{x+1}},\quad n=0,1,2,\ldots,N,\nonumber -\end{eqnarray} -where -$$\lambda(x):=q^{-x}+cq^{x-N}.$$ - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDualqKrawtchouk} -& &\sum_{x=0}^N\frac{(cq^{-N},q^{-N};q)_x}{(q,cq;q)_x} -\frac{(1-cq^{2x-N})}{(1-cq^{-N})}c^{-x}q^{x(2N-x)}K_m(\lambda(x))K_n(\lambda(x))\nonumber\\ -& &{}=(c^{-1};q)_N\frac{(q;q)_n}{(q^{-N};q)_n}(cq^{-N})^n\,\delta_{mn},\quad c<0, -\end{eqnarray} -where -$$K_n(\lambda(x)):=K_n(\lambda(x);c,N|q).$$ - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecDualqKrawtchouk} -& &-(1-q^{-x})(1-cq^{x-N})K_n(\lambda(x))\nonumber\\ -& &{}=(1-q^{n-N})K_{n+1}(\lambda(x))\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n-N})+cq^{-N}(1-q^n)\right]K_n(\lambda(x))\nonumber\\ -& &{}\mathindent\mathindent{}+cq^{-N}(1-q^n)K_{n-1}(\lambda(x)), -\end{eqnarray} -where -$$K_n(\lambda(x)):=K_n(\lambda(x);c,N|q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecDualqKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+(1+c)q^{n-N}p_n(x)\nonumber\\ -& &{}\mathindent{}+cq^{-N}(1-q^n)(1-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$K_n(\lambda(x);c,N|q)=\frac{1}{(q^{-N};q)_n}p_n(\lambda(x)).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDualqKrawtchouk} -q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=K_n(\lambda(x);c,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-cq^{x-N})}{(1-cq^{2x-N})(1-cq^{2x-N+1})}\\ -\\ -\displaystyle D(x)=cq^{2x-2N-1}\frac{(1-q^x)(1-cq^x)}{(1-cq^{2x-N-1})(1-cq^{2x-N})}.\end{array}\right.$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualqKrawtchoukI} -& &K_n(\lambda(x+1);c,N|q)-K_n(\lambda(x);c,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-cq^{2x-N+1})}{1-q^{-N}} -K_{n-1}(\lambda(x);c,N-1|q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1DualqKrawtchoukII} -\frac{\Delta K_n(\lambda(x);c,N|q)}{\Delta\lambda(x)}= -\frac{q^{-n+1}(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}(\lambda(x);c,N-1|q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualqKrawtchoukI} -& &(1-q^{x-N-1})(1-cq^{x-N-1})K_n(\lambda(x);c,N|q)\nonumber\\ -& &{}\mathindent{}-cq^{2(x-N-1)}(1-q^x)(1-cq^x)K_n(\lambda(x-1);c,N|q)\nonumber\\ -& &{}=q^x(1-q^{-N-1})(1-cq^{2x-N-1})K_{n+1}(\lambda(x);c,N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualqKrawtchoukII} -& &\frac{\nabla\left[w(x;c,N|q)K_n(\lambda(x);c,N|q)\right]}{\nabla\lambda(x)}\nonumber\\ -& &{}=\frac{1}{(1-q)(1-cq^{-N-1})}w(x;c,N+1|q)K_{n+1}(\lambda(x);c,N+1|q), -\end{eqnarray} -where -$$w(x;c,N|q)=\frac{(q^{-N},cq^{-N};q)_x}{(q,cq;q)_x}c^{-x}q^{2Nx-x(x-1)}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodDualqKrawtchouk} -& &w(x;c,N|q)K_n(\lambda(x);c,N|q)\nonumber\\ -& &{}=(1-q)^n(cq^{-N};q)_n\left(\nabla_{\lambda}\right)^n\left[w(x;c,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ - -\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenDualqKrawtchouk} -(cq^{-N}t;q)_x\cdot (q^{-N}t;q)_{N-x}=\sum_{n=0}^N -\frac{(q^{-N};q)_n}{(q;q)_n}K_n(\lambda(x);c,N|q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Krawtchouk} -The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) easily -follow from the $q$-Racah polynomials given by (\ref{DefqRacah}) by using the -substitutions $\alpha=\beta=0$, $\gamma q=q^{-N}$ and $\delta=c$: -$$R_n(\mu(x);0,0,q^{-N-1},c|q)=K_n(\lambda(x);c,N|q).$$ -Note that -$$\mu(x)=\lambda(x)=q^{-x}+cq^{x-N}.$$ - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} -The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can -be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ -in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: -$$\lim_{\gamma\rightarrow 0} -R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q).$$ - -\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} -If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) -of the dual $q$-Krawtchouk polynomials and take the limit -$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials -given by (\ref{DefAlSalamCarlitzI}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= -\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q). -\end{equation} -Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. - -\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Krawtchouk} -If we set $c=1-p^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) of the -dual $q$-Krawtchouk polynomials and take the limit $q\rightarrow 1$ we simply find -the Krawtchouk polynomials given by (\ref{DefKrawtchouk}): -\begin{equation} -\lim_{q\rightarrow 1}K_n(\lambda(x);1-p^{-1},N|q)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) -and the $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) are -related in the following way: -$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ -with -$$\lambda(n)=q^{-n}-pq^n$$ -or -$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ -with -$$\lambda(x)=q^{-x}+cq^{x-N}.$$ - RS: add begin\label{sec14.16} -% -\paragraph{\large\bf KLSadd: $q$-Hypergeometric representation}For $n=0,1,\ldots,N$ -(see (14.16.1)): -\begin{align} -K_n^{\rm Aff}(y;p,N;q) -&=\frac1{(p^{-1}q^{-1};q^{-1})_n}\,\qhyp21{q^{-n},q^{-N}y^{-1}}{q^{-N}}{q,p^{-1}y} -\label{156}\\ -&=\qhyp32{q^{-n},y,0}{q^{-N},pq}{q,q}. -\label{157} -\end{align} -% -\paragraph{\large\bf KLSadd: Self-duality}By \eqref{157}: -\begin{equation} -K_n^{\rm Aff}(q^{-x};p,N;q)=K_x^{\rm Aff}(q^{-n};p,N;q)\qquad -(n,x\in\{0,1,\ldots,N\}). -\label{168} -\end{equation} -% -\paragraph{\large\bf KLSadd: Special values}By \eqref{156} and \mycite{GR}{(II.4)}: -\begin{equation} -K_n^{\rm Aff}(1;p,N;q)=1,\qquad -K_n^{\rm Aff}(q^{-N};p,N;q)=\frac1{((pq)^{-1};q^{-1})_n}\,. -\label{165} -\end{equation} -By \eqref{165} and \eqref{168} we have also -\begin{equation} -K_N^{\rm Aff}(q^{-x};p,N;q)=\frac1{((pq)^{-1};q^{-1})_x}\,. -\label{170} -\end{equation} -% -\paragraph{\large\bf KLSadd: Limit for $q\to1$ to Krawtchouk}\begin{align} -\lim_{q\to1} K_n^{\rm Aff}(1+(1-q)x;p,N;q)&=K_n(x;1-p,N), -\label{162}\\ -\lim_{q\to1} K_n^{\rm Aff}(q^{-x};p,N;q)&=K_n(x;1-p,N). -\label{166} -\end{align} -% -\paragraph{\large\bf KLSadd: A relation between quantum and affine $q$-Krawtchouk}By \eqref{152}, \eqref{156}, \eqref{165} and \eqref{168} -we have for $x\in\{0,1,\ldots,N\}$: -\begin{align} -K_{N-n}^{\rm qtm}(q^{-x};p^{-1}q^{-N-1},N;q) -&=\frac{K_x^{\rm Aff}(q^{-n};p,N;q)}{K_x^{\rm Aff}(q^{-N};p,N;q)} -\label{171}\\ -&=\frac{K_n^{\rm Aff}(q^{-x};p,N;q)}{K_N^{\rm Aff}(q^{-x};p,N;q)}\,. -\label{172} -\end{align} -Formula \eqref{171} is given in \cite[formula after (12)]{K24} -and \cite[(59)]{K25}. -In view of \eqref{164} and \eqref{166} -formula \eqref{172} has \eqref{149} as a limit case for -$q\to 1$. -% -\paragraph{\large\bf KLSadd: Affine $q^{-1}By \eqref{156}, \eqref{165}, -\eqref{154} and \eqref{152} (see also p.505, first formula): -\begin{align} -\frac{K_n^{\rm Aff}(y;p,N;q^{-1})}{K_n^{\rm Aff}(q^N;p,N;q^{-1})} -&=\qhyp21{q^{-n},q^{-N}y}{q^{-N}}{q,p^{-1}q^{n+1}} -\label{158}\\ -&=K_n^{\rm qtm}(q^{-N}y;p^{-1},N;q). -\label{159} -\end{align} -Formula \eqref{159} is equivalent to \eqref{160}. -Just as for \eqref{160}, it tends after suitable substitutions to -\eqref{10} as $q\to1$. - -The orthogonality relation (14.16.2) holds with positive weights for $q>1$ -if $01$, then we have another orthogonality relation given by: -\begin{eqnarray} -\label{OrtContBigqHermite2} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}H_m(x;a|q)H_n(x;a|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1-1 -\end{eqnarray} -and -\begin{eqnarray} -\label{OrtqLaguerre2} -& &\sum_{k=-\infty}^{\infty}\frac{q^{k\alpha+k}}{(-cq^k;q)_{\infty}}L_m^{(\alpha)}(cq^k;q)L_n^{(\alpha)}(cq^k;q)\nonumber\\ -& &{}=\frac{(q,-cq^{\alpha+1},-c^{-1}q^{-\alpha};q)_{\infty}} -{(q^{\alpha+1},-c,-c^{-1}q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn}, -\quad\alpha>-1,\quad c>0. -\end{eqnarray} -For $c=1$ the latter orthogonality relation can also be written as -\begin{eqnarray} -\label{OrtqLaguerre3} -& &\int_0^{\infty}\frac{x^{\alpha}}{(-x;q)_{\infty}}L_m^{(\alpha)}(x;q)L_n^{(\alpha)}(x;q)\,d_qx\nonumber\\ -& &{}=\frac{1-q}{2}\,\frac{(q,-q^{\alpha+1},-q^{-\alpha};q)_{\infty}} -{(q^{\alpha+1},-q,-q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn},\quad\alpha>-1. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqLaguerre} --q^{2n+\alpha+1}xL_n^{(\alpha)}(x;q)&=&(1-q^{n+1})L_{n+1}^{(\alpha)}(x;q)\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]L_n^{(\alpha)}(x;q)\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^{n+\alpha})L_{n-1}^{(\alpha)}(x;q). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqLaguerre} -xp_n(x)&=&p_{n+1}(x)+q^{-2n-\alpha-1}\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+q^{-4n-2\alpha+1}(1-q^n)(1-q^{n+\alpha})p_{n-1}(x), -\end{eqnarray} -where -$$L_n^{(\alpha)}(x;q)=\frac{(-1)^nq^{n(n+\alpha)}}{(q;q)_n}p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqLaguerre} --q^{\alpha}(1-q^n)xy(x)=q^{\alpha}(1+x)y(qx)-\left[1+q^{\alpha}(1+x)\right]y(x)+y(q^{-1}x), -\end{equation} -where -$$y(x)=L_n^{(\alpha)}(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qLaguerreI} -L_n^{(\alpha)}(x;q)-L_n^{(\alpha)}(qx;q)=-q^{\alpha+1}xL_{n-1}^{(\alpha+1)}(qx;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qLaguerreII} -\mathcal{D}_qL_n^{(\alpha)}(x;q)=-\frac{q^{\alpha+1}}{1-q}L_{n-1}^{(\alpha+1)}(qx;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qLaguerreI} -L_n^{(\alpha)}(x;q)-q^{\alpha}(1+x)L_n^{(\alpha)}(qx;q)=(1-q^{n+1})L_{n+1}^{(\alpha-1)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qLaguerreII} -\mathcal{D}_q\left[w(x;\alpha;q)L_n^{(\alpha)}(x;q)\right]= -\frac{1-q^{n+1}}{1-q}w(x;\alpha-1;q)L_{n+1}^{(\alpha-1)}(x;q), -\end{equation} -where -$$w(x;\alpha;q)=\frac{x^{\alpha}}{(-x;q)_{\infty}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqLaguerre} -w(x;\alpha;q)L_n^{(\alpha)}(x;q)= -\frac{(1-q)^n}{(q;q)_n}\left(\mathcal{D}_q\right)^n\left[w(x;\alpha+n;q)\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenqLaguerre1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-x}{0}{q^{\alpha+1}t} -=\sum_{n=0}^{\infty}L_n^{(\alpha)}(x;q)t^n. -\end{equation} - -\begin{equation} -\label{GenqLaguerre2} -\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{q^{\alpha+1}}{-q^{\alpha+1}xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x;q)}{(q^{\alpha+1};q)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenqLaguerre3} -(t;q)_{\infty}\cdot\qhyp{0}{2}{-}{q^{\alpha+1},t}{-q^{\alpha+1}xt} -=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenqLaguerre4} -& &\frac{(\gamma t;q)_{\infty}}{(t;q)_{\infty}}\,\qhyp{1}{2}{\gamma}{q^{\alpha+1},\gamma t}{-q^{\alpha+1}xt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Laguerre} -If we substitute $a=q^{\alpha}$ and $x\rightarrow -b^{-1}q^{-1}x$ in the definition -(\ref{DefLittleqJacobi}) of the little $q$-Jacobi polynomials and then take the limit -$b\rightarrow -\infty$ we find the $q$-Laguerre polynomials given by (\ref{DefqLaguerre}): -$$\lim_{b\rightarrow -\infty}p_n(-b^{-1}q^{-1}x;q^{\alpha},b|q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained -from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting -$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition -(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit -$c\rightarrow\infty$: -$$\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ - -\subsubsection*{$q$-Laguerre $\rightarrow$ Stieltjes-Wigert} -If we set $x\rightarrow xq^{-\alpha}$ in the definition -(\ref{DefqLaguerre}) of the $q$-Laguerre polynomials and take the limit -$\alpha\rightarrow\infty$ we simply obtain the Stieltjes-Wigert polynomials given -by (\ref{DefStieltjesWigert}): -\begin{equation} -\lim_{\alpha\rightarrow\infty}L_n^{(\alpha)}\left(xq^{-\alpha};q\right)=S_n(x;q). -\end{equation} - -\subsubsection*{$q$-Laguerre $\rightarrow$ Laguerre / Charlier} -If we set $x\rightarrow (1-q)x$ in the definition (\ref{DefqLaguerre}) -of the $q$-Laguerre polynomials and take the limit $q\rightarrow 1$ we obtain -the Laguerre polynomials given by (\ref{DefLaguerre}): -\begin{equation} -\lim_{q\rightarrow 1}L_n^{(\alpha)}((1-q)x;q)=L_n^{(\alpha)}(x). -\end{equation} - -If we set $x\rightarrow -q^{-x}$ and $q^{\alpha}=a^{-1}(q-1)^{-1}$ (or -$\alpha=-(\ln q)^{-1}\ln (q-1)a$) in the definition (\ref{DefqLaguerre}) of the -$q$-Laguerre polynomials, multiply by $(q;q)_n$, and take the limit -$q\rightarrow 1$ we obtain the Charlier polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\,(q;q)_nL_n^{(\alpha)}(-q^{-x};q)=C_n(x;a), -\end{equation} -where -$$q^{\alpha}=\frac{1}{a(q-1)}\quad\textrm{or}\quad\alpha=-\frac{\ln (q-1)a}{\ln q}.$$ - -\subsection*{Remarks} -The $q$-Laguerre polynomials are sometimes called the -generalized Stieltjes-Wigert polynomials. - -If we replace $q$ by $q^{-1}$ we obtain the little $q$-Laguerre -(or Wall) polynomials given by (\ref{DefLittleqLaguerre}) in the following -way: -$$L_n^{(\alpha)}(x;q^{-1})=\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^{n\alpha}}p_n(-x;q^{\alpha}|q).$$ - -\noindent -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the $q$-Bessel polynomials -given by (\ref{DefqBessel}) are related in the following way: -$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ - -\noindent -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the -$q$-Charlier polynomials given by (\ref{DefqCharlier}) are related in the -following way: -$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ - -\noindent -Since the Stieltjes and Hamburger moment problems corresponding to the -$q$-Laguerre polynomials are indeterminate there exist many different weight -functions. - RS: add begin\label{sec14.20} -% -\paragraph{\large\bf KLSadd: Notation}Here the little $q$-Laguerre polynomial is denoted by -$p_n(x;a;q)$ instead of -$p_n(x;a\,|\, q)$. -% -\paragraph{\large\bf KLSadd: Re: (14.20.11)}The \RHS\ of this generating function converges for $|xt|<1$. -We can rewrite the \LHS\ by use of the transformation -\begin{equation*} -\qhyp21{0,0}c{q,z}=\frac1{(z;q)_\iy}\,\qhyp01-c{q,cz}. -\end{equation*} -Then we obtain: -\begin{equation} -(t;q)_\iy\,\qhyp21{0,0}{aq}{q,xt} -=\sum_{n=0}^\iy\frac{(-1)^n\,q^{\half n(n-1)}}{(q;q)_n}\, -p_n(x;a;q)\,t^n\qquad(|xt|<1). -\label{35} -\end{equation} -% -\subsubsection*{Expansion of $x^n$} -Divide both sides of \eqref{35} by $(t;q)_\iy$. Then coefficients of the -same power of $t$ on both sides must be equal. We obtain: -\begin{equation} -x^n=(a;q)_n\,\sum_{k=0}^n \frac{(q^{-n};q)_k}{(q;q)_k}\,q^{nk}\,p_k(x;a;q). -\label{36} -\end{equation} -% -\subsubsection*{Quadratic transformations} -Little $q$-Laguerre polynomials $p_n(x;a;q)$ with $a=q^{\pm\half}$ are -related to discrete $q$-Hermite I polynomials $h_n(x;q)$: -\begin{align} -p_n(x^2;q^{-1};q^2)&= -\frac{(-1)^n q^{-n(n-1)}}{(q;q^2)_n}\,h_{2n}(x;q), -\label{28}\\ -xp_n(x^2;q;q^2)&= -\frac{(-1)^n q^{-n(n-1)}}{(q^3;q^2)_n}\,h_{2n+1}(x;q). -\label{29} -\end{align} -% - -\subsection*{References} -\cite{NAlSalam89}, \cite{AlSalam90}, \cite{Askey86}, \cite{Askey89I}, \cite{AskeyWilson85}, -\cite{AtakAtakI}, \cite{ChenIsmailMuttalib}, \cite{Chihara68II}, \cite{Chihara78}, -\cite{Chihara79}, \cite{Chris}, \cite{Exton77}, \cite{GasperRahman90}, \cite{GrunbaumHaine96}, -\cite{Ismail2005I}, \cite{IsmailRahman98}, \cite{Jain95}, \cite{Moak}. - - -\section{$q$-Bessel} -\index{q-Bessel polynomials@$q$-Bessel polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefqBessel} -y_n(x;a;q)&=&\qhyp{2}{1}{q^{-n},-aq^n}{0}{qx}\\ -&=&(q^{-n+1}x;q)_n\cdot\qhyp{1}{1}{q^{-n}}{q^{-n+1}x}{-aq^{n+1}x}\nonumber\\ -&=&\left(-aq^nx\right)^n\cdot\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-\frac{q^{-n+1}}{a}}.\nonumber -\end{eqnarray} - -\newpage - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqBessel} -& &\sum_{k=0}^{\infty}\frac{a^k}{(q;q)_k}q^{\binom{k+1}{2}}y_m(q^k;a;q)y_n(q^k;a;q)\nonumber\\ -& &{}=(q;q)_n(-aq^n;q)_{\infty}\frac{a^nq^{\binom{n+1}{2}}}{(1+aq^{2n})}\,\delta_{mn},\quad a>0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecqBessel} --xy_n(x;a;q)=A_ny_{n+1}(x;a;q)-(A_n+C_n)y_n(x;a;q)+C_ny_{n-1}(x;a;q), -\end{equation} -where -$$\left\{\begin{array}{l}\displaystyle A_n=q^n\frac{(1+aq^n)}{(1+aq^{2n})(1+aq^{2n+1})}\\ -\\ -\displaystyle C_n=aq^{2n-1}\frac{(1-q^n)}{(1+aq^{2n-1})(1+aq^{2n})}.\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqBessel} -xp_n(x)=p_{n+1}(x)+(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$y_n(x;a;q)=(-1)^nq^{-\binom{n}{2}}(-aq^n;q)_np_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqBessel} -& &-q^{-n}(1-q^n)(1+aq^n)xy(x)\nonumber\\ -& &{}=axy(qx)-(ax+1-x)y(x)+(1-x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=y_n(x;a;q).$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qBesselI} -y_n(x;a;q)-y_n(qx;a;q)=-q^{-n+1}(1-q^n)(1+aq^n)xy_{n-1}(x;aq^2;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qBesselII} -\mathcal{D}_qy_n(x;a;q)=-\frac{q^{-n+1}(1-q^n)(1+aq^n)}{1-q}y_{n-1}(x;aq^2;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qBesselI} -aq^{x-1}y_n(q^x;a;q)-(1-q^x)y_n(q^{x-1}x;a;q)=-y_{n+1}(q^x;aq^{-2};q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qBesselII} -\frac{\nabla\left[w(x;a;q)y_n(q^x;a;q)\right]}{\nabla q^x}= -\frac{q^2}{a(1-q)}w(x;aq^{-2};q)y_{n+1}(q^x;aq^{-2};q), -\end{equation} -where -$$w(x;a;q)=\frac{a^xq^{\binom{x}{2}}}{(q;q)_x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqBessel} -w(x;a;q)y_n(q^x;a;q)=a^n(1-q)^nq^{n(n-1)}\left(\nabla_q\right)^n\left[w(x;aq^{2n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^x}.$$ - -\subsection*{Generating functions} -\begin{eqnarray} -\label{GenqBessel1} -& &\qhyp{0}{1}{-}{0}{-aq^{x+1}t}\,\qhyp{2}{0}{q^{-x},0}{-}{q^xt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{y_n(q^x;a;q)}{(q;q)_n}t^n,\quad x=0,1,2,\ldots. -\end{eqnarray} - -\begin{equation} -\label{GenqBessel2} -\frac{(t;q)_{\infty}}{(xt;q)_{\infty}}\,\qhyp{1}{3}{xt}{0,0,t}{-aqxt}= -\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q;q)_n}y_n(x;a;q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Bessel} -If we set $b\rightarrow -a^{-1}q^{-1}b$ in the definition (\ref{DefLittleqJacobi}) of -the little $q$-Jacobi polynomials and then take the limit $a\rightarrow 0$ we obtain -the $q$-Bessel polynomials given by (\ref{DefqBessel}): -$$\lim_{a\rightarrow 0}p_n(x;a,-a^{-1}q^{-1}b|q)=y_n(x;b;q).$$ - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we -obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): -$$\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q).$$ - -\subsubsection*{$q$-Bessel $\rightarrow$ Stieltjes-Wigert} -The Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) can be obtained -from the $q$-Bessel polynomials by setting $x\rightarrow a^{-1}x$ in the definition -(\ref{DefqBessel}) of the $q$-Bessel polynomials and then taking the limit -$a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty}y_n(a^{-1}x;a;q)=(q;q)_nS_n(x;q). -\end{equation} - -\subsubsection*{$q$-Bessel $\rightarrow$ Bessel} -If we set $x\rightarrow -\frac{1}{2}(1-q)^{-1}x$ and $a\rightarrow -q^{a+1}$ in the definition -(\ref{DefqBessel}) of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ -we find the Bessel polynomials given by (\ref{DefBessel}): -\begin{equation} -\lim_{q\rightarrow 1}y_n(-\textstyle\frac{1}{2}(1-q)^{-1}x;-q^{a+1};q)=y_n(x;a). -\end{equation} - -\subsubsection*{$q$-Bessel $\rightarrow$ Charlier} -If we set $x\rightarrow q^x$ and $a\rightarrow a(1-q)$ in the definition (\ref{DefqBessel}) -of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ we find the Charlier -polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\frac{y_n(q^x;a(1-q);q)}{(q-1)^n}=a^nC_n(x;a). -\end{equation} - -\subsection*{Remark} -In \cite{Koekoek94} and \cite{Koekoek98} these $q$-Bessel polynomials were called -\emph{alternative $q$-Charlier polynomials}. - -\noindent -The $q$-Bessel polynomials given by (\ref{DefqBessel}) and the $q$-Laguerre -polynomials given by (\ref{DefqLaguerre}) are related in the following way: -$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ - -\subsection*{Reference} -\cite{DattaGriffin}. - - -\section{$q$-Charlier}\index{q-Charlier polynomials@$q$-Charlier polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefqCharlier} -C_n(q^{-x};a;q)&=&\qhyp{2}{1}{q^{-n},q^{-x}}{0}{-\frac{q^{n+1}}{a}}\\ -&=&(-a^{-1}q;q)_n\cdot\qhyp{1}{1}{q^{-n}}{-a^{-1}q}{-\frac{q^{n+1-x}}{a}}.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqCharlier} -& &\sum_{x=0}^{\infty}\frac{a^x}{(q;q)_x}q^{\binom{x}{2}}C_m(q^{-x};a;q)C_n(q^{-x};a;q)\nonumber\\ -& &{}=q^{-n}(-a;q)_{\infty}(-a^{-1}q,q;q)_n\,\delta_{mn},\quad a>0. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqCharlier} -& &q^{2n+1}(1-q^{-x})C_n(q^{-x})\nonumber\\ -& &{}=aC_{n+1}(q^{-x})-\left[a+q(1-q^n)(a+q^n)\right]C_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+q(1-q^n)(a+q^n)C_{n-1}(q^{-x}), -\end{eqnarray} -where -$$C_n(q^{-x}):=C_n(q^{-x};a;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqCharlier} -xp_n(x)&=&p_{n+1}(x)+\left[1+q^{-2n-1}\left\{a+q(1-q^n)(a+q^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+aq^{-4n+1}(1-q^n)(a+q^n)p_{n-1}(x), -\end{eqnarray} -where -$$C_n(q^{-x};a;q)=\frac{(-1)^nq^{n^2}}{a^n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqCharlier} -q^ny(x)=aq^xy(x+1)-q^x(a-1)y(x)+(1-q^x)y(x-1), -\end{equation} -where -$$y(x)=C_n(q^{-x};a;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qCharlierI} -C_n(q^{-x-1};a;q)-C_n(q^{-x};a;q)=-a^{-1}q^{-x}(1-q^n)C_{n-1}(q^{-x};aq^{-1};q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qCharlierII} -\frac{\Delta C_n(q^{-x};a;q)}{\Delta q^{-x}}=-\frac{q(1-q^n)}{a(1-q)}C_{n-1}(q^{-x};aq^{-1};q). -\end{equation} - -\newpage - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qCharlierI} -C_n(q^{-x};a;q)-a^{-1}q^{-x}(1-q^x)C_n(q^{-x+1};a;q)=C_{n+1}(q^{-x};aq;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qCharlierII} -\frac{\nabla\left[w(x;a;q)C_n(q^{-x};a;q)\right]}{\nabla q^{-x}} -=\frac{1}{1-q}w(x;aq;q)C_{n+1}(q^{-x};aq;q), -\end{equation} -where -$$w(x;a;q)=\frac{a^xq^{\binom{x+1}{2}}}{(q;q)_x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqCharlier} -w(x;a;q)C_n(q^{-x};a;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;aq^{-n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} -\begin{equation} -\label{GenqCharlier1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{0}{-a^{-1}qt} -=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(q;q)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenqCharlier2} -\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{-a^{-1}q}{-a^{-1}q^{-x+1}t} -=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(-a^{-1}q,q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be -obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ -in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: -\begin{equation} -M_n(x;0,c;q)=C_n(x;c;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} -By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we -obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): -$$\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q).$$ - -\subsubsection*{$q$-Charlier $\rightarrow$ Stieltjes-Wigert} -If we set $q^{-x}\rightarrow ax$ in the definition (\ref{DefqCharlier}) of the -$q$-Charlier polynomials and take the limit $a\rightarrow\infty$ we obtain -the Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) in the -following way: -\begin{equation} -\lim_{a\rightarrow\infty}C_n(ax;a;q)=(q;q)_nS_n(x;q). -\end{equation} - -\subsubsection*{$q$-Charlier $\rightarrow$ Charlier} -If we set $a\rightarrow a(1-q)$ in the definition (\ref{DefqCharlier}) -of the $q$-Charlier polynomials and take the limit $q\rightarrow 1$ we obtain the -Charlier polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}C_n(q^{-x};a(1-q);q)=C_n(x;a). -\end{equation} - -\subsection*{Remark} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) and the -$q$-Laguerre polynomials given by (\ref{DefqLaguerre}) are related in the -following way: -$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ - -\subsection*{References} -\cite{AlvarezRonveaux}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, -\cite{Hahn}, \cite{Koelink96III}, \cite{Nikiforov+}, \cite{Zeng95}. - - -\section{Al-Salam-Carlitz~I}\index{Al-Salam-Carlitz~I polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefAlSalamCarlitzI} -U_n^{(a)}(x;q)=(-a)^nq^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{\frac{qx}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAlSalamCarlitzI} -& &\int_a^1(qx,a^{-1}qx;q)_{\infty}U_m^{(a)}(x;q)U_n^{(a)}(x;q)\,d_qx\nonumber\\ -& &{}=(-a)^n(1-q)(q;q)_n(q,a,a^{-1}q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn},\quad a<0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecAlSalamCarlitzI} -xU_n^{(a)}(x;q)=U_{n+1}^{(a)}(x;q)+(a+1)q^nU_n^{(a)}(x;q) --aq^{n-1}(1-q^n)U_{n-1}^{(a)}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecAlSalamCarlitzI} -xp_n(x)=p_{n+1}(x)+(a+1)q^np_n(x)-aq^{n-1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$$U_n^{(a)}(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvAlSalamCarlitzI} -(1-q^n)x^2y(x)&=&aq^{n-1}y(qx)-\left[aq^{n-1}+q^n(1-x)(a-x)\right]y(x)\nonumber\\ -& &{}\mathindent{}+q^n(1-x)(a-x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=U_n^{(a)}(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1AlSalamCarlitzI-I} -U_n^{(a)}(x;q)-U_n^{(a)}(qx;q)=(1-q^n)xU_{n-1}^{(a)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1AlSalamCarlitzI-II} -\mathcal{D}_qU_n^{(a)}(x;q)=\frac{1-q^n}{1-q}U_{n-1}^{(a)}(x;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2AlSalamCarlitzI-I} -aU_n^{(a)}(x;q)-(1-x)(a-x)U_n^{(a)}(q^{-1}x;q)=-q^{-n}xU_{n+1}^{(a)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2AlSalamCarlitzI-II} -\mathcal{D}_{q^{-1}}\left[w(x;a;q)U_n^{(a)}(x;q)\right]= -\frac{q^{-n+1}}{a(1-q)}w(x;a;q)U_{n+1}^{(a)}(x;q), -\end{equation} -where -$$w(x;a;q)=(qx,a^{-1}qx;q)_{\infty}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodAlSalamCarlitzI} -w(x;a;q)U_n^{(a)}(x;q)=a^nq^{\frac{1}{2}n(n-3)}(1-q)^n -\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;a;q)\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenAlSalamCarlitzI} -\frac{(t,at;q)_{\infty}}{(xt;q)_{\infty}}= -\sum_{n=0}^{\infty}\frac{U_n^{(a)}(x;q)}{(q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Laguerre $\rightarrow$ Al-Salam-Carlitz~I} -If we set $x\rightarrow aqx$ and $b\rightarrow ab$ in the definition -(\ref{DefBigqLaguerre}) of the big $q$-Laguerre polynomials and take the -limit $a\rightarrow 0$ we obtain the Al-Salam-Carlitz~I polynomials given by -(\ref{DefAlSalamCarlitzI}): -$$\lim_{a\rightarrow 0}\frac{P_n(aqx;a,ab;q)}{a^n}=q^nU_n^{(b)}(x;q).$$ - -\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} -If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) -of the dual $q$-Krawtchouk polynomials and take the limit -$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials -given by (\ref{DefAlSalamCarlitzI}): -$$\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= -\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q).$$ -Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} -The discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) can easily be obtained from the -Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the -substitution $a=-1$: -\begin{equation} -U_n^{(-1)}(x;q)=h_n(x;q). -\end{equation} - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Charlier / Hermite} -If we set $a\rightarrow a(q-1)$ and $x\rightarrow q^x$ in the definition -(\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I polynomials and take the -limit $q\rightarrow 1$ after dividing by $a^n(1-q)^n$ we obtain the Charlier -polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\frac{U_n^{(a(q-1))}(q^x;q)}{(1-q)^n}=a^nC_n(x;a). -\end{equation} - -If we set $x\rightarrow x\sqrt{1-q^2}$ and $a\rightarrow a\sqrt{1-q^2}-1$ -in the definition (\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I -polynomials, divide by $(1-q^2)^{\frac{n}{2}}$, and let $q$ tend to $1$ we -obtain the Hermite polynomials given by (\ref{DefHermite}) with shifted -argument. In fact we have -\begin{equation} -\lim_{q\rightarrow 1}\frac{U_n^{(a\sqrt{1-q^2}-1)}(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x-a)}{2^n}. -\end{equation} - -\subsection*{Remark} -The Al-Salam-Carlitz~I polynomials are related to the Al-Salam-Carlitz~II -polynomials given by (\ref{DefAlSalamCarlitzII}) in the following way: -$$U_n^{(a)}(x;q^{-1})=V_n^{(a)}(x;q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AlSalamChihara76}, \cite{AskeySuslovII}, -\cite{AtakRahmanSuslov}, \cite{Chihara68II}, \cite{Chihara78}, \cite{DattaGriffin}, -\cite{Dehesa}, \cite{DohaAhmed2005}, \cite{GasperRahman90}, \cite{Ismail85I}, -\cite{IsmailMuldoon}, \cite{Kim}, \cite{Zeng95}. - - -\section{Al-Salam-Carlitz~II}\index{Al-Salam-Carlitz~II polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefAlSalamCarlitzII} -V_n^{(a)}(x;q)= -(-a)^nq^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},x}{-}{\frac{q^n}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAlSalamCarlitzII} -& &\sum_{k=0}^{\infty}\frac{q^{k^2}a^k}{(q;q)_k(aq;q)_k} -V_m^{(a)}(q^{-k};q)V_n^{(a)}(q^{-k};q)\nonumber\\ -& &{}=\frac{(q;q)_na^n}{(aq;q)_{\infty}q^{n^2}}\,\delta_{mn},\quad 00,\quad\textrm{with}\quad -\gamma^2=-\frac{1}{2\ln q}.$$ - RS: add begin\label{sec14.21} -% -\paragraph{\large\bf KLSadd: Notation}Here the $q$-Laguerre polynomial is denoted by $L_n^\al(x;q)$ instead of -$L_n^{(\al)}(x;q)$. -% -\subsubsection*{Orthogonality relation} -(14.21.2) can be rewritten with simplified \RHS: -\begin{equation} -\int_0^\iy L_m^{\al}(x;q)\,L_n^{\al}(x;q)\,\frac{x^\al}{(-x;q)_\iy}\,dx=h_n\,\de_{m,n} -\qquad(\al>-1) -\label{119} -\end{equation} -with -\begin{equation} -\frac{h_n}{h_0}=\frac{(q^{\al+1};q)_n}{(q;q)_n q^n},\qquad -h_0=-\,\frac{(q^{-\al};q)_\iy}{(q;q)_\iy}\,\frac\pi{\sin(\pi\al)}\,. -\label{120} -\end{equation} -The expression for $h_0$ (which is Askey's $q$-gamma evaluation -\cite[(4.2)]{K16}) -should be interpreted by continuity in $\al$ for -$\al\in\Znonneg$. -Explicitly we can write -\begin{equation} -h_n=q^{-\half\al(\al+1)}\,(q;q)_\al\,\log(q^{-1})\qquad(\al\in\Znonneg). -\label{121} -\end{equation} -% -\subsubsection*{Expansion of $x^n$} -\begin{equation} -x^n=q^{-\half n(n+2\al+1)}\,(q^{\al+1};q)_n\, -\sum_{k=0}^n\frac{(q^{-n};q)_k}{(q^{\al+1};q)_k}\,q^k\,L_k^\al(x;q). -\label{37} -\end{equation} -This follows from \eqref{36} by the equality given in the Remark at the end -of \S14.20. Alternatively, it can be derived in the same way as \eqref{36} -from the generating function (14.21.14). -% -\subsubsection*{Quadratic transformations} -$q$-Laguerre polynomials $L_n^\al(x;q)$ with $\al=\pm\half$ are -related to discrete $q$-Hermite II polynomials $\wt h_n(x;q)$: -\begin{align} -L_n^{-1/2}(x^2;q^2)&= -\frac{(-1)^n q^{2n^2-n}}{(q^2;q^2)_n}\,\wt h_{2n}(x;q), -\label{38}\\ -xL_n^{1/2}(x^2;q^2)&= -\frac{(-1)^n q^{2n^2+n}}{(q^2;q^2)_n}\,\wt h_{2n+1}(x;q). -\label{39} -\end{align} -These follows from \eqref{28} and \eqref{29}, respectively, by applying -the equalities given in the Remarks at the end of \S14.20 and \S14.28. -% - -\subsection*{References} -\cite{Askey86}, \cite{Askey89I}, \cite{AtakAtakIII}, \cite{Chihara70}, \cite{Chihara78}, -\cite{Dehesa}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Stieltjes}, \cite{Szego75}, -\cite{ValentAssche}, \cite{Wigert}. - - -\section{Discrete $q$-Hermite~I} -\index{Discrete q-Hermite~I polynomials@Discrete $q$-Hermite~I polynomials} -\index{q-Hermite~I polynomials@$q$-Hermite~I polynomials!Discrete} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -The discrete $q$-Hermite~I polynomials are Al-Salam-Carlitz~I polynomials -with $a=-1$: -\begin{eqnarray} -\label{DefDiscreteqHermiteI} -h_n(x;q)=U_n^{(-1)}(x;q)&=&q^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-qx}\\ -&=&x^n\qhypK{2}{0}{q^{-n},q^{-n+1}}{0}{q^2,\frac{q^{2n-1}}{x^2}}\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDiscreteqHermiteI} -& &\int_{-1}^1(qx,-qx;q)_{\infty}h_m(x;q)h_n(x;q)\,d_qx\nonumber\\ -& &{}=(1-q)(q;q)_n(q,-1,-q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDiscreteqHermiteI} -xh_n(x;q)=h_{n+1}(x;q)+q^{n-1}(1-q^n)h_{n-1}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDiscreteqHermiteI} -xp_n(x)=p_{n+1}(x)+q^{n-1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$$h_n(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDiscreteqHermiteI} --q^{-n+1}x^2y(x)=y(qx)-(1+q)y(x)+q(1-x^2)y(q^{-1}x), -\end{equation} -where -$$y(x)=h_n(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1DiscreteqHermiteI-I} -h_n(x;q)-h_n(qx;q)=(1-q^n)xh_{n-1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1DiscreteqHermiteI-II} -\mathcal{D}_qh_n(x;q)=\frac{1-q^n}{1-q}h_{n-1}(x;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2DiscreteqHermiteI-I} -h_n(x;q)-(1-x^2)h_n(q^{-1}x;q)=q^{-n}xh_{n+1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2DiscreteqHermiteI-II} -\mathcal{D}_{q^{-1}}\left[w(x;q)h_n(x;q)\right] -=-\frac{q^{-n+1}}{1-q}w(x;q)h_{n+1}(x;q), -\end{equation} -where -$$w(x;q)=(qx,-qx;q)_{\infty}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDiscreteqHermiteI} -w(x;q)h_n(x;q)=(q-1)^nq^{\frac{1}{2}n(n-3)} -\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;q)\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenDiscreteqHermiteI} -\frac{(t^2;q^2)_{\infty}}{(xt;q)_{\infty}}= -\sum_{n=0}^{\infty}\frac{h_n(x;q)}{(q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} -The discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) can easily be obtained from the -Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the -substitution $a=-1$: -$$U_n^{(-1)}(x;q)=h_n(x;q).$$ - -\subsubsection*{Discrete $q$-Hermite~I $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be found -from the discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) in the following way: -\begin{equation} -\lim_{q\rightarrow 1}\frac{h_n(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. -\end{equation} - -\subsection*{Remark} The discrete $q$-Hermite~I polynomials are related to the -discrete $q$-Hermite~II polynomials given by (\ref{DefDiscreteqHermiteII}) -in the following way: -$$h_n(ix;q^{-1})=i^n{\tilde h}_n(x;q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AtakRahmanSuslov}, -\cite{BergIsmail}, \cite{BustozIsmail82}, \cite{GasperRahman90}, \cite{Hahn}, -\cite{Koorn97}. - - -\newpage - -\section{Discrete $q$-Hermite~II} -\index{Discrete q-Hermite~II polynomials@Discrete $q$-Hermite~II polynomials} -\index{q-Hermite~II polynomials@$q$-Hermite~II polynomials!Discrete} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -The discrete $q$-Hermite~II polynomials are Al-Salam-Carlitz~II polynomials -with $a=-1$: -\begin{eqnarray} -\label{DefDiscreteqHermiteII} -{\tilde h}_n(x;q)=i^{-n}V_n^{(-1)}(ix;q) -&=&i^{-n}q^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},ix}{-}{-q^n}\\ -&=&x^n -\qhypK{2}{1}{q^{-n},q^{-n+1}}{0}{q^2,-\frac{q^2}{x^2}}\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDiscreteqHermiteIIa} -& &\sum_{k=-\infty}^{\infty}\left[{\tilde h}_m(cq^k;q) -{\tilde h}_n(cq^k;q)+{\tilde h}_m(-cq^k;q){\tilde h}_n(-cq^k;q)\right] -w(cq^k;q)q^k\nonumber\\ -& &{}=2\frac{(q^2,-c^2q,-c^{-2}q;q^2)_{\infty}}{(q,-c^2,-c^{-2}q^2;q^2)_{\infty}} -\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn},\quad c>0, -\end{eqnarray} -where -$$w(x;q)=\frac{1}{(ix,-ix;q)_{\infty}}=\frac{1}{(-x^2;q^2)_{\infty}}.$$ -For $c=1$ this orthogonality relation can also be written as -\begin{equation} -\label{OrtDiscreteqHermiteIIb} -\int_{-\infty}^{\infty}\frac{{\tilde h}_m(x;q){\tilde h}_n(x;q)}{(-x^2;q^2)_{\infty}}\,d_qx -=\frac{\left(q^2,-q,-q;q^2\right)_{\infty}}{\left(q^3,-q^2,-q^2;q^2\right)_{\infty}} -\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDiscreteqHermiteII} -x{\tilde h}_n(x;q)={\tilde h}_{n+1}(x;q)+q^{-2n+1}(1-q^n){\tilde h}_{n-1}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDiscreteqHermiteII} -xp_n(x)=p_{n+1}(x)+q^{-2n+1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$${\tilde h}_n(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvDiscreteqHermiteII} -& &-(1-q^n)x^2{\tilde h}_n(x;q)\nonumber\\ -& &{}=(1+x^2){\tilde h}_n(qx;q)-(1+x^2+q){\tilde h}_n(x;q)+q{\tilde h}_n(q^{-1}x;q). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1DiscreteqHermiteII-I} -\tilde{h}_n(x;q)-\tilde{h}_n(qx;q)=q^{-n+1}(1-q^n)x\tilde{h}_{n-1}(qx;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1DiscreteqHermiteII-II} -\mathcal{D}_q\tilde{h}_n(x;q)=\frac{q^{-n+1}(1-q^n)}{1-q}\tilde{h}_{n-1}(qx;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2DiscreteqHermiteII-I} -\tilde{h}_n(x;q)-(1+x^2)\tilde{h}_n(qx;q)=-q^nx\tilde{h}_{n+1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2DiscreteqHermiteII-II} -\mathcal{D}_q\left[w(x;q)\tilde{h}_n(x;q)\right] -=-\frac{q^n}{1-q}w(x;q)\tilde{h}_{n+1}(x;q). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDiscreteqHermiteII} -w(x;q)\tilde{h}_n(x;q)=(q-1)^nq^{-\binom{n}{2}} -\left(\mathcal{D}_q\right)^n\left[w(x;q)\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenDiscreteqHermiteII1} -\frac{(-xt;q)_{\infty}}{(-t^2;q^2)_{\infty}}=\sum_{n=0}^{\infty} -\frac{q^{\binom{n}{2}}}{(q;q)_n}{\tilde h}_n(x;q)t^n. -\end{equation} - -\begin{equation} -\label{GenDiscreteqHermiteII2} -(-it;q)_{\infty}\cdot\qhyp{1}{1}{ix}{-it}{it}=\sum_{n=0}^{\infty} -\frac{(-1)^nq^{n(n-1)}}{(q;q)_n}{\tilde h}_n(x;q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Al-Salam-Carlitz~II $\rightarrow$ Discrete $q$-Hermite~II} -The discrete $q$-Hermite~II polynomials given by -(\ref{DefDiscreteqHermiteII}) follow from the Al-Salam-Carlitz~II -polynomials given by (\ref{DefAlSalamCarlitzII}) by the substitution $a=-1$ -in the following way: -$$i^{-n}V_n^{(-1)}(ix;q)={\tilde h}_n(x;q).$$ - -\subsubsection*{Discrete $q$-Hermite~II $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be found -from the discrete $q$-Hermite~II polynomials given by -(\ref{DefDiscreteqHermiteII}) in the following way: -\begin{equation} -\lim_{q\rightarrow 1}\frac{{\tilde h}_n(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. -\end{equation} - -\subsection*{Remark} The discrete $q$-Hermite~II polynomials are related to the -discrete $q$-Hermite~I polynomials given by (\ref{DefDiscreteqHermiteI}) -in the following way: -$${\tilde h}_n(x;q^{-1})=i^{-n}h_n(ix;q).$$ - -\subsection*{References} -\cite{BergIsmail}, \cite{Koorn97}. - -\end{document} diff --git a/KLSadd_insertion/tempchap09.tex b/KLSadd_insertion/tempchap09.tex deleted file mode 100644 index 71f90cb..0000000 --- a/KLSadd_insertion/tempchap09.tex +++ /dev/null @@ -1,3926 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\textheight 25cm - -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\large - -\addtocounter{chapter}{8} -\pagenumbering{roman} -\chapter{Hypergeometric orthogonal polynomials} -\label{HyperOrtPol} - - -In this chapter we deal with all families of hypergeometric orthogonal polynomials -appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal -polynomials we state the most important properties such as a representation as a -hypergeometric function, orthogonality relation(s), the three-term recurrence relation, -the second-order differential or difference equation, the forward shift (or degree lowering) -and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating -functions. In each case we use the notation which seems to be most common in the literature. -Moreover, in each case we mention the connection between various families by stating the -appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of -this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. -For notations the reader is referred to chapter~\ref{Definitions}. - -\section{Wilson}\index{Wilson polynomials} - -\par - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefWilson} -& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ -& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. -\end{eqnarray} - -\newpage - -\subsection*{Orthogonality relation} -If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then -\begin{eqnarray} -\label{OrthIWilson} -& &\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, -\end{eqnarray} -where -\begin{eqnarray*} -& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ -& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). -\end{eqnarray*} -If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates -occur with positive real parts, then -\begin{eqnarray} -\label{OrtIIWilson} -& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ -& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} -{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} -\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ -& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecWilson} --\left(a^2+x^2\right){\tilde{W}}_n(x^2) -=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), -\end{equation} -where -$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecWilson} -xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvWilson} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=W_n(x^2;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] -\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1WilsonI} -& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) --W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1WilsonII} -& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ -& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{eqnarray} - -\newpage - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2WilsonI} -& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) -(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) -W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2WilsonII} -& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ -& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodWilson} -& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ -& &{}=\left(\frac{\delta}{\delta x^2}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenWilson1} -\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson2} -\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson3} -\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. -\end{equation} - -\begin{eqnarray} -\label{GenWilson4} -& &(1-t)^{1-a-b-c-d}\nonumber\\ -& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} -{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} -The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the -Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: -\begin{equation} -\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson -polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, -$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following -way: -\begin{equation} -\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson -polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Remarks} -Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then -\begin{eqnarray} -\label{OrtContHahn} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) -p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} -{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecContHahn} -(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), -\end{equation} -where -$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecContHahn} -xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvContHahn} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] -\displaystyle D(x)=(a+ix)(b+ix). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1ContHahnI} -& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, -b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1ContHahnII} -\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) -p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2ContHahnI} -& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, -b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2ContHahnII} -& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ -& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ -& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodContHahn} -& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ -& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenContHahn1} -\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenContHahn2} -\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenContHahn3} -& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} -{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials are obtained from the Wilson polynomials given by -(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, -$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit -$t\rightarrow\infty$ in the following way: -$$\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the -continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ -and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. -\end{equation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials -by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous -Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray} - -\subsection*{Remark} -Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ -Thus, under these assumptions, the continuous Hahn polynomial -$p_n(x;a,b,c,d)$ -is symmetric in $a,b$ and in $c,d$. -This follows from the orthogonality relation (9.4.2) -together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ -As a consequence, it is sufficient to give generating function (9.4.11). Then the generating -function (9.4.12) will follow by symmetry in the parameters. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Special cases} -In the following special case there is a reduction to -Meixner-Pollaczek: -\begin{equation} -p_n(x;a,a+\thalf,a,a+\thalf)= -\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). -\end{equation} -See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the -Meixner-Pollaczek polynonmials are defined different from (9.7.1), -without a constant factor in front). - -For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have -\begin{eqnarray} -\label{OrtHahn} -& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHahn} --xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), -\end{equation} -where -$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] -\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHahn} -xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvHahn} -n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] -\displaystyle D(x)=x(x-\beta-N-1). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1HahnI} -& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1HahnII} -\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2HahnI} -& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ -& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2HahnII} -& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ -& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), -\end{eqnarray} -where -$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodHahn} -& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenHahn1} -\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenHahn2} -& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenHahn3} -& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} -{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Hahn} -If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we obtain the Hahn polynomials. Hence -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ -And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we also obtain the Hahn polynomials: -$$\lim_{\gamma\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ -Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in -the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit -$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take -$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials -by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials -if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the -dual Hahn polynomials given by (\ref{DefDualHahn}). - -\noindent -Since -$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ -we obtain the dual orthogonality relation for the Hahn polynomials from the -orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} -Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ -& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. -\end{eqnarray*} - -\subsection*{References} -\label{sec9.5} -% -\paragraph{Special values} -\begin{equation} -Q_n(0;\al,\be,N)=1,\quad -Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{95} -\end{equation} -Use (9.5.1) and compare with (9.8.1) and \eqref{50}. - -From (9.5.3) and \eqref{1} it follows that -\begin{equation} -Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. -\label{30} -\end{equation} -From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that -\begin{equation} -Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). -\label{44} -\end{equation} -% -\paragraph{Symmetries} -By the orthogonality relation (9.5.2): -\begin{equation} -\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), -\label{96} -\end{equation} -It follows from \eqref{97} and \eqref{45} that -\begin{equation} -\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} -=Q_n(x;-N-\be-1,-N-\al-1,N) -\qquad(x=0,1,\ldots,N). -\label{100} -\end{equation} -% -\paragraph{Duality} -The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: -% -\begin{equation} -Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). -\label{45} -\end{equation} -% -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, -\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, -\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, -\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, -\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, -\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, -\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, -\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, -\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, -\cite{Zarzo+}. - - -\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefDualHahn} -R_n(\lambda(x);\gamma,\delta,N)= -\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\lambda(x)=x(x+\gamma+\delta+1).$$ - -\subsection*{Orthogonality relation} -For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have -\begin{eqnarray} -\label{OrtDualHahn} -& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDualHahn} -\lambda(x)R_n(\lambda(x)) -=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), -\end{equation} -where -$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] -\displaystyle C_n=n(n-\delta-N-1). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDualHahn} -xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvDualHahn} --ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] -\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualHahnI} -& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1DualHahnII} -\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= --\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualHahnI} -& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ -& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualHahnII} -& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ -& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), -\end{eqnarray} -where -$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} -{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ - -\newpage - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDualHahn} -\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) -=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], -\end{equation} -where -$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenDualHahn1} -(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn2} -& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ -& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{eqnarray} - -\begin{equation} -\label{GenDualHahn3} -\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N -\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn4} -& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, -\quad\textrm{$\epsilon$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Dual Hahn} -If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we obtain the dual Hahn polynomials: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we also obtain the dual Hahn polynomials: -$$\lim_{\alpha\rightarrow\infty} -R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition -(\ref{DefRacah}) of the Racah polynomials and take the limit -$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials -if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). -\end{equation} - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual -Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) -of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). - -\noindent -Since -$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ -we obtain the dual orthogonality relation for the dual Hahn polynomials -from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ -& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. -\end{eqnarray*} - -\subsection*{References} -\label{sec9.6} -% -\paragraph{Special values} -By \eqref{44} and \eqref{45} we have -\begin{equation} -R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. -\label{47} -\end{equation} -It follows from \eqref{95} and \eqref{45} that -\begin{equation} -R_N(x(x+\ga+\de+1);\ga,\de,N) -=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). -\label{101} -\end{equation} -% -\paragraph{Symmetries} -Write the weight in (9.6.2) as -\begin{equation} -w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, -\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. -\label{98} -\end{equation} -Then -\begin{equation} -(\de+1)_N\,w_{N-x}(\ga,\de,N)= -(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). -\label{99} -\end{equation} -Hence, by (9.6.2), -\begin{equation} -\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} -=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). -\label{97} -\end{equation} -Alternatively, \eqref{97} follows from (9.6.1) and -\mycite{DLMF}{(16.4.11)}. - -It follows from \eqref{96} and \eqref{45} that -\begin{equation} -\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} -{R_N(x(x+\ga+\de+1);\ga,\de,N)} -=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). -\label{102} -\end{equation} -% -\paragraph{Re: (9.6.11).} -The generating function (9.6.11) can be written in a more conceptual way as -\begin{equation} -(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, -\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, -\label{2} -\end{equation} -where -\begin{equation} -\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, -\label{3} -\end{equation} -i.e., the denominator on the \RHS\ of (9.6.2). -By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in -terms of Hahn polynomials: -\begin{equation} -(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, -\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, -\label{4} -\end{equation} -where -\begin{equation} -w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, -\label{5} -\end{equation} -i.e., the weight occurring in the orthogonality relation (9.5.2) -for Hahn polynomials. -\paragraph{Re: (9.6.15).} -There should be a closing bracket before the equality sign. -% -\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, -\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, -\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. - - -\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMP} -P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, -\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMP} -\frac{1}{2\pi}\int_{-\infty}^{\infty} -\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 -P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx -{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, -% \constraint{ -% $\lambda > 0$ & -% $0 < \phi < \pi$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMP} -& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] -P_n^{(\lambda)}(x;\phi)\nonumber\\ -& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMP} -xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ -\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), -\end{equation} -where -$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvMP} -& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ -& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MPI} -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) -P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MPII} -\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} -=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2MPI} -& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ -\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ -& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2MPII} -\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= --(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) -P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), -\end{equation} -where -$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMP} -\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} -\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. -\end{equation} - -\newpage - -\subsection*{Generating functions} -\begin{equation} -\label{GenMP1} -(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= -\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. -\end{equation} - -\begin{equation} -\label{GenMP2} -\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= -\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenMP3} -& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials -given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, -$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the -definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit -$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: -$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ - -\newpage - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the -Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -\begin{equation} -\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek -polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -and then let $\lambda\rightarrow\infty$: -\begin{equation} -\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remark} -Since we have for $k-1$ and $\beta>-1$ we have -\begin{eqnarray} -\label{OrtJacobi1} -& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ -& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. -\end{eqnarray} -For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have -\begin{eqnarray} -\label{OrtJacobi2} -& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ -& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecJacobi} -xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} -{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) -\end{eqnarray} -where -$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{eqnarray} -\label{dvJacobi} -& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ -& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Jacobi} -\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2JacobiI} -& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ -\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2JacobiII} -& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ -& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodJacobi} -(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= -\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenJacobi1} -\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= -\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{eqnarray} -\label{GenJacobi2} -& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi3} -& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi4} -& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi5} -& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2} -\end{eqnarray} -with $\gamma$ arbitrary. - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by -substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -$$\lim_{t\rightarrow\infty} -\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} -{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) -by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ -in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take -$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have -$$\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi -polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials -if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: -\begin{equation} -\lim_{\alpha\rightarrow-\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials -by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: -$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} -(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ -In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ -and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the -following connection with the Meixner polynomials given by (\ref{DefMeixner}): -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by -(\ref{DefPseudoJacobi}) in the following way: -$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ - -\noindent -The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials -given by (\ref{DefGegenbauer}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\label{sec9.8} -% -\paragraph{Orthogonality relation} -Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\begin{split} -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP -&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. -\end{split} -\label{60} -\end{equation} - -In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be -$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: -\begin{equation} -\begin{split} -&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ -&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. -\end{split} -\label{122} -\end{equation} - -% -\paragraph{Symmetry} -\begin{equation} -P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). -\label{48} -\end{equation} -Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Special values} -\begin{equation} -P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad -P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad -\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{50} -\end{equation} -Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Generating functions} -Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. -% -\paragraph{Bilateral generating functions} -For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): -\begin{align} -&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac1{(1+r)^{\al+\be+1}} -\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), -\label{58}\sLP -&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} -\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). -\label{59} -\end{align} -Formulas \eqref{58} and \eqref{59} were first -given by Bailey \myciteKLS{91}{(2.1), (2.3)}. -See Stanton \myciteKLS{485} for a shorter proof. -(However, in the second line of -\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ -As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows -from \eqref{58} -by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ -to both sides of \eqref{58}. -In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi -polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. -See also the discussion in Askey \myciteKLS{46}{following (2.32)}. -% -\paragraph{Quadratic transformations} -\begin{align} -\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} -=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} -&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, -\label{51}\\ -\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} -=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} -&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. -\label{52} -\end{align} -See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. -Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. -% -\paragraph{Differentiation formulas} -Each differentiation formula is given in two equivalent forms. -\begin{equation} -\begin{split} -\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= --(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ -\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= --(n+\al)\,P_n^{(\al-1,\be+1)}(x). -\end{split} -\label{68} -\end{equation} -% -\begin{equation} -\begin{split} -\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= -(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ -\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= -(n+\be)\,P_n^{(\al+1,\be-1)}(x). -\end{split} -\label{69} -\end{equation} -Formulas \eqref{68} and \eqref{69} follow from -\mycite{DLMF}{(15.5.4), (15.5.6)} -together with (9.8.1). They also follow from each other by \eqref{48}. -% -\paragraph{Generalized Gegenbauer polynomials} -These are defined by -\begin{equation} -S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad -S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{70} -\end{equation} -in the notation of \myciteKLS{146}{p.156} -(see also \cite{K27}), while \cite[Section 1.5.2]{K26} -has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. -For $\al,\be>-1$ we have the orthogonality relation -\begin{equation} -\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx -=0\qquad(m\ne n). -\label{71} -\end{equation} -For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of -continuous $q$-ultraspherical polynomials, see \eqref{176}. - -If we define the {\em Dunkl operator} $T_\mu$ by -\begin{equation} -(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x -\label{72} -\end{equation} -and if we choose the constants in \eqref{70} as -\begin{equation} -S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad -S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, -x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{73} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. -\label{74} -\end{equation} -Formula \eqref{74} with \eqref{73} substituted gives rise to two -differentiation formulas involving Jacobi polynomials which are equivalent to -(9.8.7) and \eqref{69}. - -Composition of \eqref{74} with itself gives -\[ -T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, -\] -which is equivalent to the composition of (9.8.7) and \eqref{69}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) -=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). -\label{75} -\end{equation} -Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. -% -\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, -\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, -\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, -\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, -\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, -\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, -\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, -\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, -\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, -\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, -\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, -\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, -\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, -\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, -\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, -\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, -\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, -\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, -\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, -\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, -\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, -\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, -\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, -\cite{Zayed}. - -\section*{Special cases} - -\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} -\index{Ultraspherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with -$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: -\begin{eqnarray} -\label{DefGegenbauer} -C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ -&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} -{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtGegenbauer} -& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ -& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, -\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecGegenbauer} -2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecGegenbauer} -xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), -\end{equation} -where -$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvGegenbauer} -(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Gegenbauer} -\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2GegenbauerI} -(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= --\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) -\end{equation} -or equivalently -\begin{eqnarray} -\label{shift2GegenbauerII} -& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ -& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodGegenbauer} -(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= -\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenGegenbauer1} -(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer2} -R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} -\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenGegenbauer3} -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} -=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer4} -\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenGegenbauer5} -& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenGegenbauer6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} -{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or -ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remarks} -The case $\lambda=0$ needs another normalization. In that case we have the -Chebyshev polynomials of the first kind described in the next subsection. - -\noindent -The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials -given by (\ref{DefJacobi}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\label{sec9.8.1} -% -\paragraph{Notation} -Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. -% -\paragraph{Orthogonality relation} -Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\frac{h_n}{h_0}= -\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad -h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad -\frac{h_n}{h_0\,(C_n^\la(1))^2}= -\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. -\label{61} -\end{equation} -% -\paragraph{Hypergeometric representation} -Beside (9.8.19) we have also -\begin{equation} -C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} -{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} -=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, -\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. -\label{57} -\end{equation} -See \mycite{DLMF}{(18.5.10)}. -% -\paragraph{Special value} -\begin{equation} -C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. -\label{49} -\end{equation} -Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Expression in terms of Jacobi} -% -\begin{equation} -\frac{C_n^\la(x)}{C_n^\la(1)}= -\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad -C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). -\label{65} -\end{equation} -% -\paragraph{Re: (9.8.21)} -By iteration of recurrence relation (9.8.21): -\begin{multline} -x^2 C_n^\la(x)= -\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ -\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ -+\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). -\label{6} -\end{multline} -% -\paragraph{Bilateral generating functions} -\begin{multline} -\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ -(r\in(-1,1),\;x,y\in[-1,1]). -\label{66} -\end{multline} -For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. -The Poisson kernel for Gegenbauer polynomials can be derived in a similar way -from \eqref{59}, or alternatively by applying the operator -$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: -\begin{multline} -\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ -\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad -(r\in(-1,1),\;x,y\in[-1,1]). -\label{67} -\end{multline} -Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} -as a limit case of their formula for the Poisson kernel for continuous -$q$-ultraspherical polynomials. -% -\paragraph{Trigonometric expansions} -By \mycite{DLMF}{(18.5.11), (15.8.1)}: -\begin{align} -C_n^{\la}(\cos\tha) -&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} -=e^{in\tha}\frac{(\la)_n}{n!}\, -\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ -&=\frac{(\la)_n}{2^\la n!}\, -e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, -\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ -&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, -\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} -\end{align} -In \eqref{104} and \eqref{105} we require that -$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ -and conditional for $0<\la\le\thalf$. - -By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: -\begin{align} -C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, -\sin\big((2k+n+1)\tha\big) -\label{7}\\ -&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ -&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, -\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, -\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ -&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, -\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, -\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. -\label{106} -\end{align} -We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in -\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for -$0<\la\le\thalf$. -For $\la\in\Zpos$ the above series terminate after the term with -$k=\la-1$. -Formulas \eqref{7} and \eqref{106} are also given in -\mycite{Sz}{(4.9.22), (4.9.25)}. -% -\paragraph{Fourier transform} -\begin{equation} -\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, -\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, -e^{ixy}\,dy -=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). -\label{8} -\end{equation} -See \mycite{DLMF}{(18.17.17) and (18.17.18)}. -% -\paragraph{Laplace transforms} -\begin{equation} -\frac2{n!\,\Ga(\la)}\, -\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). -\label{56} -\end{equation} -See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) -or Feldheim \cite[(28)]{K3} (1942). -\begin{equation} -\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, -(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt -=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). -\label{46} -\end{equation} -Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with -\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. -\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) -\begin{multline} -R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) -=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ -\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, -\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), -\label{108} -\end{multline} -where -\[ -R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad -\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} -{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. -\] -% -\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, -\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, -\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, -\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, -\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, -\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, -\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, -\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, -\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, -\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, -\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, -\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. - -\subsection{Chebyshev}\index{Chebyshev polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Chebyshev polynomials of the first kind can be obtained from the Jacobi -polynomials by taking $\alpha=\beta=-\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevI} -T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} -=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} -\end{equation} -and the Chebyshev polynomials of the second kind can be obtained from the -Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevII} -U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} -=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtChebyshevI} -\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= -\left\{\begin{array}{ll} -\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] -\cpi\,\delta_{mn}, & n=0. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{OrtChebyshevII} -\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relations} -\begin{equation} -\label{RecChebyshevI} -2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. -\end{equation} - -\begin{equation} -\label{RecChebyshevII} -2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. -\end{equation} - -\subsection*{Normalized recurrence relations} -\begin{equation} -\label{NormRecChebyshevI} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ - -\begin{equation} -\label{NormRecChebyshevII} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$U_n(x)=2^np_n(x).$$ - -\subsection*{Differential equations} -\begin{equation} -\label{dvChebyshevI} -(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). -\end{equation} - -\begin{equation} -\label{dvChebyshevII} -(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Chebyshev} -\frac{d}{dx}T_n(x)=nU_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2ChebyshevI} -(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2ChebyshevII} -\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] -=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formulas} -\begin{equation} -\label{RodChebyshevI} -(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. -\end{equation} - -\begin{equation} -\label{RodChebyshevII} -(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenChebyshevI1} -\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI2} -R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} -\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevI3} -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevI5} -& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevI6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{equation} -\label{GenChebyshevII1} -\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII2} -\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} -\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevII3} -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevII5} -& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevII6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Remarks} -The Chebyshev polynomials can also be written as: -$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ -and -$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ -Further we have -$$U_n(x)=C_n^{(1)}(x)$$ -where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) -polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. - -\subsection*{References} -\label{sec9.8.2} -In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) -and $U_n$ of the second kind (9.8.36), -\begin{align} -T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} -=\cos(n\tha),\quad x=\cos\tha,\\ -U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} -=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, -\end{align} -we have Chebyshev polynomials $V_n$ {\em of the third kind} -and $W_n$ {\em of the fourth kind}, -\begin{align} -V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} -=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ -W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} -=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, -\end{align} -see \cite[Section 1.2.3]{K20}. Then there is the symmetry -\begin{equation} -V_n(-x)=(-1)^n W_n(x). -\label{140} -\end{equation} - -The names of Chebyshev polynomials of the third and fourth kind -and the notation $V_n(x)$ are due to Gautschi \cite{K21}. -The notation $W_n(x)$ was first used by Mason \cite{K22}. -Names and notations for Chebyshev polynomials of the third and fourth -kind are interchanged in \mycite{AAR}{Remark 2.5.3} and -\mycite{DLMF}{Table 18.3.1}. -% -\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, -\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, -\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, -\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, -\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, -\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. - -\subsection{Legendre / Spherical}\index{Legendre polynomials} -\index{Spherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: -\begin{equation} -\label{DefLegendre} -P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLegendre} -\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLegendre} -(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLegendre} -xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), -\end{equation} -where -$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLegendre} -(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLegendre} -P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLegendre1} -\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre2} -\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre3} -\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenLegendre4} -& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenLegendre5} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{References} -\cite{Abram}, \cite{Alladi}, \cite{AlSalam90}, \cite{Bhonsle}, \cite{Brafman51}, -\cite{Carlitz57II}, \cite{Chihara78}, \cite{Danese}, \cite{Dattoli2001}, -\cite{DilcherStolarsky}, \cite{ElbertLaforgia94}, \cite{Erdelyi+}, \cite{Grad}, -\cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Rainville}, -\cite{Szego75}, \cite{Temme}, \cite{Zayed}. - -\newpage - -\section{Pseudo Jacobi}\index{Pseudo Jacobi polynomials}\index{Jacobi polynomials!Pseudo} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefPseudoJacobi} -P_n(x;\nu,N)&=&\frac{(-2i)^n(-N+i\nu)_n}{(n-2N-1)_n}\,\hyp{2}{1}{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}}\\ -&=&(x+i)^n\,\hyp{2}{1}{-n,N+1-n-i\nu}{2N+2-2n}{\frac{2}{1-ix}},\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtPseudoJacobi} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_m(x;\nu,N)P_n(x;\nu,N)\,dx\nonumber\\ -& &{}=\frac{\Gamma(2N+1-2n)\Gamma(2N+2-2n)2^{2n-2N-1}n!}{\Gamma(2N+2-n)\left|\Gamma(N+1-n+i\nu)\right|^2}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecPseudoJacobi} -xP_n(x;\nu,N)&=&P_{n+1}(x;\nu,N)+\frac{(N+1)\nu}{(n-N-1)(n-N)}P_n(x;\nu,N)\nonumber\\ -& &{}\mathindent{}-\frac{n(n-2N-2)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}\nonumber\\ -& &{}\mathindent\mathindent\times(n-N-1-i\nu)(n-N-1+i\nu)P_{n-1}(x;\nu,N). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecPseudoJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{(N+1)\nu}{(n-N-1)(n-N)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{n(n-2N-2)(n-N-1-i\nu)(n-N-1+i\nu)}{(2n-2N-3)(n-N-1)^2(2n-2N-1)}p_{n-1}(x), -\end{eqnarray} -where -$$P_n(x;\nu,N)=p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvPseudoJacobi} -(1+x^2)y''(x)+2\left(\nu-Nx\right)y'(x)-n(n-2N-1)y(x)=0, -\end{equation} -where -$$y(x)=P_n(x;\nu,N).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1PseudoJacobi} -\frac{d}{dx}P_n(x;\nu,N)=nP_{n-1}(x;\nu,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2PseudoJacobiI} -& &(1+x^2)\frac{d}{dx}P_n(x;\nu,N)+2\left[\nu-(N+1)x\right]P_n(x;\nu,N)\nonumber\\ -& &{}=(n-2N-2)P_{n+1}(x;\nu,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2PseudoJacobiII} -& &\frac{d}{dx}\left[(1+x^2)^{-N-1}\e^{2\nu\arctan x}P_n(x;\nu,N)\right]\nonumber\\ -& &{}=(n-2N-2)(1+x^2)^{-N-2}\e^{2\nu\arctan x}P_{n+1}(x;\nu,N+1). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodPseudoJacobi} -P_n(x;\nu,N)=\frac{(1+x^2)^{N+1}\expe^{-2\nu\arctan x}}{(n-2N-1)_n} -\left(\frac{d}{dx}\right)^n\left[(1+x^2)^{n-N-1}\expe^{2\nu\arctan x}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{eqnarray} -\label{GenPseudoJacobi} -& &\left[\hyp{0}{1}{-}{-N+i\nu}{(x+i)t}\,\hyp{0}{1}{-}{-N-i\nu}{(x-i)t}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(n-2N-1)_n}{(-N+i\nu)_n(-N-i\nu)_nn!}P_n(x;\nu,N)t^n. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials follow from the continuous Hahn polynomials given by -(\ref{DefContHahn}) by the substitutions $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray*} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray*} - -\subsection*{Remarks} -Since we have for $k 0$ & -% $0 < c < 1$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMeixner} -(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ -& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMeixner} -xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ -\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), -\end{equation} -where -$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvMeixner} -n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), -\end{equation} -where -$$y(x)=M_n(x;\beta,c).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MeixnerI} -M_n(x+1;\beta,c)-M_n(x;\beta,c)= -\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MeixnerII} -\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2MeixnerI} -c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift2MeixnerII} -\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= -\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMeixner} -\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenMeixner1} -\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= -\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner2} -\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= -\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner3} -(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) -of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: -$$\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -To obtain the Meixner polynomials from the dual Hahn polynomials we have to take -$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of -the dual Hahn polynomials and let $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials -if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: -\begin{equation} -\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. -\end{equation} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials -if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). -\end{equation} - -\subsection*{Remarks} -The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) -in the following way: -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Meixner polynomials are also related to the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) in the following way: -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\label{sec9.9} -In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) -is considered -for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take -$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). -\] -Then $P_n$ can be expressed as a Meixner polynomial: -\[ -P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, -M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). -\] - -In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' -which turn out to be special Meixner polynomials: -$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, -\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, -\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, -\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, -\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Laguerre}\index{Laguerre polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefLaguerre} -L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLaguerre} -\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= -\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLaguerre} -(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLaguerre} -xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), -\end{equation} -where -$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLaguerre} -xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). -\end{equation} - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Laguerre} -\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2LaguerreI} -x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2LaguerreII} -\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLaguerre} -\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLaguerre1} -(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= -\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre2} -\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre3} -(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by -(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -$$\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) -if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: -$$\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition -(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain -the Laguerre polynomials: -$$\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre -polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be -written as: -$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ -In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. -Therefore they can be defined for all $\alpha$. - -\noindent -The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\noindent -The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\noindent -In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook -polynomials. - -\subsection*{References} -\label{sec9.11} -% -\paragraph{Special values} -By (9.11.1) and the binomial formula: -\begin{equation} -K_n(0;p,N)=1,\qquad -K_n(N;p,N)=(1-p^{-1})^n. -\label{9} -\end{equation} -The self-duality (p.240, Remarks, first formula) -\begin{equation} -K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) -\label{147} -\end{equation} -combined with \eqref{9} yields: -\begin{equation} -K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). -\label{148} -\end{equation} -% -\paragraph{Symmetry} -By the orthogonality relation (9.11.2): -\begin{equation} -\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). -\label{10} -\end{equation} -By \eqref{10} and \eqref{147} we have also -\begin{equation} -\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) -\qquad(n,x\in\{0,1,\ldots,N\}), -\label{149} -\end{equation} -and, by \eqref{149}, \eqref{10} and \eqref{9}, -\begin{equation} -K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) -\qquad(n,x\in\{0,1,\ldots,N\}). -\label{150} -\end{equation} -A particular case of \eqref{10} is: -\begin{equation} -K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). -\label{11} -\end{equation} -Hence -\begin{equation} -K_{2m+1}(N;\thalf,2N)=0. -\label{12} -\end{equation} -From (9.11.11): -\begin{equation} -K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. -\label{13} -\end{equation} -% -\paragraph{Quadratic transformations} -\begin{align} -K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, -R_m(x^2;-\thalf,-\thalf,N), -\label{31}\\ -K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, -x\,R_m(x^2-1;\thalf,\thalf,N-1), -\label{33}\\ -K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, -R_m(x(x+1);-\thalf,\thalf,N), -\label{32}\\ -K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, -(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), -\label{34} -\end{align} -where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use -(9.6.2), (9.11.2), (9.6.4) and (9.11.4). -% -\paragraph{Generating functions} -\begin{multline} -\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ -=\left(\frac{p-z+pz}p\right)^m -\left(\frac{q-z+qz}q\right)^n -(1+z)^{N-m-n} -K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). -\label{107} -\end{multline} -This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back -to Meixner \cite{K9}. -% -\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, -\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, -\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, -\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, -\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, -\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, -\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, -\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, -\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, -\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, -\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, -\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, -\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, -\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, -\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, -\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, -\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, -\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, -\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. - - -\section{Bessel}\index{Bessel polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefBessel} -y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ -&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, -\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBessel} -& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ -& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBessel} -& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ -& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ -& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecBessel} -xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), -\end{eqnarray} -where -$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvBessel} -x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Bessel} -\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2BesselI} -x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) -\end{equation} -or equivalently -\begin{equation} -\label{shift2BesselII} -\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodBessel} -y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenBessel} -\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a -\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. -\end{equation} - -\subsection*{Limit relation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials -and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: -$$\lim_{\alpha\rightarrow -\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ - -\subsection*{Remarks} -The following notations are also used for the Bessel polynomials: -$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ -However, the Bessel polynomials essentially depend on only one parameter. - -\noindent -The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi -polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the -pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: -$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, -\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, -\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. - - -\section{Charlier}\index{Charlier polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefCharlier} -C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtCharlier} -\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= -a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecCharlier} --xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecCharlier} -xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), -\end{equation} -where -$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvCharlier} --ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1CharlierI} -C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift1CharlierII} -\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2CharlierI} -C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift2CharlierII} -\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodCharlier} -\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenCharlier} -\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials -and let $\beta\rightarrow\infty$ we find the Charlier polynomials: -$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials can be found from the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials -if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). -\end{equation} - -\subsection*{Remark} -The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\subsection*{References} -\label{sec9.12} -\paragraph{Notation} -Here the Laguerre polynomial is denoted by $L_n^\al$ instead of -$L_n^{(\al)}$. -% -\paragraph{Hypergeometric representation} -\begin{align} -L_n^\al(x)&= -\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x -\label{182}\\ -&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} -\label{183}\\ -&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), -\label{184} -\end{align} -where $C_n$ in \eqref{184} is a -\hyperref[sec9.14]{Charlier polynomial}. -Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal -of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. -It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially -\myciteKLS{416}{(2.7.10)}. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Special value} -\begin{equation} -L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. -\label{53} -\end{equation} -Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. -% -\paragraph{Quadratic transformations} -\begin{align} -H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), -\label{54}\\ -H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). -\label{55} -\end{align} -See p.244, Remarks, last two formulas. -Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. -% -\paragraph{Fourier transform} -\begin{equation} -\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, -e^{-y}\,y^\al\,e^{ixy}\,dy= -i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, -\label{14} -\end{equation} -see \mycite{DLMF}{(18.17.34)}. -% -\paragraph{Differentiation formulas} -Each differentiation formula is given in two equivalent forms. -\begin{equation} -\frac d{dx}\left(x^\al L_n^\al(x)\right)= -(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad -\left(x\frac d{dx}+\al\right)L_n^\al(x)= -(n+\al)\,L_n^{\al-1}(x). -\label{76} -\end{equation} -% -\begin{equation} -\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= --e^{-x} L_n^{\al+1}(x),\qquad -\left(\frac d{dx}-1\right)L_n^\al(x)= --L_n^{\al+1}(x). -\label{77} -\end{equation} -% -Formulas \eqref{76} and \eqref{77} follow from -\mycite{DLMF}{(13.3.18), (13.3.20)} -together with (9.12.1). -% -\paragraph{Generalized Hermite polynomials} -See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. -These are defined by -\begin{equation} -H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). -\label{78} -\end{equation} -Then for $\mu>-\thalf$ we have orthogonality relation -\begin{equation} -\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx -=0\qquad(m\ne n). -\label{79} -\end{equation} -Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. -If we choose the constants in \eqref{78} as -\begin{equation} -H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, - x\,L_m^{\mu+\half}(x^2) - \label{80} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_\mu H_n^\mu=2n\,H_{n-1}^\mu. -\label{81} -\end{equation} -Formula \eqref{81} with \eqref{80} substituted gives rise to two -differentiation formulas involving Laguerre polynomials which are equivalent to -(9.12.6) and \eqref{76}. - -Composition of \eqref{81} with itself gives -\[ -T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, -\] -which is equivalent to the composition of (9.12.6) and \eqref{76}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) -=-4(n+\al)\,L_{n-1}^\al(x^2). -\label{82} -\end{equation} -% -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, -\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, -\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, -\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, -\cite{Zeng90}. - - -\section{Hermite}\index{Hermite polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefHermite} -H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtHermite} -\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx -=2^nn!\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHermite} -H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHermite} -xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), -\end{equation} -where -$$H_n(x)=2^np_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvHermite} -y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Hermite} -\frac{d}{dx}H_n(x)=2nH_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2HermiteI} -\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2HermiteII} -\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodHermite} -\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenHermite1} -\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenHermite2} -\left\{\begin{array}{l} -\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] -\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite3} -\left\{\begin{array}{l} -\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] -\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite4} -\left\{\begin{array}{l} -\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= -\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] -\displaystyle\frac{xt}{\sqrt{1+t^2}}\, -\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} -=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} -\end{array}\right. -\end{equation} -with $\gamma$ arbitrary. - -\begin{equation} -\label{GenHermite5} -\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) -=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, -\end{equation} -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and -then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: -$$\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by -taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by -(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials can be obtained from the Laguerre polynomials given by -(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) -of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite -polynomials. In fact we have -$$\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ - -\subsection*{Remarks} -The Hermite polynomials can also be written as: -$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} -\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\noindent -The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\subsection*{References} -\label{sec9.14} -% -\paragraph{Hypergeometric representation} -\begin{align} -C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} -\label{179}\\ -&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a -\label{180}\\ -&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), -\label{181} -\end{align} -where $L_n^\al(x)$ is a -\hyperref[sec9.12]{Laguerre polynomial}. -Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal -of the summation. Finally \eqref{181} follows by \eqref{180} and -(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it -was earlier given in \myciteKLS{416}{(2.7.10)}. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, -\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, -\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, -\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, -\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, -\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, -\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, -\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, -\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, -\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, -\cite{Weisner59}, \cite{Wyman}. - -\end{document} diff --git a/KLSadd_insertion/tempchap14.tex b/KLSadd_insertion/tempchap14.tex deleted file mode 100644 index 0b5f396..0000000 --- a/KLSadd_insertion/tempchap14.tex +++ /dev/null @@ -1,5734 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\textheight 25cm - -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\large - -\pagenumbering{roman} -\addtocounter{chapter}{13} - -\chapter{Basic hypergeometric orthogonal polynomials} -\label{BasicHyperOrtPol} - - -In this chapter we deal with all families of basic hypergeometric orthogonal polynomials -appearing in the $q$-analogue of the Askey scheme on the pages~\pageref{qscheme1} and -\pageref{qscheme2}. For each family of orthogonal polynomials we state the most important -properties such as a representation as a basic hypergeometric function, orthogonality -relation(s), the three-term recurrence relation, the second-order $q$-difference equation, -the forward shift (or degree lowering) and backward shift (or degree raising) operator, a -Rodrigues-type formula and some generating functions. Throughout this chapter we assume -that $01$ and $b,c,d$ are real or one is real and the other two are complex conjugates,\\ -$\max(|b|,|c|,|d|)<1$ and the pairwise products of $a,b,c$ and $d$ have -absolute value less than $1$, then we have another orthogonality relation -given by: -\begin{eqnarray} -\label{OrtAskeyWilsonII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c,d|q)p_n(x;a,b,c,d|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 11$ and $b$ and $c$ are real or complex conjugates, -$\max(|b|,|c|)<1$ and the pairwise products of $a,b$ and $c$ have -absolute value less than $1$, then we have another orthogonality relation -given by: -\begin{eqnarray} -\label{OrtContDualqHahnII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}p_m(x;a,b,c|q)p_n(x;a,b,c|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10$) in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we -obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): -\begin{equation} -\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). -\end{equation} - -\subsubsection*{Big $q$-Jacobi $\rightarrow$ Jacobi} -If we set $c=0$, $a=q^{\alpha}$ and $b=q^{\beta}$ in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and let $q\rightarrow 1$ we find the Jacobi -polynomials given by (\ref{DefJacobi}): -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},0;q)=\frac{P_n^{(\alpha,\beta)}(2x-1)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} -If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we -find -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;q^{\alpha},q^{\beta},-q^{\gamma};q)=\frac{P_n^{(\alpha,\beta)}(x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsection*{Remarks} -The big $q$-Jacobi polynomials with $c=0$ and the little -$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related -in the following way: -$$P_n(x;a,b,0;q)=\frac{(bq;q)_n}{(aq;q)_n}(-1)^na^nq^{n+\binom{n}{2}}p_n(a^{-1}q^{-1}x;b,a|q).$$ - -\noindent -Sometimes the big $q$-Jacobi polynomials are defined in terms of four -parameters instead of three. In fact the polynomials given by the definition -$$P_n(x;a,b,c,d;q)=\qhyp{3}{2}{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}$$ -are orthogonal on the interval $[-d,c]$ with respect to the weight function -$$\frac{(c^{-1}qx,-d^{-1}qx;q)_{\infty}}{(ac^{-1}qx,-bd^{-1}qx;q)_{\infty}}d_qx.$$ -These polynomials are not really different from those given by -(\ref{DefBigqJacobi}) since we have -$$P_n(x;a,b,c,d;q)=P_n(ac^{-1}qx;a,b,-ac^{-1}d;q)$$ -and -$$P_n(x;a,b,c;q)=P_n(x;a,b,aq,-cq;q).$$ - -\subsection*{References} -\cite{NAlSalam89}, \cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{AtakKlimyk2004}, -\cite{AtakRahmanSuslov}, \cite{DattaGriffin}, \cite{FloreaniniVinetII}, -\cite{GasperRahman90}, \cite{GrunbaumHaine96}, \cite{Gupta92}, \cite{Hahn}, -\cite{Ismail86I}, \cite{IsmailStanton97}, \cite{IsmailWilson}, \cite{KalninsMiller88}, -\cite{KoelinkE}, \cite{Koorn90II}, \cite{Koorn93}, \cite{Koorn2007}, \cite{Miller89}, -\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{NoumiMimachi90III}, -\cite{NoumiMimachi91}, \cite{Spiridonov97}, \cite{SrivastavaJain90}. - - -\section*{Special case} - -\subsection{Big $q$-Legendre} -\index{Big q-Legendre polynomials@Big $q$-Legendre polynomials} -\index{q-Legendre polynomials@$q$-Legendre polynomials!Big} -\par - -\subsection*{Basic hypergeometric representation} The big $q$-Legendre polynomials are big $q$-Jacobi polynomials -with $a=b=1$: -\begin{equation} -\label{DefBigqLegendre} -P_n(x;c;q)=\qhyp{3}{2}{q^{-n},q^{n+1},x}{q,cq}{q}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBigqLegendre} -& &\int_{cq}^{q}P_m(x;c;q)P_n(x;c;q)\,d_qx\nonumber\\ -& &{}=q(1-c)\frac{(1-q)}{(1-q^{2n+1})} -\frac{(c^{-1}q;q)_n}{(cq;q)_n}(-cq^2)^nq^{\binom{n}{2}}\,\delta_{mn},\quad c<0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBigqLegendre} -(x-1)P_n(x;c;q)&=&A_nP_{n+1}(x;c;q)-\left(A_n+C_n\right)P_n(x;c;q)\nonumber\\ -& &{}\mathindent{}+C_nP_{n-1}(x;c;q), -\end{eqnarray} -where -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n+1})(1-cq^{n+1})}{(1+q^{n+1})(1-q^{2n+1})}\\ -\\ -\displaystyle C_n=-cq^{n+1}\frac{(1-q^n)(1-c^{-1}q^n)}{(1+q^n)(1-q^{2n+1})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecBigqLegendre} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$P_n(x;c;q)=\frac{(q^{n+1};q)_n}{(q,cq;q)_n}p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvBigqLegendre} -& &q^{-n}(1-q^n)(1-q^{n+1})x^2y(x)\nonumber\\ -& &{}=B(x)y(qx)-\left[B(x)+D(x)\right]y(x)+D(x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=P_n(x;c;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=q(x-1)(x-c)\\ -\\ -\displaystyle D(x)=(x-q)(x-cq).\end{array}\right.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodBigqLegendre} -P_n(x;c;q)&=&\frac{c^nq^{n(n+1)}(1-q)^n}{(q,cq;q)_n} -\left(\mathcal{D}_q\right)^n\left[(q^{-n}x,c^{-1}q^{-n}x;q)_n\right]\\ -&=&\frac{(1-q)^n}{(q,cq;q)_n}\left(\mathcal{D}_q\right)^n -\left[(qx^{-1},cqx^{-1};q)_nx^{2n}\right].\nonumber -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenBigqLegendre1} -\qhyp{2}{1}{qx^{-1},0}{q}{xt}\,\qhyp{1}{1}{c^{-1}x}{q}{cqt} -=\sum_{n=0}^{\infty}\frac{(cq;q)_n}{(q,q;q)_n}P_n(x;c;q)t^n. -\end{equation} - -\begin{equation} -\label{GenBigqLegendre2} -\qhyp{2}{1}{cqx^{-1},0}{cq}{xt}\,\qhyp{1}{1}{c^{-1}x}{c^{-1}q}{qt} -=\sum_{n=0}^{\infty}\frac{P_n(x;c;q)}{(c^{-1}q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Legendre $\rightarrow$ Legendre / Spherical} -If we set $c=0$ in the definition (\ref{DefBigqLegendre}) of the big -$q$-Legendre polynomials and let $q\rightarrow 1$ we simply obtain the Legendre -(or spherical) polynomials given by (\ref{DefLegendre}): -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;0;q)=P_n(2x-1). -\end{equation} -If we take $c=-q^{\gamma}$ for arbitrary real $\gamma$ instead of $c=0$ we -find -\begin{equation} -\lim_{q\rightarrow 1}P_n(x;-q^{\gamma};q)=P_n(x). -\end{equation} - -\subsection*{References} -\cite{Koelink95I}, \cite{Koorn90II}. - - -\section{$q$-Hahn}\index{q-Hahn polynomials@$q$-Hahn polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefqHahn} -Q_n(q^{-x};\alpha,\beta,N|q)=\qhyp{3}{2}{q^{-n},\alpha\beta q^{n+1},q^{-x}} -{\alpha q,q^{-N}}{q},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -For $0<\alpha q<1$ and $0<\beta q<1$, or for $\alpha>q^{-N}$ and $\beta>q^{-N}$, we have -\begin{eqnarray} -\label{OrtqHahn} -& &\sum_{x=0}^N\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta q)^{-x} -Q_m(q^{-x};\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=\frac{(\alpha\beta q^2;q)_N}{(\beta q;q)_N(\alpha q)^N} -\frac{(q,\alpha\beta q^{N+2},\beta q;q)_n}{(\alpha q,\alpha\beta q,q^{-N};q)_n}\, -\frac{(1-\alpha\beta q)(-\alpha q)^n}{(1-\alpha\beta q^{2n+1})} -q^{\binom{n}{2}-Nn}\,\delta_{mn}. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqHahn} --\left(1-q^{-x}\right)Q_n(q^{-x})&=&A_nQ_{n+1}(q^{-x})-\left(A_n+C_n\right)Q_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+C_nQ_{n-1}(q^{-x}), -\end{eqnarray} -where -$$Q_n(q^{-x}):=Q_n(q^{-x};\alpha,\beta,N|q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n-N})(1-\alpha q^{n+1})(1-\alpha\beta q^{n+1})}{(1-\alpha\beta q^{2n+1})(1-\alpha\beta q^{2n+2})}\\ -\\ -\displaystyle C_n=-\frac{\alpha q^{n-N}(1-q^n)(1-\alpha\beta q^{n+N+1})(1-\beta q^n)}{(1-\alpha\beta q^{2n})(1-\alpha\beta q^{2n+1})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqHahn} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(q^{-x};\alpha,\beta,N|q)= -\frac{(\alpha\beta q^{n+1};q)_n}{(\alpha q,q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqHahn} -& &q^{-n}(1-q^n)(1-\alpha\beta q^{n+1})y(x)\nonumber\\ -& &{}=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{eqnarray} -where -$$y(x)=Q_n(q^{-x};\alpha,\beta,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=(1-q^{x-N})(1-\alpha q^{x+1})\\ -\\ -\displaystyle D(x)=\alpha q(1-q^x)(\beta-q^{x-N-1}).\end{array}\right.$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qHahnI} -& &Q_n(q^{-x-1};\alpha,\beta,N|q)-Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-\alpha q)(1-q^{-N})} -Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1qHahnII} -\frac{\Delta Q_n(q^{-x};\alpha,\beta,N|q)}{\Delta q^{-x}} -&=&\frac{q^{-n+1}(1-q^n)(1-\alpha\beta q^{n+1})}{(1-q)(1-\alpha q)(1-q^{-N})}\nonumber\\ -& &{}\mathindent{}\times Q_{n-1}(q^{-x};\alpha q,\beta q,N-1|q). -\end{eqnarray} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qHahnI} -& &(1-\alpha q^x)(1-q^{x-N-1})Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}\mathindent{}-\alpha(1-q^x)(\beta-q^{x-N-1})Q_n(q^{-x+1};\alpha,\beta,N|q)\nonumber\\ -& &{}=q^x(1-\alpha)(1-q^{-N-1})Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qHahnII} -& &\frac{\nabla\left[w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;\alpha q^{-1},\beta q^{-1},N+1|q)Q_{n+1}(q^{-x};\alpha q^{-1},\beta q^{-1},N+1|q), -\end{eqnarray} -where -$$w(x;\alpha,\beta,N|q)=\frac{(\alpha q,q^{-N};q)_x}{(q,\beta^{-1}q^{-N};q)_x}(\alpha\beta)^{-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodqHahn} -& &w(x;\alpha,\beta,N|q)Q_n(q^{-x};\alpha,\beta,N|q)\nonumber\\ -& &{}=(1-q)^n\left(\nabla_q\right)^n\left[w(x;\alpha q^n,\beta q^n,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenqHahn1} -& &\qhyp{1}{1}{q^{-x}}{\alpha q}{\alpha qt}\,\qhyp{2}{1}{q^{x-N},0}{\beta q}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(\beta q,q;q)_n}Q_n(q^{-x};\alpha,\beta,N|q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenqHahn2} -& &\qhyp{2}{1}{q^{-x},\beta q^{N+1-x}}{0}{-\alpha q^{x-N+1}t}\, -\qhyp{2}{0}{q^{x-N},\alpha q^{x+1}}{-}{-q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha q,q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}Q_n(q^{-x};\alpha,\beta,N|q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ $q$-Hahn} -The $q$-Hahn polynomials follow from the $q$-Racah polynomials by the substitution -$\delta=0$ and $\gamma q=q^{-N}$ in the definition (\ref{DefqRacah}) of the -$q$-Racah polynomials: -$$R_n(\mu(x);\alpha,\beta,q^{-N-1},0|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ -Another way to obtain the $q$-Hahn polynomials from the $q$-Racah -polynomials is by setting $\gamma=0$ and $\delta=\beta^{-1}q^{-N-1}$ in the definition -(\ref{DefqRacah}): -$$R_n(\mu(x);\alpha,\beta,0,\beta^{-1}q^{-N-1}|q)=Q_n(q^{-x};\alpha,\beta,N|q).$$ -And if we take $\alpha q=q^{-N}$, $\beta\rightarrow\beta\gamma q^{N+1}$ and $\delta=0$ in the -definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the -$q$-Hahn polynomials given by (\ref{DefqHahn}) in the following way: -$$R_n(\mu(x);q^{-N-1},\beta\gamma q^{N+1},\gamma,0|q)=Q_n(q^{-x};\gamma,\beta,N|q).$$ -Note that $\mu(x)=q^{-x}$ in each case. - -\subsubsection*{$q$-Hahn $\rightarrow$ Little $q$-Jacobi} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqHahn}) of the $q$-Hahn -polynomials and take the limit $N\rightarrow\infty$ we find the little $q$-Jacobi polynomials: -\begin{equation} -\lim _{N\rightarrow\infty} Q_n(q^{x-N};\alpha,\beta,N|q)=p_n(q^x;\alpha,\beta|q), -\end{equation} -where $p_n(q^x;\alpha,\beta|q)$ is given by (\ref{DefLittleqJacobi}). - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials -by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the -$q$-Hahn polynomials and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} -The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of -the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: -\begin{equation} -\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} -If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials -and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by -(\ref{DefqKrawtchouk}): -\begin{equation} -\lim_{\alpha\rightarrow 0} -Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} -The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -can be obtained from the $q$-Hahn polynomials by the substitution $\alpha=p$ and -$\beta=0$ in (\ref{DefqHahn}): -\begin{equation} -Q_n(q^{-x};p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ Hahn} -The Hahn polynomials given by (\ref{DefHahn}) simply follow from the $q$-Hahn -polynomials given by (\ref{DefqHahn}), after setting $\alpha\rightarrow q^{\alpha}$ -and $\beta\rightarrow q^{\beta}$, in the following way: -\begin{equation} -\lim_{q\rightarrow 1}Q_n(q^{-x};q^{\alpha},q^{\beta},N|q)=Q_n(x;\alpha,\beta,N). -\end{equation} - -\subsection*{Remark} -The $q$-Hahn polynomials given by (\ref{DefqHahn}) and the dual $q$-Hahn -polynomials given by (\ref{DefDualqHahn}) are related in the following way: -$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ -with -$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ -or -$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ -where -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlvarezRonveaux}, \cite{AndrewsAskey85}, -\cite{AskeyWilson79}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, -\cite{Dunkl78II}, \cite{Fischer95}, \cite{GasperRahman84}, -\cite{GasperRahman90}, \cite{Hahn}, \cite{KalninsMiller88}, -\cite{Koelink96I}, \cite{KoelinkKoorn}, \cite{Koorn89III}, \cite{Koorn90II}, -\cite{Nikiforov+}, \cite{NoumiMimachi90II}, \cite{Rahman82}, -\cite{Stanton80II}, \cite{Stanton84}, \cite{Stanton90}. - - -\section{Dual $q$-Hahn}\index{Dual q-Hahn polynomials@Dual $q$-Hahn polynomials} -\index{q-Hahn polynomials@$q$-Hahn polynomials!Dual} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefDualqHahn} -R_n(\mu(x);\gamma,\delta,N|q)= -\qhyp{3}{2}{q^{-n},q^{-x},\gamma\delta q^{x+1}}{\gamma q,q^{-N}}{q},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\mu(x):=q^{-x}+\gamma\delta q^{x+1}.$$ - -\newpage - -\subsection*{Orthogonality relation} -For $0<\gamma q<1$ and $0<\delta q<1$, or for $\gamma>q^{-N}$ and $\delta>q^{-N}$, we have -\begin{eqnarray} -\label{OrtDualqHahn} -& &\sum_{x=0}^N\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x}{(q,\gamma\delta q^{N+2},\delta q;q)_x} -\frac{(1-\gamma\delta q^{2x+1})}{(1-\gamma\delta q)(-\gamma q)^x}q^{Nx-\binom{x}{2}}\nonumber\\ -& &{}\mathindent{}\times R_m(\mu(x);\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=\frac{(\gamma\delta q^2;q)_N}{(\delta q;q)_N}(\gamma q)^{-N} -\frac{(q,\delta^{-1}q^{-N};q)_n}{(\gamma q,q^{-N};q)_n}(\gamma\delta q)^n\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecDualqHahn} -& &-\left(1-q^{-x}\right)\left(1-\gamma\delta q^{x+1}\right)R_n(\mu(x))\nonumber\\ -& &{}=A_nR_{n+1}(\mu(x))-\left(A_n+C_n\right)R_n(\mu(x))+C_nR_{n-1}(\mu(x)), -\end{eqnarray} -where -$$R_n(\mu(x)):=R_n(\mu(x);\gamma,\delta,N|q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\left(1-q^{n-N}\right)\left(1-\gamma q^{n+1}\right)\\ -\\ -\displaystyle C_n=\gamma q\left(1-q^n\right)\left(\delta -q^{n-N-1}\right). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecDualqHahn} -xp_n(x)&=&p_{n+1}(x)+\left[1+\gamma\delta q-(A_n+C_n)\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+\gamma q(1-q^n)(1-\gamma q^n)\nonumber\\ -& &{}\mathindent\mathindent{}\times(1-q^{n-N-1})(\delta-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$R_n(\mu(x);\gamma,\delta,N|q)=\frac{1}{(\gamma q,q^{-N};q)_n}p_n(\mu(x)).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDualqHahn} -q^{-n}(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x) -+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\mu(x);\gamma,\delta,N|q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=\frac{(1-q^{x-N})(1-\gamma q^{x+1})(1-\gamma\delta q^{x+1})} -{(1-\gamma\delta q^{2x+1})(1-\gamma\delta q^{2x+2})}\\ -\\ -\displaystyle D(x)=-\frac{\gamma q^{x-N}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)} -{(1-\gamma\delta q^{2x})(1-\gamma\delta q^{2x+1})}.\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualqHahnI} -& &R_n(\mu(x+1);\gamma,\delta,N|q)-R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1-\gamma\delta q^{2x+2})}{(1-\gamma q)(1-q^{-N})} -R_{n-1}(\mu(x);\gamma q,\delta,N-1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1DualqHahnII} -& &\frac{\Delta R_n(\mu(x);\gamma,\delta,N|q)}{\Delta\mu(x)}\nonumber\\ -& &{}=\frac{q^{-n+1}(1-q^n)}{(1-q)(1-\gamma q)(1-q^{-N})}R_{n-1}(\mu(x);\gamma q,\delta,N-1|q). -\end{eqnarray} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualqHahnI} -& &(1-\gamma q^x)(1-\gamma\delta q^x)(1-q^{x-N-1})R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}\mathindent{}+\gamma q^{x-N-1}(1-q^x)(1-\gamma\delta q^{x+N+1})(1-\delta q^x)R_n(\mu(x-1);\gamma,\delta,N|q)\nonumber\\ -& &{}=q^x(1-\gamma)(1-q^{-N-1})(1-\gamma\delta q^{2x})R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualqHahnII} -& &\frac{\nabla\left[w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\right]}{\nabla\mu(x)}\nonumber\\ -& &{}=\frac{1}{(1-q)(1-\gamma\delta)}w(x;\gamma q^{-1},\delta,N+1|q)\nonumber\\ -& &{}\mathindent{}\times R_{n+1}(\mu(x);\gamma q^{-1},\delta,N+1|q), -\end{eqnarray} -where -$$w(x;\gamma,\delta,N|q)=\frac{(\gamma q,\gamma\delta q,q^{-N};q)_x} -{(q,\gamma\delta q^{N+2},\delta q;q)_x}(-\gamma^{-1})^x q^{Nx-\binom{x}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodDualqHahn} -& &w(x;\gamma,\delta,N|q)R_n(\mu(x);\gamma,\delta,N|q)\nonumber\\ -& &{}=(1-q)^n(\gamma\delta q;q)_n -\left(\nabla_{\mu}\right)^n\left[w(x;\gamma q^n,\delta,N-n|q)\right], -\end{eqnarray} -where -$$\nabla_{\mu}:=\frac{\nabla}{\nabla\mu(x)}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenDualqHahn1} -& &(q^{-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},\delta^{-1}q^{-x}}{\gamma q}{\gamma\delta q^{x+1}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenDualqHahn2} -& &(\gamma\delta qt;q)_x\cdot\qhyp{2}{1}{q^{x-N},\gamma q^{x+1}}{\delta^{-1}q^{-N}}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N -\frac{(q^{-N},\gamma q;q)_n}{(\delta^{-1}q^{-N},q;q)_n}R_n(\mu(x);\gamma,\delta,N|q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ Dual $q$-Hahn} -To obtain the dual $q$-Hahn polynomials from the $q$-Racah polynomials we have to -take $\beta=0$ and $\alpha q=q^{-N}$ in (\ref{DefqRacah}): -$$R_n(\mu(x);q^{-N-1},0,\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q),$$ -with -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ -We may also take $\alpha=0$ and $\beta=\delta^{-1}q^{-N-1}$ in (\ref{DefqRacah}) to obtain -the dual $q$-Hahn polynomials from the $q$-Racah polynomials: -$$R_n(\mu(x);0,\delta^{-1}q^{-N-1},\gamma,\delta|q)=R_n(\mu(x);\gamma,\delta,N|q).$$ -And if we take $\gamma q=q^{-N}$, $\delta\rightarrow\alpha\delta q^{N+1}$ and $\beta=0$ in the -definition (\ref{DefqRacah}) of the $q$-Racah polynomials we find the dual -$q$-Hahn polynomials given by (\ref{DefDualqHahn}) in the following way: -$$R_n(\mu(x);\alpha,0,q^{-N-1},\alpha\delta q^{N+1}|q)=R_n({\tilde \mu}(x);\alpha,\delta,N|q),$$ -with -$${\tilde \mu}(x)=q^{-x}+\alpha\delta q^{x+1}.$$ - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Affine $q$-Krawtchouk} -The affine $q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -can be obtained from the dual $q$-Hahn polynomials by the substitution $\gamma=p$ -and $\delta=0$ in (\ref{DefDualqHahn}): -\begin{equation} -R_n(\mu(x);p,0,N|q)=K_n^{Aff}(q^{-x};p,N;q). -\end{equation} -Note that $\mu(x)=q^{-x}$ in this case. - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual $q$-Krawtchouk} -The dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) can -be obtained from the dual $q$-Hahn polynomials by setting $\delta=c\gamma^{-1}q^{-N-1}$ -in (\ref{DefDualqHahn}) and letting $\gamma\rightarrow 0$: -\begin{equation} -\lim_{\gamma\rightarrow 0} -R_n(\mu(x);\gamma,c\gamma^{-1}q^{-N-1},N|q)=K_n(\lambda(x);c,N|q). -\end{equation} - -\subsubsection*{Dual $q$-Hahn $\rightarrow$ Dual Hahn} -The dual Hahn polynomials given by (\ref{DefDualHahn}) follow from the dual $q$-Hahn -polynomials by simply taking the limit $q\rightarrow 1$ in the definition (\ref{DefDualqHahn}) -of the dual $q$-Hahn polynomials after applying the substitution -$\gamma\rightarrow q^{\gamma}$ and $\delta\rightarrow q^{\delta}$: -\begin{equation} -\lim_{q\rightarrow 1}R_n(\mu(x);q^{\gamma},q^{\delta},N|q)=R_n(\lambda(x);\gamma,\delta,N), -\end{equation} -where -$$\left\{\begin{array}{l} -\displaystyle\mu(x)=q^{-x}+q^{x+\gamma+\delta+1}\\[5mm] -\displaystyle\lambda(x)=x(x+\gamma+\delta+1). -\end{array}\right.$$ - -\subsection*{Remark} -The dual $q$-Hahn polynomials given by (\ref{DefDualqHahn}) and the -$q$-Hahn polynomials given by (\ref{DefqHahn}) are related in the following way: -$$Q_n(q^{-x};\alpha,\beta,N|q)=R_x(\mu(n);\alpha,\beta,N|q),$$ -with -$$\mu(n)=q^{-n}+\alpha\beta q^{n+1}$$ -or -$$R_n(\mu(x);\gamma,\delta,N|q)=Q_x(q^{-n};\gamma,\delta,N|q),$$ -where -$$\mu(x)=q^{-x}+\gamma\delta q^{x+1}.$$ - -\subsection*{References} -\cite{AlvarezSmirnov}, \cite{AndrewsAskey85}, \cite{AskeyWilson79}, -\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, -\cite{KoelinkKoorn}, \cite{Nikiforov+}, \cite{Stanton84}. - - -\section{Al-Salam-Chihara}\index{Al-Salam-Chihara polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefAlSalamChihara} -Q_n(x;a,b|q)&=&\frac{(ab;q)_n}{a^n}\, -\qhyp{3}{2}{q^{-n},a\e^{i\theta},a\e^{-i\theta}}{ab,0}{q}\\ -&=&(a\e^{i\theta};q)_n\e^{-in\theta}\,\qhyp{2}{1}{q^{-n},b\e^{-i\theta}} -{a^{-1}q^{-n+1}\e^{-i\theta}}{a^{-1}q\e^{i\theta}}\nonumber\\ -&=&(b\e^{-i\theta};q)_n\e^{in\theta}\,\qhyp{2}{1}{q^{-n},a\e^{i\theta}} -{b^{-1}q^{-n+1}\e^{i\theta}}{b^{-1}q\e^{-i\theta}},\quad x=\cos\theta.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -If $a$ and $b$ are real or complex conjugates and $\max(|a|,|b|)<1$, then we have the following orthogonality relation -\begin{equation} -\label{OrtAlSalamChiharaI} -\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx -=\frac{\,\delta_{mn}}{(q^{n+1},abq^n;q)_{\infty}}, -\end{equation} -where -$$w(x):=w(x;a,b|q)=\left|\frac{(\e^{2i\theta};q)_{\infty}} -{(a\e^{i\theta},b\e^{i\theta};q)_{\infty}}\right|^2 -=\frac{h(x,1)h(x,-1)h(x,q^{\frac{1}{2}})h(x,-q^{\frac{1}{2}})}{h(x,a)h(x,b)},$$ -with -$$h(x,\alpha):=\prod_{k=0}^{\infty}\left(1-2\alpha xq^k+\alpha^2q^{2k}\right) -=\left(\alpha\e^{i\theta},\alpha\e^{-i\theta};q\right)_{\infty},\quad x=\cos\theta.$$ -If $a>1$ and $|ab|<1$, then we have another orthogonality relation given by: -\begin{eqnarray} -\label{OrtAlSalamChiharaII} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}Q_m(x;a,b|q)Q_n(x;a,b|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 10. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqMeixner} -& &q^{2n+1}(1-q^{-x})M_n(q^{-x})\nonumber\\ -& &{}=c(1-bq^{n+1})M_{n+1}(q^{-x})\nonumber\\ -& &{}\mathindent{}-\left[c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right]M_n(q^{-x})\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^n)(c+q^n)M_{n-1}(q^{-x}), -\end{eqnarray} -where -$$M_n(q^{-x}):=M_n(q^{-x};b,c;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqMeixner} -xp_n(x)&=&p_{n+1}(x)+ -\left[1+q^{-2n-1}\left\{c(1-bq^{n+1})+q(1-q^n)(c+q^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+cq^{-4n+1}(1-q^n)(1-bq^n)(c+q^n)p_{n-1}(x), -\end{eqnarray} -where -$$M_n(q^{-x};b,c;q)=\frac{(-1)^nq^{n^2}}{(bq;q)_nc^n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqMeixner} --(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=M_n(q^{-x};b,c;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=cq^x(1-bq^{x+1})\\ -\\ -\displaystyle D(x)=(1-q^x)(1+bcq^x).\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qMeixnerI} -& &M_n(q^{-x-1};b,c;q)-M_n(q^{-x};b,c;q)\nonumber\\ -& &{}=-\frac{q^{-x}(1-q^n)}{c(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1qMeixnerII} -\frac{\Delta M_n(q^{-x};b,c;q)}{\Delta q^{-x}} -=-\frac{q(1-q^n)}{c(1-q)(1-bq)}M_{n-1}(q^{-x};bq,cq^{-1};q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qMeixnerI} -& &cq^x(1-bq^x)M_n(q^{-x};b,c;q)-(1-q^x)(1+bcq^x)M_n(q^{-x+1};b,c;q)\nonumber\\ -& &{}=cq^x(1-b)M_{n+1}(q^{-x};bq^{-1},cq;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qMeixnerII} -& &\frac{\nabla\left[w(x;b,c;q)M_n(q^{-x};b,c;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;bq^{-1},cq;q)M_{n+1}(q^{-x};bq^{-1},cq;q), -\end{eqnarray} -where -$$w(x;b,c;q)=\frac{(bq;q)_x}{(q,-bcq;q)_x}c^xq^{\binom{x+1}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqMeixner} -w(x;b,c;q)M_n(q^{-x};b,c;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;bq^n,cq^{-n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} -\begin{equation} -\label{GenqMeixner1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{bq}{-c^{-1}qt} -=\sum_{n=0}^{\infty}\frac{M_n(q^{-x};b,c;q)}{(q;q)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenqMeixner2} -& &\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-b^{-1}c^{-1}q^{-x}}{-c^{-1}q}{bqt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(bq;q)_n}{(-c^{-1}q,q;q)_n}M_n(q^{-x};b,c;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Jacobi $\rightarrow$ $q$-Meixner} -If we set $b=-a^{-1}cd^{-1}$ (with $d>0$) in the definition (\ref{DefBigqJacobi}) -of the big $q$-Jacobi polynomials and take the limit $c\rightarrow -\infty$ we -obtain the $q$-Meixner polynomials given by (\ref{DefqMeixner}): -\begin{equation} -\lim_{c\rightarrow -\infty}P_n(q^{-x};a,-a^{-1}cd^{-1},c;q)=M_n(q^{-x};a,d;q). -\end{equation} - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Meixner} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) can be obtained from the $q$-Hahn polynomials -by setting $\alpha=b$ and $\beta=-b^{-1}c^{-1}q^{-N-1}$ in the definition (\ref{DefqHahn}) of the -$q$-Hahn polynomials and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}Q_n(q^{-x};b,-b^{-1}c^{-1}q^{-N-1},N|q)=M_n(q^{-x};b,c;q).$$ - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained -from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting -$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition -(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit -$c\rightarrow\infty$: -\begin{equation} -\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be -obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ -in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: -\begin{equation} -M_n(x;0,c;q)=C_n(x;c;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ Al-Salam-Carlitz~II} -The Al-Salam-Carlitz~II polynomials given by (\ref{DefAlSalamCarlitzII}) -can be obtained from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) -by setting $b=-ac^{-1}$ in the definition (\ref{DefqMeixner}) of the -$q$-Meixner polynomials and then taking the limit $c\rightarrow 0$: -\begin{equation} -\lim_{c\rightarrow 0}M_n(x;-ac^{-1},c;q)= -\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). -\end{equation} - -\subsubsection*{$q$-Meixner $\rightarrow$ Meixner} -To find the Meixner polynomials given by (\ref{DefMeixner}) from the $q$-Meixner polynomials given by -(\ref{DefqMeixner}) we set $b=q^{\beta-1}$ and $c\rightarrow (1-c)^{-1}c$ and let $q\rightarrow 1$: -\begin{equation} -\lim_{q\rightarrow 1}M_n(q^{-x};q^{\beta-1},(1-c)^{-1}c;q)=M_n(x;\beta,c). -\end{equation} - -\subsection*{Remarks} -The $q$-Meixner polynomials given by (\ref{DefqMeixner}) and the little -$q$-Jacobi polynomials given by (\ref{DefLittleqJacobi}) are related in the -following way: -$$M_n(q^{-x};b,c;q)=p_n(-c^{-1}q^n;b,b^{-1}q^{-n-x-1}|q).$$ - -\noindent -The $q$-Meixner polynomials and the quantum $q$-Krawtchouk polynomials -given by (\ref{DefQuantumqKrawtchouk}) are related in the following way: -$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamVerma82II}, \cite{AlSalamVerma88}, \cite{AlvarezRonveaux}, -\cite{AtakAtakKlimyk}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, \cite{GasperRahman90}, -\cite{Hahn}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Smirnov}. - - -\section{Quantum $q$-Krawtchouk} -\index{Quantum q-Krawtchouk polynomials@Quantum $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Quantum} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefQuantumqKrawtchouk} -K_n^{qtm}(q^{-x};p,N;q)= -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{-N}}{pq^{n+1}},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtQuantumqKrawtchouk} -& &\sum_{x=0}^N\frac{(pq;q)_{N-x}}{(q;q)_x(q;q)_{N-x}}(-1)^{N-x}q^{\binom{x}{2}} -K_m^{qtm}(q^{-x};p,N;q)K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{(-1)^np^N(q;q)_{N-n}(q,pq;q)_n}{(q,q;q)_N} -q^{\binom{N+1}{2}-\binom{n+1}{2}+Nn}\,\delta_{mn},\quad p>q^{-N}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecQuantumqKrawtchouk} -& &-pq^{2n+1}(1-q^{-x})K_n^{qtm}(q^{-x})\nonumber\\ -& &{}=(1-q^{n-N})K_{n+1}^{qtm}(q^{-x})\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n-N})+q(1-q^n)(1-pq^n)\right]K_n^{qtm}(q^{-x})\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^n)(1-pq^n)K_{n-1}^{qtm}(q^{-x}), -\end{eqnarray} -where -$$K_n^{qtm}(q^{-x}):=K_n^{qtm}(q^{-x};p,N;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecQuantumqKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+ -\left[1-p^{-1}q^{-2n-1}\left\{(1-q^{n-N})+q(1-q^n)(1-pq^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+p^{-2}q^{-4n+1}(1-q^n)(1-pq^n)(1-q^{n-N-1})p_{n-1}(x), -\end{eqnarray} -where -$$K_n^{qtm}(q^{-x};p,N;q)=\frac{p^nq^{n^2}}{(q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvQuantumqKrawtchouk} --p(1-q^n)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=K_n^{qtm}(q^{-x};p,N;q)$$ -and -$$\left\{\begin{array}{l}\displaystyle B(x)=-q^x(1-q^{x-N})\\ -\\ -\displaystyle D(x)=(1-q^x)(p-q^{x-N-1}).\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1QuantumqKrawtchoukI} -& &K_n^{qtm}(q^{-x-1};p,N;q)-K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{pq^{-x}(1-q^n)}{1-q^{-N}}K_{n-1}^{qtm}(q^{-x};pq,N-1;q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1QuantumqKrawtchoukII} -\frac{\Delta K_n^{qtm}(q^{-x};p,N;q)}{\Delta q^{-x}}= -\frac{pq(1-q^n)}{(1-q)(1-q^{-N})}K_{n-1}^{qtm}(q^{-x};pq,N-1;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2QuantumqKrawtchoukI} -& &(1-q^{x-N-1})K_n^{qtm}(q^{-x};p,N;q)\nonumber\\ -& &{}\mathindent{}+q^{-x}(1-q^x)(p-q^{x-N-1})K_n^{qtm}(q^{-x+1};p,N;q)\nonumber\\ -& &{}=(1-q^{-N-1})K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2QuantumqKrawtchoukII} -& &\frac{\nabla\left[w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;pq^{-1},N+1;q)K_{n+1}^{qtm}(q^{-x};pq^{-1},N+1;q), -\end{eqnarray} -where -$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q,p^{-1}q^{-N};q)_x}(-p)^{-x}q^{\binom{x+1}{2}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodQuantumqKrawtchouk} -w(x;p,N;q)K_n^{qtm}(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^n,N-n;q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenQuantumqKrawtchouk1} -& &(q^{x-N}t;q)_{N-x}\cdot\qhyp{2}{1}{q^{-x},pq^{N+1-x}}{0}{q^{x-N}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenQuantumqKrawtchouk2} -& &(q^{-x}t;q)_x\cdot\qhyp{2}{1}{q^{x-N},0}{pq}{q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(pq,q;q)_n}K_n^{qtm}(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Hahn $\rightarrow$ Quantum $q$-Krawtchouk} -The quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -simply follow from the $q$-Hahn polynomials by setting $\beta=p$ in the definition (\ref{DefqHahn}) of -the $q$-Hahn polynomials and taking the limit $\alpha\rightarrow\infty$: -$$\lim_{\alpha\rightarrow\infty}Q_n(q^{-x};\alpha,p,N|q)=K_n^{qtm}(q^{-x};p,N;q).$$ - -\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~II} -If we set $p=a^{-1}q^{-N-1}$ in the definition (\ref{DefQuantumqKrawtchouk}) -of the quantum $q$-Krawtchouk polynomials and let $N\rightarrow\infty$ we -obtain the Al-Salam-Carlitz~II polynomials given by -(\ref{DefAlSalamCarlitzII}). In fact we have -\begin{equation} -\lim_{N\rightarrow\infty}K_n^{qtm}(x;a^{-1}q^{-N-1},N;q)= -\left(-\frac{1}{a}\right)^nq^{\binom{n}{2}}V_n^{(a)}(x;q). -\end{equation} - -\subsubsection*{Quantum $q$-Krawtchouk $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) easily follow from -the quantum $q$-Krawtchouk polynomials given by (\ref{DefQuantumqKrawtchouk}) -in the following way: -\begin{equation} -\lim_{q\rightarrow 1}K_n^{qtm}(q^{-x};p,N;q)=K_n(x;p^{-1},N). -\end{equation} - -\subsection*{Remarks} -The quantum $q$-Krawtchouk polynomials given by -(\ref{DefQuantumqKrawtchouk}) and the $q$-Meixner polynomials given by -(\ref{DefqMeixner}) are related in the following way: -$$K_n^{qtm}(q^{-x};p,N;q)=M_n(q^{-x};q^{-N-1},-p^{-1};q).$$ - -\noindent -The quantum $q$-Krawtchouk polynomials are related to the affine -$q$-Krawtchouk polynomials given by (\ref{DefAffqKrawtchouk}) -by the transformation $q\leftrightarrow q^{-1}$ in the following way: -$$K_n^{qtm}(q^x;p,N;q^{-1})=(p^{-1}q;q)_n\left(-\frac{p}{q}\right)^nq^{-\binom{n}{2}} -K_n^{Aff}(q^{x-N};p^{-1},N;q).$$ - -\subsection*{References} -\cite{GasperRahman90}, \cite{Koorn89III}, \cite{Koorn90II}, \cite{Smirnov}. - - -\section{$q$-Krawtchouk}\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} For $n=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{DefqKrawtchouk} -K_n(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}\\ -&=&\frac{(q^{x-N};q)_n}{(q^{-N};q)_nq^{nx}}\, -\qhyp{2}{1}{q^{-n},q^{-x}}{q^{N-x-n+1}}{-pq^{n+N+1}}.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqKrawtchouk} -& &\sum_{x=0}^N\frac{(q^{-N};q)_x}{(q;q)_x}(-p)^{-x}K_m(q^{-x};p,N;q)K_n(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{(q,-pq^{N+1};q)_n}{(-p,q^{-N};q)_n}\frac{(1+p)}{(1+pq^{2n})}\nonumber\\ -& &{}\mathindent{}\times (-pq;q)_Np^{-N}q^{-\binom{N+1}{2}} -\left(-pq^{-N}\right)^nq^{n^2}\,\delta_{mn},\quad p>0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqKrawtchouk} --\left(1-q^{-x}\right)K_n(q^{-x})&=&A_nK_{n+1}(q^{-x})-\left(A_n+C_n\right)K_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+C_nK_{n-1}(q^{-x}), -\end{eqnarray} -where -$$K_n(q^{-x}):=K_n(q^{-x};p,N;q)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(1-q^{n-N})(1+pq^n)}{(1+pq^{2n})(1+pq^{2n+1})}\\ -\\ -\displaystyle C_n=-pq^{2n-N-1}\frac{(1+pq^{n+N})(1-q^n)}{(1+pq^{2n-1})(1+pq^{2n})}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqKrawtchouk} -xp_n(x)=p_{n+1}(x)+\left[1-(A_n+C_n)\right]p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$K_n(q^{-x};p,N;q)=\frac{(-pq^n;q)_n}{(q^{-N};q)_n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqKrawtchouk} -& &q^{-n}(1-q^n)(1+pq^n)y(x)\nonumber\\ -& &{}=(1-q^{x-N})y(x+1)-\left[(1-q^{x-N})-p(1-q^x)\right]y(x)\nonumber\\ -& &{}\mathindent{}-p(1-q^x)y(x-1), -\end{eqnarray} -where -$$y(x)=K_n(q^{-x};p,N;q).$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1qKrawtchoukI} -& &K_n(q^{-x-1};p,N;q)-K_n(q^{-x};p,N;q)\nonumber\\ -& &{}=\frac{q^{-n-x}(1-q^n)(1+pq^n)}{1-q^{-N}}K_{n-1}(q^{-x};pq^2,N-1;q) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1qKrawtchoukII} -\frac{\Delta K_n(q^{-x};p,N;q)}{\Delta q^{-x}}= -\frac{q^{-n+1}(1-q^n)(1+pq^n)}{(1-q)(1-q^{-N})}K_{n-1}(q^{-x};pq^2,N-1;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2qKrawtchoukI} -& &(1-q^{x-N-1})K_n(q^{-x};p,N;q)+pq^{-1}(1-q^x)K_n(q^{-x+1};p,N;q)\nonumber\\ -& &{}=q^x(1-q^{-N-1})K_{n+1}(q^{-x};pq^{-2},N+1;q) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2qKrawtchoukII} -& &\frac{\nabla\left[w(x;p,N;q)K_n(q^{-x};p,N;q)\right]}{\nabla q^{-x}}\nonumber\\ -& &{}=\frac{1}{1-q}w(x;pq^{-2},N+1;q)K_{n+1}(q^{-x};pq^{-2},N+1;q), -\end{eqnarray} -where -$$w(x;p,N;q)=\frac{(q^{-N};q)_x}{(q;q)_x}\left(-\frac{q}{p}\right)^x.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqKrawtchouk} -w(x;p,N;q)K_n(q^{-x};p,N;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;pq^{2n},N-n;q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating function} For $x=0,1,2,\ldots,N$ we have -\begin{eqnarray} -\label{GenqKrawtchouk} -& &\qhyp{1}{1}{q^{-x}}{0}{pqt}\,\qhyp{2}{0}{q^{x-N},0}{-}{-q^{-x}t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(q^{-N};q)_n}{(q;q)_n}q^{-\binom{n}{2}}K_n(q^{-x};p,N;q)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Racah $\rightarrow$ $q$-Krawtchouk} -The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) can be obtained from -the $q$-Racah polynomials by setting $\alpha q=q^{-N}$, $\beta=-pq^N$ and -$\gamma=\delta=0$ in the definition (\ref{DefqRacah}) of the $q$-Racah polynomials: -$$R_n(q^{-x};q^{-N-1},-pq^N,0,0|q)=K_n(q^{-x};p,N;q).$$ -Note that $\mu(x)=q^{-x}$ in this case. - -\subsubsection*{$q$-Hahn $\rightarrow$ $q$-Krawtchouk} -If we set $\beta=-\alpha^{-1}q^{-1}p$ in the definition (\ref{DefqHahn}) of the $q$-Hahn polynomials -and then let $\alpha\rightarrow 0$ we obtain the $q$-Krawtchouk polynomials given by -(\ref{DefqKrawtchouk}): -$$\lim_{\alpha\rightarrow 0} -Q_n(q^{-x};\alpha,-\alpha^{-1}q^{-1}p,N|q)=K_n(q^{-x};p,N;q).$$ - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we -obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} -By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we -obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): -\begin{equation} -\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ Krawtchouk} -If we take the limit $q\rightarrow 1$ in the definition (\ref{DefqKrawtchouk}) of the $q$-Krawtchouk -polynomials we simply find the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) in the -following way: -\begin{equation} -\lim_{q\rightarrow 1}K_n(q^{-x};p,N;q)=K_n(x;(p+1)^{-1},N). -\end{equation} - -\subsection*{Remark} -The $q$-Krawtchouk polynomials given by (\ref{DefqKrawtchouk}) and the -dual $q$-Krawtchouk polynomials given by (\ref{DefDualqKrawtchouk}) are -related in the following way: -$$K_n(q^{-x};p,N;q)=K_x(\lambda(n);-pq^N,N|q)$$ -with -$$\lambda(n)=q^{-n}-pq^n$$ -or -$$K_n(\lambda(x);c,N|q)=K_x(q^{-n};-cq^{-N},N;q)$$ -with -$$\lambda(x)=q^{-x}+cq^{x-N}.$$ - -\subsection*{References} -\cite{AlvarezRonveaux}, \cite{AskeyWilson79}, \cite{AtakRahmanSuslov}, -\cite{Campigotto+}, \cite{GasperRahman90}, \cite{Nikiforov+}, -\cite{NoumiMimachi91}, \cite{Stanton80III}, \cite{Stanton84}. - - -\newpage - -\section{Affine $q$-Krawtchouk} -\index{Affine q-Krawtchouk polynomials@Affine $q$-Krawtchouk polynomials} -\index{q-Krawtchouk polynomials@$q$-Krawtchouk polynomials!Affine} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefAffqKrawtchouk} -K_n^{Aff}(q^{-x};p,N;q)&=&\qhyp{3}{2}{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}\\ -&=&\frac{(-pq)^nq^{\binom{n}{2}}}{(pq;q)_n}\, -\qhyp{2}{1}{q^{-n},q^{x-N}}{q^{-N}}{\frac{q^{-x}}{p}},\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAffqKrawtchouk} -& &\sum_{x=0}^N\frac{(pq;q)_x(q;q)_N}{(q;q)_x(q;q)_{N-x}}(pq)^{-x}K_m^{Aff}(q^{-x};p,N;q)K_n^{Aff}(q^{-x};p,N;q)\nonumber\\ -& &{}=(pq)^{n-N}\frac{(q;q)_n(q;q)_{N-n}}{(pq;q)_n(q;q)_N}\,\delta_{mn},\quad 01$, then we have another orthogonality relation given by: -\begin{eqnarray} -\label{OrtContBigqHermite2} -& &\frac{1}{2\pi}\int_{-1}^1\frac{w(x)}{\sqrt{1-x^2}}H_m(x;a|q)H_n(x;a|q)\,dx\nonumber\\ -& &{}\mathindent{}+\sum_{\begin{array}{c}\scriptstyle k\\ \scriptstyle 1-1 -\end{eqnarray} -and -\begin{eqnarray} -\label{OrtqLaguerre2} -& &\sum_{k=-\infty}^{\infty}\frac{q^{k\alpha+k}}{(-cq^k;q)_{\infty}}L_m^{(\alpha)}(cq^k;q)L_n^{(\alpha)}(cq^k;q)\nonumber\\ -& &{}=\frac{(q,-cq^{\alpha+1},-c^{-1}q^{-\alpha};q)_{\infty}} -{(q^{\alpha+1},-c,-c^{-1}q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn}, -\quad\alpha>-1,\quad c>0. -\end{eqnarray} -For $c=1$ the latter orthogonality relation can also be written as -\begin{eqnarray} -\label{OrtqLaguerre3} -& &\int_0^{\infty}\frac{x^{\alpha}}{(-x;q)_{\infty}}L_m^{(\alpha)}(x;q)L_n^{(\alpha)}(x;q)\,d_qx\nonumber\\ -& &{}=\frac{1-q}{2}\,\frac{(q,-q^{\alpha+1},-q^{-\alpha};q)_{\infty}} -{(q^{\alpha+1},-q,-q;q)_{\infty}}\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^n}\,\delta_{mn},\quad\alpha>-1. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqLaguerre} --q^{2n+\alpha+1}xL_n^{(\alpha)}(x;q)&=&(1-q^{n+1})L_{n+1}^{(\alpha)}(x;q)\nonumber\\ -& &{}\mathindent{}-\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]L_n^{(\alpha)}(x;q)\nonumber\\ -& &{}\mathindent\mathindent{}+q(1-q^{n+\alpha})L_{n-1}^{(\alpha)}(x;q). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqLaguerre} -xp_n(x)&=&p_{n+1}(x)+q^{-2n-\alpha-1}\left[(1-q^{n+1})+q(1-q^{n+\alpha})\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+q^{-4n-2\alpha+1}(1-q^n)(1-q^{n+\alpha})p_{n-1}(x), -\end{eqnarray} -where -$$L_n^{(\alpha)}(x;q)=\frac{(-1)^nq^{n(n+\alpha)}}{(q;q)_n}p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqLaguerre} --q^{\alpha}(1-q^n)xy(x)=q^{\alpha}(1+x)y(qx)-\left[1+q^{\alpha}(1+x)\right]y(x)+y(q^{-1}x), -\end{equation} -where -$$y(x)=L_n^{(\alpha)}(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qLaguerreI} -L_n^{(\alpha)}(x;q)-L_n^{(\alpha)}(qx;q)=-q^{\alpha+1}xL_{n-1}^{(\alpha+1)}(qx;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qLaguerreII} -\mathcal{D}_qL_n^{(\alpha)}(x;q)=-\frac{q^{\alpha+1}}{1-q}L_{n-1}^{(\alpha+1)}(qx;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qLaguerreI} -L_n^{(\alpha)}(x;q)-q^{\alpha}(1+x)L_n^{(\alpha)}(qx;q)=(1-q^{n+1})L_{n+1}^{(\alpha-1)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qLaguerreII} -\mathcal{D}_q\left[w(x;\alpha;q)L_n^{(\alpha)}(x;q)\right]= -\frac{1-q^{n+1}}{1-q}w(x;\alpha-1;q)L_{n+1}^{(\alpha-1)}(x;q), -\end{equation} -where -$$w(x;\alpha;q)=\frac{x^{\alpha}}{(-x;q)_{\infty}}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqLaguerre} -w(x;\alpha;q)L_n^{(\alpha)}(x;q)= -\frac{(1-q)^n}{(q;q)_n}\left(\mathcal{D}_q\right)^n\left[w(x;\alpha+n;q)\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenqLaguerre1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{-x}{0}{q^{\alpha+1}t} -=\sum_{n=0}^{\infty}L_n^{(\alpha)}(x;q)t^n. -\end{equation} - -\begin{equation} -\label{GenqLaguerre2} -\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{q^{\alpha+1}}{-q^{\alpha+1}xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x;q)}{(q^{\alpha+1};q)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenqLaguerre3} -(t;q)_{\infty}\cdot\qhyp{0}{2}{-}{q^{\alpha+1},t}{-q^{\alpha+1}xt} -=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenqLaguerre4} -& &\frac{(\gamma t;q)_{\infty}}{(t;q)_{\infty}}\,\qhyp{1}{2}{\gamma}{q^{\alpha+1},\gamma t}{-q^{\alpha+1}xt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Laguerre} -If we substitute $a=q^{\alpha}$ and $x\rightarrow -b^{-1}q^{-1}x$ in the definition -(\ref{DefLittleqJacobi}) of the little $q$-Jacobi polynomials and then take the limit -$b\rightarrow -\infty$ we find the $q$-Laguerre polynomials given by (\ref{DefqLaguerre}): -$$\lim_{b\rightarrow -\infty}p_n(-b^{-1}q^{-1}x;q^{\alpha},b|q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Laguerre} -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) can be obtained -from the $q$-Meixner polynomials given by (\ref{DefqMeixner}) by setting -$b=q^{\alpha}$ and $q^{-x}\rightarrow cq^{\alpha}x$ in the definition -(\ref{DefqMeixner}) of the $q$-Meixner polynomials and then taking the limit -$c\rightarrow\infty$: -$$\lim_{c\rightarrow\infty}M_n(cq^{\alpha}x;q^{\alpha},c;q)= -\frac{(q;q)_n}{(q^{\alpha+1};q)_n}L_n^{(\alpha)}(x;q).$$ - -\subsubsection*{$q$-Laguerre $\rightarrow$ Stieltjes-Wigert} -If we set $x\rightarrow xq^{-\alpha}$ in the definition -(\ref{DefqLaguerre}) of the $q$-Laguerre polynomials and take the limit -$\alpha\rightarrow\infty$ we simply obtain the Stieltjes-Wigert polynomials given -by (\ref{DefStieltjesWigert}): -\begin{equation} -\lim_{\alpha\rightarrow\infty}L_n^{(\alpha)}\left(xq^{-\alpha};q\right)=S_n(x;q). -\end{equation} - -\subsubsection*{$q$-Laguerre $\rightarrow$ Laguerre / Charlier} -If we set $x\rightarrow (1-q)x$ in the definition (\ref{DefqLaguerre}) -of the $q$-Laguerre polynomials and take the limit $q\rightarrow 1$ we obtain -the Laguerre polynomials given by (\ref{DefLaguerre}): -\begin{equation} -\lim_{q\rightarrow 1}L_n^{(\alpha)}((1-q)x;q)=L_n^{(\alpha)}(x). -\end{equation} - -If we set $x\rightarrow -q^{-x}$ and $q^{\alpha}=a^{-1}(q-1)^{-1}$ (or -$\alpha=-(\ln q)^{-1}\ln (q-1)a$) in the definition (\ref{DefqLaguerre}) of the -$q$-Laguerre polynomials, multiply by $(q;q)_n$, and take the limit -$q\rightarrow 1$ we obtain the Charlier polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\,(q;q)_nL_n^{(\alpha)}(-q^{-x};q)=C_n(x;a), -\end{equation} -where -$$q^{\alpha}=\frac{1}{a(q-1)}\quad\textrm{or}\quad\alpha=-\frac{\ln (q-1)a}{\ln q}.$$ - -\subsection*{Remarks} -The $q$-Laguerre polynomials are sometimes called the -generalized Stieltjes-Wigert polynomials. - -If we replace $q$ by $q^{-1}$ we obtain the little $q$-Laguerre -(or Wall) polynomials given by (\ref{DefLittleqLaguerre}) in the following -way: -$$L_n^{(\alpha)}(x;q^{-1})=\frac{(q^{\alpha+1};q)_n}{(q;q)_nq^{n\alpha}}p_n(-x;q^{\alpha}|q).$$ - -\noindent -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the $q$-Bessel polynomials -given by (\ref{DefqBessel}) are related in the following way: -$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ - -\noindent -The $q$-Laguerre polynomials given by (\ref{DefqLaguerre}) and the -$q$-Charlier polynomials given by (\ref{DefqCharlier}) are related in the -following way: -$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ - -\noindent -Since the Stieltjes and Hamburger moment problems corresponding to the -$q$-Laguerre polynomials are indeterminate there exist many different weight -functions. - -\subsection*{References} -\cite{NAlSalam89}, \cite{AlSalam90}, \cite{Askey86}, \cite{Askey89I}, \cite{AskeyWilson85}, -\cite{AtakAtakI}, \cite{ChenIsmailMuttalib}, \cite{Chihara68II}, \cite{Chihara78}, -\cite{Chihara79}, \cite{Chris}, \cite{Exton77}, \cite{GasperRahman90}, \cite{GrunbaumHaine96}, -\cite{Ismail2005I}, \cite{IsmailRahman98}, \cite{Jain95}, \cite{Moak}. - - -\section{$q$-Bessel} -\index{q-Bessel polynomials@$q$-Bessel polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefqBessel} -y_n(x;a;q)&=&\qhyp{2}{1}{q^{-n},-aq^n}{0}{qx}\\ -&=&(q^{-n+1}x;q)_n\cdot\qhyp{1}{1}{q^{-n}}{q^{-n+1}x}{-aq^{n+1}x}\nonumber\\ -&=&\left(-aq^nx\right)^n\cdot\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-\frac{q^{-n+1}}{a}}.\nonumber -\end{eqnarray} - -\newpage - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqBessel} -& &\sum_{k=0}^{\infty}\frac{a^k}{(q;q)_k}q^{\binom{k+1}{2}}y_m(q^k;a;q)y_n(q^k;a;q)\nonumber\\ -& &{}=(q;q)_n(-aq^n;q)_{\infty}\frac{a^nq^{\binom{n+1}{2}}}{(1+aq^{2n})}\,\delta_{mn},\quad a>0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecqBessel} --xy_n(x;a;q)=A_ny_{n+1}(x;a;q)-(A_n+C_n)y_n(x;a;q)+C_ny_{n-1}(x;a;q), -\end{equation} -where -$$\left\{\begin{array}{l}\displaystyle A_n=q^n\frac{(1+aq^n)}{(1+aq^{2n})(1+aq^{2n+1})}\\ -\\ -\displaystyle C_n=aq^{2n-1}\frac{(1-q^n)}{(1+aq^{2n-1})(1+aq^{2n})}.\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecqBessel} -xp_n(x)=p_{n+1}(x)+(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$y_n(x;a;q)=(-1)^nq^{-\binom{n}{2}}(-aq^n;q)_np_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvqBessel} -& &-q^{-n}(1-q^n)(1+aq^n)xy(x)\nonumber\\ -& &{}=axy(qx)-(ax+1-x)y(x)+(1-x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=y_n(x;a;q).$$ - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qBesselI} -y_n(x;a;q)-y_n(qx;a;q)=-q^{-n+1}(1-q^n)(1+aq^n)xy_{n-1}(x;aq^2;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qBesselII} -\mathcal{D}_qy_n(x;a;q)=-\frac{q^{-n+1}(1-q^n)(1+aq^n)}{1-q}y_{n-1}(x;aq^2;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qBesselI} -aq^{x-1}y_n(q^x;a;q)-(1-q^x)y_n(q^{x-1}x;a;q)=-y_{n+1}(q^x;aq^{-2};q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qBesselII} -\frac{\nabla\left[w(x;a;q)y_n(q^x;a;q)\right]}{\nabla q^x}= -\frac{q^2}{a(1-q)}w(x;aq^{-2};q)y_{n+1}(q^x;aq^{-2};q), -\end{equation} -where -$$w(x;a;q)=\frac{a^xq^{\binom{x}{2}}}{(q;q)_x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqBessel} -w(x;a;q)y_n(q^x;a;q)=a^n(1-q)^nq^{n(n-1)}\left(\nabla_q\right)^n\left[w(x;aq^{2n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^x}.$$ - -\subsection*{Generating functions} -\begin{eqnarray} -\label{GenqBessel1} -& &\qhyp{0}{1}{-}{0}{-aq^{x+1}t}\,\qhyp{2}{0}{q^{-x},0}{-}{q^xt}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{y_n(q^x;a;q)}{(q;q)_n}t^n,\quad x=0,1,2,\ldots. -\end{eqnarray} - -\begin{equation} -\label{GenqBessel2} -\frac{(t;q)_{\infty}}{(xt;q)_{\infty}}\,\qhyp{1}{3}{xt}{0,0,t}{-aqxt}= -\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binom{n}{2}}}{(q;q)_n}y_n(x;a;q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Little $q$-Jacobi $\rightarrow$ $q$-Bessel} -If we set $b\rightarrow -a^{-1}q^{-1}b$ in the definition (\ref{DefLittleqJacobi}) of -the little $q$-Jacobi polynomials and then take the limit $a\rightarrow 0$ we obtain -the $q$-Bessel polynomials given by (\ref{DefqBessel}): -$$\lim_{a\rightarrow 0}p_n(x;a,-a^{-1}q^{-1}b|q)=y_n(x;b;q).$$ - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Bessel} -If we set $x\rightarrow N-x$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then take the limit $N\rightarrow\infty$ we -obtain the $q$-Bessel polynomials given by (\ref{DefqBessel}): -$$\lim_{N\rightarrow\infty}K_n(q^{x-N};p,N;q)=y_n(q^x;p;q).$$ - -\subsubsection*{$q$-Bessel $\rightarrow$ Stieltjes-Wigert} -The Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) can be obtained -from the $q$-Bessel polynomials by setting $x\rightarrow a^{-1}x$ in the definition -(\ref{DefqBessel}) of the $q$-Bessel polynomials and then taking the limit -$a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty}y_n(a^{-1}x;a;q)=(q;q)_nS_n(x;q). -\end{equation} - -\subsubsection*{$q$-Bessel $\rightarrow$ Bessel} -If we set $x\rightarrow -\frac{1}{2}(1-q)^{-1}x$ and $a\rightarrow -q^{a+1}$ in the definition -(\ref{DefqBessel}) of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ -we find the Bessel polynomials given by (\ref{DefBessel}): -\begin{equation} -\lim_{q\rightarrow 1}y_n(-\textstyle\frac{1}{2}(1-q)^{-1}x;-q^{a+1};q)=y_n(x;a). -\end{equation} - -\subsubsection*{$q$-Bessel $\rightarrow$ Charlier} -If we set $x\rightarrow q^x$ and $a\rightarrow a(1-q)$ in the definition (\ref{DefqBessel}) -of the $q$-Bessel polynomials and take the limit $q\rightarrow 1$ we find the Charlier -polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\frac{y_n(q^x;a(1-q);q)}{(q-1)^n}=a^nC_n(x;a). -\end{equation} - -\subsection*{Remark} -In \cite{Koekoek94} and \cite{Koekoek98} these $q$-Bessel polynomials were called -\emph{alternative $q$-Charlier polynomials}. - -\noindent -The $q$-Bessel polynomials given by (\ref{DefqBessel}) and the $q$-Laguerre -polynomials given by (\ref{DefqLaguerre}) are related in the following way: -$$\frac{y_n(q^x;a;q)}{(q;q)_n}=L_n^{(x-n)}(aq^n;q).$$ - -\subsection*{Reference} -\cite{DattaGriffin}. - - -\section{$q$-Charlier}\index{q-Charlier polynomials@$q$-Charlier polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{eqnarray} -\label{DefqCharlier} -C_n(q^{-x};a;q)&=&\qhyp{2}{1}{q^{-n},q^{-x}}{0}{-\frac{q^{n+1}}{a}}\\ -&=&(-a^{-1}q;q)_n\cdot\qhyp{1}{1}{q^{-n}}{-a^{-1}q}{-\frac{q^{n+1-x}}{a}}.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtqCharlier} -& &\sum_{x=0}^{\infty}\frac{a^x}{(q;q)_x}q^{\binom{x}{2}}C_m(q^{-x};a;q)C_n(q^{-x};a;q)\nonumber\\ -& &{}=q^{-n}(-a;q)_{\infty}(-a^{-1}q,q;q)_n\,\delta_{mn},\quad a>0. -\end{eqnarray} - -\newpage - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecqCharlier} -& &q^{2n+1}(1-q^{-x})C_n(q^{-x})\nonumber\\ -& &{}=aC_{n+1}(q^{-x})-\left[a+q(1-q^n)(a+q^n)\right]C_n(q^{-x})\nonumber\\ -& &{}\mathindent{}+q(1-q^n)(a+q^n)C_{n-1}(q^{-x}), -\end{eqnarray} -where -$$C_n(q^{-x}):=C_n(q^{-x};a;q).$$ - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecqCharlier} -xp_n(x)&=&p_{n+1}(x)+\left[1+q^{-2n-1}\left\{a+q(1-q^n)(a+q^n)\right\}\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+aq^{-4n+1}(1-q^n)(a+q^n)p_{n-1}(x), -\end{eqnarray} -where -$$C_n(q^{-x};a;q)=\frac{(-1)^nq^{n^2}}{a^n}p_n(q^{-x}).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvqCharlier} -q^ny(x)=aq^xy(x+1)-q^x(a-1)y(x)+(1-q^x)y(x-1), -\end{equation} -where -$$y(x)=C_n(q^{-x};a;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1qCharlierI} -C_n(q^{-x-1};a;q)-C_n(q^{-x};a;q)=-a^{-1}q^{-x}(1-q^n)C_{n-1}(q^{-x};aq^{-1};q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1qCharlierII} -\frac{\Delta C_n(q^{-x};a;q)}{\Delta q^{-x}}=-\frac{q(1-q^n)}{a(1-q)}C_{n-1}(q^{-x};aq^{-1};q). -\end{equation} - -\newpage - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2qCharlierI} -C_n(q^{-x};a;q)-a^{-1}q^{-x}(1-q^x)C_n(q^{-x+1};a;q)=C_{n+1}(q^{-x};aq;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2qCharlierII} -\frac{\nabla\left[w(x;a;q)C_n(q^{-x};a;q)\right]}{\nabla q^{-x}} -=\frac{1}{1-q}w(x;aq;q)C_{n+1}(q^{-x};aq;q), -\end{equation} -where -$$w(x;a;q)=\frac{a^xq^{\binom{x+1}{2}}}{(q;q)_x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodqCharlier} -w(x;a;q)C_n(q^{-x};a;q)=(1-q)^n\left(\nabla_q\right)^n\left[w(x;aq^{-n};q)\right], -\end{equation} -where -$$\nabla_q:=\frac{\nabla}{\nabla q^{-x}}.$$ - -\subsection*{Generating functions} -\begin{equation} -\label{GenqCharlier1} -\frac{1}{(t;q)_{\infty}}\,\qhyp{1}{1}{q^{-x}}{0}{-a^{-1}qt} -=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(q;q)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenqCharlier2} -\frac{1}{(t;q)_{\infty}}\,\qhyp{0}{1}{-}{-a^{-1}q}{-a^{-1}q^{-x+1}t} -=\sum_{n=0}^{\infty}\frac{C_n(q^{-x};a;q)}{(-a^{-1}q,q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{$q$-Meixner $\rightarrow$ $q$-Charlier} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) can easily be -obtained from the $q$-Meixner given by (\ref{DefqMeixner}) by setting $b=0$ -in the definition (\ref{DefqMeixner}) of the $q$-Meixner polynomials: -\begin{equation} -M_n(x;0,c;q)=C_n(x;c;q). -\end{equation} - -\subsubsection*{$q$-Krawtchouk $\rightarrow$ $q$-Charlier} -By setting $p=a^{-1}q^{-N}$ in the definition (\ref{DefqKrawtchouk}) of the -$q$-Krawtchouk polynomials and then taking the limit $N\rightarrow\infty$ we -obtain the $q$-Charlier polynomials given by (\ref{DefqCharlier}): -$$\lim_{N\rightarrow\infty}K_n(q^{-x};a^{-1}q^{-N},N;q)=C_n(q^{-x};a;q).$$ - -\subsubsection*{$q$-Charlier $\rightarrow$ Stieltjes-Wigert} -If we set $q^{-x}\rightarrow ax$ in the definition (\ref{DefqCharlier}) of the -$q$-Charlier polynomials and take the limit $a\rightarrow\infty$ we obtain -the Stieltjes-Wigert polynomials given by (\ref{DefStieltjesWigert}) in the -following way: -\begin{equation} -\lim_{a\rightarrow\infty}C_n(ax;a;q)=(q;q)_nS_n(x;q). -\end{equation} - -\subsubsection*{$q$-Charlier $\rightarrow$ Charlier} -If we set $a\rightarrow a(1-q)$ in the definition (\ref{DefqCharlier}) -of the $q$-Charlier polynomials and take the limit $q\rightarrow 1$ we obtain the -Charlier polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}C_n(q^{-x};a(1-q);q)=C_n(x;a). -\end{equation} - -\subsection*{Remark} -The $q$-Charlier polynomials given by (\ref{DefqCharlier}) and the -$q$-Laguerre polynomials given by (\ref{DefqLaguerre}) are related in the -following way: -$$\frac{C_n(-x;-q^{-\alpha};q)}{(q;q)_n}=L_n^{(\alpha)}(x;q).$$ - -\subsection*{References} -\cite{AlvarezRonveaux}, \cite{AtakRahmanSuslov}, \cite{GasperRahman90}, -\cite{Hahn}, \cite{Koelink96III}, \cite{Nikiforov+}, \cite{Zeng95}. - - -\section{Al-Salam-Carlitz~I}\index{Al-Salam-Carlitz~I polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefAlSalamCarlitzI} -U_n^{(a)}(x;q)=(-a)^nq^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{\frac{qx}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAlSalamCarlitzI} -& &\int_a^1(qx,a^{-1}qx;q)_{\infty}U_m^{(a)}(x;q)U_n^{(a)}(x;q)\,d_qx\nonumber\\ -& &{}=(-a)^n(1-q)(q;q)_n(q,a,a^{-1}q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn},\quad a<0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecAlSalamCarlitzI} -xU_n^{(a)}(x;q)=U_{n+1}^{(a)}(x;q)+(a+1)q^nU_n^{(a)}(x;q) --aq^{n-1}(1-q^n)U_{n-1}^{(a)}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecAlSalamCarlitzI} -xp_n(x)=p_{n+1}(x)+(a+1)q^np_n(x)-aq^{n-1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$$U_n^{(a)}(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvAlSalamCarlitzI} -(1-q^n)x^2y(x)&=&aq^{n-1}y(qx)-\left[aq^{n-1}+q^n(1-x)(a-x)\right]y(x)\nonumber\\ -& &{}\mathindent{}+q^n(1-x)(a-x)y(q^{-1}x), -\end{eqnarray} -where -$$y(x)=U_n^{(a)}(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1AlSalamCarlitzI-I} -U_n^{(a)}(x;q)-U_n^{(a)}(qx;q)=(1-q^n)xU_{n-1}^{(a)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1AlSalamCarlitzI-II} -\mathcal{D}_qU_n^{(a)}(x;q)=\frac{1-q^n}{1-q}U_{n-1}^{(a)}(x;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2AlSalamCarlitzI-I} -aU_n^{(a)}(x;q)-(1-x)(a-x)U_n^{(a)}(q^{-1}x;q)=-q^{-n}xU_{n+1}^{(a)}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2AlSalamCarlitzI-II} -\mathcal{D}_{q^{-1}}\left[w(x;a;q)U_n^{(a)}(x;q)\right]= -\frac{q^{-n+1}}{a(1-q)}w(x;a;q)U_{n+1}^{(a)}(x;q), -\end{equation} -where -$$w(x;a;q)=(qx,a^{-1}qx;q)_{\infty}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodAlSalamCarlitzI} -w(x;a;q)U_n^{(a)}(x;q)=a^nq^{\frac{1}{2}n(n-3)}(1-q)^n -\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;a;q)\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenAlSalamCarlitzI} -\frac{(t,at;q)_{\infty}}{(xt;q)_{\infty}}= -\sum_{n=0}^{\infty}\frac{U_n^{(a)}(x;q)}{(q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Big $q$-Laguerre $\rightarrow$ Al-Salam-Carlitz~I} -If we set $x\rightarrow aqx$ and $b\rightarrow ab$ in the definition -(\ref{DefBigqLaguerre}) of the big $q$-Laguerre polynomials and take the -limit $a\rightarrow 0$ we obtain the Al-Salam-Carlitz~I polynomials given by -(\ref{DefAlSalamCarlitzI}): -$$\lim_{a\rightarrow 0}\frac{P_n(aqx;a,ab;q)}{a^n}=q^nU_n^{(b)}(x;q).$$ - -\subsubsection*{Dual $q$-Krawtchouk $\rightarrow$ Al-Salam-Carlitz~I} -If we set $c=a^{-1}$ in the definition (\ref{DefDualqKrawtchouk}) -of the dual $q$-Krawtchouk polynomials and take the limit -$N\rightarrow\infty$ we simply obtain the Al-Salam-Carlitz~I polynomials -given by (\ref{DefAlSalamCarlitzI}): -$$\lim_{N\rightarrow\infty}K_n(\lambda(x);a^{-1},N|q)= -\left(-\frac{1}{a}\right)^nq^{-\binom{n}{2}}U_n^{(a)}(q^x;q).$$ -Note that $\lambda(x)=q^{-x}+a^{-1}q^{x-N}$. - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} -The discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) can easily be obtained from the -Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the -substitution $a=-1$: -\begin{equation} -U_n^{(-1)}(x;q)=h_n(x;q). -\end{equation} - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Charlier / Hermite} -If we set $a\rightarrow a(q-1)$ and $x\rightarrow q^x$ in the definition -(\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I polynomials and take the -limit $q\rightarrow 1$ after dividing by $a^n(1-q)^n$ we obtain the Charlier -polynomials given by (\ref{DefCharlier}): -\begin{equation} -\lim_{q\rightarrow 1}\frac{U_n^{(a(q-1))}(q^x;q)}{(1-q)^n}=a^nC_n(x;a). -\end{equation} - -If we set $x\rightarrow x\sqrt{1-q^2}$ and $a\rightarrow a\sqrt{1-q^2}-1$ -in the definition (\ref{DefAlSalamCarlitzI}) of the Al-Salam-Carlitz~I -polynomials, divide by $(1-q^2)^{\frac{n}{2}}$, and let $q$ tend to $1$ we -obtain the Hermite polynomials given by (\ref{DefHermite}) with shifted -argument. In fact we have -\begin{equation} -\lim_{q\rightarrow 1}\frac{U_n^{(a\sqrt{1-q^2}-1)}(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x-a)}{2^n}. -\end{equation} - -\subsection*{Remark} -The Al-Salam-Carlitz~I polynomials are related to the Al-Salam-Carlitz~II -polynomials given by (\ref{DefAlSalamCarlitzII}) in the following way: -$$U_n^{(a)}(x;q^{-1})=V_n^{(a)}(x;q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AlSalamChihara76}, \cite{AskeySuslovII}, -\cite{AtakRahmanSuslov}, \cite{Chihara68II}, \cite{Chihara78}, \cite{DattaGriffin}, -\cite{Dehesa}, \cite{DohaAhmed2005}, \cite{GasperRahman90}, \cite{Ismail85I}, -\cite{IsmailMuldoon}, \cite{Kim}, \cite{Zeng95}. - - -\section{Al-Salam-Carlitz~II}\index{Al-Salam-Carlitz~II polynomials} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -\begin{equation} -\label{DefAlSalamCarlitzII} -V_n^{(a)}(x;q)= -(-a)^nq^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},x}{-}{\frac{q^n}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtAlSalamCarlitzII} -& &\sum_{k=0}^{\infty}\frac{q^{k^2}a^k}{(q;q)_k(aq;q)_k} -V_m^{(a)}(q^{-k};q)V_n^{(a)}(q^{-k};q)\nonumber\\ -& &{}=\frac{(q;q)_na^n}{(aq;q)_{\infty}q^{n^2}}\,\delta_{mn},\quad 00,\quad\textrm{with}\quad -\gamma^2=-\frac{1}{2\ln q}.$$ - -\subsection*{References} -\cite{Askey86}, \cite{Askey89I}, \cite{AtakAtakIII}, \cite{Chihara70}, \cite{Chihara78}, -\cite{Dehesa}, \cite{Ismail2005I}, \cite{Nikiforov+}, \cite{Stieltjes}, \cite{Szego75}, -\cite{ValentAssche}, \cite{Wigert}. - - -\section{Discrete $q$-Hermite~I} -\index{Discrete q-Hermite~I polynomials@Discrete $q$-Hermite~I polynomials} -\index{q-Hermite~I polynomials@$q$-Hermite~I polynomials!Discrete} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -The discrete $q$-Hermite~I polynomials are Al-Salam-Carlitz~I polynomials -with $a=-1$: -\begin{eqnarray} -\label{DefDiscreteqHermiteI} -h_n(x;q)=U_n^{(-1)}(x;q)&=&q^{\binom{n}{2}}\,\qhyp{2}{1}{q^{-n},x^{-1}}{0}{-qx}\\ -&=&x^n\qhypK{2}{0}{q^{-n},q^{-n+1}}{0}{q^2,\frac{q^{2n-1}}{x^2}}\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDiscreteqHermiteI} -& &\int_{-1}^1(qx,-qx;q)_{\infty}h_m(x;q)h_n(x;q)\,d_qx\nonumber\\ -& &{}=(1-q)(q;q)_n(q,-1,-q;q)_{\infty}q^{\binom{n}{2}}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDiscreteqHermiteI} -xh_n(x;q)=h_{n+1}(x;q)+q^{n-1}(1-q^n)h_{n-1}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDiscreteqHermiteI} -xp_n(x)=p_{n+1}(x)+q^{n-1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$$h_n(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{equation} -\label{dvDiscreteqHermiteI} --q^{-n+1}x^2y(x)=y(qx)-(1+q)y(x)+q(1-x^2)y(q^{-1}x), -\end{equation} -where -$$y(x)=h_n(x;q).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1DiscreteqHermiteI-I} -h_n(x;q)-h_n(qx;q)=(1-q^n)xh_{n-1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1DiscreteqHermiteI-II} -\mathcal{D}_qh_n(x;q)=\frac{1-q^n}{1-q}h_{n-1}(x;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2DiscreteqHermiteI-I} -h_n(x;q)-(1-x^2)h_n(q^{-1}x;q)=q^{-n}xh_{n+1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2DiscreteqHermiteI-II} -\mathcal{D}_{q^{-1}}\left[w(x;q)h_n(x;q)\right] -=-\frac{q^{-n+1}}{1-q}w(x;q)h_{n+1}(x;q), -\end{equation} -where -$$w(x;q)=(qx,-qx;q)_{\infty}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDiscreteqHermiteI} -w(x;q)h_n(x;q)=(q-1)^nq^{\frac{1}{2}n(n-3)} -\left(\mathcal{D}_{q^{-1}}\right)^n\left[w(x;q)\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenDiscreteqHermiteI} -\frac{(t^2;q^2)_{\infty}}{(xt;q)_{\infty}}= -\sum_{n=0}^{\infty}\frac{h_n(x;q)}{(q;q)_n}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Al-Salam-Carlitz~I $\rightarrow$ Discrete $q$-Hermite~I} -The discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) can easily be obtained from the -Al-Salam-Carlitz~I polynomials given by (\ref{DefAlSalamCarlitzI}) by the -substitution $a=-1$: -$$U_n^{(-1)}(x;q)=h_n(x;q).$$ - -\subsubsection*{Discrete $q$-Hermite~I $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be found -from the discrete $q$-Hermite~I polynomials given by -(\ref{DefDiscreteqHermiteI}) in the following way: -\begin{equation} -\lim_{q\rightarrow 1}\frac{h_n(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. -\end{equation} - -\subsection*{Remark} The discrete $q$-Hermite~I polynomials are related to the -discrete $q$-Hermite~II polynomials given by (\ref{DefDiscreteqHermiteII}) -in the following way: -$$h_n(ix;q^{-1})=i^n{\tilde h}_n(x;q).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AlSalamCarlitz}, \cite{AtakRahmanSuslov}, -\cite{BergIsmail}, \cite{BustozIsmail82}, \cite{GasperRahman90}, \cite{Hahn}, -\cite{Koorn97}. - - -\newpage - -\section{Discrete $q$-Hermite~II} -\index{Discrete q-Hermite~II polynomials@Discrete $q$-Hermite~II polynomials} -\index{q-Hermite~II polynomials@$q$-Hermite~II polynomials!Discrete} -\par\setcounter{equation}{0} - -\subsection*{Basic hypergeometric representation} -The discrete $q$-Hermite~II polynomials are Al-Salam-Carlitz~II polynomials -with $a=-1$: -\begin{eqnarray} -\label{DefDiscreteqHermiteII} -{\tilde h}_n(x;q)=i^{-n}V_n^{(-1)}(ix;q) -&=&i^{-n}q^{-\binom{n}{2}}\,\qhyp{2}{0}{q^{-n},ix}{-}{-q^n}\\ -&=&x^n -\qhypK{2}{1}{q^{-n},q^{-n+1}}{0}{q^2,-\frac{q^2}{x^2}}\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtDiscreteqHermiteIIa} -& &\sum_{k=-\infty}^{\infty}\left[{\tilde h}_m(cq^k;q) -{\tilde h}_n(cq^k;q)+{\tilde h}_m(-cq^k;q){\tilde h}_n(-cq^k;q)\right] -w(cq^k;q)q^k\nonumber\\ -& &{}=2\frac{(q^2,-c^2q,-c^{-2}q;q^2)_{\infty}}{(q,-c^2,-c^{-2}q^2;q^2)_{\infty}} -\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn},\quad c>0, -\end{eqnarray} -where -$$w(x;q)=\frac{1}{(ix,-ix;q)_{\infty}}=\frac{1}{(-x^2;q^2)_{\infty}}.$$ -For $c=1$ this orthogonality relation can also be written as -\begin{equation} -\label{OrtDiscreteqHermiteIIb} -\int_{-\infty}^{\infty}\frac{{\tilde h}_m(x;q){\tilde h}_n(x;q)}{(-x^2;q^2)_{\infty}}\,d_qx -=\frac{\left(q^2,-q,-q;q^2\right)_{\infty}}{\left(q^3,-q^2,-q^2;q^2\right)_{\infty}} -\frac{(q;q)_n}{q^{n^2}}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDiscreteqHermiteII} -x{\tilde h}_n(x;q)={\tilde h}_{n+1}(x;q)+q^{-2n+1}(1-q^n){\tilde h}_{n-1}(x;q). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDiscreteqHermiteII} -xp_n(x)=p_{n+1}(x)+q^{-2n+1}(1-q^n)p_{n-1}(x), -\end{equation} -where -$${\tilde h}_n(x;q)=p_n(x).$$ - -\subsection*{$q$-Difference equation} -\begin{eqnarray} -\label{dvDiscreteqHermiteII} -& &-(1-q^n)x^2{\tilde h}_n(x;q)\nonumber\\ -& &{}=(1+x^2){\tilde h}_n(qx;q)-(1+x^2+q){\tilde h}_n(x;q)+q{\tilde h}_n(q^{-1}x;q). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1DiscreteqHermiteII-I} -\tilde{h}_n(x;q)-\tilde{h}_n(qx;q)=q^{-n+1}(1-q^n)x\tilde{h}_{n-1}(qx;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift1DiscreteqHermiteII-II} -\mathcal{D}_q\tilde{h}_n(x;q)=\frac{q^{-n+1}(1-q^n)}{1-q}\tilde{h}_{n-1}(qx;q). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2DiscreteqHermiteII-I} -\tilde{h}_n(x;q)-(1+x^2)\tilde{h}_n(qx;q)=-q^nx\tilde{h}_{n+1}(x;q) -\end{equation} -or equivalently -\begin{equation} -\label{shift2DiscreteqHermiteII-II} -\mathcal{D}_q\left[w(x;q)\tilde{h}_n(x;q)\right] -=-\frac{q^n}{1-q}w(x;q)\tilde{h}_{n+1}(x;q). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDiscreteqHermiteII} -w(x;q)\tilde{h}_n(x;q)=(q-1)^nq^{-\binom{n}{2}} -\left(\mathcal{D}_q\right)^n\left[w(x;q)\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenDiscreteqHermiteII1} -\frac{(-xt;q)_{\infty}}{(-t^2;q^2)_{\infty}}=\sum_{n=0}^{\infty} -\frac{q^{\binom{n}{2}}}{(q;q)_n}{\tilde h}_n(x;q)t^n. -\end{equation} - -\begin{equation} -\label{GenDiscreteqHermiteII2} -(-it;q)_{\infty}\cdot\qhyp{1}{1}{ix}{-it}{it}=\sum_{n=0}^{\infty} -\frac{(-1)^nq^{n(n-1)}}{(q;q)_n}{\tilde h}_n(x;q)t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Al-Salam-Carlitz~II $\rightarrow$ Discrete $q$-Hermite~II} -The discrete $q$-Hermite~II polynomials given by -(\ref{DefDiscreteqHermiteII}) follow from the Al-Salam-Carlitz~II -polynomials given by (\ref{DefAlSalamCarlitzII}) by the substitution $a=-1$ -in the following way: -$$i^{-n}V_n^{(-1)}(ix;q)={\tilde h}_n(x;q).$$ - -\subsubsection*{Discrete $q$-Hermite~II $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be found -from the discrete $q$-Hermite~II polynomials given by -(\ref{DefDiscreteqHermiteII}) in the following way: -\begin{equation} -\lim_{q\rightarrow 1}\frac{{\tilde h}_n(x\sqrt{1-q^2};q)} -{(1-q^2)^{\frac{n}{2}}}=\frac{H_n(x)}{2^n}. -\end{equation} - -\subsection*{Remark} The discrete $q$-Hermite~II polynomials are related to the -discrete $q$-Hermite~I polynomials given by (\ref{DefDiscreteqHermiteI}) -in the following way: -$${\tilde h}_n(x;q^{-1})=i^{-n}h_n(ix;q).$$ - -\subsection*{References} -\cite{BergIsmail}, \cite{Koorn97}. - -\end{document} From 51ed451f7dba62ed3a831ceb08f2fff3aacf5ee2 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 16:17:01 -0500 Subject: [PATCH 005/402] Updating README test --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 75cc520..1da778f 100644 --- a/README.md +++ b/README.md @@ -29,5 +29,7 @@ To achieve the desired result, one should execute the progams in the following o ## KLSadd Insertion Project -Edits the DRMF chapter files to include rel +Edits the DRMF chapter files to include the relevant KLS addendum additions. Additions are (currently)only being added right before the "References" paragraphs in each section. The linetest.py file is the first working model of the code, but it is very messy and esoteric. Comments have been made to aid interpretation. The new project file, updateChapters.py is a more readable version, but not quite up to date. +Left to do in updateChapters.py: +import over the necessary files to make the pdf work, change all instances of "section" to "paragraph" and add "\large\bf" to make font large and bold like the other chapter headings. Also necessary to add initials of programmer wherever the new additions were added (ex. "%RS added, %RS end") From f6b7b72f83c56cb2c911a6960f534408688675f6 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 16:32:30 -0500 Subject: [PATCH 006/402] updated README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1da778f..b9ec267 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ To achieve the desired result, one should execute the progams in the following o ## BMP Seeding Project ## KLSadd Insertion Project - +linetest.py and updateChapters (mostly) written by Rahul Shah (ILIKEFUUD) Edits the DRMF chapter files to include the relevant KLS addendum additions. Additions are (currently)only being added right before the "References" paragraphs in each section. The linetest.py file is the first working model of the code, but it is very messy and esoteric. Comments have been made to aid interpretation. The new project file, updateChapters.py is a more readable version, but not quite up to date. Left to do in updateChapters.py: From 2b579f2462997108415bca53f57abf8948043095 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 16:48:44 -0500 Subject: [PATCH 007/402] Removed chapter files --- KLSadd_insertion/newtempchap09.pdf | Bin 319561 -> 0 bytes KLSadd_insertion/updated14.tex | 4162 ---------------------------- KLSadd_insertion/updated9.tex | 4162 ---------------------------- README.md | 5 +- 4 files changed, 4 insertions(+), 8325 deletions(-) delete mode 100644 KLSadd_insertion/newtempchap09.pdf delete mode 100644 KLSadd_insertion/updated14.tex delete mode 100644 KLSadd_insertion/updated9.tex diff --git a/KLSadd_insertion/newtempchap09.pdf b/KLSadd_insertion/newtempchap09.pdf deleted file mode 100644 index bec3d85a50c47d3eae72c71fd38c175ac81a2ab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319561 zcma&NW2|UFvn{%8+qSK}Y}>YN+qP}nwry)K+s57Jy_1)hd?&f5Gk?rqo%F1pHEN7e zMJg{WO3O&c3Pn1EUmX^xu|H}<8%VvcZQ+E88qt*gd~X}%{C>pD7-yGQ&hJ@jZNB8QXjuyFp57gbKmV%2%v2=4qg9}Pi!qsI` zjtQE1uOFJX4+qB7_{#3hRGGoXSnU2H1Z7Fq-qXpJA?S&*UjyzBo*c5SYR+f1`AX00 z+)v&39r*rQ3DTKwO~B|73?JV(aJ+qEdfh7&2SymO&|lb?2oAB`7=;TtcF`6~9aIlK z@}`t4Nr-BZ`TJcC4wN9<2fxX~N9)Ct+LZVbw`nV^y7c>QmoUQcewQJ(HCq9CTraVN zlFiNDZN_2qeV6wExaoNlqwul?pB_~ljM$uCvF$F(syfvgjpNkHw3wDdxiMNBx{sA- z_2HANY4M>bb+X(LUPomSaj>FYTqyN@0GpPKA3~Yf8vl31{=NNIv^hBcGwdAy9drVM z|9jYh0sbw(|J;|8`9Jq%WMN|a-(IH?H3_>dQIy_GwL9^G)!?T1YzqYtTKOW{c_D0I z&UViEWpN@RN0h|KL%+RO(*p4TDjYEpgZ}K}nb#MQJTw-`{Wwu+M8cwMD8Y>ANzeN? z!iZJ-XRl<0T4U$NU>6c5QKW<+Py8OOua38OgZmTRMhIQU_9#3y;8c=GQTWRE$B{)6Hk&?XttAw%Hoo+4C!>qXbvKB|6TEgM zN##sUTYt$4B8v-;@74aM?9uPqi|xv7)G$2t0kR0WP2Ad+k+7AD3pZPptM3J{5vmJI zz4KWfW^A`6t8(DCr#qwHxQ_I+?${VTM&XCiC!SQ}VKqQh+;!y*_`;c-mlCh5>hpg_b&F=q7Wt zU{&uM)wA~9s@+rdDBwWI>Fw9hd-UMAR!c8;Dl64iv8bsy3?#T%Cjr}0VB-}*vD(1A z=e2J4d;b(hw^Ln3L_)XOJQu9w*!nw!oNy(L^E-|dxwmk#k@j{uZ8hbp{NmibqP^de z$Z)-h-PUp?GlNE{UZM^gUcc1P#o1J4A>Dc~_3wZ>{?;y)SgcYn)iOrk8|&Dl(!{W1 z>As?B;>j(Tg){fk@`V04XOHam6Q>SWMeKJVe;M=a)(!}8$93tnobMn#w*UfNw#3ZQ znxDLQ1$E1H)@0IV4(Fi7h8>q&n^v;RGb$DZw5>Ph>r=B8mx|jR)iUFrx4=iaUNTAuN zgNo;-xt2rDwk!M7AQO)XE2*>=J{&U41+=%X%;66qavxVic5?#1WEu4G75(d6zwz!M z?o8rZxxXRNm4sD9WB;h_Kg$wBH-|3Q$!BrRp2rB4znx*kj;@JLispEJzTwj#$Cm4`*dW zjB=3GZ(5Z{z&({vPDhtqm#CUFi3#M2DN#@&yX~QI`Ch*2gemwGNkm1;B-ba4h=+2p zSOVJ)FW$0A z4c>6e#V;5k{Vvk~$;Mm6mlk~Tb;-2@GfgFP_11LAP+FW@LnLntGV}L!oscTL+|<1) zd{X_S3}H0P<8;&9C<~^Us7L-I+k;Pj&^*Oturv2AI

z zw!P@V-Lf!~KoTg38C7+Yb2QLc818Y$f7((D1A*4pL){xo)E-KKCOEQPTmo*v zn=v@*i#u2;6LDbO8A1(xC{OHfVDST}Y#MrO`rxrqR z?aZYQ%`z;|G0el0-mwCht(VBKEDp&5`z?iGkR4rU03*!zORGcFS5@!y1fUWB%d=y7 zm7{jlYDHKMO+1@)JjhjjVCWG4a@N><8_BTDQM{})#f0Fv ztW~h({?>-uQgl)HEG>)Y4y z-MG75bJB)y+SmJa{)rDug0=@T*%LuV$zZ5)pV)Wf+uiw__{-}x_TcKp#0FCi2RqOhGBbTZ

=I0( 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%0AO3B=m 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 fzyD9Vx|z7Rd4Vi)2<$*k9&Qc0$ and non-real parameters occur in conjugate pairs, then -\begin{eqnarray} -\label{OrthIWilson} -& &\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, -\end{eqnarray} -where -\begin{eqnarray*} -& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ -& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). -\end{eqnarray*} -If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates -occur with positive real parts, then -\begin{eqnarray} -\label{OrtIIWilson} -& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ -& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} -{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} -\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ -& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecWilson} --\left(a^2+x^2\right){\tilde{W}}_n(x^2) -=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), -\end{equation} -where -$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecWilson} -xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvWilson} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=W_n(x^2;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] -\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1WilsonI} -& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) --W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1WilsonII} -& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ -& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{eqnarray} - -\newpage - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2WilsonI} -& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) -(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) -W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2WilsonII} -& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ -& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodWilson} -& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ -& &{}=\left(\frac{\delta}{\delta x^2}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenWilson1} -\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson2} -\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson3} -\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. -\end{equation} - -\begin{eqnarray} -\label{GenWilson4} -& &(1-t)^{1-a-b-c-d}\nonumber\\ -& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} -{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} -The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the -Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: -\begin{equation} -\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson -polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, -$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following -way: -\begin{equation} -\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson -polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Remarks} -Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then -\begin{eqnarray} -\label{OrtContHahn} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) -p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} -{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecContHahn} -(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), -\end{equation} -where -$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecContHahn} -xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvContHahn} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] -\displaystyle D(x)=(a+ix)(b+ix). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1ContHahnI} -& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, -b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1ContHahnII} -\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) -p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2ContHahnI} -& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, -b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2ContHahnII} -& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ -& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ -& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodContHahn} -& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ -& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenContHahn1} -\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenContHahn2} -\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenContHahn3} -& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} -{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials are obtained from the Wilson polynomials given by -(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, -$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit -$t\rightarrow\infty$ in the following way: -$$\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the -continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ -and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. -\end{equation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials -by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous -Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray} - -\subsection*{Remark} -Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ -Thus, under these assumptions, the continuous Hahn polynomial -$p_n(x;a,b,c,d)$ -is symmetric in $a,b$ and in $c,d$. -This follows from the orthogonality relation (9.4.2) -together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ -As a consequence, it is sufficient to give generating function (9.4.11). Then the generating -function (9.4.12) will follow by symmetry in the parameters. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Special cases} -In the following special case there is a reduction to -Meixner-Pollaczek: -\begin{equation} -p_n(x;a,a+\thalf,a,a+\thalf)= -\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). -\end{equation} -See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the -Meixner-Pollaczek polynonmials are defined different from (9.7.1), -without a constant factor in front). - -For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have -\begin{eqnarray} -\label{OrtHahn} -& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHahn} --xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), -\end{equation} -where -$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] -\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHahn} -xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvHahn} -n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] -\displaystyle D(x)=x(x-\beta-N-1). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1HahnI} -& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1HahnII} -\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2HahnI} -& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ -& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2HahnII} -& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ -& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), -\end{eqnarray} -where -$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodHahn} -& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenHahn1} -\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenHahn2} -& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenHahn3} -& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} -{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Hahn} -If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we obtain the Hahn polynomials. Hence -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ -And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we also obtain the Hahn polynomials: -$$\lim_{\gamma\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ -Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in -the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit -$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take -$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials -by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials -if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the -dual Hahn polynomials given by (\ref{DefDualHahn}). - -\noindent -Since -$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ -we obtain the dual orthogonality relation for the Hahn polynomials from the -orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} -Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ -& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. -\subsection*{9.5 Hahn} -\label{sec9.5} -% -\paragraph{Special values} -\begin{equation} -Q_n(0;\al,\be,N)=1,\quad -Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{95} -\end{equation} -Use (9.5.1) and compare with (9.8.1) and \eqref{50}. - -From (9.5.3) and \eqref{1} it follows that -\begin{equation} -Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. -\label{30} -\end{equation} -From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that -\begin{equation} -Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). -\label{44} -\end{equation} -% -\paragraph{Symmetries} -By the orthogonality relation (9.5.2): -\begin{equation} -\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), -\label{96} -\end{equation} -It follows from \eqref{97} and \eqref{45} that -\begin{equation} -\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} -=Q_n(x;-N-\be-1,-N-\al-1,N) -\qquad(x=0,1,\ldots,N). -\label{100} -\end{equation} -% -\paragraph{Duality} -The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: -% -\begin{equation} -Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). -\label{45} -\end{equation} -\end{eqnarray*} - -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, -\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, -\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, -\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, -\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, -\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, -\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, -\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, -\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, -\cite{Zarzo+}. - - -\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefDualHahn} -R_n(\lambda(x);\gamma,\delta,N)= -\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\lambda(x)=x(x+\gamma+\delta+1).$$ - -\subsection*{Orthogonality relation} -For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have -\begin{eqnarray} -\label{OrtDualHahn} -& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDualHahn} -\lambda(x)R_n(\lambda(x)) -=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), -\end{equation} -where -$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] -\displaystyle C_n=n(n-\delta-N-1). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDualHahn} -xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvDualHahn} --ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] -\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualHahnI} -& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1DualHahnII} -\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= --\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualHahnI} -& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ -& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualHahnII} -& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ -& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), -\end{eqnarray} -where -$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} -{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ - -\newpage - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDualHahn} -\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) -=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], -\end{equation} -where -$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenDualHahn1} -(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn2} -& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ -& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{eqnarray} - -\begin{equation} -\label{GenDualHahn3} -\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N -\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn4} -& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, -\quad\textrm{$\epsilon$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Dual Hahn} -If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we obtain the dual Hahn polynomials: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we also obtain the dual Hahn polynomials: -$$\lim_{\alpha\rightarrow\infty} -R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition -(\ref{DefRacah}) of the Racah polynomials and take the limit -$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials -if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). -\end{equation} - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual -Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) -of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). - -\noindent -Since -$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ -we obtain the dual orthogonality relation for the dual Hahn polynomials -from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ -& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. -\subsection*{9.6 Dual Hahn} -\label{sec9.6} -% -\paragraph{Special values} -By \eqref{44} and \eqref{45} we have -\begin{equation} -R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. -\label{47} -\end{equation} -It follows from \eqref{95} and \eqref{45} that -\begin{equation} -R_N(x(x+\ga+\de+1);\ga,\de,N) -=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). -\label{101} -\end{equation} -% -\paragraph{Symmetries} -Write the weight in (9.6.2) as -\begin{equation} -w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, -\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. -\label{98} -\end{equation} -Then -\begin{equation} -(\de+1)_N\,w_{N-x}(\ga,\de,N)= -(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). -\label{99} -\end{equation} -Hence, by (9.6.2), -\begin{equation} -\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} -=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). -\label{97} -\end{equation} -Alternatively, \eqref{97} follows from (9.6.1) and -\mycite{DLMF}{(16.4.11)}. - -It follows from \eqref{96} and \eqref{45} that -\begin{equation} -\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} -{R_N(x(x+\ga+\de+1);\ga,\de,N)} -=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). -\label{102} -\end{equation} -% -\paragraph{Re: (9.6.11).} -The generating function (9.6.11) can be written in a more conceptual way as -\begin{equation} -(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, -\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, -\label{2} -\end{equation} -where -\begin{equation} -\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, -\label{3} -\end{equation} -i.e., the denominator on the \RHS\ of (9.6.2). -By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in -terms of Hahn polynomials: -\begin{equation} -(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, -\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, -\label{4} -\end{equation} -where -\begin{equation} -w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, -\label{5} -\end{equation} -i.e., the weight occurring in the orthogonality relation (9.5.2) -for Hahn polynomials. -\paragraph{Re: (9.6.15).} -There should be a closing bracket before the equality sign. -\end{eqnarray*} - -\subsection*{References} -\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, -\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, -\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. - - -\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMP} -P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, -\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMP} -\frac{1}{2\pi}\int_{-\infty}^{\infty} -\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 -P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx -{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, -% \constraint{ -% $\lambda > 0$ & -% $0 < \phi < \pi$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMP} -& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] -P_n^{(\lambda)}(x;\phi)\nonumber\\ -& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMP} -xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ -\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), -\end{equation} -where -$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvMP} -& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ -& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MPI} -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) -P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MPII} -\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} -=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2MPI} -& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ -\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ -& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2MPII} -\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= --(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) -P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), -\end{equation} -where -$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMP} -\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} -\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. -\end{equation} - -\newpage - -\subsection*{Generating functions} -\begin{equation} -\label{GenMP1} -(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= -\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. -\end{equation} - -\begin{equation} -\label{GenMP2} -\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= -\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenMP3} -& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials -given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, -$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the -definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit -$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: -$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ - -\newpage - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the -Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -\begin{equation} -\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek -polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -and then let $\lambda\rightarrow\infty$: -\begin{equation} -\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remark} -Since we have for $k-1$ and $\beta>-1$ we have -\begin{eqnarray} -\label{OrtJacobi1} -& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ -& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. -\end{eqnarray} -For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have -\begin{eqnarray} -\label{OrtJacobi2} -& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ -& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecJacobi} -xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} -{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) -\end{eqnarray} -where -$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{eqnarray} -\label{dvJacobi} -& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ -& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Jacobi} -\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2JacobiI} -& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ -\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2JacobiII} -& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ -& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodJacobi} -(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= -\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenJacobi1} -\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= -\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{eqnarray} -\label{GenJacobi2} -& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi3} -& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi4} -& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi5} -& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2} -\end{eqnarray} -with $\gamma$ arbitrary. - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by -substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -$$\lim_{t\rightarrow\infty} -\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} -{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) -by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ -in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take -$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have -$$\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi -polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials -if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: -\begin{equation} -\lim_{\alpha\rightarrow-\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials -by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: -$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} -(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ -In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ -and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the -following connection with the Meixner polynomials given by (\ref{DefMeixner}): -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by -(\ref{DefPseudoJacobi}) in the following way: -$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ - -\noindent -The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials -given by (\ref{DefGegenbauer}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -\subsection*{9.8 Jacobi} -\label{sec9.8} -% -\paragraph{Orthogonality relation} -Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\begin{split} -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP -&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. -\end{split} -\label{60} -\end{equation} - -In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be -$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: -\begin{equation} -\begin{split} -&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ -&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. -\end{split} -\label{122} -\end{equation} - -% -\paragraph{Symmetry} -\begin{equation} -P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). -\label{48} -\end{equation} -Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Special values} -\begin{equation} -P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad -P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad -\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{50} -\end{equation} -Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Generating functions} -Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. -% -\paragraph{Bilateral generating functions} -For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): -\begin{align} -&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac1{(1+r)^{\al+\be+1}} -\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), -\label{58}\sLP -&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} -\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). -\label{59} -\end{align} -Formulas \eqref{58} and \eqref{59} were first -given by Bailey \myciteKLS{91}{(2.1), (2.3)}. -See Stanton \myciteKLS{485} for a shorter proof. -(However, in the second line of -\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ -As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows -from \eqref{58} -by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ -to both sides of \eqref{58}. -In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi -polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. -See also the discussion in Askey \myciteKLS{46}{following (2.32)}. -% -\paragraph{Quadratic transformations} -\begin{align} -\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} -=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} -&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, -\label{51}\\ -\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} -=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} -&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. -\label{52} -\end{align} -See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. -Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. -% -\paragraph{Differentiation formulas} -Each differentiation formula is given in two equivalent forms. -\begin{equation} -\begin{split} -\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= --(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ -\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= --(n+\al)\,P_n^{(\al-1,\be+1)}(x). -\end{split} -\label{68} -\end{equation} -% -\begin{equation} -\begin{split} -\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= -(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ -\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= -(n+\be)\,P_n^{(\al+1,\be-1)}(x). -\end{split} -\label{69} -\end{equation} -Formulas \eqref{68} and \eqref{69} follow from -\mycite{DLMF}{(15.5.4), (15.5.6)} -together with (9.8.1). They also follow from each other by \eqref{48}. -% -\paragraph{Generalized Gegenbauer polynomials} -These are defined by -\begin{equation} -S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad -S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{70} -\end{equation} -in the notation of \myciteKLS{146}{p.156} -(see also \cite{K27}), while \cite[Section 1.5.2]{K26} -has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. -For $\al,\be>-1$ we have the orthogonality relation -\begin{equation} -\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx -=0\qquad(m\ne n). -\label{71} -\end{equation} -For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of -continuous $q$-ultraspherical polynomials, see \eqref{176}. - -If we define the {\em Dunkl operator} $T_\mu$ by -\begin{equation} -(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x -\label{72} -\end{equation} -and if we choose the constants in \eqref{70} as -\begin{equation} -S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad -S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, -x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{73} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. -\label{74} -\end{equation} -Formula \eqref{74} with \eqref{73} substituted gives rise to two -differentiation formulas involving Jacobi polynomials which are equivalent to -(9.8.7) and \eqref{69}. - -Composition of \eqref{74} with itself gives -\[ -T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, -\] -which is equivalent to the composition of (9.8.7) and \eqref{69}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) -=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). -\label{75} -\end{equation} -Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, -\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, -\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, -\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, -\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, -\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, -\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, -\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, -\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, -\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, -\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, -\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, -\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, -\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, -\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, -\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, -\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, -\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, -\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, -\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, -\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, -\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, -\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, -\cite{Zayed}. - -\section*{Special cases} - -\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} -\index{Ultraspherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with -$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: -\begin{eqnarray} -\label{DefGegenbauer} -C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ -&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} -{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtGegenbauer} -& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ -& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, -\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecGegenbauer} -2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecGegenbauer} -xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), -\end{equation} -where -$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvGegenbauer} -(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Gegenbauer} -\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2GegenbauerI} -(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= --\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) -\end{equation} -or equivalently -\begin{eqnarray} -\label{shift2GegenbauerII} -& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ -& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodGegenbauer} -(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= -\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenGegenbauer1} -(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer2} -R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} -\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenGegenbauer3} -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} -=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer4} -\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenGegenbauer5} -& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenGegenbauer6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} -{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or -ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remarks} -The case $\lambda=0$ needs another normalization. In that case we have the -Chebyshev polynomials of the first kind described in the next subsection. - -\noindent -The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials -given by (\ref{DefJacobi}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -\subsection*{9.8.1 Gegenbauer / Ultraspherical} -\label{sec9.8.1} -% -\paragraph{Notation} -Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. -% -\paragraph{Orthogonality relation} -Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\frac{h_n}{h_0}= -\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad -h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad -\frac{h_n}{h_0\,(C_n^\la(1))^2}= -\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. -\label{61} -\end{equation} -% -\paragraph{Hypergeometric representation} -Beside (9.8.19) we have also -\begin{equation} -C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} -{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} -=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, -\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. -\label{57} -\end{equation} -See \mycite{DLMF}{(18.5.10)}. -% -\paragraph{Special value} -\begin{equation} -C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. -\label{49} -\end{equation} -Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Expression in terms of Jacobi} -% -\begin{equation} -\frac{C_n^\la(x)}{C_n^\la(1)}= -\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad -C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). -\label{65} -\end{equation} -% -\paragraph{Re: (9.8.21)} -By iteration of recurrence relation (9.8.21): -\begin{multline} -x^2 C_n^\la(x)= -\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ -\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ -+\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). -\label{6} -\end{multline} -% -\paragraph{Bilateral generating functions} -\begin{multline} -\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ -(r\in(-1,1),\;x,y\in[-1,1]). -\label{66} -\end{multline} -For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. -The Poisson kernel for Gegenbauer polynomials can be derived in a similar way -from \eqref{59}, or alternatively by applying the operator -$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: -\begin{multline} -\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ -\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad -(r\in(-1,1),\;x,y\in[-1,1]). -\label{67} -\end{multline} -Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} -as a limit case of their formula for the Poisson kernel for continuous -$q$-ultraspherical polynomials. -% -\paragraph{Trigonometric expansions} -By \mycite{DLMF}{(18.5.11), (15.8.1)}: -\begin{align} -C_n^{\la}(\cos\tha) -&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} -=e^{in\tha}\frac{(\la)_n}{n!}\, -\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ -&=\frac{(\la)_n}{2^\la n!}\, -e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, -\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ -&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, -\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} -\end{align} -In \eqref{104} and \eqref{105} we require that -$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ -and conditional for $0<\la\le\thalf$. - -By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: -\begin{align} -C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, -\sin\big((2k+n+1)\tha\big) -\label{7}\\ -&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ -&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, -\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, -\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ -&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, -\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, -\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. -\label{106} -\end{align} -We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in -\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for -$0<\la\le\thalf$. -For $\la\in\Zpos$ the above series terminate after the term with -$k=\la-1$. -Formulas \eqref{7} and \eqref{106} are also given in -\mycite{Sz}{(4.9.22), (4.9.25)}. -% -\paragraph{Fourier transform} -\begin{equation} -\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, -\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, -e^{ixy}\,dy -=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). -\label{8} -\end{equation} -See \mycite{DLMF}{(18.17.17) and (18.17.18)}. -% -\paragraph{Laplace transforms} -\begin{equation} -\frac2{n!\,\Ga(\la)}\, -\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). -\label{56} -\end{equation} -See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) -or Feldheim \cite[(28)]{K3} (1942). -\begin{equation} -\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, -(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt -=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). -\label{46} -\end{equation} -Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with -\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. -\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) -\begin{multline} -R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) -=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ -\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, -\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), -\label{108} -\end{multline} -where -\[ -R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad -\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} -{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. -\] -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, -\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, -\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, -\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, -\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, -\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, -\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, -\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, -\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, -\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, -\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, -\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. - -\subsection{Chebyshev}\index{Chebyshev polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Chebyshev polynomials of the first kind can be obtained from the Jacobi -polynomials by taking $\alpha=\beta=-\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevI} -T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} -=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} -\end{equation} -and the Chebyshev polynomials of the second kind can be obtained from the -Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevII} -U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} -=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtChebyshevI} -\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= -\left\{\begin{array}{ll} -\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] -\cpi\,\delta_{mn}, & n=0. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{OrtChebyshevII} -\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relations} -\begin{equation} -\label{RecChebyshevI} -2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. -\end{equation} - -\begin{equation} -\label{RecChebyshevII} -2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. -\end{equation} - -\subsection*{Normalized recurrence relations} -\begin{equation} -\label{NormRecChebyshevI} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ - -\begin{equation} -\label{NormRecChebyshevII} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$U_n(x)=2^np_n(x).$$ - -\subsection*{Differential equations} -\begin{equation} -\label{dvChebyshevI} -(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). -\end{equation} - -\begin{equation} -\label{dvChebyshevII} -(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Chebyshev} -\frac{d}{dx}T_n(x)=nU_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2ChebyshevI} -(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2ChebyshevII} -\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] -=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formulas} -\begin{equation} -\label{RodChebyshevI} -(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. -\end{equation} - -\begin{equation} -\label{RodChebyshevII} -(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenChebyshevI1} -\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI2} -R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} -\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevI3} -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevI5} -& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevI6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{equation} -\label{GenChebyshevII1} -\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII2} -\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} -\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevII3} -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevII5} -& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevII6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Remarks} -The Chebyshev polynomials can also be written as: -$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ -and -$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ -Further we have -$$U_n(x)=C_n^{(1)}(x)$$ -where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) -\subsection*{9.8.2 Chebyshev} -\label{sec9.8.2} -In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) -and $U_n$ of the second kind (9.8.36), -\begin{align} -T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} -=\cos(n\tha),\quad x=\cos\tha,\\ -U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} -=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, -\end{align} -we have Chebyshev polynomials $V_n$ {\em of the third kind} -and $W_n$ {\em of the fourth kind}, -\begin{align} -V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} -=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ -W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} -=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, -\end{align} -see \cite[Section 1.2.3]{K20}. Then there is the symmetry -\begin{equation} -V_n(-x)=(-1)^n W_n(x). -\label{140} -\end{equation} - -The names of Chebyshev polynomials of the third and fourth kind -and the notation $V_n(x)$ are due to Gautschi \cite{K21}. -The notation $W_n(x)$ was first used by Mason \cite{K22}. -Names and notations for Chebyshev polynomials of the third and fourth -kind are interchanged in \mycite{AAR}{Remark 2.5.3} and -\mycite{DLMF}{Table 18.3.1}. -polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. - -\subsection*{References} -\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, -\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, -\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, -\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, -\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, -\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. - -\subsection{Legendre / Spherical}\index{Legendre polynomials} -\index{Spherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: -\begin{equation} -\label{DefLegendre} -P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLegendre} -\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLegendre} -(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLegendre} -xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), -\end{equation} -where -$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLegendre} -(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLegendre} -P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLegendre1} -\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre2} -\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre3} -\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenLegendre4} -& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenLegendre5} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\subsection*{9.9 Pseudo Jacobi (or Routh-Romanovski)} -\label{sec9.9} -In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) -is considered -for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take -$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). -\] -Then $P_n$ can be expressed as a Meixner polynomial: -\[ -P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, -M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). -\] - -In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' -which turn out to be special Meixner polynomials: -$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Askey87}, \cite{BorodinOlshanski}, \cite{Lesky96}. - - -\section{Meixner}\index{Meixner polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMeixner} -M_n(x;\beta,c)=\hyp{2}{1}{-n,-x}{\beta}{1-\frac{1}{c}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMeixner} -\sum_{x=0}^{\infty}\frac{(\beta)_x}{x!}c^xM_m(x;\beta,c)M_n(x;\beta,c) -{}=\frac{c^{-n}n!}{(\beta)_n(1-c)^{\beta}}\,\delta_{mn} -% \constraint{ -% $\beta > 0$ & -% $0 < c < 1$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMeixner} -(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ -& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMeixner} -xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ -\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), -\end{equation} -where -$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvMeixner} -n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), -\end{equation} -where -$$y(x)=M_n(x;\beta,c).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MeixnerI} -M_n(x+1;\beta,c)-M_n(x;\beta,c)= -\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MeixnerII} -\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2MeixnerI} -c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift2MeixnerII} -\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= -\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMeixner} -\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenMeixner1} -\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= -\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner2} -\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= -\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner3} -(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) -of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: -$$\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -To obtain the Meixner polynomials from the dual Hahn polynomials we have to take -$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of -the dual Hahn polynomials and let $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials -if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: -\begin{equation} -\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. -\end{equation} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials -if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). -\end{equation} - -\subsection*{Remarks} -The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) -in the following way: -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Meixner polynomials are also related to the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) in the following way: -\subsection*{9.11 Krawtchouk} -\label{sec9.11} -% -\paragraph{Special values} -By (9.11.1) and the binomial formula: -\begin{equation} -K_n(0;p,N)=1,\qquad -K_n(N;p,N)=(1-p^{-1})^n. -\label{9} -\end{equation} -The self-duality (p.240, Remarks, first formula) -\begin{equation} -K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) -\label{147} -\end{equation} -combined with \eqref{9} yields: -\begin{equation} -K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). -\label{148} -\end{equation} -% -\paragraph{Symmetry} -By the orthogonality relation (9.11.2): -\begin{equation} -\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). -\label{10} -\end{equation} -By \eqref{10} and \eqref{147} we have also -\begin{equation} -\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) -\qquad(n,x\in\{0,1,\ldots,N\}), -\label{149} -\end{equation} -and, by \eqref{149}, \eqref{10} and \eqref{9}, -\begin{equation} -K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) -\qquad(n,x\in\{0,1,\ldots,N\}). -\label{150} -\end{equation} -A particular case of \eqref{10} is: -\begin{equation} -K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). -\label{11} -\end{equation} -Hence -\begin{equation} -K_{2m+1}(N;\thalf,2N)=0. -\label{12} -\end{equation} -From (9.11.11): -\begin{equation} -K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. -\label{13} -\end{equation} -% -\paragraph{Quadratic transformations} -\begin{align} -K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, -R_m(x^2;-\thalf,-\thalf,N), -\label{31}\\ -K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, -x\,R_m(x^2-1;\thalf,\thalf,N-1), -\label{33}\\ -K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, -R_m(x(x+1);-\thalf,\thalf,N), -\label{32}\\ -K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, -(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), -\label{34} -\end{align} -where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use -(9.6.2), (9.11.2), (9.6.4) and (9.11.4). -% -\paragraph{Generating functions} -\begin{multline} -\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ -=\left(\frac{p-z+pz}p\right)^m -\left(\frac{q-z+qz}q\right)^n -(1+z)^{N-m-n} -K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). -\label{107} -\end{multline} -This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back -to Meixner \cite{K9}. -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{Alvarez+}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyIsmail76}, -\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Bavinck98}, -\cite{BavinckHaeringen}, \cite{Campigotto+}, \cite{Chihara78}, \cite{Cooper+}, -\cite{Erdelyi+}, \cite{FoataLabelle}, \cite{Gabutti}, \cite{GabuttiMathis}, \cite{Gasper73I}, -\cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{IsmailLetVal88}, -\cite{IsmailLi}, \cite{IsmailMuldoon}, \cite{IsmailStanton97}, \cite{JinWong}, -\cite{Karlin58}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rahman78I}, \cite{ValentAssche}, -\cite{Viennot}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Krawtchouk}\index{Krawtchouk polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefKrawtchouk} -K_n(x;p,N)=\hyp{2}{1}{-n,-x}{-N}{\frac{1}{p}},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtKrawtchouk} -& &\sum_{x=0}^N\binom{N}{x}p^x(1-p)^{N-x} K_m(x;p,N)K_n(x;p,N)\nonumber\\ -& &{}=\frac{(-1)^nn!}{(-N)_n}\left(\frac{1-p}{p}\right)^n\,\delta_{mn},\quad0 < p < 1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecKrawtchouk} --xK_n(x;p,N)&=&p(N-n)K_{n+1}(x;p,N)\nonumber\\ -& &{}\mathindent{}-\left[p(N-n)+n(1-p)\right]K_n(x;p,N)\nonumber\\ -& &{}\mathindent\mathindent{}+n(1-p)K_{n-1}(x;p,N). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+\left[p(N-n)+n(1-p)\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+np(1-p)(N+1-n)p_{n-1}(x), -\end{eqnarray} -where -$$K_n(x;p,N)=\frac{1}{(-N)_np^n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvKrawtchouk} --ny(x)&=&p(N-x)y(x+1)\nonumber\\ -& &{}\mathindent{}-\left[p(N-x)+x(1-p)\right]y(x)+x(1-p)y(x-1), -\end{eqnarray} -where -$$y(x)=K_n(x;p,N).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1KrawtchoukI} -K_n(x+1;p,N)-K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1) -\end{equation} -or equivalently -\begin{equation} -\label{shift1KrawtchoukII} -\Delta K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2KrawtchoukI} -& &(N+1-x)K_n(x;p,N)-x\left(\frac{1-p}{p}\right)K_n(x-1;p,N)\nonumber\\ -& &{}=(N+1)K_{n+1}(x;p,N+1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2KrawtchoukII} -\nabla\left[\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)\right]= -\binom{N+1}{x}\left(\frac{p}{1-p}\right)^xK_{n+1}(x;p,N+1). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodKrawtchouk} -\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)= -\nabla^n\left[\binom{N-n}{x}\left(\frac{p}{1-p}\right)^x\right]. -\end{equation} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenKrawtchouk1} -\left(1-\frac{(1-p)}{p}t\right)^x(1+t)^{N-x}= -\sum_{n=0}^N\binom{N}{n}K_n(x;p,N)t^n. -\end{equation} - -\begin{equation} -\label{GenKrawtchouk2} -\left[\expe^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}\right]_N= -\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenKrawtchouk3} -& &\left[(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{-N}{\frac{t}{p(t-1)}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\gamma)_n}{n!}K_n(x;p,N)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -If we take $\alpha=pt$ and $\beta=(1-p)t$ in the definition (\ref{DefHahn}) of the Hahn -polynomials and let $t\rightarrow\infty$ we obtain the Krawtchouk polynomials: -$$\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials follow from the dual Hahn polynomials given by -(\ref{DefDualHahn}) if we set $\gamma=pt$, $\delta=(1-p)t$ and let $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) can be found from the Krawtchouk -polynomials by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a). -\end{equation} - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Krawtchouk polynomials -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}. -\end{equation} - -\subsection*{Remarks} -The Krawtchouk polynomials are self-dual, which means that -$$K_n(x;p,N)=K_x(n;p,N),\quad n,x\in\{0,1,2,\ldots,N\}.$$ -By using this relation we easily obtain the so-called dual orthogonality -relation from the orthogonality relation (\ref{OrtKrawtchouk}): -$$\sum_{n=0}^N\binom{N}{n}p^n(1-p)^{N-n} K_n(x;p,N)K_n(y;p,N)= -\frac{\displaystyle\left(\frac{1-p}{p}\right)^x}{\dbinom{N}{x}}\delta_{xy},$$ -where $0 < p < 1$ and $x,y\in\{0,1,2,\ldots,N\}$. - -\noindent -The Krawtchouk polynomials are related to the Meixner polynomials given by (\ref{DefMeixner}) -in the following way: -\subsection*{9.12 Laguerre} -\label{sec9.12} -\paragraph{Notation} -Here the Laguerre polynomial is denoted by $L_n^\al$ instead of -$L_n^{(\al)}$. -% -\paragraph{Hypergeometric representation} -\begin{align} -L_n^\al(x)&= -\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x -\label{182}\\ -&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} -\label{183}\\ -&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), -\label{184} -\end{align} -where $C_n$ in \eqref{184} is a -\hyperref[sec9.14]{Charlier polynomial}. -Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal -of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. -It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially -\myciteKLS{416}{(2.7.10)}. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Special value} -\begin{equation} -L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. -\label{53} -\end{equation} -Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. -% -\paragraph{Quadratic transformations} -\begin{align} -H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), -\label{54}\\ -H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). -\label{55} -\end{align} -See p.244, Remarks, last two formulas. -Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. -% -\paragraph{Fourier transform} -\begin{equation} -\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, -e^{-y}\,y^\al\,e^{ixy}\,dy= -i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, -\label{14} -\end{equation} -see \mycite{DLMF}{(18.17.34)}. -% -\paragraph{Differentiation formulas} -Each differentiation formula is given in two equivalent forms. -\begin{equation} -\frac d{dx}\left(x^\al L_n^\al(x)\right)= -(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad -\left(x\frac d{dx}+\al\right)L_n^\al(x)= -(n+\al)\,L_n^{\al-1}(x). -\label{76} -\end{equation} -% -\begin{equation} -\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= --e^{-x} L_n^{\al+1}(x),\qquad -\left(\frac d{dx}-1\right)L_n^\al(x)= --L_n^{\al+1}(x). -\label{77} -\end{equation} -% -Formulas \eqref{76} and \eqref{77} follow from -\mycite{DLMF}{(13.3.18), (13.3.20)} -together with (9.12.1). -% -\paragraph{Generalized Hermite polynomials} -See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. -These are defined by -\begin{equation} -H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). -\label{78} -\end{equation} -Then for $\mu>-\thalf$ we have orthogonality relation -\begin{equation} -\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx -=0\qquad(m\ne n). -\label{79} -\end{equation} -Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. -If we choose the constants in \eqref{78} as -\begin{equation} -H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, - x\,L_m^{\mu+\half}(x^2) - \label{80} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_\mu H_n^\mu=2n\,H_{n-1}^\mu. -\label{81} -\end{equation} -Formula \eqref{81} with \eqref{80} substituted gives rise to two -differentiation formulas involving Laguerre polynomials which are equivalent to -(9.12.6) and \eqref{76}. - -Composition of \eqref{81} with itself gives -\[ -T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, -\] -which is equivalent to the composition of (9.12.6) and \eqref{76}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) -=-4(n+\al)\,L_{n-1}^\al(x^2). -\label{82} -\end{equation} -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, -\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, -\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, -\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, -\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Laguerre}\index{Laguerre polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefLaguerre} -L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLaguerre} -\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= -\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLaguerre} -(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLaguerre} -xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), -\end{equation} -where -$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLaguerre} -xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). -\end{equation} - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Laguerre} -\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2LaguerreI} -x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2LaguerreII} -\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLaguerre} -\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLaguerre1} -(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= -\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre2} -\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre3} -(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by -(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -$$\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) -if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: -$$\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition -(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain -the Laguerre polynomials: -$$\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre -polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be -written as: -$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ -In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. -Therefore they can be defined for all $\alpha$. - -\noindent -The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\noindent -The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\noindent -In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook -\subsection*{9.14 Charlier} -\label{sec9.14} -% -\paragraph{Hypergeometric representation} -\begin{align} -C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} -\label{179}\\ -&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a -\label{180}\\ -&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), -\label{181} -\end{align} -where $L_n^\al(x)$ is a -\hyperref[sec9.12]{Laguerre polynomial}. -Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal -of the summation. Finally \eqref{181} follows by \eqref{180} and -(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it -was earlier given in \myciteKLS{416}{(2.7.10)}. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -polynomials. - -\subsection*{References} -\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, -\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, -\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, -\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, -\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, -\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, -\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, -\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, -\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, -\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, -\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, -\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, -\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, -\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, -\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, -\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, -\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, -\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, -\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. - - -\section{Bessel}\index{Bessel polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefBessel} -y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ -&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, -\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBessel} -& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ -& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBessel} -& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ -& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ -& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecBessel} -xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), -\end{eqnarray} -where -$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvBessel} -x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Bessel} -\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2BesselI} -x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) -\end{equation} -or equivalently -\begin{equation} -\label{shift2BesselII} -\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodBessel} -y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenBessel} -\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a -\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. -\end{equation} - -\subsection*{Limit relation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials -and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: -$$\lim_{\alpha\rightarrow -\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ - -\subsection*{Remarks} -The following notations are also used for the Bessel polynomials: -$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ -However, the Bessel polynomials essentially depend on only one parameter. - -\noindent -The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi -polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the -pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: -$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} -\subsection*{9.15 Hermite} -\label{sec9.15} -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Fourier transforms} -\begin{equation} -\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= -i^n\,H_n(x)\,e^{-\half x^2}, -\label{15} -\end{equation} -see \mycite{AAR}{(6.1.15) and Exercise 6.11}. -\begin{equation} -\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= -i^n\,x^n\,e^{-\frac14 x^2}, -\label{16} -\end{equation} -see \mycite{DLMF}{(18.17.35)}. -\begin{equation} -\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= -H_n(x)\,e^{-x^2}, -\label{17} -\end{equation} -see \mycite{AAR}{(6.1.4)}. -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, -\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, -\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. - - -\section{Charlier}\index{Charlier polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefCharlier} -C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtCharlier} -\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= -a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecCharlier} --xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecCharlier} -xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), -\end{equation} -where -$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvCharlier} --ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1CharlierI} -C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift1CharlierII} -\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2CharlierI} -C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift2CharlierII} -\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodCharlier} -\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenCharlier} -\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials -and let $\beta\rightarrow\infty$ we find the Charlier polynomials: -$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials can be found from the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials -if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). -\end{equation} - -\subsection*{Remark} -The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -\subsection*{14.1 Askey-Wilson} -\label{sec14.1} -% -\paragraph{Symmetry} -The Askey-Wilson polynomials $p_n(x;a,b,c,d\,|\,q)$ are \,|\,symmetric -in $a,b,c,d$. -\sLP -This follows from the orthogonality relation (14.1.2) -together with the value of its coefficient of $x^n$ given in (14.1.5b). -Alternatively, combine (14.1.1) with \mycite{GR}{(III.15)}.\\ -As a consequence, it is sufficient to give generating function (14.1.13). Then the generating -functions (14.1.14), (14.1.15) will follow by symmetry in the parameters. -% -\paragraph{Basic hypergeometric representation} -In addition to (14.1.1) we have (in notation \eqref{111}): -\begin{multline} -p_n(\cos\tha;a,b,c,d\,|\, q) -=\frac{(ae^{-i\tha},be^{-i\tha},ce^{-i\tha},de^{-i\tha};q)_n} -{(e^{-2i\tha};q)_n}\,e^{in\tha}\\ -\times {}_8W_7\big(q^{-n}e^{2i\tha};ae^{i\tha},be^{i\tha}, -ce^{i\tha},de^{i\tha},q^{-n};q,q^{2-n}/(abcd)\big). -\label{113} -\end{multline} -This follows from (14.1.1) by combining (III.15) and (III.19) in -\mycite{GR}. -It is also given in \myciteKLS{513}{(4.2)}, but be aware for some slight errors. -The symmetry in $a,b,c,d$ is evident from \eqref{113}. -% -\paragraph{Special value} -\begin{equation} -p_n\big(\thalf(a+a^{-1});a,b,c,d\,|\, q\big)=a^{-n}\,(ab,ac,ad;q)_n\,, -\label{40} -\end{equation} -and similarly for arguments $\thalf(b+b^{-1})$, $\thalf(c+c^{-1})$ and -$\thalf(d+d^{-1})$ by symmetry of $p_n$ in $a,b,c,d$. -% -\paragraph{Trivial symmetry} -\begin{equation} -p_n(-x;a,b,c,d\,|\, q)=(-1)^n p_n(x;-a,-b,-c,-d\,|\, q). -\label{41} -\end{equation} -Both \eqref{40} and \eqref{41} are obtained from (14.1.1). -% -\paragraph{Re: (14.1.5)} -Let -\begin{equation} -p_n(x):=\frac{p_n(x;a,b,c,d\,|\, q)}{2^n(abcdq^{n-1};q)_n}=x^n+\wt k_n x^{n-1} -+\cdots\;. -\label{18} -\end{equation} -Then -\begin{equation} -\wt k_n=-\frac{(1-q^n)(a+b+c+d-(abc+abd+acd+bcd)q^{n-1})} -{2(1-q)(1-abcdq^{2n-2})}\,. -\label{19} -\end{equation} -This follows because $\tilde k_n-\tilde k_{n+1}$ equals the coefficient -$\thalf\bigl(a+a^{-1}-(A_n+C_n)\bigr)$ of $p_n(x)$ in (14.1.5). -% -\paragraph{Generating functions} -Rahman \myciteKLS{449}{(4.1), (4.9)} gives: -\begin{align} -&\sum_{n=0}^\iy \frac{(abcdq^{-1};q)_n a^n}{(ab,ac,ad,q;q)_n}\,t^n\, -p_n(\cos\tha;a,b,c,d\,|\,q) -\nonumber\\ -&=\frac{(abcdtq^{-1};q)_\iy}{(t;q)_\iy}\, -\qhyp65{(abcdq^{-1})^\half,-(abcdq^{-1})^\half,(abcd)^\half, --(abcd)^\half,a e^{i\tha},a e^{-i\tha}} -{ab,ac,ad,abcdtq^{-1},qt^{-1}}{q,q} -\nonumber\\ -&+\frac{(abcdq^{-1},abt,act,adt,ae^{i\tha},ae^{-i\tha};q)_\iy} -{(ab,ac,ad,t^{-1},ate^{i\tha},ate^{-i\tha};q)_\iy} -\nonumber\\ -&\times\qhyp65{t(abcdq^{-1})^\half,-t(abcdq^{-1})^\half,t(abcd)^\half, --t(abcd)^\half,at e^{i\tha},at e^{-i\tha}} -{abt,act,adt,abcdt^2q^{-1},qt}{q,q}\quad(|t|<1). -\label{185} -\end{align} -In the limit \eqref{109} the first term on the \RHS\ of \eqref{185} -tends to the \LHS\ of (9.1.15), while the second term tends formally -to 0. The special case $ad=bc$ of \eqref{185} was earlier given in -\myciteKLS{236}{(4.1), (4.6)}. -% -\paragraph{Limit relations}\quad\sLP -{\bf Askey-Wilson $\longrightarrow$ Wilson}\\ -Instead of (14.1.21) we can keep a polynomial of degree $n$ while the limit is approached: -\begin{equation} -\lim_{q\to1}\frac{p_n(1-\thalf x(1-q)^2;q^a,q^b,q^c,q^d\,|\, q)}{(1-q)^{3n}} -=W_n(x;a,b,c,d). -\label{109} -\end{equation} -For the proof first derive the corresponding limit for the monic polynomials by comparing -(14.1.5) with (9.4.4). -\bLP -{\bf Askey-Wilson $\longrightarrow$ Continuous Hahn}\\ -Instead of (14.4.15) we can keep a polynomial of degree $n$ while the limit is approached: -\begin{multline} -\lim_{q\uparrow1} -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, -q^{\overline b} e^{-i\phi}\,|\, q\big)} -{(1-q)^{2n}}\\ -=(-2\sin\phi)^n\,n!\,p_n(x;a,b,\overline a,\overline b)\qquad -(0<\phi<\pi). -\label{177} -\end{multline} -Here the \RHS\ has a continuous Hahn polynomial (9.4.1). -For the proof first derive the corresponding limit for the monic polynomials by comparing -(14.1.5) with (9.1.5). -In fact, define the monic polynomial -\[ -\wt p_n(x):= -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, -q^{\overline b} e^{-i\phi}\,|\, q\big)} -{(-2(1-q)\sin\phi)^n\,(abcdq^{n-1};q)_n}\,. -\] -Then it follows from (14.1.5) that -\begin{equation*} -x\,\wt p_n(x)=\wt p_{n+1}(x) -+\frac{(1-q^a)e^{i\phi}+(1-q^{-a})e^{-i\phi}+\wt A_n+\wt C_n}{2(1-q)\sin\phi}\,\wt p_n(x)\\ -+\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), -\end{equation*} -where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by -$q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi},q^{\overline b} e^{-i\phi}$. -Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to -the recurrence equation (9.4.4) with $c=\overline a$, $d=\overline b$. -\bLP -{\bf Askey-Wilson $\longrightarrow$ Meixner-Pollaczek}\\ -Instead of (14.9.15) we can keep a polynomial of degree $n$ while the limit is approached: -\begin{equation} -\lim_{q\uparrow1} -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; -q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(1-q)^n} -=n!\,P_n^{(\la)}(x;\pi-\phi)\quad -(0<\phi<\pi). -\label{178} -\end{equation} -Here the \RHS\ has a Meixner-Pollaczek polynomial (9.7.1). -For the proof first derive the corresponding limit for the monic polynomials by comparing -(14.1.5) with (9.7.4). -In fact, define the monic polynomial -\[ -\wt p_n(x):= -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; -q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(-2(1-q)\sin\phi)^n}\,. -\] -Then it follows from (14.1.5) that -\begin{equation*} -x\,\wt p_n(x)=\wt p_{n+1}(x) -+\frac{(1-q^\la)e^{i\phi}+(1-q^{-\la})e^{-i\phi}+\wt A_n+\wt C_n} -{2(1-q)\sin\phi}\,\wt p_n(x)\\ -+\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), -\end{equation*} -where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by -$q^\la e^{i\phi},0,q^\la e^{-i\phi},0$. -Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to -the recurrence equation (9.7.4). -% -\paragraph{References} -See also Koornwinder \cite{K7}. -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, -\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, -\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, -\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, -\cite{Zeng90}. - - -\section{Hermite}\index{Hermite polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefHermite} -H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtHermite} -\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx -=2^nn!\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHermite} -H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHermite} -xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), -\end{equation} -where -$$H_n(x)=2^np_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvHermite} -y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Hermite} -\frac{d}{dx}H_n(x)=2nH_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2HermiteI} -\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2HermiteII} -\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodHermite} -\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenHermite1} -\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenHermite2} -\left\{\begin{array}{l} -\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] -\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite3} -\left\{\begin{array}{l} -\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] -\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite4} -\left\{\begin{array}{l} -\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= -\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] -\displaystyle\frac{xt}{\sqrt{1+t^2}}\, -\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} -=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} -\end{array}\right. -\end{equation} -with $\gamma$ arbitrary. - -\begin{equation} -\label{GenHermite5} -\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) -=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, -\end{equation} -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and -then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: -$$\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by -taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by -(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials can be obtained from the Laguerre polynomials given by -(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) -of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite -polynomials. In fact we have -$$\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ - -\subsection*{Remarks} -The Hermite polynomials can also be written as: -$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} -\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\noindent -The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -\subsection*{14.2 $q$-Racah} -\label{sec14.2} -\paragraph{Symmetry} -\begin{equation} -R_n(x;\al,\be,q^{-N-1},\de\,|\, q) -=\frac{(\be q,\al\de^{-1}q;q)_n}{(\al q,\be\de q;q)_n}\,\de^n\, -R_n(\de^{-1}x;\be,\al,q^{-N-1},\de^{-1}\,|\, q). -\label{84} -\end{equation} -This follows from (14.2.1) combined with \mycite{GR}{(III.15)}. -\sLP -In particular, -\begin{equation} -R_n(x;\al,\be,q^{-N-1},-1\,|\, q) -=\frac{(\be q,-\al q;q)_n}{(\al q,-\be q;q)_n}\,(-1)^n\, -R_n(-x;\be,\al,q^{-N-1},-1\,|\, q), -\label{85} -\end{equation} -and -\begin{equation} -R_n(x;\al,\al,q^{-N-1},-1\,|\, q) -=(-1)^n\,R_n(-x;\al,\al,q^{-N-1},-1\,|\, q), -\label{86} -\end{equation} - -\paragraph{Trivial symmetry} -Clearly from (14.2.1): -\begin{equation} -R_n(x;\al,\be,\ga,\de\,|\, q)=R_n(x;\be\de,\al\de^{-1},\ga,\de\,|\, q) -=R_n(x;\ga,\al\be\ga^{-1},\al,\ga\de\al^{-1}\,|\, q). -\label{83} -\end{equation} -For $\al=q^{-N-1}$ this shows that the three cases -$\al q=q^{-N}$ or $\be\de q=q^{-N}$ or $\ga q=q^{-N}$ of (14.2.1) -are not essentially different. -% -\paragraph{Duality} -It follows from (14.2.1) that -\begin{equation} -R_n(q^{-y}+\ga\de q^{y+1};q^{-N-1},\be,\ga,\de\,|\, q) -=R_y(q^{-n}+\be q^{n-N};\ga,\de,q^{-N-1},\be\,|\, q)\quad -(n,y=0,1,\ldots,N). -\end{equation} -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\subsection*{14.3 Continuous dual $q$-Hahn} -\label{sec14.3} -The continuous dual $q$-Hahn polynomials are the special case $d=0$ of the -Askey-Wilson polynomials: -\[ -p_n(x;a,b,c\,|\, q):=p_n(x;a,b,c,0\,|\, q). -\] -Hence all formulas in \S14.3 are specializations for $d=0$ of formulas in \S14.1. -\subsection*{References} -\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, -\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, -\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, -\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, -\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, -\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, -\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, -\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, -\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, -\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, -\cite{Weisner59}, \cite{Wyman}. - -\end{document} diff --git a/KLSadd_insertion/updated9.tex b/KLSadd_insertion/updated9.tex deleted file mode 100644 index e1b34b5..0000000 --- a/KLSadd_insertion/updated9.tex +++ /dev/null @@ -1,4162 +0,0 @@ -\documentclass[envcountchap,graybox]{svmono} - -\addtolength{\textwidth}{1mm} - -\usepackage{amsmath,amssymb} - -\usepackage{amsfonts} -%\usepackage{breqn} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} - -\usepackage{mathptmx} -\usepackage{helvet} -\usepackage{courier} - -\usepackage{makeidx} -\usepackage{graphicx} - -\usepackage{multicol} -\usepackage[bottom]{footmisc} - -\makeindex - -\def\bibname{Bibliography} -\def\refname{Bibliography} - -\def\theequation{\thesection.\arabic{equation}} - -\smartqed - -\let\corollary=\undefined -\spnewtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} - -\newcounter{rom} - -\newcommand{\hyp}[5]{\mbox{}_{#1}{F}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,#5\right)} - -\newcommand{\qhyp}[5]{\mbox{}_{#1}{\phi}_{#2} -\left(\genfrac{}{}{0pt}{}{#3}{#4}\,;\,q,\,#5\right)} - -\newcommand{\mathindent}{\hspace{7.5mm}} - -\newcommand{\e}{\textrm{e}} - -\renewcommand{\E}{\textrm{E}} - -\renewcommand{\textfraction}{-1} - -\renewcommand{\Gamma}{\varGamma} - -\renewcommand{\leftlegendglue}{\hfil} - -\settowidth{\tocchpnum}{14\enspace} -\settowidth{\tocsecnum}{14.30\enspace} -\settowidth{\tocsubsecnum}{14.12.1\enspace} - -\makeatletter -\def\cleartoversopage{\clearpage\if@twoside\ifodd\c@page - \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi - \else\fi\fi} - -\newcommand{\clearemptyversopage}{ - \clearpage{\pagestyle{empty}\cleartoversopage}} -\makeatother - -\oddsidemargin -1.5cm -\topmargin -2.0cm -\textwidth 16.3cm -\textheight 25cm - -\begin{document} - -\author{Roelof Koekoek\\[2.5mm]Peter A. Lesky\\[2.5mm]Ren\'e F. Swarttouw} -\title{Hypergeometric orthogonal polynomials and their\\$q$-analogues} -\subtitle{-- Monograph --} -\maketitle - -\frontmatter - -\large - -\addtocounter{chapter}{8} -\pagenumbering{roman} -\chapter{Hypergeometric orthogonal polynomials} -\label{HyperOrtPol} - - -In this chapter we deal with all families of hypergeometric orthogonal polynomials -appearing in the Askey scheme on page~\pageref{scheme}. For each family of orthogonal -polynomials we state the most important properties such as a representation as a -hypergeometric function, orthogonality relation(s), the three-term recurrence relation, -the second-order differential or difference equation, the forward shift (or degree lowering) -and backward shift (or degree raising) operator, a Rodrigues-type formula and some generating -functions. In each case we use the notation which seems to be most common in the literature. -Moreover, in each case we mention the connection between various families by stating the -appropriate limit relations. See also \cite{Terwilliger2006} for an algebraic approach of -this Askey scheme and \cite{TemmeLopez2001} for a view from asymptotic analysis. -For notations the reader is referred to chapter~\ref{Definitions}. - -\section{Wilson}\index{Wilson polynomials} - -\par - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefWilson} -& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\ -& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}. -\end{eqnarray} - -\newpage - -\subsection*{Orthogonality relation} -If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then -\begin{eqnarray} -\label{OrthIWilson} -& &\frac{1}{2\pi}\int_0^{\infty} -\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}, -\end{eqnarray} -where -\begin{eqnarray*} -& &\Gamma(n+a+b)\cdots\Gamma(n+c+d)\\ -& &{}=\Gamma(n+a+b)\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)\Gamma(n+c+d). -\end{eqnarray*} -If $a<0$ and $a+b$, $a+c$, $a+d$ are positive or a pair of complex conjugates -occur with positive real parts, then -\begin{eqnarray} -\label{OrtIIWilson} -& &\frac{1}{2\pi}\int_0^{\infty}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2\nonumber\\ -& &{}\mathindent\mathindent\times W_m(x^2;a,b,c,d)W_n(x^2;a,b,c,d)\,dx\nonumber\\ -& &{}\mathindent{}+\frac{\Gamma(a+b)\Gamma(a+c)\Gamma(a+d)\Gamma(b-a)\Gamma(c-a)\Gamma(d-a)}{\Gamma(-2a)}\nonumber\\ -& &{}\mathindent\mathindent{}\times\sum_{\begin{array}{c} -{\scriptstyle k=0,1,2\ldots}\\{\scriptstyle a+k<0}\end{array}} -\frac{(2a)_k(a+1)_k(a+b)_k(a+c)_k(a+d)_k}{(a)_k(a-b+1)_k(a-c+1)_k(a-d+1)_kk!}\nonumber\\ -& &{}\mathindent\mathindent\mathindent\mathindent{}\times W_m(-(a+k)^2;a,b,c,d)W_n(-(a+k)^2;a,b,c,d)\nonumber\\ -& &{}=\frac{\Gamma(n+a+b)\cdots\Gamma(n+c+d)}{\Gamma(2n+a+b+c+d)}(n+a+b+c+d-1)_nn!\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecWilson} --\left(a^2+x^2\right){\tilde{W}}_n(x^2) -=A_n{\tilde{W}}_{n+1}(x^2)-\left(A_n+C_n\right){\tilde{W}}_n(x^2)+C_n{\tilde{W}}_{n-1}(x^2), -\end{equation} -where -$${\tilde{W}}_n(x^2):={\tilde{W}}_n(x^2;a,b,c,d)=\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+a+b+c+d-1)(n+a+b)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)(n+c+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecWilson} -xp_n(x)=p_{n+1}(x)+(A_n+C_n-a^2)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$W_n(x^2;a,b,c,d)=(-1)^n(n+a+b+c+d-1)_np_n(x^2).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvWilson} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=W_n(x^2;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(a-ix)(b-ix)(c-ix)(d-ix)}{2ix(2ix-1)}\\[5mm] -\displaystyle D(x)=\frac{(a+ix)(b+ix)(c+ix)(d+ix)}{2ix(2ix+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1WilsonI} -& &W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d) --W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2inx(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift1WilsonII} -& &\frac{\delta W_n(x^2;a,b,c,d)}{\delta x^2}\nonumber\\ -& &{}=-n(n+a+b+c+d-1)W_{n-1}(x^2;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{eqnarray} - -\newpage - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2WilsonI} -& &(a-\textstyle\frac{1}{2}-ix)(b-\textstyle\frac{1}{2}-ix) -(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -W_n((x+\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -(c-\textstyle\frac{1}{2}+ix)(d-\textstyle\frac{1}{2}+ix) -W_n((x-\textstyle\frac{1}{2}i)^2;a,b,c,d)\nonumber\\ -& &{}=-2ix W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2WilsonII} -& &\frac{\delta\left[\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\right]}{\delta x^2}\nonumber\\ -& &{}=\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -W_{n+1}(x^2;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d):=\frac{1}{2ix}\left|\frac{\Gamma(a+ix)\Gamma(b+ix)\Gamma(c+ix)\Gamma(d+ix)}{\Gamma(2ix)}\right|^2.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodWilson} -& &\omega(x;a,b,c,d)W_n(x^2;a,b,c,d)\nonumber\\ -& &{}=\left(\frac{\delta}{\delta x^2}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenWilson1} -\hyp{2}{1}{a+ix,b+ix}{a+b}{t}\,\hyp{2}{1}{c-ix,d-ix}{c+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+b)_n(c+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson2} -\hyp{2}{1}{a+ix,c+ix}{a+c}{t}\,\hyp{2}{1}{b-ix,d-ix}{b+d}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+c)_n(b+d)_nn!}. -\end{equation} - -\begin{equation} -\label{GenWilson3} -\hyp{2}{1}{a+ix,d+ix}{a+d}{t}\,\hyp{2}{1}{b-ix,c-ix}{b+c}{t}= -\sum_{n=0}^{\infty}\frac{W_n(x^2;a,b,c,d)t^n}{(a+d)_n(b+c)_nn!}. -\end{equation} - -\begin{eqnarray} -\label{GenWilson4} -& &(1-t)^{1-a-b-c-d}\nonumber\\ -& &{}\mathindent\times\hyp{4}{3}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix,a-ix} -{a+b,a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(a+b+c+d-1)_n}{(a+b)_n(a+c)_n(a+d)_nn!}W_n(x^2;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous dual Hahn} -The continuous dual Hahn polynomials given by (\ref{DefContDualHahn}) can be found from the -Wilson polynomials by dividing by $(a+d)_n$ and letting $d\rightarrow\infty$: -\begin{equation} -\lim_{d\rightarrow\infty}\frac{W_n(x^2;a,b,c,d)}{(a+d)_n}=S_n(x^2;a,b,c). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials given by (\ref{DefContHahn}) are obtained from the Wilson -polynomials by the substitutions $a\rightarrow a-it$, $b\rightarrow b-it$, $c\rightarrow c+it$, -$d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit $t\rightarrow\infty$ in the following -way: -\begin{equation} -\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d). -\end{equation} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) can be found from the Wilson -polynomials by substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)}{t^{2n}n!}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Remarks} -Note that for $k0$, $c=\bar{a}$ and $d=\bar{b}$, then -\begin{eqnarray} -\label{OrtContHahn} -& &\frac{1}{2\pi}\int_{-\infty}^{\infty}\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix) -p_m(x;a,b,c,d)p_n(x;a,b,c,d)\,dx\nonumber\\ -& &{}=\frac{\Gamma(n+a+c)\Gamma(n+a+d)\Gamma(n+b+c)\Gamma(n+b+d)} -{(2n+a+b+c+d-1)\Gamma(n+a+b+c+d-1)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecContHahn} -(a+ix)\tilde{p}_n(x)=A_n\tilde{p}_{n+1}(x)-\left(A_n+C_n\right)\tilde{p}_n(x)+C_n\tilde{p}_{n-1}(x), -\end{equation} -where -$$\tilde{p}_n(x):=\tilde{p}_n(x;a,b,c,d)=\frac{n!}{i^n(a+c)_n(a+d)_n}p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=-\frac{(n+a+b+c+d-1)(n+a+c)(n+a+d)}{(2n+a+b+c+d-1)(2n+a+b+c+d)}\\[5mm] -\displaystyle C_n=\frac{n(n+b+c-1)(n+b+d-1)}{(2n+a+b+c+d-2)(2n+a+b+c+d-1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecContHahn} -xp_n(x)=p_{n+1}(x)+i(A_n+C_n+a)p_n(x)-A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$p_n(x;a,b,c,d)=\frac{(n+a+b+c+d-1)_n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvContHahn} -& &n(n+a+b+c+d-1)y(x)\nonumber\\ -& &{}=B(x)y(x+i)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-i), -\end{eqnarray} -where -$$y(x)=p_n(x;a,b,c,d)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(c-ix)(d-ix)\\[5mm] -\displaystyle D(x)=(a+ix)(b+ix). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1ContHahnI} -& &p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)-p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=i(n+a+b+c+d-1)p_{n-1}(x;a+\textstyle\frac{1}{2}, -b+\textstyle\frac{1}{2},c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1ContHahnII} -\frac{\delta p_n(x;a,b,c,d)}{\delta x}=(n+a+b+c+d-1) -p_{n-1}(x;a+\textstyle\frac{1}{2},b+\textstyle\frac{1}{2}, -c+\textstyle\frac{1}{2},d+\textstyle\frac{1}{2}). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2ContHahnI} -& &(c-\textstyle\frac{1}{2}-ix)(d-\textstyle\frac{1}{2}-ix) -p_n(x+\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}\mathindent{}-(a-\textstyle\frac{1}{2}+ix)(b-\textstyle\frac{1}{2}+ix) -p_n(x-\textstyle\frac{1}{2}i;a,b,c,d)\nonumber\\ -& &{}=\frac{n+1}{i}p_{n+1}(x;a-\textstyle\frac{1}{2}, -b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2ContHahnII} -& &\frac{\delta\left[\omega(x;a,b,c,d)p_n(x;a,b,c,d)\right]}{\delta x}\nonumber\\ -& &{}=-(n+1)\omega(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2}, -c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2})\nonumber\\ -& &{}\mathindent\times p_{n+1}(x;a-\textstyle\frac{1}{2},b-\textstyle\frac{1}{2},c-\textstyle\frac{1}{2},d-\textstyle\frac{1}{2}), -\end{eqnarray} -where -$$\omega(x;a,b,c,d)=\Gamma(a+ix)\Gamma(b+ix)\Gamma(c-ix)\Gamma(d-ix).$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodContHahn} -& &\omega(x;a,b,c,d)p_n(x;a,b,c,d)\nonumber\\ -& &{}=\frac{(-1)^n}{n!}\left(\frac{\delta}{\delta x}\right)^n -\left[\omega(x;a+\textstyle\frac{1}{2}n,b+\textstyle\frac{1}{2}n, -c+\textstyle\frac{1}{2}n,d+\textstyle\frac{1}{2}n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -\begin{equation} -\label{GenContHahn1} -\hyp{1}{1}{a+ix}{a+c}{-it}\,\hyp{1}{1}{d-ix}{b+d}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+c)_n(b+d)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenContHahn2} -\hyp{1}{1}{a+ix}{a+d}{-it}\,\hyp{1}{1}{c-ix}{b+c}{it}= -\sum_{n=0}^{\infty}\frac{p_n(x;a,b,c,d)}{(a+d)_n(b+c)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenContHahn3} -& &(1-t)^{1-a-b-c-d}\,\hyp{3}{2}{\frac{1}{2}(a+b+c+d-1),\frac{1}{2}(a+b+c+d),a+ix} -{a+c,a+d}{-\frac{4t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(a+b+c+d-1)_n}{(a+c)_n(a+d)_ni^n}p_n(x;a,b,c,d)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Continuous Hahn} -The continuous Hahn polynomials are obtained from the Wilson polynomials given by -(\ref{DefWilson}) by the substitution $a\rightarrow a-it$, $b\rightarrow b-it$, -$c\rightarrow c+it$, $d\rightarrow d+it$ and $x\rightarrow x+t$ and the limit -$t\rightarrow\infty$ in the following way: -$$\lim_{t\rightarrow\infty} -\frac{W_n((x+t)^2;a-it,b-it,c+it,d+it)}{(-2t)^nn!}=p_n(x;a,b,c,d).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials given by (\ref{DefMP}) can be obtained from the -continuous Hahn polynomials by setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ -and $b=d=t\tan\phi$ and taking the limit $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^n} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}. -\end{equation} - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials given by (\ref{DefJacobi}) follow from the continuous Hahn polynomials -by the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}\nonumber\\ -& &{}=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsubsection*{Continuous Hahn $\rightarrow$ Pseudo Jacobi} -The pseudo Jacobi polynomials given by (\ref{DefPseudoJacobi}) follow from the continuous -Hahn polynomials by the substitution $x\rightarrow xt$, $a=\frac{1}{2}(-N+i\nu-2t)$, -$b=\frac{1}{2}(-N-i\nu+2t)$, $c=\frac{1}{2}(-N-i\nu-2t)$ and $d=\frac{1}{2}(-N+i\nu+2t)$, -division by $t^n$ and the limit $t\rightarrow\infty$: -\begin{eqnarray} -& &\lim_{t\rightarrow\infty}\frac{p_n(xt;\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t), -\frac{1}{2}(-N+i\nu-2t),\frac{1}{2}(-N-i\nu+2t))}{t^n}\nonumber\\ -& &{}=\frac{(n-2N-1)_n}{n!}P_n(x;\nu,N). -\end{eqnarray} - -\subsection*{Remark} -Since we have for $k0$ and $(c,d)=(\overline a,\overline b)$ or $(\overline b,\overline a)$.\\ -Thus, under these assumptions, the continuous Hahn polynomial -$p_n(x;a,b,c,d)$ -is symmetric in $a,b$ and in $c,d$. -This follows from the orthogonality relation (9.4.2) -together with the value of its coefficient of $x^n$ given in (9.4.4b).\\ -As a consequence, it is sufficient to give generating function (9.4.11). Then the generating -function (9.4.12) will follow by symmetry in the parameters. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.4.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Special cases} -In the following special case there is a reduction to -Meixner-Pollaczek: -\begin{equation} -p_n(x;a,a+\thalf,a,a+\thalf)= -\frac{(2a)_n (2a+\thalf)_n}{(4a)_n}\,P_n^{(2a)}(2x;\thalf\pi). -\end{equation} -See \myciteKLS{342}{(2.6)} (note that in \myciteKLS{342}{(2.3)} the -Meixner-Pollaczek polynonmials are defined different from (9.7.1), -without a constant factor in front). - -For $0-1$ and $\beta>-1$, or for $\alpha<-N$ and $\beta<-N$, we have -\begin{eqnarray} -\label{OrtHahn} -& &\sum_{x=0}^N\binom{\alpha +x}{x}\binom{\beta+N-x}{N-x}Q_m(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!}{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHahn} --xQ_n(x)=A_nQ_{n+1}(x)-\left(A_n+C_n\right)Q_n(x)+C_nQ_{n-1}(x), -\end{equation} -where -$$Q_n(x):=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=\frac{(n+\alpha+\beta+1)(n+\alpha+1)(N-n)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}\\[5mm] -\displaystyle C_n=\frac{n(n+\alpha+\beta+N+1)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}. -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHahn} -xp_n(x)=p_{n+1}(x)+\left(A_n+C_n\right)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$Q_n(x;\alpha,\beta,N)=\frac{(n+\alpha+\beta+1)_n}{(\alpha+1)_n(-N)_n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvHahn} -n(n+\alpha+\beta+1)y(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=Q_n(x;\alpha,\beta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=(x+\alpha+1)(x-N)\\[5mm] -\displaystyle D(x)=x(x-\beta-N-1). -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1HahnI} -& &Q_n(x+1;\alpha,\beta,N)-Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1HahnII} -\Delta Q_n(x;\alpha,\beta,N)=-\frac{n(n+\alpha+\beta+1)}{(\alpha+1)N}Q_{n-1}(x;\alpha+1,\beta+1,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2HahnI} -& &(x+\alpha)(N+1-x)Q_n(x;\alpha,\beta,N)-x(\beta+N+1-x)Q_n(x-1;\alpha,\beta,N)\nonumber\\ -& &{}=\alpha(N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2HahnII} -& &\nabla\left[\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\right]\nonumber\\ -& &{}=\frac{N+1}{\beta}\omega(x;\alpha-1,\beta-1,N+1)Q_{n+1}(x;\alpha-1,\beta-1,N+1), -\end{eqnarray} -where -$$\omega(x;\alpha,\beta,N)=\binom{\alpha+x}{x}\binom{\beta+N-x}{N-x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{eqnarray} -\label{RodHahn} -& &\omega(x;\alpha,\beta,N)Q_n(x;\alpha,\beta,N)\nonumber\\ -& &{}=\frac{(-1)^n(\beta+1)_n}{(-N)_n}\nabla^n\left[\omega(x;\alpha+n,\beta+n,N-n)\right]. -\end{eqnarray} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenHahn1} -\hyp{1}{1}{-x}{\alpha+1}{-t}\,\hyp{1}{1}{x-N}{\beta+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{(\beta+1)_nn!}Q_n(x;\alpha,\beta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenHahn2} -& &\hyp{2}{0}{-x,-x+\beta+N+1}{-}{-t}\,\hyp{2}{0}{x-N,x+\alpha+1}{-}{t}\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(-N)_n(\alpha+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenHahn3} -& &\left[(1-t)^{-\alpha-\beta-1}\,\hyp{3}{2}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2),-x} -{\alpha+1,-N}{-\frac{4t}{(1-t)^2}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\alpha+\beta+1)_n}{n!}Q_n(x;\alpha,\beta,N)t^n. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Hahn} -If we take $\gamma+1=-N$ and let $\delta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we obtain the Hahn polynomials. Hence -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\delta)=Q_n(x;\alpha,\beta,N).$$ -And if we take $\delta=-\beta-N-1$ and let $\gamma\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, we also obtain the Hahn polynomials: -$$\lim_{\gamma\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,\gamma,-\beta-N-1)=Q_n(x;\alpha,\beta,N).$$ -Another way to do this is to take $\alpha+1=-N$ and $\beta\rightarrow\beta+\gamma+N+1$ in -the definition (\ref{DefRacah}) of the Racah polynomials and then take the limit -$\delta\rightarrow\infty$. In that case we obtain the Hahn polynomials in the following way: -$$\lim_{\delta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta+\gamma+N+1,\gamma,\delta)=Q_n(x;\gamma,\beta,N).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials given by (\ref{DefJacobi}) from the Hahn polynomials we take -$x\rightarrow Nx$ and let $N\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}. -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) can be obtained from the Hahn polynomials -by taking $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c). -\end{equation} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) are obtained from the Hahn polynomials -if we take $\alpha=pt$ and $\beta=(1-p)t$ and let $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in (\ref{DefHahn}) we obtain the -dual Hahn polynomials given by (\ref{DefDualHahn}). - -\noindent -Since -$$Q_n(x;\alpha,\beta,N)=R_x(\lambda(n);\alpha,\beta,N)$$ -we obtain the dual orthogonality relation for the Hahn polynomials from the -orthogonality relation (\ref{OrtDualHahn}) of the dual Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\frac{(2n+\alpha+\beta+1)(\alpha+1)_n(-N)_nN!}{(-1)^n(n+\alpha+\beta+1)_{N+1}(\beta+1)_nn!} -Q_n(x;\alpha,\beta,N)Q_n(y;\alpha,\beta,N)\\ -& &{}=\frac{\delta_{xy}}{\dbinom{\alpha+x}{x}\dbinom{\beta+N-x}{N-x}},\quad x,y \in \{0,1,2,\ldots,N\}. -\subsection*{9.5 Hahn} -\label{sec9.5} -% -\paragraph{Special values} -\begin{equation} -Q_n(0;\al,\be,N)=1,\quad -Q_n(N;\al,\be,N)=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{95} -\end{equation} -Use (9.5.1) and compare with (9.8.1) and \eqref{50}. - -From (9.5.3) and \eqref{1} it follows that -\begin{equation} -Q_{2n}(N;\al,\al,2N)=\frac{(\thalf)_n(N+\al+1)_n}{(-N+\thalf)_n(\al+1)_n}\,. -\label{30} -\end{equation} -From (9.5.1) and \mycite{DLMF}{(15.4.24)} it follows that -\begin{equation} -Q_N(x;\al,\be,N)=\frac{(-N-\be)_x}{(\al+1)_x}\qquad(x=0,1,\ldots,N). -\label{44} -\end{equation} -% -\paragraph{Symmetries} -By the orthogonality relation (9.5.2): -\begin{equation} -\frac{Q_n(N-x;\al,\be,N)}{Q_n(N;\al,\be,N)}=Q_n(x;\be,\al,N), -\label{96} -\end{equation} -It follows from \eqref{97} and \eqref{45} that -\begin{equation} -\frac{Q_{N-n}(x;\al,\be,N)}{Q_N(x;\al,\be,N)} -=Q_n(x;-N-\be-1,-N-\al-1,N) -\qquad(x=0,1,\ldots,N). -\label{100} -\end{equation} -% -\paragraph{Duality} -The Remark on p.208 gives the duality between Hahn and dual Hahn polynomials: -% -\begin{equation} -Q_n(x;\al,\be,N)=R_x(n(n+\al+\be+1);\al,\be,N)\quad(n,x\in\{0,1,\ldots N\}). -\label{45} -\end{equation} -\end{eqnarray*} - -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyWilson85}, -\cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Chihara78}, -\cite{Ciesielski}, \cite{Cooper+}, \cite{Dette95}, \cite{Dunkl76}, -\cite{Dunkl78I}, \cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, -\cite{Ismail77}, \cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, -\cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky62}, -\cite{Lesky88}, \cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, -\cite{LewanowiczII}, \cite{Neuman}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman76III}, \cite{Rahman78I}, \cite{Rahman78II}, \cite{Rahman81III}, -\cite{Sablonniere}, \cite{Stanton84}, \cite{Stanton90}, \cite{Wilson80}, \cite{Wilson70II}, -\cite{Zarzo+}. - - -\section{Dual Hahn}\index{Dual Hahn polynomials}\index{Hahn polynomials!Dual} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefDualHahn} -R_n(\lambda(x);\gamma,\delta,N)= -\hyp{3}{2}{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1},\quad n=0,1,2,\ldots,N, -\end{equation} -where -$$\lambda(x)=x(x+\gamma+\delta+1).$$ - -\subsection*{Orthogonality relation} -For $\gamma>-1$ and $\delta>-1$, or for $\gamma<-N$ and $\delta<-N$, we have -\begin{eqnarray} -\label{OrtDualHahn} -& &\sum_{x=0}^N\frac{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -R_m(\lambda(x);\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=\frac{\,\delta_{mn}}{\dbinom{\gamma+n}{n}\dbinom{\delta+N-n}{N-n}}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecDualHahn} -\lambda(x)R_n(\lambda(x)) -=A_nR_{n+1}(\lambda(x))-\left(A_n+C_n\right)R_n(\lambda(x))+C_nR_{n-1}(\lambda(x)), -\end{equation} -where -$$R_n(\lambda(x)):=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle A_n=(n+\gamma+1)(n-N)\\[5mm] -\displaystyle C_n=n(n-\delta-N-1). -\end{array}\right.$$ - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecDualHahn} -xp_n(x)=p_{n+1}(x)-(A_n+C_n)p_n(x)+A_{n-1}C_np_{n-1}(x), -\end{equation} -where -$$R_n(\lambda(x);\gamma,\delta,N)=\frac{1}{(\gamma+1)_n(-N)_n}p_n(\lambda(x)).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvDualHahn} --ny(x)=B(x)y(x+1)-\left[B(x)+D(x)\right]y(x)+D(x)y(x-1), -\end{equation} -where -$$y(x)=R_n(\lambda(x);\gamma,\delta,N)$$ -and -$$\left\{\begin{array}{l} -\displaystyle B(x)=\frac{(x+\gamma+1)(x+\gamma+\delta+1)(N-x)}{(2x+\gamma+\delta+1)(2x+\gamma+\delta+2)}\\[5mm] -\displaystyle D(x)=\frac{x(x+\gamma+\delta+N+1)(x+\delta)}{(2x+\gamma+\delta)(2x+\gamma+\delta+1)}. -\end{array}\right.$$ - -\subsection*{Forward shift operator} -\begin{eqnarray} -\label{shift1DualHahnI} -& &R_n(\lambda(x+1);\gamma,\delta,N)-R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}=-\frac{n(2x+\gamma+\delta+2)}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift1DualHahnII} -\frac{\Delta R_n(\lambda(x);\gamma,\delta,N)}{\Delta\lambda(x)}= --\frac{n}{(\gamma+1)N}R_{n-1}(\lambda(x);\gamma+1,\delta,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2DualHahnI} -& &(x+\gamma)(x+\gamma+\delta)(N+1-x)R_n(\lambda(x);\gamma,\delta,N)\nonumber\\ -& &{}\mathindent{}-x(x+\gamma+\delta+N+1)(x+\delta)R_n(\lambda(x-1);\gamma,\delta,N)\nonumber\\ -& &{}=\gamma(N+1)(2x+\gamma+\delta)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2DualHahnII} -& &\frac{\nabla\left[\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N)\right]}{\nabla\lambda(x)}\nonumber\\ -& &{}=\frac{1}{\gamma+\delta}\omega(x;\gamma-1,\delta,N+1)R_{n+1}(\lambda(x);\gamma-1,\delta,N+1), -\end{eqnarray} -where -$$\omega(x;\gamma,\delta,N)=\frac{(-1)^x(\gamma+1)_x(\gamma+\delta+1)_x(-N)_x} -{(\gamma+\delta+N+2)_x(\delta+1)_xx!}.$$ - -\newpage - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodDualHahn} -\omega(x;\gamma,\delta,N)R_n(\lambda(x);\gamma,\delta,N) -=(\gamma+\delta+1)_n\left(\nabla_{\lambda}\right)^n\left[\omega(x;\gamma+n,\delta,N-n)\right], -\end{equation} -where -$$\nabla_{\lambda}:=\frac{\nabla}{\nabla\lambda(x)}.$$ - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenDualHahn1} -(1-t)^{N-x}\,\hyp{2}{1}{-x,-x-\delta}{\gamma+1}{t} -=\sum_{n=0}^N\frac{(-N)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn2} -& &(1-t)^x\,\hyp{2}{1}{x-N,x+\gamma+1}{-\delta-N}{t}\nonumber\\ -& &=\sum_{n=0}^N\frac{(\gamma+1)_n(-N)_n}{(-\delta-N)_nn!}R_n(\lambda(x);\gamma,\delta,N)t^n. -\end{eqnarray} - -\begin{equation} -\label{GenDualHahn3} -\left[\expe^t\,\hyp{2}{2}{-x,x+\gamma+\delta+1}{\gamma+1,-N}{-t}\right]_N=\sum_{n=0}^N -\frac{R_n(\lambda(x);\gamma,\delta,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenDualHahn4} -& &\left[(1-t)^{-\epsilon}\,\hyp{3}{2}{\epsilon,-x,x+\gamma+\delta+1}{\gamma+1,-N}{\frac{t}{t-1}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\epsilon)_n}{n!}R_n(\lambda(x);\gamma,\delta,N)t^n, -\quad\textrm{$\epsilon$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Racah $\rightarrow$ Dual Hahn} -If we take $\alpha+1=-N$ and let $\beta\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we obtain the dual Hahn polynomials: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);-N-1,\beta,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -And if we take $\beta=-\delta-N-1$ and let $\alpha\rightarrow\infty$ in the definition (\ref{DefRacah}) -of the Racah polynomials, then we also obtain the dual Hahn polynomials: -$$\lim_{\alpha\rightarrow\infty} -R_n(\lambda(x);\alpha,-\delta-N-1,\gamma,\delta)=R_n(\lambda(x);\gamma,\delta,N).$$ -Finally, if we take $\gamma+1=-N$ and $\delta\rightarrow\alpha+\delta+N+1$ in the definition -(\ref{DefRacah}) of the Racah polynomials and take the limit -$\beta\rightarrow\infty$ we find the dual Hahn polynomials in the following way: -$$\lim_{\beta\rightarrow\infty} -R_n(\lambda(x);\alpha,\beta,-N-1,\alpha+\delta+N+1)=R_n(\lambda(x);\alpha,\delta,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -The Meixner polynomials given by (\ref{DefMeixner}) are obtained from the dual Hahn polynomials -if we take $\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ and let $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c). -\end{equation} - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials given by (\ref{DefKrawtchouk}) can be obtained from the dual -Hahn polynomials by setting $\gamma=pt$, $\delta=(1-p)t$ and letting $t\rightarrow\infty$: -\begin{equation} -\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N). -\end{equation} - -\subsection*{Remark} -If we interchange the role of $x$ and $n$ in the definition (\ref{DefDualHahn}) -of the dual Hahn polynomials we obtain the Hahn polynomials given by (\ref{DefHahn}). - -\noindent -Since -$$R_n(\lambda(x);\gamma,\delta,N)=Q_x(n;\gamma,\delta,N)$$ -we obtain the dual orthogonality relation for the dual Hahn polynomials -from the orthogonality relation (\ref{OrtHahn}) for the Hahn polynomials: -\begin{eqnarray*} -& &\sum_{n=0}^N\binom{\gamma+n}{n}\binom{\delta+N-n}{N-n} R_n(\lambda(x);\gamma,\delta,N)R_n(\lambda(y);\gamma,\delta,N)\\ -& &{}=\frac{(-1)^x(x+\gamma+\delta+1)_{N+1}(\delta+1)_xx!} -{(2x+\gamma+\delta+1)(\gamma+1)_x(-N)_xN!}\delta_{xy},\quad x,y \in \{0,1,2,\ldots,N\}. -\subsection*{9.6 Dual Hahn} -\label{sec9.6} -% -\paragraph{Special values} -By \eqref{44} and \eqref{45} we have -\begin{equation} -R_n(N(N+\ga+\de+1);\ga,\de,N)=\frac{(-N-\de)_n}{(\ga+1)_n}\,. -\label{47} -\end{equation} -It follows from \eqref{95} and \eqref{45} that -\begin{equation} -R_N(x(x+\ga+\de+1);\ga,\de,N) -=\frac{(-1)^x(\de+1)_x}{(\ga+1)_x}\qquad(x=0,1,\ldots,N). -\label{101} -\end{equation} -% -\paragraph{Symmetries} -Write the weight in (9.6.2) as -\begin{equation} -w_x(\al,\be,N):=N!\,\frac{2x+\ga+\de+1}{(x+\ga+\de+1)_{N+1}}\, -\frac{(\ga+1)_x}{(\de+1)_x}\,\binom Nx. -\label{98} -\end{equation} -Then -\begin{equation} -(\de+1)_N\,w_{N-x}(\ga,\de,N)= -(-\ga-N)_N\,w_x(-\de-N-1,-\ga-N-1,N). -\label{99} -\end{equation} -Hence, by (9.6.2), -\begin{equation} -\frac{R_n((N-x)(N-x+\ga+\de+1);\ga,\de,N)}{R_n(N(N+\ga+\de+1);\ga,\de,N)} -=R_n(x(x-2N-\ga-\de-1);-N-\de-1,-N-\ga-1,N). -\label{97} -\end{equation} -Alternatively, \eqref{97} follows from (9.6.1) and -\mycite{DLMF}{(16.4.11)}. - -It follows from \eqref{96} and \eqref{45} that -\begin{equation} -\frac{R_{N-n}(x(x+\ga+\de+1);\ga,\de,N)} -{R_N(x(x+\ga+\de+1);\ga,\de,N)} -=R_n(x(x+\ga+\de+1);\de,\ga,N)\qquad(x=0,1,\ldots,N). -\label{102} -\end{equation} -% -\paragraph{Re: (9.6.11).} -The generating function (9.6.11) can be written in a more conceptual way as -\begin{equation} -(1-t)^x\,\hyp21{x-N,x+\ga+1}{-\de-N}t=\frac{N!}{(\de+1)_N}\, -\sum_{n=0}^N \om_n\,R_n(\la(x);\ga,\de,N)\,t^n, -\label{2} -\end{equation} -where -\begin{equation} -\om_n:=\binom{\ga+n}n \binom{\de+N-n}{N-n}, -\label{3} -\end{equation} -i.e., the denominator on the \RHS\ of (9.6.2). -By the duality between Hahn polynomials and dual Hahn polynomials (see \eqref{45}) the above generating function can be rewritten in -terms of Hahn polynomials: -\begin{equation} -(1-t)^n\,\hyp21{n-N,n+\al+1}{-\be-N}t=\frac{N!}{(\be+1)_N}\, -\sum_{x=0}^N w_x\,Q_n(x;\al,\be,N)\,t^x, -\label{4} -\end{equation} -where -\begin{equation} -w_x:=\binom{\al+x}x \binom{\be+N-x}{N-x}, -\label{5} -\end{equation} -i.e., the weight occurring in the orthogonality relation (9.5.2) -for Hahn polynomials. -\paragraph{Re: (9.6.15).} -There should be a closing bracket before the equality sign. -\end{eqnarray*} - -\subsection*{References} -\cite{Askey2005}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, -\cite{Ismail2005II}, \cite{Karlin61}, \cite{Koorn81}, \cite{Koorn88}, \cite{Lesky93}, -\cite{Lesky94I}, \cite{Lesky95I}, \cite{Lesky95II}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{Rahman81II}, \cite{Stanton84}, \cite{Wilson80}. - - -\section{Meixner-Pollaczek}\index{Meixner-Pollaczek polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMP} -P_n^{(\lambda)}(x;\phi)=\frac{(2\lambda)_n}{n!}\expe^{in\phi}\, -\hyp{2}{1}{-n,\lambda+ix}{2\lambda}{1-\expe^{-2i\phi}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMP} -\frac{1}{2\pi}\int_{-\infty}^{\infty} -\e^{(2\phi-\pi)x}\left|\Gamma(\lambda+ix)\right|^2 -P_m^{(\lambda)}(x;\phi)P_n^{(\lambda)}(x;\phi)\,dx -{}=\frac{\Gamma(n+2\lambda)}{(2\sin\phi)^{2\lambda}n!}\,\delta_{mn}, -% \constraint{ -% $\lambda > 0$ & -% $0 < \phi < \pi$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMP} -& &(n+1)P_{n+1}^{(\lambda)}(x;\phi)-2\left[x\sin\phi+(n+\lambda)\cos\phi\right] -P_n^{(\lambda)}(x;\phi)\nonumber\\ -& &{}\mathindent{}+(n+2\lambda-1)P_{n-1}^{(\lambda)}(x;\phi)=0. -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMP} -xp_n(x)=p_{n+1}(x)-\left(\frac{n+\lambda}{\tan\phi}\right)p_n(x)+ -\frac{n(n+2\lambda-1)}{4\sin^2\phi}p_{n-1}(x), -\end{equation} -where -$$P_n^{(\lambda)}(x;\phi)=\frac{(2\sin\phi)^n}{n!}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvMP} -& &\e^{i\phi}(\lambda-ix)y(x+i)+2i\left[x\cos\phi-(n+\lambda)\sin\phi\right]y(x)\nonumber\\ -& &{}\mathindent{}-\e^{-i\phi}(\lambda+ix)y(x-i)=0,\quad y(x)=P_n^{(\lambda)}(x;\phi). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MPI} -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)- -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)=(\expe^{i\phi}-\expe^{-i\phi}) -P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MPII} -\frac{\delta P_n^{(\lambda)}(x;\phi)}{\delta x} -=2\sin\phi\,P_{n-1}^{(\lambda+\frac{1}{2})}(x;\phi). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2MPI} -& &\e^{i\phi}(\lambda-\textstyle\frac{1}{2}-ix) -P_n^{(\lambda)}(x+\textstyle\frac{1}{2}i;\phi)+ -\e^{-i\phi}(\lambda-\textstyle\frac{1}{2}+ix) -P_n^{(\lambda)}(x-\textstyle\frac{1}{2}i;\phi)\nonumber\\ -& &{}=(n+1)P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2MPII} -\frac{\delta\left[\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)\right]}{\delta x}= --(n+1)\omega(x;\lambda-\textstyle\frac{1}{2},\phi) -P_{n+1}^{(\lambda-\frac{1}{2})}(x;\phi), -\end{equation} -where -$$\omega(x;\lambda,\phi)=\Gamma(\lambda+ix)\Gamma(\lambda-ix)\e^{(2\phi-\pi)x}.$$ - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMP} -\omega(x;\lambda,\phi)P_n^{(\lambda)}(x;\phi)=\frac{(-1)^n}{n!} -\left(\frac{\delta}{\delta x}\right)^n\left[\omega(x;\lambda+\textstyle\frac{1}{2}n,\phi)\right]. -\end{equation} - -\newpage - -\subsection*{Generating functions} -\begin{equation} -\label{GenMP1} -(1-\expe^{i\phi}t)^{-\lambda+ix}(1-\expe^{-i\phi}t)^{-\lambda-ix}= -\sum_{n=0}^{\infty}P_n^{(\lambda)}(x;\phi)t^n. -\end{equation} - -\begin{equation} -\label{GenMP2} -\e^t\,\hyp{1}{1}{\lambda+ix}{2\lambda}{(\expe^{-2i\phi}-1)t}= -\sum_{n=0}^{\infty}\frac{P_n^{(\lambda)}(x;\phi)}{(2\lambda)_n\expe^{in\phi}}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenMP3} -& &(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,\lambda+ix}{2\lambda}{\frac{(1-\e^{-2i\phi})t}{t-1}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}\frac{P_n^{(\lambda)}(x;\phi)}{\e^{in\phi}}t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Continuous dual Hahn $\rightarrow$ Meixner-Pollaczek} -The Meixner-Pollaczek polynomials can be obtained from the continuous dual Hahn polynomials -given by (\ref{DefContDualHahn}) by the substitutions $x\rightarrow x-t$, $a=\lambda+it$, -$b=\lambda-it$ and $c=t\cot\phi$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}\frac{S_n((x-t)^2;\lambda+it,\lambda-it,t\cot\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\sin\phi)^n}.$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Meixner-Pollaczek} -By setting $x\rightarrow x+t$, $a=\lambda-it$, $c=\lambda+it$ and $b=d=t\tan\phi$ in the -definition (\ref{DefContHahn}) of the continuous Hahn polynomials and taking the limit -$t\rightarrow\infty$ we obtain the Meixner-Pollaczek polynomials: -$$\lim_{t\rightarrow\infty}\frac{p_n(x+t;\lambda-it,t\tan\phi,\lambda+it,t\tan\phi)}{t^nn!} -=\frac{P_n^{(\lambda)}(x;\phi)}{(\cos\phi)^n}.$$ - -\newpage - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the -Meixner-Pollaczek polynomials by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -\begin{equation} -\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Meixner-Pollaczek -polynomials if we substitute $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -and then let $\lambda\rightarrow\infty$: -\begin{equation} -\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remark} -Since we have for $k-1$ and $\beta>-1$ we have -\begin{eqnarray} -\label{OrtJacobi1} -& &\int_{-1}^1(1-x)^{\alpha}(1+x)^{\beta}P_m^{(\alpha,\beta)}(x)P_n^{(\alpha,\beta)}(x)\,dx\nonumber\\ -& &{}=\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(n+\alpha+1)\Gamma(n+\beta+1)}{\Gamma(n+\alpha+\beta+1)n!}\,\delta_{mn}. -\end{eqnarray} -For $\alpha+\beta<-2N-1$, $\beta>-1$ and $m,n\in\{0,1,2,\ldots,N\}$ we also have -\begin{eqnarray} -\label{OrtJacobi2} -& &\int_1^{\infty}(x+1)^{\alpha}(x-1)^{\beta}P_m^{(\alpha,\beta)}(-x)P_n^{(\alpha,\beta)}(-x)\,dx\nonumber\\ -& &{}=-\frac{2^{\alpha+\beta+1}}{2n+\alpha+\beta+1}\frac{\Gamma(-n-\alpha-\beta)\Gamma(n+\alpha+\beta+1)}{\Gamma(-n-\alpha)n!}\,\delta_{mn}. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecJacobi} -xP_n^{(\alpha,\beta)}(x)&=&\frac{2(n+1)(n+\alpha+\beta+1)}{(2n+\alpha+\beta+1)(2n+\alpha+\beta+2)}P_{n+1}^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent{}+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}\mathindent\mathindent{}+\frac{2(n+\alpha)(n+\beta)}{(2n+\alpha+\beta)(2n+\alpha+\beta+1)}P_{n-1}^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecJacobi} -xp_n(x)&=&p_{n+1}(x)+\frac{\beta^2-\alpha^2}{(2n+\alpha+\beta)(2n+\alpha+\beta+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}+\frac{4n(n+\alpha)(n+\beta)(n+\alpha+\beta)} -{(2n+\alpha+\beta-1)(2n+\alpha+\beta)^2(2n+\alpha+\beta+1)}p_{n-1}(x) -\end{eqnarray} -where -$$P_n^{(\alpha,\beta)}(x)=\frac{(n+\alpha+\beta+1)_n}{2^nn!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{eqnarray} -\label{dvJacobi} -& &(1-x^2)y''(x)+\left[\beta-\alpha-(\alpha+\beta+2)x\right]y'(x)\nonumber\\ -& &{}\mathindent{}+n(n+\alpha+\beta+1)y(x)=0,\quad y(x)=P_n^{(\alpha,\beta)}(x). -\end{eqnarray} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Jacobi} -\frac{d}{dx}P_n^{(\alpha,\beta)}(x)=\frac{n+\alpha+\beta+1}{2}P_{n-1}^{(\alpha+1,\beta+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2JacobiI} -& &(1-x^2)\frac{d}{dx}P_n^{(\alpha,\beta)}(x)+ -\left[(\beta-\alpha)-(\alpha+\beta)x\right]P_n^{(\alpha,\beta)}(x)\nonumber\\ -& &{}=-2(n+1)P_{n+1}^{(\alpha-1,\beta-1)}(x) -\end{eqnarray} -or equivalently -\begin{eqnarray} -\label{shift2JacobiII} -& &\frac{d}{dx}\left[(1-x)^\alpha(1+x)^\beta P_n^{(\alpha,\beta)}(x)\right]\nonumber\\ -& &{}=-2(n+1)(1-x)^{\alpha-1}(1+x)^{\beta-1}P_{n+1}^{(\alpha-1,\beta-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodJacobi} -(1-x)^{\alpha}(1+x)^{\beta}P_n^{(\alpha,\beta)}(x)= -\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x)^{n+\alpha}(1+x)^{n+\beta}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenJacobi1} -\frac{2^{\alpha+\beta}}{R(1+R-t)^{\alpha}(1+R+t)^{\beta}}= -\sum_{n=0}^{\infty}P_n^{(\alpha,\beta)}(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{eqnarray} -\label{GenJacobi2} -& &\hyp{0}{1}{-}{\alpha+1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{\beta+1}{\frac{(x+1)t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{P_n^{(\alpha,\beta)}(x)}{(\alpha+1)_n(\beta+1)_n}t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi3} -& &(1-t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\alpha+1}{\frac{2(x-1)t}{(1-t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\alpha+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi4} -& &(1+t)^{-\alpha-\beta-1}\,\hyp{2}{1}{\frac{1}{2}(\alpha+\beta+1),\frac{1}{2}(\alpha+\beta+2)} -{\beta+1}{\frac{2(x+1)t}{(1+t)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\alpha+\beta+1)_n}{(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n. -\end{eqnarray} - -\begin{eqnarray} -\label{GenJacobi5} -& &\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\alpha+1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,\alpha+\beta+1-\gamma}{\beta+1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty} -\frac{(\gamma)_n(\alpha+\beta+1-\gamma)_n}{(\alpha+1)_n(\beta+1)_n}P_n^{(\alpha,\beta)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2} -\end{eqnarray} -with $\gamma$ arbitrary. - -\subsection*{Limit relations} - -\subsubsection*{Wilson $\rightarrow$ Jacobi} -The Jacobi polynomials can be found from the Wilson polynomials given by (\ref{DefWilson}) by -substituting $a=b=\frac{1}{2}(\alpha+1)$, $c=\frac{1}{2}(\beta+1)+it$, -$d=\frac{1}{2}(\beta+1)-it$ and $x\rightarrow t\sqrt{\frac{1}{2}(1-x)}$ in the -definition (\ref{DefWilson}) of the Wilson polynomials and taking the limit -$t\rightarrow\infty$. In fact we have -$$\lim_{t\rightarrow\infty} -\frac{W_n(\frac{1}{2}(1-x)t^2;\frac{1}{2}(\alpha+1), -\frac{1}{2}(\alpha+1),\frac{1}{2}(\beta+1)+it,\frac{1}{2}(\beta+1)-it)} -{t^{2n}n!}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Continuous Hahn $\rightarrow$ Jacobi} -The Jacobi polynomials follow from the continuous Hahn polynomials given by (\ref{DefContHahn}) -by using the substitution $x\rightarrow \frac{1}{2}xt$, $a=\frac{1}{2}(\alpha+1-it)$, -$b=\frac{1}{2}(\beta+1+it)$, $c=\frac{1}{2}(\alpha+1+it)$ and $d=\frac{1}{2}(\beta+1-it)$ -in (\ref{DefContHahn}), division by $t^n$ and the limit $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty} -\frac{p_n(\frac{1}{2}xt;\frac{1}{2}(\alpha+1-it),\frac{1}{2}(\beta+1+it), -\frac{1}{2}(\alpha+1+it),\frac{1}{2}(\beta+1-it))}{t^n}=P_n^{(\alpha,\beta)}(x).$$ - -\subsubsection*{Hahn $\rightarrow$ Jacobi} -To find the Jacobi polynomials from the Hahn polynomials given by (\ref{DefHahn}) we take -$x\rightarrow Nx$ in (\ref{DefHahn}) and let $N\rightarrow\infty$. In fact we have -$$\lim_{N\rightarrow\infty} -Q_n(Nx;\alpha,\beta,N)=\frac{P_n^{(\alpha,\beta)}(1-2x)}{P_n^{(\alpha,\beta)}(1)}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) can be obtained from the Jacobi -polynomials by setting $x\rightarrow 1-2\beta^{-1}x$ and then the limit $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -The Bessel polynomials given by (\ref{DefBessel}) are obtained from the Jacobi polynomials -if we take $\beta=a-\alpha$ and let $\alpha\rightarrow-\infty$: -\begin{equation} -\lim_{\alpha\rightarrow-\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a). -\end{equation} - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Jacobi polynomials -by taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}. -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefJacobi}) of the Jacobi polynomials can also be written as: -$$P_n^{(\alpha,\beta)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!} -(n+\alpha+\beta+1)_k(\alpha+k+1)_{n-k}\left(\frac{1-x}{2}\right)^k.$$ -In this way the Jacobi polynomials can also be seen as polynomials in the parameters $\alpha$ -and $\beta$. Therefore they can be defined for all $\alpha$ and $\beta$. Then we have the -following connection with the Meixner polynomials given by (\ref{DefMeixner}): -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Jacobi polynomials are related to the pseudo Jacobi polynomials defined by -(\ref{DefPseudoJacobi}) in the following way: -$$P_n(x;\nu,N)=\frac{(-2i)^nn!}{(n-2N-1)_n}P_n^{(-N-1+i\nu,-N-1-i\nu)}(ix).$$ - -\noindent -The Jacobi polynomials are also related to the Gegenbauer (or ultraspherical) polynomials -given by (\ref{DefGegenbauer}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -\subsection*{9.8 Jacobi} -\label{sec9.8} -% -\paragraph{Orthogonality relation} -Write the \RHS\ of (9.8.2) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\begin{split} -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(\be+1)}{\Ga(\al+\be+2)}\,,\sLP -&\frac{h_n}{h_0\,(P_n^{(\al,\be)}(1))^2}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\be+1)_n\,n!}{(\al+1)_n\,(\al+\be+2)_n}\,. -\end{split} -\label{60} -\end{equation} - -In (9.8.3) the numerator factor $\Ga(n+\al+\be+1)$ in the last line should be -$\Ga(\be+1)$. When thus corrected, (9.8.3) can be rewritten as: -\begin{equation} -\begin{split} -&\int_1^\iy P_m^{(\al,\be)}(x)\,P_n^{(\al,\be)}(x)\,(x-1)^\al (x+1)^\be\,dx=h_n\,\de_{m,n}\,,\\ -&\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad-1-\be>\al>-1,\quad m,n<-\thalf(\al+\be+1),\\ -&\frac{h_n}{h_0}= -\frac{n+\al+\be+1}{2n+\al+\be+1}\, -\frac{(\al+1)_n(\be+1)_n}{(\al+\be+2)_n\,n!}\,,\quad -h_0=\frac{2^{\al+\be+1}\Ga(\al+1)\Ga(-\al-\be-1)}{\Ga(-\be)}\,. -\end{split} -\label{122} -\end{equation} - -% -\paragraph{Symmetry} -\begin{equation} -P_n^{(\al,\be)}(-x)=(-1)^n\,P_n^{(\be,\al)}(x). -\label{48} -\end{equation} -Use (9.8.2) and (9.8.5b) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Special values} -\begin{equation} -P_n^{(\al,\be)}(1)=\frac{(\al+1)_n}{n!}\,,\quad -P_n^{(\al,\be)}(-1)=\frac{(-1)^n(\be+1)_n}{n!}\,,\quad -\frac{P_n^{(\al,\be)}(-1)}{P_n^{(\al,\be)}(1)}=\frac{(-1)^n(\be+1)_n}{(\al+1)_n}\,. -\label{50} -\end{equation} -Use (9.8.1) and \eqref{48} or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Generating functions} -Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}. -% -\paragraph{Bilateral generating functions} -For $0\le r<1$ and $x,y\in[-1,1]$ we have in terms of $F_4$ (see~\eqref{62}): -\begin{align} -&\sum_{n=0}^\iy\frac{(\al+\be+1)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac1{(1+r)^{\al+\be+1}} -\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+1),\thalf(\al+\be+2);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big), -\label{58}\sLP -&\sum_{n=0}^\iy\frac{2n+\al+\be+1}{n+\al+\be+1} -\frac{(\al+\be+2)_n\,n!}{(\al+1)_n(\be+1)_n}\,r^n\, -P_n^{(\al,\be)}(x)\,P_n^{(\al,\be)}(y) -=\frac{1-r}{(1+r)^{\al+\be+2}}\nonumber\\ -&\qquad\quad\times F_4\Big(\thalf(\al+\be+2),\thalf(\al+\be+3);\al+1,\be+1; -\frac{r(1-x)(1-y)}{(1+r)^2},\frac{r(1+x)(1+y)}{(1+r)^2}\Big). -\label{59} -\end{align} -Formulas \eqref{58} and \eqref{59} were first -given by Bailey \myciteKLS{91}{(2.1), (2.3)}. -See Stanton \myciteKLS{485} for a shorter proof. -(However, in the second line of -\myciteKLS{485}{(1)} $z$ and $Z$ should be interchanged.)$\;$ -As observed in Bailey \myciteKLS{91}{p.10}, \eqref{59} follows -from \eqref{58} -by applying the operator $r^{-\half(\al+\be-1)}\,\frac d{dr}\circ r^{\half(\al+\be+1)}$ -to both sides of \eqref{58}. -In view of \eqref{60}, formula \eqref{59} is the Poisson kernel for Jacobi -polynomials. The \RHS\ of \eqref{59} makes clear that this kernel is positive. -See also the discussion in Askey \myciteKLS{46}{following (2.32)}. -% -\paragraph{Quadratic transformations} -\begin{align} -\frac{C_{2n}^{(\al+\half)}(x)}{C_{2n}^{(\al+\half)}(1)} -=\frac{P_{2n}^{(\al,\al)}(x)}{P_{2n}^{(\al,\al)}(1)} -&=\frac{P_n^{(\al,-\half)}(2x^2-1)}{P_n^{(\al,-\half)}(1)}\,, -\label{51}\\ -\frac{C_{2n+1}^{(\al+\half)}(x)}{C_{2n+1}^{(\al+\half)}(1)} -=\frac{P_{2n+1}^{(\al,\al)}(x)}{P_{2n+1}^{(\al,\al)}(1)} -&=\frac{x\,P_n^{(\al,\half)}(2x^2-1)}{P_n^{(\al,\half)}(1)}\,. -\label{52} -\end{align} -See p.221, Remarks, last two formulas together with \eqref{50} and \eqref{49}. -Or see \mycite{DLMF}{(18.7.13), (18.7.14)}. -% -\paragraph{Differentiation formulas} -Each differentiation formula is given in two equivalent forms. -\begin{equation} -\begin{split} -\frac d{dx}\left((1-x)^\al P_n^{(\al,\be)}(x)\right)&= --(n+\al)\,(1-x)^{\al-1} P_n^{(\al-1,\be+1)}(x),\\ -\left((1-x)\frac d{dx}-\al\right)P_n^{(\al,\be)}(x)&= --(n+\al)\,P_n^{(\al-1,\be+1)}(x). -\end{split} -\label{68} -\end{equation} -% -\begin{equation} -\begin{split} -\frac d{dx}\left((1+x)^\be P_n^{(\al,\be)}(x)\right)&= -(n+\be)\,(1+x)^{\be-1} P_n^{(\al+1,\be-1)}(x),\\ -\left((1+x)\frac d{dx}+\be\right)P_n^{(\al,\be)}(x)&= -(n+\be)\,P_n^{(\al+1,\be-1)}(x). -\end{split} -\label{69} -\end{equation} -Formulas \eqref{68} and \eqref{69} follow from -\mycite{DLMF}{(15.5.4), (15.5.6)} -together with (9.8.1). They also follow from each other by \eqref{48}. -% -\paragraph{Generalized Gegenbauer polynomials} -These are defined by -\begin{equation} -S_{2m}^{(\al,\be)}(x):=\const P_m^{(\al,\be)}(2x^2-1),\qquad -S_{2m+1}^{(\al,\be)}(x):=\const x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{70} -\end{equation} -in the notation of \myciteKLS{146}{p.156} -(see also \cite{K27}), while \cite[Section 1.5.2]{K26} -has $C_n^{(\la,\mu)}(x)=\const\allowbreak\times S_n^{(\la-\half,\mu-\half)}(x)$. -For $\al,\be>-1$ we have the orthogonality relation -\begin{equation} -\int_{-1}^1 S_m^{(\al,\be)}(x)\,S_n^{(\al,\be)}(x)\,|x|^{2\be+1}(1-x^2)^\al\,dx -=0\qquad(m\ne n). -\label{71} -\end{equation} -For $\be=\al-1$ generalized Gegenbauer polynomials are limit cases of -continuous $q$-ultraspherical polynomials, see \eqref{176}. - -If we define the {\em Dunkl operator} $T_\mu$ by -\begin{equation} -(T_\mu f)(x):=f'(x)+\mu\,\frac{f(x)-f(-x)}x -\label{72} -\end{equation} -and if we choose the constants in \eqref{70} as -\begin{equation} -S_{2m}^{(\al,\be)}(x)=\frac{(\al+\be+1)_m}{(\be+1)_m}\, P_m^{(\al,\be)}(2x^2-1),\quad -S_{2m+1}^{(\al,\be)}(x)=\frac{(\al+\be+1)_{m+1}}{(\be+1)_{m+1}}\, -x\,P_m^{(\al,\be+1)}(2x^2-1) -\label{73} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_{\be+\half}S_n^{(\al,\be)}=2(\al+\be+1)\,S_{n-1}^{(\al+1,\be)}. -\label{74} -\end{equation} -Formula \eqref{74} with \eqref{73} substituted gives rise to two -differentiation formulas involving Jacobi polynomials which are equivalent to -(9.8.7) and \eqref{69}. - -Composition of \eqref{74} with itself gives -\[ -T_{\be+\half}^2S_n^{(\al,\be)}=4(\al+\be+1)(\al+\be+2)\,S_{n-2}^{(\al+2,\be)}, -\] -which is equivalent to the composition of (9.8.7) and \eqref{69}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\be+1}x\,\frac d{dx}\right)P_n^{(\al,\be)}(2x^2-1) -=4(n+\al+\be+1)(n+\be)\,P_{n-1}^{(\al+2,\be)}(2x^2-1). -\label{75} -\end{equation} -Formula \eqref{75} was also given in \myciteKLS{322}{(2.4)}. -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\cite{Abram}, \cite{Ahmed+82}, \cite{Allaway89}, \cite{NAlSalam66}, \cite{AlSalam64}, -\cite{AlSalamChihara72}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey70}, \cite{Askey72}, \cite{Askey73}, \cite{Askey74}, \cite{Askey75}, \cite{Askey78}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyFitch}, \cite{AskeyGasper71I}, \cite{AskeyGasper71II}, -\cite{AskeyGasper76}, \cite{AskeyWainger}, \cite{AskeyWilson85}, \cite{Bailey38}, \cite{Brafman51}, -\cite{Brown}, \cite{Carlitz61II}, \cite{Carlitz67}, \cite{ChenIsmail91}, \cite{Chihara78}, -\cite{Chow+}, \cite{Ciesielski}, \cite{Cooper+}, \cite{DetteStudden92}, \cite{DetteStudden95}, -\cite{DijksmaKoorn}, \cite{DimitrovRafaeli}, \cite{DimitrovRodrigues}, \cite{Doha2002I}, -\cite{Doha2003I}, \cite{Doha2004II}, \cite{Dunkl84}, \cite{ElbertLaforgia87II}, -\cite{ElbertLaforgiaRodono}, \cite{Erdelyi+}, \cite{Faldey}, \cite{FoataLeroux}, -\cite{Gasper69}, \cite{Gasper70I}, \cite{Gasper70II}, \cite{Gasper71I}, \cite{Gasper71II}, -\cite{Gasper72I}, \cite{Gasper72II}, \cite{Gasper73I}, \cite{Gasper73II}, \cite{Gasper74}, -\cite{Gasper77}, \cite{Gatteschi87}, \cite{Gautschi2008}, \cite{Gautschi2009I}, -\cite{Gautschi2009II}, \cite{GautschiLeopardi}, \cite{GawronskiShawyer}, \cite{Godoy+}, -\cite{Grad}, \cite{Hajmirzaahmad94}, \cite{HartmannStephan}, \cite{Horton}, \cite{Ismail74}, -\cite{Ismail77}, \cite{Ismail96}, \cite{Ismail2005II}, \cite{IsmailLi}, -\cite{IsmailMassonRahman}, \cite{Kochneff97I}, \cite{Koekoek99}, \cite{Koekoek2000}, -\cite{Koelink96II}, \cite{Koorn73}, \cite{Koorn74}, \cite{Koorn75}, \cite{Koorn77II}, -\cite{Koorn78}, \cite{Koorn72}, \cite{Koorn85}, \cite{Koorn88}, \cite{KuijlaarsMartinez}, -\cite{Kuijlaars+}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Laine}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{Li96}, \cite{Li97}, \cite{LopezTemme2004}, \cite{Luke}, \cite{Martinez}, -\cite{Mathai}, \cite{Meijer}, \cite{Miller89}, \cite{MoakSaffVarga}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Olver}, \cite{Prasad}, \cite{Rahman76I}, \cite{Rahman76II}, -\cite{Rahman77}, \cite{Rahman81I}, \cite{RahmanShah}, \cite{Rainville}, \cite{Rusev}, -\cite{Shi}, \cite{Srivastava69II}, \cite{Srivastava71}, \cite{Srivastava82}, -\cite{SrivastavaSinghal}, \cite{Stanton80I}, \cite{Stanton90}, \cite{Szego75}, \cite{Temme}, -\cite{Vertesi}, \cite{Wimp87}, \cite{WongZhang94}, \cite{WongZhang2006}, \cite{Zarzo+}, -\cite{Zayed}. - -\section*{Special cases} - -\subsection{Gegenbauer / Ultraspherical}\index{Gegenbauer polynomials} -\index{Ultraspherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Gegenbauer (or ultraspherical) polynomials are Jacobi polynomials with -$\alpha=\beta=\lambda-\frac{1}{2}$ and another normalization: -\begin{eqnarray} -\label{DefGegenbauer} -C_n^{(\lambda)}(x)&=&\frac{(2\lambda)_n}{(\lambda+\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},\lambda-\frac{1}{2})}(x)\nonumber\\ -&=&\frac{(2\lambda)_n}{n!}\,\hyp{2}{1}{-n,n+2\lambda} -{\lambda+\frac{1}{2}}{\frac{1-x}{2}},\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtGegenbauer} -& &\int_{-1}^1(1-x^2)^{\lambda-\frac{1}{2}}C_m^{(\lambda)}(x)C_n^{(\lambda)}(x)\,dx\nonumber\\ -& &{}=\frac{\pi\Gamma(n+2\lambda)2^{1-2\lambda}}{\left\{\Gamma(\lambda)\right\}^2(n+\lambda)n!}\,\delta_{mn}, -\quad\lambda>-\frac{1}{2}\quad\lambda\neq 0. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecGegenbauer} -2(n+\lambda)xC_n^{(\lambda)}(x)=(n+1)C_{n+1}^{(\lambda)}(x)+(n+2\lambda-1)C_{n-1}^{(\lambda)}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecGegenbauer} -xp_n(x)=p_{n+1}(x)+\frac{n(n+2\lambda-1)}{4(n+\lambda-1)(n+\lambda)}p_{n-1}(x), -\end{equation} -where -$$C_n^{(\lambda)}(x)=\frac{2^n(\lambda)_n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvGegenbauer} -(1-x^2)y''(x)-(2\lambda+1)xy'(x)+n(n+2\lambda)y(x)=0,\quad y(x)=C_n^{(\lambda)}(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Gegenbauer} -\frac{d}{dx}C_n^{(\lambda)}(x)=2\lambda C_{n-1}^{(\lambda+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2GegenbauerI} -(1-x^2)\frac{d}{dx}C_n^{(\lambda)}(x)+(1-2\lambda)xC_n^{(\lambda)}(x)= --\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)} C_{n+1}^{(\lambda-1)}(x) -\end{equation} -or equivalently -\begin{eqnarray} -\label{shift2GegenbauerII} -& &\frac{d}{dx}\left[(1-x^2)^{\lambda-\textstyle\frac{1}{2}}C_n^{(\lambda)}(x)\right]\nonumber\\ -& &{}=-\frac{(n+1)(2\lambda+n-1)}{2(\lambda-1)}(1-x^2)^{\lambda-\textstyle\frac{3}{2}}C_{n+1}^{(\lambda-1)}(x). -\end{eqnarray} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodGegenbauer} -(1-x^2)^{\lambda-\frac{1}{2}}C_n^{(\lambda)}(x)= -\frac{(2\lambda)_n(-1)^n}{(\lambda+\frac{1}{2})_n2^nn!}\left(\frac{d}{dx}\right)^n -\left[(1-x^2)^{\lambda+n-\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenGegenbauer1} -(1-2xt+t^2)^{-\lambda}=\sum_{n=0}^{\infty}C_n^{(\lambda)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer2} -R^{-1}\left(\frac{1+R-xt}{2}\right)^{\frac{1}{2}-\lambda}=\sum_{n=0}^{\infty} -\frac{(\lambda+\frac{1}{2})_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenGegenbauer3} -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x+1)t}{2}} -=\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}t^n. -\end{equation} - -\begin{equation} -\label{GenGegenbauer4} -\e^{xt}\,\hyp{0}{1}{-}{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{C_n^{(\lambda)}(x)}{(2\lambda)_n}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenGegenbauer5} -& &\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2\lambda-\gamma}{\lambda+\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2\lambda-\gamma)_n} -{(2\lambda)_n(\lambda+\frac{1}{2})_n}C_n^{(\lambda)}(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenGegenbauer6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}} -{\lambda+\frac{1}{2}}{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2\lambda)_n}C_n^{(\lambda)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relation} - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Gegenbauer (or -ultraspherical) polynomials by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}. -\end{equation} - -\subsection*{Remarks} -The case $\lambda=0$ needs another normalization. In that case we have the -Chebyshev polynomials of the first kind described in the next subsection. - -\noindent -The Gegenbauer (or ultraspherical) polynomials are related to the Jacobi polynomials -given by (\ref{DefJacobi}) by the quadratic transformations: -$$C_{2n}^{(\lambda)}(x)=\frac{(\lambda)_n}{(\frac{1}{2})_n} -P_n^{(\lambda-\frac{1}{2},-\frac{1}{2})}(2x^2-1)$$ -and -$$C_{2n+1}^{(\lambda)}(x)=\frac{(\lambda)_{n+1}}{(\frac{1}{2})_{n+1}} -\subsection*{9.8.1 Gegenbauer / Ultraspherical} -\label{sec9.8.1} -% -\paragraph{Notation} -Here the Gegenbauer polynomial is denoted by $C_n^\la$ instead of $C_n^{(\la)}$. -% -\paragraph{Orthogonality relation} -Write the \RHS\ of (9.8.20) as $h_n\,\de_{m,n}$. Then -\begin{equation} -\frac{h_n}{h_0}= -\frac\la{\la+n}\,\frac{(2\la)_n}{n!}\,,\quad -h_0=\frac{\pi^\half\,\Ga(\la+\thalf)}{\Ga(\la+1)},\quad -\frac{h_n}{h_0\,(C_n^\la(1))^2}= -\frac\la{\la+n}\,\frac{n!}{(2\la)_n}\,. -\label{61} -\end{equation} -% -\paragraph{Hypergeometric representation} -Beside (9.8.19) we have also -\begin{equation} -C_n^\lambda(x)=\sum_{\ell=0}^{\lfloor n/2\rfloor}\frac{(-1)^{\ell}(\lambda)_{n-\ell}} -{\ell!\;(n-2\ell)!}\,(2x)^{n-2\ell} -=(2x)^{n}\,\frac{(\lambda)_{n}}{n!}\, -\hyp21{-\thalf n,-\thalf n+\thalf}{1-\la-n}{\frac1{x^2}}. -\label{57} -\end{equation} -See \mycite{DLMF}{(18.5.10)}. -% -\paragraph{Special value} -\begin{equation} -C_n^{\la}(1)=\frac{(2\la)_n}{n!}\,. -\label{49} -\end{equation} -Use (9.8.19) or see \mycite{DLMF}{Table 18.6.1}. -% -\paragraph{Expression in terms of Jacobi} -% -\begin{equation} -\frac{C_n^\la(x)}{C_n^\la(1)}= -\frac{P_n^{(\la-\half,\la-\half)}(x)}{P_n^{(\la-\half,\la-\half)}(1)}\,,\qquad -C_n^\la(x)=\frac{(2\la)_n}{(\la+\thalf)_n}\,P_n^{(\la-\half,\la-\half)}(x). -\label{65} -\end{equation} -% -\paragraph{Re: (9.8.21)} -By iteration of recurrence relation (9.8.21): -\begin{multline} -x^2 C_n^\la(x)= -\frac{(n+1)(n+2)}{4(n+\la)(n+\la+1)}\,C_{n+2}^\la(x)+ -\frac{n^2+2n\la+\la-1}{2(n+\la-1)(n+\la+1)}\,C_n^\la(x)\\ -+\frac{(n+2\la-1)(n+2\la-2)}{4(n+\la)(n+\la-1)}\,C_{n-2}^\la(x). -\label{6} -\end{multline} -% -\paragraph{Bilateral generating functions} -\begin{multline} -\sum_{n=0}^\iy\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac1{(1-2rxy+r^2)^\la}\,\hyp21{\thalf\la,\thalf(\la+1)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\\ -(r\in(-1,1),\;x,y\in[-1,1]). -\label{66} -\end{multline} -For the proof put $\be:=\al$ in \eqref{58}, then use \eqref{63} and \eqref{65}. -The Poisson kernel for Gegenbauer polynomials can be derived in a similar way -from \eqref{59}, or alternatively by applying the operator -$r^{-\la+1}\frac d{dr}\circ r^\la$ to both sides of \eqref{66}: -\begin{multline} -\sum_{n=0}^\iy\frac{\la+n}\la\,\frac{n!}{(2\la)_n}\,r^n\,C_n^\la(x)\,C_n^\la(y) -=\frac{1-r^2}{(1-2rxy+r^2)^{\la+1}}\\ -\times\hyp21{\thalf(\la+1),\thalf(\la+2)}{\la+\thalf} -{\frac{4r^2(1-x^2)(1-y^2)}{(1-2rxy+r^2)^2}}\qquad -(r\in(-1,1),\;x,y\in[-1,1]). -\label{67} -\end{multline} -Formula \eqref{67} was obtained by Gasper \& Rahman \myciteKLS{234}{(4.4)} -as a limit case of their formula for the Poisson kernel for continuous -$q$-ultraspherical polynomials. -% -\paragraph{Trigonometric expansions} -By \mycite{DLMF}{(18.5.11), (15.8.1)}: -\begin{align} -C_n^{\la}(\cos\tha) -&=\sum_{k=0}^n\frac{(\la)_k(\la)_{n-k}}{k!\,(n-k)!}\,e^{i(n-2k)\tha} -=e^{in\tha}\frac{(\la)_n}{n!}\, -\hyp21{-n,\la}{1-\la-n}{e^{-2i\tha}}\label{103}\\ -&=\frac{(\la)_n}{2^\la n!}\, -e^{-\half i\la\pi}e^{i(n+\la)\tha}\,(\sin\tha)^{-\la}\, -\hyp21{\la,1-\la}{1-\la-n}{\frac{i e^{-i\tha}}{2\sin\tha}}\label{104}\\ -&=\frac{(\la)_n}{n!}\,\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1-\la-n)_k k!}\, -\frac{\cos((n-k+\la)\tha+\thalf(k-\la)\pi)}{(2\sin\tha)^{k+\la}}\,.\label{105} -\end{align} -In \eqref{104} and \eqref{105} we require that -$\tfrac16\pi<\tha<\tfrac56\pi$. Then the convergence is absolute for $\la>\thalf$ -and conditional for $0<\la\le\thalf$. - -By \mycite{DLMF}{(14.13.1), (14.3.21), (15.8.1)]}: -\begin{align} -C_n^\la(\cos\tha)&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\sum_{k=0}^\iy\frac{(1-\la)_k(n+1)_k}{(n+\la+1)_k k!}\, -\sin\big((2k+n+1)\tha\big) -\label{7}\\ -&=\frac{2\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{1-2\la}\, -\Im\!\!\left(e^{i(n+1)\tha}\,\hyp21{1-\la,n+1}{n+\la+1}{e^{2i\tha}}\right)\nonumber\\ -&=\frac{2^\la\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\, -\frac{(2\la)_n}{(\la+1)_n}\,(\sin\tha)^{-\la}\, -\Re\!\!\left(e^{-\thalf i\la\pi}e^{i(n+\la)\tha}\, -\hyp21{\la,1-\la}{1+\la+n}{\frac{e^{i\tha}}{2i\sin\tha}}\right)\nonumber\\ -&=\frac{2^{2\la}\Ga(\la+\thalf)}{\pi^\half\Ga(\la+1)}\,\frac{(2\la)_n}{(\la+1)_n}\, -\sum_{k=0}^\iy\frac{(\la)_k(1-\la)_k}{(1+\la+n)_k k!}\, -\frac{\cos((n+k+\la)\tha-\thalf(k+\la)\pi)}{(2\sin\tha)^{k+\la}}\,. -\label{106} -\end{align} -We require that $0<\tha<\pi$ in \eqref{7} and $\tfrac16\pi<\tha<\tfrac56\pi$ in -\eqref{106} The convergence is absolute for $\la>\thalf$ and conditional for -$0<\la\le\thalf$. -For $\la\in\Zpos$ the above series terminate after the term with -$k=\la-1$. -Formulas \eqref{7} and \eqref{106} are also given in -\mycite{Sz}{(4.9.22), (4.9.25)}. -% -\paragraph{Fourier transform} -\begin{equation} -\frac{\Ga(\la+1)}{\Ga(\la+\thalf)\,\Ga(\thalf)}\, -\int_{-1}^1 \frac{C_n^\la(y)}{C_n^\la(1)}\,(1-y^2)^{\la-\half}\, -e^{ixy}\,dy -=i^n\,2^\la\,\Ga(\la+1)\,x^{-\la}\,J_{\la+n}(x). -\label{8} -\end{equation} -See \mycite{DLMF}{(18.17.17) and (18.17.18)}. -% -\paragraph{Laplace transforms} -\begin{equation} -\frac2{n!\,\Ga(\la)}\, -\int_0^\iy H_n(tx)\,t^{n+2\la-1}\,e^{-t^2}\,dt=C_n^\la(x). -\label{56} -\end{equation} -See Nielsen \cite[p.48, (4) with p.47, (1) and p.28, (10)]{K4} (1918) -or Feldheim \cite[(28)]{K3} (1942). -\begin{equation} -\frac2{\Ga(\la+\thalf)}\,\int_0^1 \frac{C_n^\la(t)}{C_n^\la(1)}\, -(1-t^2)^{\la-\half}\,t^{-1}\,(x/t)^{n+2\la+1}\,e^{-x^2/t^2}\,dt -=2^{-n}\,H_n(x)\,e^{-x^2}\quad(\la>-\thalf). -\label{46} -\end{equation} -Use Askey \& Fitch \cite[(3.29)]{K2} for $\al=\pm\thalf$ together with -\eqref{48}, \eqref{51}, \eqref{52}, \eqref{54} and \eqref{55}. -\paragraph{Addition formula} (see \mycite{AAR}{(9.8.5$'$)]}) -\begin{multline} -R_n^{(\al,\al)}\big(xy+(1-x^2)^\half(1-y^2)^\half t\big) -=\sum_{k=0}^n \frac{(-1)^k(-n)_k\,(n+2\al+1)_k}{2^{2k}((\al+1)_k)^2}\\ -\times(1-x^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(x)\,(1-y^2)^{k/2} R_{n-k}^{(\al+k,\al+k)}(y)\, -\om_k^{(\al-\half,\al-\half)}\,R_k^{(\al-\half,\al-\half)}(t), -\label{108} -\end{multline} -where -\[ -R_n^{(\al,\be)}(x):=P_n^{(\al,\be)}(x)/P_n^{(\al,\be)}(1),\quad -\om_n^{(\al,\be)}:=\frac{\int_{-1}^1 (1-x)^\al(1+x)^\be\,dx} -{\int_{-1}^1 (R_n^{(\al,\be)}(x))^2\,(1-x)^\al(1+x)^\be\,dx}\,. -\] -xP_n^{(\lambda-\frac{1}{2},\frac{1}{2})}(2x^2-1).$$ - -\subsection*{References} -\cite{Abram}, \cite{Ahmed+86}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, \cite{Askey67}, \cite{Askey74}, \cite{Askey75}, -\cite{Askey89I}, \cite{AskeyFitch}, \cite{AskeyKoornRahman}, \cite{Berg}, \cite{BilodeauI}, -\cite{BojanovNikolov}, \cite{Brafman51}, \cite{Brafman57I}, \cite{Brown}, -\cite{BustozIsmail82}, \cite{BustozIsmail83}, \cite{BustozIsmail89}, \cite{BustozSavage79}, -\cite{BustozSavage80}, \cite{Carlitz61II}, \cite{Chihara78}, \cite{Common}, \cite{Danese}, -\cite{Dette94}, \cite{DijksmaKoorn}, \cite{DilcherStolarsky}, \cite{Dimitrov96}, -\cite{Dimitrov2003}, \cite{Doha2002II}, \cite{Driver}, \cite{ElbertLaforgia86I}, -\cite{ElbertLaforgia86II}, \cite{ElbertLaforgia90}, \cite{Erdelyi+}, \cite{Exton96}, -\cite{Gasper69}, \cite{Gasper72II}, \cite{Gasper85}, \cite{Grad}, \cite{Ismail74}, -\cite{Ismail2005II}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{Laforgia}, \cite{LewanowiczI}, -\cite{Lorch}, \cite{Mathai}, \cite{Nagel}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, -\cite{RahmanShah}, \cite{Rainville}, \cite{Reimer}, \cite{Sartoretto}, \cite{Srivastava71}, -\cite{Szego75}, \cite{Temme}, \cite{Viswanathan}, \cite{Zayed}. - -\subsection{Chebyshev}\index{Chebyshev polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Chebyshev polynomials of the first kind can be obtained from the Jacobi -polynomials by taking $\alpha=\beta=-\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevI} -T_n(x)=\frac{P_n^{(-\frac{1}{2},-\frac{1}{2})}(x)}{P_n^{(-\frac{1}{2},-\frac{1}{2})}(1)} -=\hyp{2}{1}{-n,n}{\frac{1}{2}}{\frac{1-x}{2}} -\end{equation} -and the Chebyshev polynomials of the second kind can be obtained from the -Jacobi polynomials by taking $\alpha=\beta=\frac{1}{2}$: -\begin{equation} -\label{DefChebyshevII} -U_n(x)=(n+1)\frac{P_n^{(\frac{1}{2},\frac{1}{2})}(x)}{P_n^{(\frac{1}{2},\frac{1}{2})}(1)} -=(n+1)\,\hyp{2}{1}{-n,n+2}{\frac{3}{2}}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtChebyshevI} -\int_{-1}^1(1-x^2)^{-\frac{1}{2}}T_m(x)T_n(x)\,dx= -\left\{\begin{array}{ll} -\displaystyle\frac{\cpi}{2}\,\delta_{mn}, & n\neq 0\\[5mm] -\cpi\,\delta_{mn}, & n=0. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{OrtChebyshevII} -\int_{-1}^1(1-x^2)^{\frac{1}{2}}U_m(x)U_n(x)\,dx=\frac{\cpi}{2}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relations} -\begin{equation} -\label{RecChebyshevI} -2xT_n(x)=T_{n+1}(x)+T_{n-1}(x),\quad T_{0}(x)=1\quad\textrm{and}\quad T_1(x)=x. -\end{equation} - -\begin{equation} -\label{RecChebyshevII} -2xU_n(x)=U_{n+1}(x)+U_{n-1}(x),\quad U_{0}(x)=1\quad\textrm{and}\quad U_1(x)=2x. -\end{equation} - -\subsection*{Normalized recurrence relations} -\begin{equation} -\label{NormRecChebyshevI} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$T_1(x)=p_1(x)=x\quad\textrm{and}\quad T_n(x)=2^np_n(x),\quad n\neq 1.$$ - -\begin{equation} -\label{NormRecChebyshevII} -xp_n(x)=p_{n+1}(x)+\frac{1}{4}p_{n-1}(x), -\end{equation} -where -$$U_n(x)=2^np_n(x).$$ - -\subsection*{Differential equations} -\begin{equation} -\label{dvChebyshevI} -(1-x^2)y''(x)-xy'(x)+n^2y(x)=0,\quad y(x)=T_n(x). -\end{equation} - -\begin{equation} -\label{dvChebyshevII} -(1-x^2)y''(x)-3xy'(x)+n(n+2)y(x)=0,\quad y(x)=U_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Chebyshev} -\frac{d}{dx}T_n(x)=nU_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2ChebyshevI} -(1-x^2)\frac{d}{dx}U_n(x)-xU_n(x)=-(n+1)T_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2ChebyshevII} -\frac{d}{dx}\left[\left(1-x^2\right)^{\frac{1}{2}}U_n(x)\right] -=-(n+1)\left(1-x^2\right)^{-\frac{1}{2}}T_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formulas} -\begin{equation} -\label{RodChebyshevI} -(1-x^2)^{-\frac{1}{2}}T_n(x)=\frac{(-1)^n}{(\frac{1}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n-\frac{1}{2}}\right]. -\end{equation} - -\begin{equation} -\label{RodChebyshevII} -(1-x^2)^{\frac{1}{2}}U_n(x)=\frac{(n+1)(-1)^n}{(\frac{3}{2})_n2^n} -\left(\frac{d}{dx}\right)^n\left[(1-x^2)^{n+\frac{1}{2}}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenChebyshevI1} -\frac{1-xt}{1-2xt+t^2}=\sum_{n=0}^{\infty}T_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI2} -R^{-1}\sqrt{\frac{1}{2}(1+R-xt)}=\sum_{n=0}^{\infty} -\frac{\left(\frac{1}{2}\right)_n}{n!}T_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevI3} -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{\left(\frac{1}{2}\right)_nn!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevI4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{1}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{T_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevI5} -& &\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,-\gamma}{\frac{1}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(-\gamma)_n}{\left(\frac{1}{2}\right)_nn!}T_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevI6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{1}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}T_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{equation} -\label{GenChebyshevII1} -\frac{1}{1-2xt+t^2}=\sum_{n=0}^{\infty}U_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII2} -\frac{1}{R\sqrt{\frac{1}{2}(1+R-xt)}}=\sum_{n=0}^{\infty} -\frac{\left(\frac{3}{2}\right)_n}{(n+1)!}U_n(x)t^n,\quad R=\sqrt{1-2xt+t^2}. -\end{equation} - -\begin{equation} -\label{GenChebyshevII3} -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x-1)t}{2}}\, -\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{\left(\frac{3}{2}\right)_n(n+1)!}t^n. -\end{equation} - -\begin{equation} -\label{GenChebyshevII4} -\e^{xt}\,\hyp{0}{1}{-}{\frac{3}{2}}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{U_n(x)}{(n+1)!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenChebyshevII5} -& &\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,2-\gamma}{\frac{3}{2}}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(2-\gamma)_n}{\left(\frac{3}{2}\right)_n(n+1)!}U_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenChebyshevII6} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{\frac{3}{2}} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(n+1)!}U_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Remarks} -The Chebyshev polynomials can also be written as: -$$T_n(x)=\cos(n\theta),\quad x=\cos\theta$$ -and -$$U_n(x)=\frac{\sin (n+1)\theta}{\sin\theta},\quad x=\cos\theta.$$ -Further we have -$$U_n(x)=C_n^{(1)}(x)$$ -where $C_n^{(\lambda)}(x)$ denotes the Gegenbauer (or ultraspherical) -\subsection*{9.8.2 Chebyshev} -\label{sec9.8.2} -In addition to the Chebyshev polynomials $T_n$ of the first kind (9.8.35) -and $U_n$ of the second kind (9.8.36), -\begin{align} -T_n(x)&:=\frac{P_n^{(-\half,-\half)}(x)}{P_n^{(-\half,-\half)}(1)} -=\cos(n\tha),\quad x=\cos\tha,\\ -U_n(x)&:=(n+1)\,\frac{P_n^{(\half,\half)}(x)}{P_n^{(\half,\half)}(1)} -=\frac{\sin((n+1)\tha)}{\sin\tha}\,,\quad x=\cos\tha, -\end{align} -we have Chebyshev polynomials $V_n$ {\em of the third kind} -and $W_n$ {\em of the fourth kind}, -\begin{align} -V_n(x)&:=\frac{P_n^{(-\half,\half)}(x)}{P_n^{(-\half,\half)}(1)} -=\frac{\cos((n+\thalf)\tha)}{\cos(\thalf\tha)}\,,\quad x=\cos\tha,\\ -W_n(x)&:=(2n+1)\,\frac{P_n^{(\half,-\half)}(x)}{P_n^{(\half,-\half)}(1)} -=\frac{\sin((n+\thalf)\tha)}{\sin(\thalf\tha)}\,,\quad x=\cos\tha, -\end{align} -see \cite[Section 1.2.3]{K20}. Then there is the symmetry -\begin{equation} -V_n(-x)=(-1)^n W_n(x). -\label{140} -\end{equation} - -The names of Chebyshev polynomials of the third and fourth kind -and the notation $V_n(x)$ are due to Gautschi \cite{K21}. -The notation $W_n(x)$ was first used by Mason \cite{K22}. -Names and notations for Chebyshev polynomials of the third and fourth -kind are interchanged in \mycite{AAR}{Remark 2.5.3} and -\mycite{DLMF}{Table 18.3.1}. -polynomial given by (\ref{DefGegenbauer}) in the preceding subsection. - -\subsection*{References} -\cite{Abram}, \cite{AskeyFitch}, \cite{AskeyGasperHarris}, \cite{AskeyIsmail76}, -\cite{Bavinck95}, \cite{Chihara78}, \cite{Danese}, \cite{DilcherStolarsky}, -\cite{Erdelyi+}, \cite{Grad}, \cite{HartmannStephan}, \cite{Ismail2005II}, \cite{Koekoek2000}, -\cite{Luke}, \cite{Mathai}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rainville}, -\cite{Rayes+}, \cite{Rivlin}, \cite{SainteViennot}, \cite{Szego75}, \cite{Temme}, -\cite{Wilson70I}, \cite{Zayed}, \cite{Zhang}, \cite{ZhangWang}. - -\subsection{Legendre / Spherical}\index{Legendre polynomials} -\index{Spherical polynomials} - -\par - -\subsection*{Hypergeometric representation} -The Legendre (or spherical) polynomials are Jacobi polynomials with $\alpha=\beta=0$: -\begin{equation} -\label{DefLegendre} -P_n(x)=P_n^{(0,0)}(x)=\hyp{2}{1}{-n,n+1}{1}{\frac{1-x}{2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLegendre} -\int_{-1}^1P_m(x)P_n(x)\,dx=\frac{2}{2n+1}\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLegendre} -(2n+1)xP_n(x)=(n+1)P_{n+1}(x)+nP_{n-1}(x). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLegendre} -xp_n(x)=p_{n+1}(x)+\frac{n^2}{(2n-1)(2n+1)}p_{n-1}(x), -\end{equation} -where -$$P_n(x)=\binom{2n}{n}\frac{1}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLegendre} -(1-x^2)y''(x)-2xy'(x)+n(n+1)y(x)=0,\quad y(x)=P_n(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLegendre} -P_n(x)=\frac{(-1)^n}{2^nn!}\left(\frac{d}{dx}\right)^n\left[(1-x^2)^n\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLegendre1} -\frac{1}{\sqrt{1-2xt+t^2}}=\sum_{n=0}^{\infty}P_n(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre2} -\hyp{0}{1}{-}{1}{\frac{(x-1)t}{2}}\,\hyp{0}{1}{-}{1}{\frac{(x+1)t}{2}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{(n!)^2}t^n. -\end{equation} - -\begin{equation} -\label{GenLegendre3} -\e^{xt}\,\hyp{0}{1}{-}{1}{\frac{(x^2-1)t^2}{4}}= -\sum_{n=0}^{\infty}\frac{P_n(x)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenLegendre4} -& &\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R-t}{2}}\, -\hyp{2}{1}{\gamma,1-\gamma}{1}{\frac{1-R+t}{2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n(1-\gamma)_n}{(n!)^2}P_n(x)t^n, -\quad R=\sqrt{1-2xt+t^2},\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\begin{eqnarray} -\label{GenLegendre5} -& &(1-xt)^{-\gamma}\,\hyp{2}{1}{\frac{1}{2}\gamma,\frac{1}{2}\gamma+\frac{1}{2}}{1} -{\frac{(x^2-1)t^2}{(1-xt)^2}}\nonumber\\ -& &{}=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}P_n(x)t^n,\quad\textrm{$\gamma$ arbitrary}. -\subsection*{9.9 Pseudo Jacobi (or Routh-Romanovski)} -\label{sec9.9} -In this section in \mycite{KLS} the pseudo Jacobi polynomial $P_n(x;\nu,N)$ in (9.9.1) -is considered -for $N\in\ZZ_{\ge0}$ and $n=0,1,\ldots,n$. However, we can more generally take -$-\thalf\be>0\;\;{\rm or}\;\;\al<\be<0). -\] -Then $P_n$ can be expressed as a Meixner polynomial: -\[ -P_n(x)=(-k_2(\al\be)^{-1})_n\,\be^n\, -M_n\left(-\,\frac{x+k_2\al^{-1}}{\al-\be},-k_2(\al\be)^{-1},\be\al^{-1}\right). -\] - -In 1938 Gottlieb \cite[\S2]{K1} introduces polynomials $l_n$ ``of Laguerre type'' -which turn out to be special Meixner polynomials: -$l_n(x)=e^{-n\la} M_n(x;1,e^{-\la})$. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.10.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Askey87}, \cite{BorodinOlshanski}, \cite{Lesky96}. - - -\section{Meixner}\index{Meixner polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefMeixner} -M_n(x;\beta,c)=\hyp{2}{1}{-n,-x}{\beta}{1-\frac{1}{c}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtMeixner} -\sum_{x=0}^{\infty}\frac{(\beta)_x}{x!}c^xM_m(x;\beta,c)M_n(x;\beta,c) -{}=\frac{c^{-n}n!}{(\beta)_n(1-c)^{\beta}}\,\delta_{mn} -% \constraint{ -% $\beta > 0$ & -% $0 < c < 1$ } -\end{equation} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecMeixner} -(c-1)xM_n(x;\beta,c)&=&c(n+\beta)M_{n+1}(x;\beta,c)\nonumber\\ -& &{}\mathindent{}-\left[n+(n+\beta)c\right]M_n(x;\beta,c)+nM_{n-1}(x;\beta,c). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecMeixner} -xp_n(x)=p_{n+1}(x)+\frac{n+(n+\beta)c}{1-c}p_n(x)+ -\frac{n(n+\beta-1)c}{(1-c)^2}p_{n-1}(x), -\end{equation} -where -$$M_n(x;\beta,c)=\frac{1}{(\beta)_n}\left(\frac{c-1}{c}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvMeixner} -n(c-1)y(x)=c(x+\beta)y(x+1)-\left[x+(x+\beta)c\right]y(x)+xy(x-1), -\end{equation} -where -$$y(x)=M_n(x;\beta,c).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1MeixnerI} -M_n(x+1;\beta,c)-M_n(x;\beta,c)= -\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift1MeixnerII} -\Delta M_n(x;\beta,c)=\frac{n}{\beta}\left(\frac{c-1}{c}\right)M_{n-1}(x;\beta+1,c). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2MeixnerI} -c(\beta+x-1)M_n(x;\beta,c)-xM_n(x-1;\beta,c)=c(\beta-1)M_{n+1}(x;\beta-1,c) -\end{equation} -or equivalently -\begin{equation} -\label{shift2MeixnerII} -\nabla\left[\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)\right]= -\frac{(\beta-1)_xc^x}{x!}M_{n+1}(x;\beta-1,c). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodMeixner} -\frac{(\beta)_xc^x}{x!}M_n(x;\beta,c)=\nabla^n\left[\frac{(\beta+n)_xc^x}{x!}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenMeixner1} -\left(1-\frac{t}{c}\right)^x(1-t)^{-x-\beta}= -\sum_{n=0}^{\infty}\frac{(\beta)_n}{n!}M_n(x;\beta,c)t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner2} -\e^t\,\hyp{1}{1}{-x}{\beta}{\left(\frac{1-c}{c}\right)t}= -\sum_{n=0}^{\infty}\frac{M_n(x;\beta,c)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenMeixner3} -(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{\beta}{\frac{(1-c)t}{c(1-t)}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{n!}M_n(x;\beta,c)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Meixner} -If we take $\alpha=b-1$, $\beta=N(1-c)c^{-1}$ in the definition (\ref{DefHahn}) -of the Hahn polynomials and let $N\rightarrow\infty$ we find the Meixner polynomials: -$$\lim_{N\rightarrow\infty} -Q_n(x;b-1,N(1-c)c^{-1},N)=M_n(x;b,c).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Meixner} -To obtain the Meixner polynomials from the dual Hahn polynomials we have to take -$\gamma=\beta-1$ and $\delta=N(1-c)c^{-1}$ in the definition (\ref{DefDualHahn}) of -the dual Hahn polynomials and let $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -R_n(\lambda(x);\beta-1,N(1-c)c^{-1},N)=M_n(x;\beta,c).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -The Laguerre polynomials given by (\ref{DefLaguerre}) are obtained from the Meixner polynomials -if we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ and let $c\rightarrow 1$: -\begin{equation} -\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}. -\end{equation} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) are obtained from the Meixner polynomials -if we take $c=(a+\beta)^{-1}a$ and let $\beta\rightarrow\infty$: -\begin{equation} -\lim_{\beta\rightarrow\infty} -M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a). -\end{equation} - -\subsection*{Remarks} -The Meixner polynomials are related to the Jacobi polynomials given by (\ref{DefJacobi}) -in the following way: -$$\frac{(\beta)_n}{n!}M_n(x;\beta,c)=P_n^{(\beta-1,-n-\beta-x)}((2-c)c^{-1}).$$ - -\noindent -The Meixner polynomials are also related to the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) in the following way: -\subsection*{9.11 Krawtchouk} -\label{sec9.11} -% -\paragraph{Special values} -By (9.11.1) and the binomial formula: -\begin{equation} -K_n(0;p,N)=1,\qquad -K_n(N;p,N)=(1-p^{-1})^n. -\label{9} -\end{equation} -The self-duality (p.240, Remarks, first formula) -\begin{equation} -K_n(x;p,N)=K_x(n;p,N)\qquad (n,x\in \{0,1,\ldots,N\}) -\label{147} -\end{equation} -combined with \eqref{9} yields: -\begin{equation} -K_N(x;p,N)=(1-p^{-1})^x\qquad(x\in\{0,1,\ldots,N\}). -\label{148} -\end{equation} -% -\paragraph{Symmetry} -By the orthogonality relation (9.11.2): -\begin{equation} -\frac{K_n(N-x;p,N)}{K_n(N;p,N)}=K_n(x;1-p,N). -\label{10} -\end{equation} -By \eqref{10} and \eqref{147} we have also -\begin{equation} -\frac{K_{N-n}(x;p,N)}{K_N(x;p,N)}=K_n(x;1-p,N) -\qquad(n,x\in\{0,1,\ldots,N\}), -\label{149} -\end{equation} -and, by \eqref{149}, \eqref{10} and \eqref{9}, -\begin{equation} -K_{N-n}(N-x;p,N)=\left(\frac p{p-1}\right)^{n+x-N}K_n(x;p,N) -\qquad(n,x\in\{0,1,\ldots,N\}). -\label{150} -\end{equation} -A particular case of \eqref{10} is: -\begin{equation} -K_n(N-x;\thalf,N)=(-1)^n K_n(x;\thalf,N). -\label{11} -\end{equation} -Hence -\begin{equation} -K_{2m+1}(N;\thalf,2N)=0. -\label{12} -\end{equation} -From (9.11.11): -\begin{equation} -K_{2m}(N;\thalf,2N)=\frac{(\thalf)_m}{(-N+\thalf)_m}\,. -\label{13} -\end{equation} -% -\paragraph{Quadratic transformations} -\begin{align} -K_{2m}(x+N;\thalf,2N)&=\frac{(\thalf)_m}{(-N+\thalf)_m}\, -R_m(x^2;-\thalf,-\thalf,N), -\label{31}\\ -K_{2m+1}(x+N;\thalf,2N)&=-\,\frac{(\tfrac32)_m}{N\,(-N+\thalf)_m}\, -x\,R_m(x^2-1;\thalf,\thalf,N-1), -\label{33}\\ -K_{2m}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac12)_m}{(-N-\thalf)_m}\, -R_m(x(x+1);-\thalf,\thalf,N), -\label{32}\\ -K_{2m+1}(x+N+1;\thalf,2N+1)&=\frac{(\tfrac32)_m}{(-N-\thalf)_{m+1}}\, -(x+\thalf)\,R_m(x(x+1);\thalf,-\thalf,N), -\label{34} -\end{align} -where $R_m$ is a dual Hahn polynomial (9.6.1). For the proofs use -(9.6.2), (9.11.2), (9.6.4) and (9.11.4). -% -\paragraph{Generating functions} -\begin{multline} -\sum_{x=0}^N\binom Nx K_m(x;p,N)K_n(x;q,N)z^x\\ -=\left(\frac{p-z+pz}p\right)^m -\left(\frac{q-z+qz}q\right)^n -(1+z)^{N-m-n} -K_m\left(n;-\,\frac{(p-z+pz)(q-z+qz)}z,N\right). -\label{107} -\end{multline} -This follows immediately from Rosengren \cite[(3.5)]{K8}, which goes back -to Meixner \cite{K9}. -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{Alvarez+}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper77}, \cite{AskeyIsmail76}, -\cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{AtakSuslov88}, \cite{Bavinck98}, -\cite{BavinckHaeringen}, \cite{Campigotto+}, \cite{Chihara78}, \cite{Cooper+}, -\cite{Erdelyi+}, \cite{FoataLabelle}, \cite{Gabutti}, \cite{GabuttiMathis}, \cite{Gasper73I}, -\cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{IsmailLetVal88}, -\cite{IsmailLi}, \cite{IsmailMuldoon}, \cite{IsmailStanton97}, \cite{JinWong}, -\cite{Karlin58}, \cite{Koekoek2000}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Rahman78I}, \cite{ValentAssche}, -\cite{Viennot}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Krawtchouk}\index{Krawtchouk polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefKrawtchouk} -K_n(x;p,N)=\hyp{2}{1}{-n,-x}{-N}{\frac{1}{p}},\quad n=0,1,2,\ldots,N. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtKrawtchouk} -& &\sum_{x=0}^N\binom{N}{x}p^x(1-p)^{N-x} K_m(x;p,N)K_n(x;p,N)\nonumber\\ -& &{}=\frac{(-1)^nn!}{(-N)_n}\left(\frac{1-p}{p}\right)^n\,\delta_{mn},\quad0 < p < 1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecKrawtchouk} --xK_n(x;p,N)&=&p(N-n)K_{n+1}(x;p,N)\nonumber\\ -& &{}\mathindent{}-\left[p(N-n)+n(1-p)\right]K_n(x;p,N)\nonumber\\ -& &{}\mathindent\mathindent{}+n(1-p)K_{n-1}(x;p,N). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecKrawtchouk} -xp_n(x)&=&p_{n+1}(x)+\left[p(N-n)+n(1-p)\right]p_n(x)\nonumber\\ -& &{}\mathindent{}+np(1-p)(N+1-n)p_{n-1}(x), -\end{eqnarray} -where -$$K_n(x;p,N)=\frac{1}{(-N)_np^n}p_n(x).$$ - -\subsection*{Difference equation} -\begin{eqnarray} -\label{dvKrawtchouk} --ny(x)&=&p(N-x)y(x+1)\nonumber\\ -& &{}\mathindent{}-\left[p(N-x)+x(1-p)\right]y(x)+x(1-p)y(x-1), -\end{eqnarray} -where -$$y(x)=K_n(x;p,N).$$ - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1KrawtchoukI} -K_n(x+1;p,N)-K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1) -\end{equation} -or equivalently -\begin{equation} -\label{shift1KrawtchoukII} -\Delta K_n(x;p,N)=-\frac{n}{Np}K_{n-1}(x;p,N-1). -\end{equation} - -\subsection*{Backward shift operator} -\begin{eqnarray} -\label{shift2KrawtchoukI} -& &(N+1-x)K_n(x;p,N)-x\left(\frac{1-p}{p}\right)K_n(x-1;p,N)\nonumber\\ -& &{}=(N+1)K_{n+1}(x;p,N+1) -\end{eqnarray} -or equivalently -\begin{equation} -\label{shift2KrawtchoukII} -\nabla\left[\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)\right]= -\binom{N+1}{x}\left(\frac{p}{1-p}\right)^xK_{n+1}(x;p,N+1). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodKrawtchouk} -\binom{N}{x}\left(\frac{p}{1-p}\right)^xK_n(x;p,N)= -\nabla^n\left[\binom{N-n}{x}\left(\frac{p}{1-p}\right)^x\right]. -\end{equation} - -\subsection*{Generating functions} -For $x=0,1,2,\ldots,N$ we have -\begin{equation} -\label{GenKrawtchouk1} -\left(1-\frac{(1-p)}{p}t\right)^x(1+t)^{N-x}= -\sum_{n=0}^N\binom{N}{n}K_n(x;p,N)t^n. -\end{equation} - -\begin{equation} -\label{GenKrawtchouk2} -\left[\expe^t\,\hyp{1}{1}{-x}{-N}{-\frac{t}{p}}\right]_N= -\sum_{n=0}^N\frac{K_n(x;p,N)}{n!}t^n. -\end{equation} - -\begin{eqnarray} -\label{GenKrawtchouk3} -& &\left[(1-t)^{-\gamma}\,\hyp{2}{1}{\gamma,-x}{-N}{\frac{t}{p(t-1)}}\right]_N\nonumber\\ -& &{}=\sum_{n=0}^N\frac{(\gamma)_n}{n!}K_n(x;p,N)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{eqnarray} - -\subsection*{Limit relations} - -\subsubsection*{Hahn $\rightarrow$ Krawtchouk} -If we take $\alpha=pt$ and $\beta=(1-p)t$ in the definition (\ref{DefHahn}) of the Hahn -polynomials and let $t\rightarrow\infty$ we obtain the Krawtchouk polynomials: -$$\lim_{t\rightarrow\infty}Q_n(x;pt,(1-p)t,N)=K_n(x;p,N).$$ - -\subsubsection*{Dual Hahn $\rightarrow$ Krawtchouk} -The Krawtchouk polynomials follow from the dual Hahn polynomials given by -(\ref{DefDualHahn}) if we set $\gamma=pt$, $\delta=(1-p)t$ and let $t\rightarrow\infty$: -$$\lim_{t\rightarrow\infty}R_n(\lambda(x);pt,(1-p)t,N)=K_n(x;p,N).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials given by (\ref{DefCharlier}) can be found from the Krawtchouk -polynomials by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a). -\end{equation} - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) follow from the Krawtchouk polynomials -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -\begin{equation} -\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}. -\end{equation} - -\subsection*{Remarks} -The Krawtchouk polynomials are self-dual, which means that -$$K_n(x;p,N)=K_x(n;p,N),\quad n,x\in\{0,1,2,\ldots,N\}.$$ -By using this relation we easily obtain the so-called dual orthogonality -relation from the orthogonality relation (\ref{OrtKrawtchouk}): -$$\sum_{n=0}^N\binom{N}{n}p^n(1-p)^{N-n} K_n(x;p,N)K_n(y;p,N)= -\frac{\displaystyle\left(\frac{1-p}{p}\right)^x}{\dbinom{N}{x}}\delta_{xy},$$ -where $0 < p < 1$ and $x,y\in\{0,1,2,\ldots,N\}$. - -\noindent -The Krawtchouk polynomials are related to the Meixner polynomials given by (\ref{DefMeixner}) -in the following way: -\subsection*{9.12 Laguerre} -\label{sec9.12} -\paragraph{Notation} -Here the Laguerre polynomial is denoted by $L_n^\al$ instead of -$L_n^{(\al)}$. -% -\paragraph{Hypergeometric representation} -\begin{align} -L_n^\al(x)&= -\frac{(\al+1)_n}{n!}\,\hyp11{-n}{\al+1}x -\label{182}\\ -&=\frac{(-x)^n}{n!} \hyp20{-n,-n-\al}-{-\,\frac1x} -\label{183}\\ -&=\frac{(-x)^n}{n!}\,C_n(n+\al;x), -\label{184} -\end{align} -where $C_n$ in \eqref{184} is a -\hyperref[sec9.14]{Charlier polynomial}. -Formula \eqref{182} is (9.12.1). Then \eqref{183} follows by reversal -of summation. Finally \eqref{184} follows by \eqref{183} and \eqref{179}. -It is also the remark on top of p.244 in \mycite{KLS}, and it is essentially -\myciteKLS{416}{(2.7.10)}. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.12.4) behaves as $O(n^2)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Special value} -\begin{equation} -L_n^{\al}(0)=\frac{(\al+1)_n}{n!}\,. -\label{53} -\end{equation} -Use (9.12.1) or see \mycite{DLMF}{18.6.1)}. -% -\paragraph{Quadratic transformations} -\begin{align} -H_{2n}(x)&=(-1)^n\,2^{2n}\,n!\,L_n^{-1/2}(x^2), -\label{54}\\ -H_{2n+1}(x)&=(-1)^n\,2^{2n+1}\,n!\,x\,L_n^{1/2}(x^2). -\label{55} -\end{align} -See p.244, Remarks, last two formulas. -Or see \mycite{DLMF}{(18.7.19), (18.7.20)}. -% -\paragraph{Fourier transform} -\begin{equation} -\frac1{\Ga(\al+1)}\,\int_0^\iy \frac{L_n^\al(y)}{L_n^\al(0)}\, -e^{-y}\,y^\al\,e^{ixy}\,dy= -i^n\,\frac{y^n}{(iy+1)^{n+\al+1}}\,, -\label{14} -\end{equation} -see \mycite{DLMF}{(18.17.34)}. -% -\paragraph{Differentiation formulas} -Each differentiation formula is given in two equivalent forms. -\begin{equation} -\frac d{dx}\left(x^\al L_n^\al(x)\right)= -(n+\al)\,x^{\al-1} L_n^{\al-1}(x),\qquad -\left(x\frac d{dx}+\al\right)L_n^\al(x)= -(n+\al)\,L_n^{\al-1}(x). -\label{76} -\end{equation} -% -\begin{equation} -\frac d{dx}\left(e^{-x} L_n^\al(x)\right)= --e^{-x} L_n^{\al+1}(x),\qquad -\left(\frac d{dx}-1\right)L_n^\al(x)= --L_n^{\al+1}(x). -\label{77} -\end{equation} -% -Formulas \eqref{76} and \eqref{77} follow from -\mycite{DLMF}{(13.3.18), (13.3.20)} -together with (9.12.1). -% -\paragraph{Generalized Hermite polynomials} -See \myciteKLS{146}{p.156}, \cite[Section 1.5.1]{K26}. -These are defined by -\begin{equation} -H_{2m}^\mu(x):=\const L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x):=\const x\,L_m^{\mu+\half}(x^2). -\label{78} -\end{equation} -Then for $\mu>-\thalf$ we have orthogonality relation -\begin{equation} -\int_{-\iy}^{\iy} H_m^\mu(x)\,H_n^\mu(x)\,|x|^{2\mu}e^{-x^2}\,dx -=0\qquad(m\ne n). -\label{79} -\end{equation} -Let the Dunkl operator $T_\mu$ be defined by \eqref{72}. -If we choose the constants in \eqref{78} as -\begin{equation} -H_{2m}^\mu(x)=\frac{(-1)^m(2m)!}{(\mu+\thalf)_m}\,L_m^{\mu-\half}(x^2),\qquad -H_{2m+1}^\mu(x)=\frac{(-1)^m(2m+1)!}{(\mu+\thalf)_{m+1}}\, - x\,L_m^{\mu+\half}(x^2) - \label{80} -\end{equation} -then (see \cite[(1.6)]{K5}) -\begin{equation} -T_\mu H_n^\mu=2n\,H_{n-1}^\mu. -\label{81} -\end{equation} -Formula \eqref{81} with \eqref{80} substituted gives rise to two -differentiation formulas involving Laguerre polynomials which are equivalent to -(9.12.6) and \eqref{76}. - -Composition of \eqref{81} with itself gives -\[ -T_\mu^2 H_n^\mu=4n(n-1)\,H_{n-2}^\mu, -\] -which is equivalent to the composition of (9.12.6) and \eqref{76}: -\begin{equation} -\left(\frac{d^2}{dx^2}+\frac{2\al+1}x\,\frac d{dx}\right)L_n^\al(x^2) -=-4(n+\al)\,L_{n-1}^\al(x^2). -\label{82} -\end{equation} -$$K_n(x;p,N)=M_n(x;-N,(p-1)^{-1}p).$$ - -\subsection*{References} -\cite{AlSalam90}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, \cite{Askey89I}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Campigotto+}, -\cite{LChiharaStanton}, \cite{Chihara78}, \cite{Dette95}, \cite{Dominici}, \cite{Dunkl76}, -\cite{Dunkl84}, \cite{DunklRamirez}, \cite{Erdelyi+}, \cite{FeinsilverSchott}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{HoareRahman}, \cite{Ismail2005II}, \cite{Karlin58}, -\cite{Koorn82}, \cite{Koorn88}, \cite{LabelleYehI}, \cite{LabelleYehII}, \cite{Lesky62}, -\cite{Lesky89}, \cite{Lesky94I}, \cite{Lesky95II}, \cite{LewanowiczII}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Qiu}, \cite{Rahman78I}, \cite{Rahman79}, \cite{Stanton84}, -\cite{Stanton90}, \cite{Szego75}, \cite{Zarzo+}, \cite{Zeng90}. - - -\section{Laguerre}\index{Laguerre polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefLaguerre} -L_n^{(\alpha)}(x)=\frac{(\alpha+1)_n}{n!}\,\hyp{1}{1}{-n}{\alpha+1}{x}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtLaguerre} -\int_0^{\infty}\expe^{-x}x^{\alpha}L_m^{(\alpha)}(x)L_n^{(\alpha)}(x)\,dx= -\frac{\Gamma(n+\alpha+1)}{n!}\,\delta_{mn},\quad\alpha > -1. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecLaguerre} -(n+1)L_{n+1}^{(\alpha)}(x)-(2n+\alpha+1-x)L_n^{(\alpha)}(x)+(n+\alpha)L_{n-1}^{(\alpha)}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecLaguerre} -xp_n(x)=p_{n+1}(x)+(2n+\alpha+1)p_n(x)+n(n+\alpha)p_{n-1}(x), -\end{equation} -where -$$L_n^{(\alpha)}(x)=\frac{(-1)^n}{n!}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvLaguerre} -xy''(x)+(\alpha+1-x)y'(x)+ny(x)=0,\quad y(x)=L_n^{(\alpha)}(x). -\end{equation} - -\newpage - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Laguerre} -\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2LaguerreI} -x\frac{d}{dx}L_n^{(\alpha)}(x)+(\alpha-x)L_n^{(\alpha)}(x)=(n+1)L_{n+1}^{(\alpha-1)}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2LaguerreII} -\frac{d}{dx}\left[\expe^{-x}x^{\alpha}L_n^{(\alpha)}(x)\right]=(n+1)\expe^{-x}x^{\alpha-1}L^{(\alpha-1)}_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodLaguerre} -\e^{-x}x^{\alpha}L_n^{(\alpha)}(x)=\frac{1}{n!}\left(\frac{d}{dx}\right)^n\left[\expe^{-x}x^{n+\alpha}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenLaguerre1} -(1-t)^{-\alpha-1}\exp\left(\frac{xt}{t-1}\right)= -\sum_{n=0}^{\infty}L_n^{(\alpha)}(x)t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre2} -\e^t\,\hyp{0}{1}{-}{\alpha+1}{-xt} -=\sum_{n=0}^{\infty}\frac{L_n^{(\alpha)}(x)}{(\alpha+1)_n}t^n. -\end{equation} - -\begin{equation} -\label{GenLaguerre3} -(1-t)^{-\gamma}\,\hyp{1}{1}{\gamma}{\alpha+1}{\frac{xt}{t-1}} -=\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(\alpha+1)_n}L_n^{(\alpha)}(x)t^n, -\quad\textrm{$\gamma$ arbitrary}. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Laguerre} -The Laguerre polynomials can be obtained from the Meixner-Pollaczek polynomials given by -(\ref{DefMP}) by the substitution $\lambda=\frac{1}{2}(\alpha+1)$, -$x\rightarrow -\frac{1}{2}\phi^{-1}x$ and the limit $\phi\rightarrow 0$: -$$\lim_{\phi\rightarrow 0} -P_n^{(\frac{1}{2}\alpha+\frac{1}{2})}(-\textstyle\frac{1}{2}\phi^{-1}x;\phi)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Jacobi $\rightarrow$ Laguerre} -The Laguerre polynomials are obtained from the Jacobi polynomials given by (\ref{DefJacobi}) -if we set $x\rightarrow 1-2\beta^{-1}x$ and then take the limit $\beta\rightarrow\infty$: -$$\lim_{\beta\rightarrow\infty} -P_n^{(\alpha,\beta)}(1-2\beta^{-1}x)=L_n^{(\alpha)}(x).$$ - -\subsubsection*{Meixner $\rightarrow$ Laguerre} -If we take $\beta=\alpha+1$ and $x\rightarrow (1-c)^{-1}x$ in the definition -(\ref{DefMeixner}) of the Meixner polynomials and let $c\rightarrow 1$ we obtain -the Laguerre polynomials: -$$\lim_{c\rightarrow 1} -M_n((1-c)^{-1}x;\alpha+1,c)=\frac{L_n^{(\alpha)}(x)}{L_n^{(\alpha)}(0)}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) can be obtained from the Laguerre -polynomials by taking the limit $\alpha\rightarrow\infty$ in the following way: -\begin{equation} -\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x). -\end{equation} - -\subsection*{Remarks} -The definition (\ref{DefLaguerre}) of the Laguerre polynomials can also be -written as: -$$L_n^{(\alpha)}(x)=\frac{1}{n!}\sum_{k=0}^n\frac{(-n)_k}{k!}(\alpha+k+1)_{n-k}x^k.$$ -In this way the Laguerre polynomials can also be seen as polynomials in the parameter $\alpha$. -Therefore they can be defined for all $\alpha$. - -\noindent -The Laguerre polynomials are related to the Bessel polynomials given by (\ref{DefBessel}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The Laguerre polynomials are related to the Charlier polynomials given by (\ref{DefCharlier}) -in the following way: -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\noindent -The Laguerre polynomials and the Hermite polynomials given by (\ref{DefHermite}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\noindent -In combinatorics the Laguerre polynomials with $\alpha=0$ are often called Rook -\subsection*{9.14 Charlier} -\label{sec9.14} -% -\paragraph{Hypergeometric representation} -\begin{align} -C_n(x;a)&=\hyp20{-n,-x}-{-\,\frac1a} -\label{179}\\ -&=\frac{(-x)_n}{a^n} \hyp11{-n}{x-n+1}a -\label{180}\\ -&=\frac{n!}{(-a)^n}\,L_n^{x-n}(a), -\label{181} -\end{align} -where $L_n^\al(x)$ is a -\hyperref[sec9.12]{Laguerre polynomial}. -Formula \eqref{179} is (9.14.1). Then \eqref{180} follows by reversal -of the summation. Finally \eqref{181} follows by \eqref{180} and -(9.12.1). It is also the Remark on p.249 of \mycite{KLS}, and it -was earlier given in \myciteKLS{416}{(2.7.10)}. -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.14.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -polynomials. - -\subsection*{References} -\cite{Abdul}, \cite{Abram}, \cite{Ahmed+82}, \cite{Allaway76}, \cite{Allaway91}, -\cite{NAlSalam66}, \cite{AlSalam64}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Askey68}, -\cite{Askey75}, \cite{Askey89I}, \cite{Askey2005}, \cite{AskeyGasper76}, \cite{AskeyGasper77}, -\cite{AskeyIsmail76}, \cite{AskeyIsmailKoorn}, \cite{AskeyWilson85}, \cite{Barrett}, -\cite{Bavinck96}, \cite{Brafman51}, \cite{Brafman57II}, \cite{Brenke}, \cite{Brown}, -\cite{BustozSavage79}, \cite{BustozSavage80}, \cite{Carlitz60}, \cite{Carlitz61I}, -\cite{Carlitz61II}, \cite{Carlitz62}, \cite{Carlitz68}, \cite{ChenSrivastava}, -\cite{ChenIsmail91}, \cite{Chihara68II}, \cite{Chihara78}, \cite{Cohen}, \cite{Cooper+}, -\cite{Dattoli2001}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Dimitrov2003}, -\cite{Doha2003II}, \cite{ElbertLaforgia87I}, \cite{Erdelyi}, \cite{Erdelyi+}, \cite{Exton98}, -\cite{Faldey}, \cite{Gasper73II}, \cite{Gasper77}, \cite{Gatteschi2002}, \cite{Gawronski87}, -\cite{Gawronski93}, \cite{Gillis}, \cite{GillisIsmailOffer}, \cite{Godoy+}, \cite{Grad}, -\cite{Hajmirzaahmad95}, \cite{Ismail74}, \cite{Ismail77}, \cite{Ismail2005II}, -\cite{IsmailLetVal88}, \cite{IsmailLi}, \cite{IsmailMassonRahman}, \cite{IsmailMuldoon}, -\cite{IsmailStanton97}, \cite{IsmailTamhankar}, \cite{Jackson}, \cite{Karlin58}, -\cite{Kochneff95}, \cite{Kochneff97II}, \cite{Koekoek2000}, \cite{Koorn77I}, \cite{Koorn78}, -\cite{Koorn85}, \cite{Koorn88}, \cite{Krasikov2003}, \cite{Krasikov2005}, -\cite{KuijlaarsMcLaughlin}, \cite{KwonLittle}, \cite{LabelleYehI}, \cite{LabelleYehII}, -\cite{LabelleYehIII}, \cite{Lee97I}, \cite{Lee97II}, \cite{Lee97III}, \cite{Lesky95II}, -\cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme2004}, \cite{Mathai}, \cite{Meixner}, -\cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{PerezPinar}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava66}, \cite{Srivastava69I}, -\cite{Srivastava69II}, \cite{Srivastava70}, \cite{Srivastava71}, \cite{Szego75}, \cite{Temme}, -\cite{Trickovic}, \cite{Trivedi}, \cite{Viennot}. - - -\section{Bessel}\index{Bessel polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{eqnarray} -\label{DefBessel} -y_n(x;a)&=&\hyp{2}{0}{-n,n+a+1}{-}{-\frac{x}{2}}\\ -&=&(n+a+1)_n\left(\frac{x}{2}\right)^n\,\hyp{1}{1}{-n}{-2n-a}{\frac{2}{x}}, -\quad n=0,1,2,\ldots,N.\nonumber -\end{eqnarray} - -\subsection*{Orthogonality relation} -\begin{eqnarray} -\label{OrtBessel} -& &\int_0^{\infty}x^a\e^{-\frac{2}{x}}y_m(x;a)y_n(x;a)\,dx\nonumber\\ -& &=-\frac{2^{a+1}}{2n+a+1}\Gamma(-n-a)n!\,\delta_{mn},\quad a<-2N-1. -\end{eqnarray} - -\subsection*{Recurrence relation} -\begin{eqnarray} -\label{RecBessel} -& &2(n+a+1)(2n+a)y_{n+1}(x;a)\nonumber\\ -& &{}=(2n+a+1)\left[2a+(2n+a)(2n+a+2)x\right]y_n(x;a)\nonumber\\ -& &{}\mathindent{}+2n(2n+a+2)y_{n-1}(x;a). -\end{eqnarray} - -\subsection*{Normalized recurrence relation} -\begin{eqnarray} -\label{NormRecBessel} -xp_n(x)&=&p_{n+1}(x)-\frac{2a}{(2n+a)(2n+a+2)}p_n(x)\nonumber\\ -& &{}\mathindent{}-\frac{4n(n+a)}{(2n+a-1)(2n+a)^2(2n+a+1)}p_{n-1}(x), -\end{eqnarray} -where -$$y_n(x;a)=\frac{(n+a+1)_n}{2^n}p_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvBessel} -x^2y''(x)+\left[(a+2)x+2\right]y'(x)-n(n+a+1)y(x)=0,\quad y(x)=y_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Bessel} -\frac{d}{dx}y_n(x;a)=\frac{n(n+a+1)}{2}y_{n-1}(x;a+2). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2BesselI} -x^2\frac{d}{dx}y_n(x;a)+(ax+2)y_n(x;a)=2y_{n+1}(x;a-2) -\end{equation} -or equivalently -\begin{equation} -\label{shift2BesselII} -\frac{d}{dx}\left[x^a\expe^{-\frac{2}{x}}y_n(x;a)\right]=2x^{a-2}\expe^{-\frac{2}{x}}y_{n+1}(x;a-2). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodBessel} -y_n(x;a)=2^{-n}x^{-a}\expe^{\frac{2}{x}}D^n\left(x^{2n+a}\expe^{-\frac{2}{x}}\right). -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenBessel} -\left(1-2xt\right)^{-\frac{1}{2}}\left(\frac{2}{1+\sqrt{1-2xt}}\right)^a -\exp\left(\frac{2t}{1+\sqrt{1-2xt}}\right)=\sum_{n=0}^{\infty}y_n(x;a)\frac{t^n}{n!}. -\end{equation} - -\subsection*{Limit relation} - -\subsubsection*{Jacobi $\rightarrow$ Bessel} -If we take $\beta=a-\alpha$ in the definition (\ref{DefJacobi}) of the Jacobi polynomials -and let $\alpha\rightarrow -\infty$ we find the Bessel polynomials: -$$\lim_{\alpha\rightarrow -\infty} -\frac{P_n^{(\alpha,a-\alpha)}(1+\alpha x)}{P_n^{(\alpha,a-\alpha)}(1)}=y_n(x;a).$$ - -\subsection*{Remarks} -The following notations are also used for the Bessel polynomials: -$$y_n(x;a,b)=y_n(2b^{-1}x;a)\quad\textrm{and}\quad\theta_n(x;a,b)=x^ny_n(x^{-1};a,b).$$ -However, the Bessel polynomials essentially depend on only one parameter. - -\noindent -The Bessel polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -$$L_n^{(\alpha)}(x)=\frac{(-x)^n}{n!}y_n(2x^{-1};-2n-\alpha-1).$$ - -\noindent -The special case $a=-2N-2$ of the Bessel polynomials can be obtained from the pseudo Jacobi -polynomials by setting $x\rightarrow\nu x$ in the definition (\ref{DefPseudoJacobi}) of the -pseudo Jacobi polynomials and taking the limit $\nu\rightarrow\infty$ in the following way: -$$\lim\limits_{\nu\rightarrow\infty}\frac{P_n(\nu x;\nu,N)}{\nu^n} -\subsection*{9.15 Hermite} -\label{sec9.15} -% -\paragraph{Uniqueness of orthogonality measure} -The coefficient of $p_{n-1}(x)$ in (9.15.4) behaves as $O(n)$ as $n\to\iy$. -Hence \eqref{93} holds, by which the orthogonality measure is unique. -% -\paragraph{Fourier transforms} -\begin{equation} -\frac1{\sqrt{2\pi}}\,\int_{-\iy}^\iy H_n(y)\,e^{-\half y^2}\,e^{ixy}\,dy= -i^n\,H_n(x)\,e^{-\half x^2}, -\label{15} -\end{equation} -see \mycite{AAR}{(6.1.15) and Exercise 6.11}. -\begin{equation} -\frac1{\sqrt\pi}\,\int_{-\iy}^\iy H_n(y)\,e^{-y^2}\,e^{ixy}\,dy= -i^n\,x^n\,e^{-\frac14 x^2}, -\label{16} -\end{equation} -see \mycite{DLMF}{(18.17.35)}. -\begin{equation} -\frac{i^n}{2\sqrt\pi}\,\int_{-\iy}^\iy y^n\,e^{-\frac14 y^2}\,e^{-ixy}\,dy= -H_n(x)\,e^{-x^2}, -\label{17} -\end{equation} -see \mycite{AAR}{(6.1.4)}. -=\frac{2^n}{(n-2N-1)_n}y_n(x;-2N-2).$$ - -\subsection*{References} -\cite{Andrade}, \cite{BergVignat}, \cite{Carlitz57I}, \cite{Dattoli2003}, -\cite{DohaAhmed2004}, \cite{DohaAhmed2006}, \cite{Grosswald}, \cite{Ismail2005II}, -\cite{KrallFrink}, \cite{Lesky98}, \cite{NikiforovUvarov}. - - -\section{Charlier}\index{Charlier polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefCharlier} -C_n(x;a)=\hyp{2}{0}{-n,-x}{-}{-\frac{1}{a}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtCharlier} -\sum_{x=0}^{\infty}\frac{a^x}{x!}C_m(x;a)C_n(x;a)= -a^{-n}\expe^an!\,\delta_{mn},\quad a > 0. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecCharlier} --xC_n(x;a)=aC_{n+1}(x;a)-(n+a)C_n(x;a)+nC_{n-1}(x;a). -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecCharlier} -xp_n(x)=p_{n+1}(x)+(n+a)p_n(x)+nap_{n-1}(x), -\end{equation} -where -$$C_n(x;a)=\left(-\frac{1}{a}\right)^np_n(x).$$ - -\subsection*{Difference equation} -\begin{equation} -\label{dvCharlier} --ny(x)=ay(x+1)-(x+a)y(x)+xy(x-1),\quad y(x)=C_n(x;a). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1CharlierI} -C_n(x+1;a)-C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift1CharlierII} -\Delta C_n(x;a)=-\frac{n}{a}C_{n-1}(x;a). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2CharlierI} -C_n(x;a)-\frac{x}{a}C_n(x-1;a)=C_{n+1}(x;a) -\end{equation} -or equivalently -\begin{equation} -\label{shift2CharlierII} -\nabla\left[\frac{a^x}{x!}C_n(x;a)\right]=\frac{a^x}{x!}C_{n+1}(x;a). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodCharlier} -\frac{a^x}{x!}C_n(x;a)=\nabla^n\left[\frac{a^x}{x!}\right]. -\end{equation} - -\subsection*{Generating function} -\begin{equation} -\label{GenCharlier} -\e^t\left(1-\frac{t}{a}\right)^x=\sum_{n=0}^{\infty}\frac{C_n(x;a)}{n!}t^n. -\end{equation} - -\subsection*{Limit relations} - -\subsubsection*{Meixner $\rightarrow$ Charlier} -If we take $c=(a+\beta)^{-1}a$ in the definition (\ref{DefMeixner}) of the Meixner polynomials -and let $\beta\rightarrow\infty$ we find the Charlier polynomials: -$$\lim_{\beta\rightarrow\infty}M_n(x;\beta,(a+\beta)^{-1}a)=C_n(x;a).$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Charlier} -The Charlier polynomials can be found from the Krawtchouk polynomials given by -(\ref{DefKrawtchouk}) by taking $p=N^{-1}a$ and letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty}K_n(x;N^{-1}a,N)=C_n(x;a).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -The Hermite polynomials given by (\ref{DefHermite}) are obtained from the Charlier polynomials -if we set $x\rightarrow (2a)^{1/2}x+a$ and let $a\rightarrow\infty$. In fact we have -\begin{equation} -\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x). -\end{equation} - -\subsection*{Remark} -The Charlier polynomials are related to the Laguerre polynomials given by (\ref{DefLaguerre}) -in the following way: -\subsection*{14.1 Askey-Wilson} -\label{sec14.1} -% -\paragraph{Symmetry} -The Askey-Wilson polynomials $p_n(x;a,b,c,d\,|\,q)$ are \,|\,symmetric -in $a,b,c,d$. -\sLP -This follows from the orthogonality relation (14.1.2) -together with the value of its coefficient of $x^n$ given in (14.1.5b). -Alternatively, combine (14.1.1) with \mycite{GR}{(III.15)}.\\ -As a consequence, it is sufficient to give generating function (14.1.13). Then the generating -functions (14.1.14), (14.1.15) will follow by symmetry in the parameters. -% -\paragraph{Basic hypergeometric representation} -In addition to (14.1.1) we have (in notation \eqref{111}): -\begin{multline} -p_n(\cos\tha;a,b,c,d\,|\, q) -=\frac{(ae^{-i\tha},be^{-i\tha},ce^{-i\tha},de^{-i\tha};q)_n} -{(e^{-2i\tha};q)_n}\,e^{in\tha}\\ -\times {}_8W_7\big(q^{-n}e^{2i\tha};ae^{i\tha},be^{i\tha}, -ce^{i\tha},de^{i\tha},q^{-n};q,q^{2-n}/(abcd)\big). -\label{113} -\end{multline} -This follows from (14.1.1) by combining (III.15) and (III.19) in -\mycite{GR}. -It is also given in \myciteKLS{513}{(4.2)}, but be aware for some slight errors. -The symmetry in $a,b,c,d$ is evident from \eqref{113}. -% -\paragraph{Special value} -\begin{equation} -p_n\big(\thalf(a+a^{-1});a,b,c,d\,|\, q\big)=a^{-n}\,(ab,ac,ad;q)_n\,, -\label{40} -\end{equation} -and similarly for arguments $\thalf(b+b^{-1})$, $\thalf(c+c^{-1})$ and -$\thalf(d+d^{-1})$ by symmetry of $p_n$ in $a,b,c,d$. -% -\paragraph{Trivial symmetry} -\begin{equation} -p_n(-x;a,b,c,d\,|\, q)=(-1)^n p_n(x;-a,-b,-c,-d\,|\, q). -\label{41} -\end{equation} -Both \eqref{40} and \eqref{41} are obtained from (14.1.1). -% -\paragraph{Re: (14.1.5)} -Let -\begin{equation} -p_n(x):=\frac{p_n(x;a,b,c,d\,|\, q)}{2^n(abcdq^{n-1};q)_n}=x^n+\wt k_n x^{n-1} -+\cdots\;. -\label{18} -\end{equation} -Then -\begin{equation} -\wt k_n=-\frac{(1-q^n)(a+b+c+d-(abc+abd+acd+bcd)q^{n-1})} -{2(1-q)(1-abcdq^{2n-2})}\,. -\label{19} -\end{equation} -This follows because $\tilde k_n-\tilde k_{n+1}$ equals the coefficient -$\thalf\bigl(a+a^{-1}-(A_n+C_n)\bigr)$ of $p_n(x)$ in (14.1.5). -% -\paragraph{Generating functions} -Rahman \myciteKLS{449}{(4.1), (4.9)} gives: -\begin{align} -&\sum_{n=0}^\iy \frac{(abcdq^{-1};q)_n a^n}{(ab,ac,ad,q;q)_n}\,t^n\, -p_n(\cos\tha;a,b,c,d\,|\,q) -\nonumber\\ -&=\frac{(abcdtq^{-1};q)_\iy}{(t;q)_\iy}\, -\qhyp65{(abcdq^{-1})^\half,-(abcdq^{-1})^\half,(abcd)^\half, --(abcd)^\half,a e^{i\tha},a e^{-i\tha}} -{ab,ac,ad,abcdtq^{-1},qt^{-1}}{q,q} -\nonumber\\ -&+\frac{(abcdq^{-1},abt,act,adt,ae^{i\tha},ae^{-i\tha};q)_\iy} -{(ab,ac,ad,t^{-1},ate^{i\tha},ate^{-i\tha};q)_\iy} -\nonumber\\ -&\times\qhyp65{t(abcdq^{-1})^\half,-t(abcdq^{-1})^\half,t(abcd)^\half, --t(abcd)^\half,at e^{i\tha},at e^{-i\tha}} -{abt,act,adt,abcdt^2q^{-1},qt}{q,q}\quad(|t|<1). -\label{185} -\end{align} -In the limit \eqref{109} the first term on the \RHS\ of \eqref{185} -tends to the \LHS\ of (9.1.15), while the second term tends formally -to 0. The special case $ad=bc$ of \eqref{185} was earlier given in -\myciteKLS{236}{(4.1), (4.6)}. -% -\paragraph{Limit relations}\quad\sLP -{\bf Askey-Wilson $\longrightarrow$ Wilson}\\ -Instead of (14.1.21) we can keep a polynomial of degree $n$ while the limit is approached: -\begin{equation} -\lim_{q\to1}\frac{p_n(1-\thalf x(1-q)^2;q^a,q^b,q^c,q^d\,|\, q)}{(1-q)^{3n}} -=W_n(x;a,b,c,d). -\label{109} -\end{equation} -For the proof first derive the corresponding limit for the monic polynomials by comparing -(14.1.5) with (9.4.4). -\bLP -{\bf Askey-Wilson $\longrightarrow$ Continuous Hahn}\\ -Instead of (14.4.15) we can keep a polynomial of degree $n$ while the limit is approached: -\begin{multline} -\lim_{q\uparrow1} -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, -q^{\overline b} e^{-i\phi}\,|\, q\big)} -{(1-q)^{2n}}\\ -=(-2\sin\phi)^n\,n!\,p_n(x;a,b,\overline a,\overline b)\qquad -(0<\phi<\pi). -\label{177} -\end{multline} -Here the \RHS\ has a continuous Hahn polynomial (9.4.1). -For the proof first derive the corresponding limit for the monic polynomials by comparing -(14.1.5) with (9.1.5). -In fact, define the monic polynomial -\[ -\wt p_n(x):= -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi;q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi}, -q^{\overline b} e^{-i\phi}\,|\, q\big)} -{(-2(1-q)\sin\phi)^n\,(abcdq^{n-1};q)_n}\,. -\] -Then it follows from (14.1.5) that -\begin{equation*} -x\,\wt p_n(x)=\wt p_{n+1}(x) -+\frac{(1-q^a)e^{i\phi}+(1-q^{-a})e^{-i\phi}+\wt A_n+\wt C_n}{2(1-q)\sin\phi}\,\wt p_n(x)\\ -+\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), -\end{equation*} -where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by -$q^a e^{i\phi},q^b e^{i\phi},q^{\overline a} e^{-i\phi},q^{\overline b} e^{-i\phi}$. -Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to -the recurrence equation (9.4.4) with $c=\overline a$, $d=\overline b$. -\bLP -{\bf Askey-Wilson $\longrightarrow$ Meixner-Pollaczek}\\ -Instead of (14.9.15) we can keep a polynomial of degree $n$ while the limit is approached: -\begin{equation} -\lim_{q\uparrow1} -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; -q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(1-q)^n} -=n!\,P_n^{(\la)}(x;\pi-\phi)\quad -(0<\phi<\pi). -\label{178} -\end{equation} -Here the \RHS\ has a Meixner-Pollaczek polynomial (9.7.1). -For the proof first derive the corresponding limit for the monic polynomials by comparing -(14.1.5) with (9.7.4). -In fact, define the monic polynomial -\[ -\wt p_n(x):= -\frac{p_n\big(\cos\phi-x(1-q)\sin\phi; -q^\la e^{i\phi},0,q^\la e^{-i\phi},0\,|\, q\big)}{(-2(1-q)\sin\phi)^n}\,. -\] -Then it follows from (14.1.5) that -\begin{equation*} -x\,\wt p_n(x)=\wt p_{n+1}(x) -+\frac{(1-q^\la)e^{i\phi}+(1-q^{-\la})e^{-i\phi}+\wt A_n+\wt C_n} -{2(1-q)\sin\phi}\,\wt p_n(x)\\ -+\frac{\wt A_{n-1} \wt C_n}{(1-q)^2 \sin^2\phi}\,\wt p_{n-1}(x), -\end{equation*} -where $\wt A_n$ and $\wt C_n$ are as given after (14.1.3) with $a,b,c,d$ replaced by -$q^\la e^{i\phi},0,q^\la e^{-i\phi},0$. -Then the recurrence equation for $\wt p_n(x)$ tends for $q\uparrow 1$ to -the recurrence equation (9.7.4). -% -\paragraph{References} -See also Koornwinder \cite{K7}. -$$\frac{(-a)^n}{n!}C_n(x;a)=L_n^{(x-n)}(a).$$ - -\subsection*{References} -\cite{Allaway76}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara76}, -\cite{AlSalamIsmail76}, \cite{AndrewsAskey85}, \cite{Area+II}, \cite{Askey75}, -\cite{AskeyGasper77}, \cite{AskeyWilson85}, \cite{AtakRahmanSuslov}, \cite{Bavinck98}, -\cite{BavinckKoekoek}, \cite{Chihara78}, \cite{Chihara79}, \cite{Dunkl76}, \cite{Erdelyi+}, -\cite{Gasper73I}, \cite{Gasper74}, \cite{Goh}, \cite{HoareRahman}, \cite{IsmailLetVal88}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2002}, \cite{LabelleYehI}, -\cite{LabelleYehII}, \cite{LabelleYehIII}, \cite{Lesky62}, \cite{Lesky89}, \cite{Lesky94I}, -\cite{Lesky95II}, \cite{LewanowiczII}, \cite{LopezTemme2004}, \cite{Meixner}, \cite{Nikiforov+}, -\cite{NikiforovUvarov}, \cite{Szafraniec}, \cite{Szego75}, \cite{Viennot}, \cite{Zarzo+}, -\cite{Zeng90}. - - -\section{Hermite}\index{Hermite polynomials} - -\par\setcounter{equation}{0} - -\subsection*{Hypergeometric representation} -\begin{equation} -\label{DefHermite} -H_n(x)=(2x)^n\,\hyp{2}{0}{-n/2,-(n-1)/2}{-}{-\frac{1}{x^2}}. -\end{equation} - -\subsection*{Orthogonality relation} -\begin{equation} -\label{OrtHermite} -\frac{1}{\sqrt{\cpi}}\int_{-\infty}^{\infty}\expe^{-x^2}H_m(x)H_n(x)\,dx -=2^nn!\,\delta_{mn}. -\end{equation} - -\subsection*{Recurrence relation} -\begin{equation} -\label{RecHermite} -H_{n+1}(x)-2xH_n(x)+2nH_{n-1}(x)=0. -\end{equation} - -\subsection*{Normalized recurrence relation} -\begin{equation} -\label{NormRecHermite} -xp_n(x)=p_{n+1}(x)+\frac{n}{2}p_{n-1}(x), -\end{equation} -where -$$H_n(x)=2^np_n(x).$$ - -\subsection*{Differential equation} -\begin{equation} -\label{dvHermite} -y''(x)-2xy'(x)+2ny(x)=0,\quad y(x)=H_n(x). -\end{equation} - -\subsection*{Forward shift operator} -\begin{equation} -\label{shift1Hermite} -\frac{d}{dx}H_n(x)=2nH_{n-1}(x). -\end{equation} - -\subsection*{Backward shift operator} -\begin{equation} -\label{shift2HermiteI} -\frac{d}{dx}H_n(x)-2xH_n(x)=-H_{n+1}(x) -\end{equation} -or equivalently -\begin{equation} -\label{shift2HermiteII} -\frac{d}{dx}\left[\expe^{-x^2}H_n(x)\right]=-\expe^{-x^2}H_{n+1}(x). -\end{equation} - -\subsection*{Rodrigues-type formula} -\begin{equation} -\label{RodHermite} -\e^{-x^2}H_n(x)=(-1)^n\left(\frac{d}{dx}\right)^n\left[\expe^{-x^2}\right]. -\end{equation} - -\subsection*{Generating functions} -\begin{equation} -\label{GenHermite1} -\exp\left(2xt-t^2\right)=\sum_{n=0}^{\infty}\frac{H_n(x)}{n!}t^n. -\end{equation} - -\begin{equation} -\label{GenHermite2} -\left\{\begin{array}{l} -\displaystyle\expe^t\cos(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n)!}H_{2n}(x)t^n\\[5mm] -\displaystyle\frac{\expe^t}{\sqrt{t}}\sin(2x\sqrt{t})=\sum_{n=0}^{\infty} -\frac{(-1)^n}{(2n+1)!}H_{2n+1}(x)t^n. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite3} -\left\{\begin{array}{l} -\displaystyle \expe^{-t^2}\cosh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n}(x)}{(2n)!}t^{2n}\\[5mm] -\displaystyle\expe^{-t^2}\sinh(2xt)=\sum_{n=0}^{\infty} -\frac{H_{2n+1}(x)}{(2n+1)!}t^{2n+1}. -\end{array}\right. -\end{equation} - -\begin{equation} -\label{GenHermite4} -\left\{\begin{array}{l} -\displaystyle (1+t^2)^{-\gamma}\,\hyp{1}{1}{\gamma}{\frac{1}{2}}{\frac{x^2t^2}{1+t^2}}= -\sum_{n=0}^{\infty}\frac{(\gamma)_n}{(2n)!}H_{2n}(x)t^{2n}\\[5mm] -\displaystyle\frac{xt}{\sqrt{1+t^2}}\, -\hyp{1}{1}{\gamma+\frac{1}{2}}{\frac{3}{2}}{\frac{x^2t^2}{1+t^2}} -=\sum_{n=0}^{\infty}\frac{(\gamma+\frac{1}{2})_n}{(2n+1)!}H_{2n+1}(x)t^{2n+1} -\end{array}\right. -\end{equation} -with $\gamma$ arbitrary. - -\begin{equation} -\label{GenHermite5} -\frac{1+2xt+4t^2}{(1+4t^2)^{\frac{3}{2}}}\exp\left(\frac{4x^2t^2}{1+4t^2}\right) -=\sum_{n=0}^{\infty}\frac{H_n(x)}{\lfloor n/2\rfloor\,!}t^n, -\end{equation} -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\subsection*{Limit relations} - -\subsubsection*{Meixner-Pollaczek $\rightarrow$ Hermite} -If we take $x\rightarrow (\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi)$ -in the definition (\ref{DefMP}) of the Meixner-Pollaczek polynomials and -then let $\lambda\rightarrow\infty$ we obtain the Hermite polynomials: -$$\lim_{\lambda\rightarrow\infty} -\lambda^{-\frac{1}{2}n}P_n^{(\lambda)} -((\sin\phi)^{-1}(x\sqrt{\lambda}-\lambda\cos\phi);\phi)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Jacobi $\rightarrow$ Hermite} -The Hermite polynomials follow from the Jacobi polynomials given by (\ref{DefJacobi}) by -taking $\beta=\alpha$ and letting $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}P_n^{(\alpha,\alpha)}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{2^nn!}.$$ - -\subsubsection*{Gegenbauer / Ultraspherical $\rightarrow$ Hermite} -The Hermite polynomials follow from the Gegenbauer (or ultraspherical) polynomials given by -(\ref{DefGegenbauer}) by taking $\lambda=\alpha+\frac{1}{2}$ and letting -$\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\alpha^{-\frac{1}{2}n}C_n^{(\alpha+\frac{1}{2})}(\alpha^{-\frac{1}{2}}x)=\frac{H_n(x)}{n!}.$$ - -\subsubsection*{Krawtchouk $\rightarrow$ Hermite} -The Hermite polynomials follow from the Krawtchouk polynomials given by (\ref{DefKrawtchouk}) -by setting $x\rightarrow pN+x\sqrt{2p(1-p)N}$ and then letting $N\rightarrow\infty$: -$$\lim_{N\rightarrow\infty} -\sqrt{\binom{N}{n}}K_n(pN+x\sqrt{2p(1-p)N};p,N) -=\frac{\displaystyle (-1)^nH_n(x)}{\displaystyle\sqrt{2^nn!\left(\frac{p}{1-p}\right)^n}}.$$ - -\subsubsection*{Laguerre $\rightarrow$ Hermite} -The Hermite polynomials can be obtained from the Laguerre polynomials given by -(\ref{DefLaguerre}) by taking the limit $\alpha\rightarrow\infty$ in the following way: -$$\lim_{\alpha\rightarrow\infty} -\left(\frac{2}{\alpha}\right)^{\frac{1}{2}n} -L_n^{(\alpha)}((2\alpha)^{\frac{1}{2}}x+\alpha)=\frac{(-1)^n}{n!}H_n(x).$$ - -\subsubsection*{Charlier $\rightarrow$ Hermite} -If we set $x\rightarrow (2a)^{1/2}x+a$ in the definition (\ref{DefCharlier}) -of the Charlier polynomials and let $a\rightarrow\infty$ we find the Hermite -polynomials. In fact we have -$$\lim_{a\rightarrow\infty} -(2a)^{\frac{1}{2}n}C_n((2a)^{\frac{1}{2}}x+a;a)=(-1)^nH_n(x).$$ - -\subsection*{Remarks} -The Hermite polynomials can also be written as: -$$\frac{H_n(x)}{n!}=\sum_{k=0}^{\lfloor n/2\rfloor} -\frac{(-1)^k(2x)^{n-2k}}{k!\,(n-2k)!},$$ -where $\lfloor n/2\rfloor$ denotes the largest integer smaller than or equal to $n/2$. - -\noindent -The Hermite polynomials and the Laguerre polynomials given by (\ref{DefLaguerre}) are also -connected by the following quadratic transformations: -$$H_{2n}(x)=(-1)^nn!\,2^{2n}L_n^{(-\frac{1}{2})}(x^2)$$ -and -\subsection*{14.2 $q$-Racah} -\label{sec14.2} -\paragraph{Symmetry} -\begin{equation} -R_n(x;\al,\be,q^{-N-1},\de\,|\, q) -=\frac{(\be q,\al\de^{-1}q;q)_n}{(\al q,\be\de q;q)_n}\,\de^n\, -R_n(\de^{-1}x;\be,\al,q^{-N-1},\de^{-1}\,|\, q). -\label{84} -\end{equation} -This follows from (14.2.1) combined with \mycite{GR}{(III.15)}. -\sLP -In particular, -\begin{equation} -R_n(x;\al,\be,q^{-N-1},-1\,|\, q) -=\frac{(\be q,-\al q;q)_n}{(\al q,-\be q;q)_n}\,(-1)^n\, -R_n(-x;\be,\al,q^{-N-1},-1\,|\, q), -\label{85} -\end{equation} -and -\begin{equation} -R_n(x;\al,\al,q^{-N-1},-1\,|\, q) -=(-1)^n\,R_n(-x;\al,\al,q^{-N-1},-1\,|\, q), -\label{86} -\end{equation} - -\paragraph{Trivial symmetry} -Clearly from (14.2.1): -\begin{equation} -R_n(x;\al,\be,\ga,\de\,|\, q)=R_n(x;\be\de,\al\de^{-1},\ga,\de\,|\, q) -=R_n(x;\ga,\al\be\ga^{-1},\al,\ga\de\al^{-1}\,|\, q). -\label{83} -\end{equation} -For $\al=q^{-N-1}$ this shows that the three cases -$\al q=q^{-N}$ or $\be\de q=q^{-N}$ or $\ga q=q^{-N}$ of (14.2.1) -are not essentially different. -% -\paragraph{Duality} -It follows from (14.2.1) that -\begin{equation} -R_n(q^{-y}+\ga\de q^{y+1};q^{-N-1},\be,\ga,\de\,|\, q) -=R_y(q^{-n}+\be q^{n-N};\ga,\de,q^{-N-1},\be\,|\, q)\quad -(n,y=0,1,\ldots,N). -\end{equation} -$$H_{2n+1}(x)=(-1)^nn!\,2^{2n+1}xL_n^{(\frac{1}{2})}(x^2).$$ - -\subsection*{14.3 Continuous dual $q$-Hahn} -\label{sec14.3} -The continuous dual $q$-Hahn polynomials are the special case $d=0$ of the -Askey-Wilson polynomials: -\[ -p_n(x;a,b,c\,|\, q):=p_n(x;a,b,c,0\,|\, q). -\] -Hence all formulas in \S14.3 are specializations for $d=0$ of formulas in \S14.1. -\subsection*{References} -\cite{Abram}, \cite{NAlSalam66}, \cite{AlSalam90}, \cite{AlSalamChihara72}, -\cite{AlSalamChihara76}, \cite{AndrewsAskey85}, \cite{AndrewsAskeyRoy}, \cite{Area+I}, -\cite{Askey68}, \cite{Askey75}, \cite{Askey89I}, \cite{AskeyGasper76}, \cite{AskeyWilson85}, -\cite{Azor}, \cite{Berg}, \cite{BilodeauII}, \cite{Brafman51}, \cite{Brafman57II}, -\cite{Brenke}, \cite{CarlitzSrivastava}, \cite{ChenSrivastava}, \cite{Chihara78}, -\cite{Cohen}, \cite{Danese}, \cite{DetteStudden92}, \cite{DetteStudden95}, \cite{Doha2004I}, -\cite{Erdelyi+}, \cite{Faldey}, \cite{Gawronski87}, \cite{Gawronski93}, \cite{Gillis+}, -\cite{Godoy+}, \cite{Grad}, \cite{Ismail74}, \cite{Ismail2005II}, \cite{IsmailStanton97}, -\cite{Koekoek2000}, \cite{Koorn88}, \cite{Krasikov2004}, \cite{Kwon+}, \cite{LabelleYehIII}, -\cite{Lesky95II}, \cite{Lesky96}, \cite{LewanowiczI}, \cite{LopezTemme99}, \cite{Mathai}, -\cite{Meixner}, \cite{Nikiforov+}, \cite{NikiforovUvarov}, \cite{Olver}, \cite{Pittaluga}, -\cite{Rainville}, \cite{SainteViennot}, \cite{Srivastava71}, \cite{SrivastavaMathur}, -\cite{Szego75}, \cite{Temme}, \cite{TemmeLopez2000}, \cite{Trickovic}, \cite{Viennot}, -\cite{Weisner59}, \cite{Wyman}. - -\end{document} diff --git a/README.md b/README.md index b9ec267..34dc88c 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,10 @@ To achieve the desired result, one should execute the progams in the following o ## KLSadd Insertion Project linetest.py and updateChapters (mostly) written by Rahul Shah (ILIKEFUUD) -Edits the DRMF chapter files to include the relevant KLS addendum additions. Additions are (currently)only being added right before the "References" paragraphs in each section. The linetest.py file is the first working model of the code, but it is very messy and esoteric. Comments have been made to aid interpretation. The new project file, updateChapters.py is a more readable version, but not quite up to date. + +Edits the DRMF chapter files to include the relevant KLS addendum additions. Additions are (currently) only being added right before the "References" paragraphs in each section. The linetest.py file is the first working model of the code, but it is very messy and esoteric. Comments have been made to aid interpretation. The new project file, updateChapters.py is a more readable version, but not quite up to date. Left to do in updateChapters.py: import over the necessary files to make the pdf work, change all instances of "section" to "paragraph" and add "\large\bf" to make font large and bold like the other chapter headings. Also necessary to add initials of programmer wherever the new additions were added (ex. "%RS added, %RS end") + +Also: rewrite code for "smarter" edits (ex. add new limit relations straight to the From 6f5180bf32c6f9e08cbcbd93b6f76a4ace832cd1 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 16:59:00 -0500 Subject: [PATCH 008/402] Updated README for new insertion tasks --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34dc88c..e580ece 100644 --- a/README.md +++ b/README.md @@ -35,4 +35,4 @@ Edits the DRMF chapter files to include the relevant KLS addendum additions. Add Left to do in updateChapters.py: import over the necessary files to make the pdf work, change all instances of "section" to "paragraph" and add "\large\bf" to make font large and bold like the other chapter headings. Also necessary to add initials of programmer wherever the new additions were added (ex. "%RS added, %RS end") -Also: rewrite code for "smarter" edits (ex. add new limit relations straight to the +Also: rewrite code for "smarter" edits (ex. add new limit relations straight to the) From 603372c34c461b673bd76d97f98f7206e615302c Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 17:02:22 -0500 Subject: [PATCH 009/402] Updated README for new insertion tasks --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e580ece..917598a 100644 --- a/README.md +++ b/README.md @@ -35,4 +35,4 @@ Edits the DRMF chapter files to include the relevant KLS addendum additions. Add Left to do in updateChapters.py: import over the necessary files to make the pdf work, change all instances of "section" to "paragraph" and add "\large\bf" to make font large and bold like the other chapter headings. Also necessary to add initials of programmer wherever the new additions were added (ex. "%RS added, %RS end") -Also: rewrite code for "smarter" edits (ex. add new limit relations straight to the) +Also: rewrite code for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) From 359c1e31f0b57242481fce0dcc7a67bdae81f6cf Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 17:11:06 -0500 Subject: [PATCH 010/402] Added README for KLS Addendum Insertion --- KLSadd_insertion/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 KLSadd_insertion/README.md diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md new file mode 100644 index 0000000..ec95792 --- /dev/null +++ b/KLSadd_insertion/README.md @@ -0,0 +1,11 @@ +##KLS Addendum Insertion Project + +This project uses python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to + +python updateChapters.py + +The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. + +NOTE: Both the updateChapters.py and linetest.py lack a pdf version of their chapter 14 output. One must be generated to view results. + +NOTE: The KLSadd.tex file only deals with chapters 9 and 14, as stated in the document itself. From 2a69face761558a0eb0e8960bf14b7eae6fd4547 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Wed, 17 Feb 2016 17:13:32 -0500 Subject: [PATCH 011/402] Updated README formatting --- KLSadd_insertion/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index ec95792..ae09455 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -1,9 +1,9 @@ ##KLS Addendum Insertion Project This project uses python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to - +``` python updateChapters.py - +``` The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. NOTE: Both the updateChapters.py and linetest.py lack a pdf version of their chapter 14 output. One must be generated to view results. From 0a7c2d29d8fb59e17e1228ff543ded4329fc9bb0 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Thu, 18 Feb 2016 15:14:30 -0500 Subject: [PATCH 012/402] Updated README with information about program input and output and sensitive data. --- KLSadd_insertion/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index ae09455..84b8b12 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -9,3 +9,7 @@ The linetest.py program is the original program file fully updated. It is much h NOTE: Both the updateChapters.py and linetest.py lack a pdf version of their chapter 14 output. One must be generated to view results. NOTE: The KLSadd.tex file only deals with chapters 9 and 14, as stated in the document itself. + +NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file, tempchap9.tex, and tempchap14.tex in order to run the program. The program *generates* updated9.tex and updated14.tex files. + +**THIS MEANS YOU SHOULD NOT RUN updateChapters.py OR linetest.py FROM YOUR GIT DIRECTORY. THE CHAPTER FILES ARE NOT PUBLIC DOMAIN, DO NOT COMMIT THEM! COPY THE FILES OVER INTO A SEPERATE DIRECTORY AND THEN COPY THEM BACK OVER WHEN YOU ARE READY TO COMMIT** From 8eb9cf9bae5657ac01072c9b59b5b277bd29e292 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Thu, 18 Feb 2016 15:54:08 -0500 Subject: [PATCH 013/402] Now inserts relevant usepackages from KLSadd --- KLSadd_insertion/updateChapters.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index f7f40fe..c320327 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -9,7 +9,7 @@ 9 and 14 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -NOTE! AS OF 2/8/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE +NOTE! AS OF 2/18/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED Current update status: incomplete @@ -28,6 +28,22 @@ paras = [] mathPeople = [] + +#2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf + +def prepareForPDF(str): + footmiscIndex = 0 + index = 0 + for word in str: + index+=1 + if("footmisc" in word): + footmiscIndex+= index + #edits the chapter string sent to include hyperref, xparse, and cite packages + str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + + #not sure if needed, but I passed anyway + pass + #method to find the indices of the reference paragraphs def findReferences(str): references = [] @@ -48,7 +64,7 @@ def findReferences(str): #method to change file string(actually a list right now), returns string to be written to file def fixChapter(str, references, p): #str is the file string, references is the specific references for the file, and p is the paras variable(not sure if needed) - #TODO: OPTIMIZE + #TODO: OPTIMIZE(?) count = 0 #count is used to represent the values in count for i in references: #add @@ -106,7 +122,7 @@ def fixChapter(str, references, p): str9 = ''.join(fixChapter(entire9, references9, paras)) str14 = ''.join(fixChapter(entire14, references14, paras)) - #write to file + #write to files #new output files for safety with open("updated9.tex","w") as temp9: temp9.write(str9) From 2cb1881f86d0f0c9b5ea9e4d42646b853daba873 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Thu, 18 Feb 2016 16:50:20 -0500 Subject: [PATCH 014/402] Added method to insert KLS commands --- KLSadd_insertion/updateChapters.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index c320327..3f98a88 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -12,6 +12,14 @@ NOTE! AS OF 2/18/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED +Additional goals (already addressed in linetest.py): +-insert correct usepackages +-insert correct commands found in KLSadd.tex to chapter files +-insert editor's initials into sections (ie %RS: begin addition, %RS: end addition) + +Additional goals (not already addressed in linetest.py): +-rewrite for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) + Current update status: incomplete Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter @@ -28,7 +36,6 @@ paras = [] mathPeople = [] - #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf def prepareForPDF(str): @@ -44,6 +51,27 @@ def prepareForPDF(str): #not sure if needed, but I passed anyway pass +#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds + +def getCommands(kls): + newCommands = [] + for word in kls: + index+=1 + if("smallskipamount" in word): + newCommands.append(index-1) + if("mybibitem[1]" in word): + newCommands.append(index) + + #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs + if("paragraph{" in word): + temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] + +#2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 + +def insertCommands(kls, str): + #reads in from KLSadd.tex, finds appropriate commands, and puts them in str + + #method to find the indices of the reference paragraphs def findReferences(str): references = [] From d619e2be56d1f3c01f849db1adf047b817c022e0 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Fri, 19 Feb 2016 16:30:00 -0500 Subject: [PATCH 015/402] Added new method to complete new tasks --- KLSadd_insertion/updateChapters.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 3f98a88..98644ec 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -9,7 +9,7 @@ 9 and 14 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -NOTE! AS OF 2/18/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE +NOTE! AS OF 2/19/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED Additional goals (already addressed in linetest.py): @@ -35,7 +35,7 @@ chapNums = [] paras = [] mathPeople = [] - +newCommands = [] #used to hold extra commands that need to be inserted from KLSadd to the chapter files #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf def prepareForPDF(str): @@ -54,7 +54,6 @@ def prepareForPDF(str): #2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds def getCommands(kls): - newCommands = [] for word in kls: index+=1 if("smallskipamount" in word): @@ -65,12 +64,22 @@ def getCommands(kls): #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs if("paragraph{" in word): temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] - + #pretty sure I had to do something here but I forgot, so pass? + pass + #2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 def insertCommands(kls, str): - #reads in from KLSadd.tex, finds appropriate commands, and puts them in str + #reads in the newCommands[] and puts them in str + beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. + #find index of begin document in KLSadd + for w in kls: + index+=1 + if("begin{document}" in word): + beginIndex += index + str[beginIndex] += newCommands + return str #method to find the indices of the reference paragraphs def findReferences(str): @@ -145,6 +154,8 @@ def fixChapter(str, references, p): #two variables for the references lists one for chapter 9 one for chapter 14 references9 = findReferences(entire9) references14 = findReferences(entire14) + + #call the fixChapter method to get a list with the addendum paragraphs added in str9 = ''.join(fixChapter(entire9, references9, paras)) From d0e96e19599e727d83b157846488855e3bef19a0 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Fri, 19 Feb 2016 16:55:59 -0500 Subject: [PATCH 016/402] Edward, check here for tasks --- KLSadd_insertion/EdwardTasks.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 KLSadd_insertion/EdwardTasks.txt diff --git a/KLSadd_insertion/EdwardTasks.txt b/KLSadd_insertion/EdwardTasks.txt new file mode 100644 index 0000000..951ac3c --- /dev/null +++ b/KLSadd_insertion/EdwardTasks.txt @@ -0,0 +1,21 @@ +Fix your github; + +If I'm not here Monday, https://help.github.com/categories/ssh/ +go there and try to work out your issue, rm your git directory and try git clone again. + +This is what updateChapters.py currently does: + +-rips paragraphs from KLSadd and puts them after the References paragraphs. +TESTED: WORKING + +This is what has been written but not implemented/tested: + +-method to add relevant usepackages from KLSadd (cite, hyperref, xparse) +-method to add relevant new commands from KLSadd +-method to add "\large\bf KLSadd:" after every "paragraph{" inserted from KLSadd so everything looks neat + +This is what needs to be written: +-method that inserts limit relations straight into the limit relations paragraph in relevant sections instead of just at the end of the section + +keep checking back here every time I've commited to see what's left, and you can change stuff around here just add a comment saying what you did and the date you did it + From bbafdd7dd20b04a8baaab6d90a728243e21c0aa9 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Fri, 19 Feb 2016 16:59:46 -0500 Subject: [PATCH 017/402] Added instructions for EdwardTasks.txt --- KLSadd_insertion/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index 84b8b12..5c3febb 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -13,3 +13,7 @@ NOTE: The KLSadd.tex file only deals with chapters 9 and 14, as stated in the do NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file, tempchap9.tex, and tempchap14.tex in order to run the program. The program *generates* updated9.tex and updated14.tex files. **THIS MEANS YOU SHOULD NOT RUN updateChapters.py OR linetest.py FROM YOUR GIT DIRECTORY. THE CHAPTER FILES ARE NOT PUBLIC DOMAIN, DO NOT COMMIT THEM! COPY THE FILES OVER INTO A SEPERATE DIRECTORY AND THEN COPY THEM BACK OVER WHEN YOU ARE READY TO COMMIT** + + +**Edward, check the EdwardTasks.txt file to check what's done and what needs work, if your github is still down just try to write out what the method should be like in a seperate file** + From beddbd2464aabfbc29ee591532c1a1fa7e518a34 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Mon, 22 Feb 2016 15:31:59 -0500 Subject: [PATCH 018/402] Updated for 2/22/16 --- KLSadd_insertion/EdwardTasks.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/EdwardTasks.txt b/KLSadd_insertion/EdwardTasks.txt index 951ac3c..2e78c55 100644 --- a/KLSadd_insertion/EdwardTasks.txt +++ b/KLSadd_insertion/EdwardTasks.txt @@ -1,8 +1,11 @@ Fix your github; -If I'm not here Monday, https://help.github.com/categories/ssh/ +https://help.github.com/categories/ssh/ go there and try to work out your issue, rm your git directory and try git clone again. + +If all else fails, try ssh -vT git@github.com + This is what updateChapters.py currently does: -rips paragraphs from KLSadd and puts them after the References paragraphs. From 200a6d0273c671b39de76fdfde8e2902b3d39484 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Mon, 22 Feb 2016 16:01:29 -0500 Subject: [PATCH 019/402] added method calls to updateCHapters.py testing needed --- KLSadd_insertion/updateChapters.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 98644ec..7cd7dcb 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -9,7 +9,7 @@ 9 and 14 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -NOTE! AS OF 2/19/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE +NOTE! AS OF 2/22/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED Additional goals (already addressed in linetest.py): @@ -36,7 +36,8 @@ paras = [] mathPeople = [] newCommands = [] #used to hold extra commands that need to be inserted from KLSadd to the chapter files -#2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf +#2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. +#Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf def prepareForPDF(str): footmiscIndex = 0 @@ -47,9 +48,8 @@ def prepareForPDF(str): footmiscIndex+= index #edits the chapter string sent to include hyperref, xparse, and cite packages str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" - - #not sure if needed, but I passed anyway - pass + + return str #2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds @@ -99,16 +99,22 @@ def findReferences(str): return references #method to change file string(actually a list right now), returns string to be written to file -def fixChapter(str, references, p): - #str is the file string, references is the specific references for the file, and p is the paras variable(not sure if needed) +#If you write a method that changes something, it is preffered that you call the method in here +def fixChapter(str, references, p, kls): + #str is the file string(actually a list), references is the specific references for the file, and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list #TODO: OPTIMIZE(?) count = 0 #count is used to represent the values in count for i in references: - #add + #add the paragraphs before the Reference paragraphs start str[i-3] += p[count] count+=1 - #I actually don't remember why I had to do this but I think you need it str[i-1] += p[count] + + #I actually don't remember why I had to do this but I think you need it ^^^^^^^^^^^^^^^^^^^ + str = prepareForPDF(str) + getCommands(kls) + str = insertCommands(kls,str) + #probably won't work because I don't know how anything works return str #open the KLSadd file to do things with @@ -155,12 +161,16 @@ def fixChapter(str, references, p): references9 = findReferences(entire9) references14 = findReferences(entire14) - #call the fixChapter method to get a list with the addendum paragraphs added in str9 = ''.join(fixChapter(entire9, references9, paras)) str14 = ''.join(fixChapter(entire14, references14, paras)) +""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part is where the lists representing the words/strings in the chapter are joined together and updated as a string! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +""" #write to files #new output files for safety with open("updated9.tex","w") as temp9: From 38a731c4dc993dd90e6471dda98b18efa354fdd3 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Mon, 22 Feb 2016 16:45:35 -0500 Subject: [PATCH 020/402] Added original file of updateChapters as a backup --- KLSadd_insertion/updateChaptersBACKUP1.py | 117 ++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 KLSadd_insertion/updateChaptersBACKUP1.py diff --git a/KLSadd_insertion/updateChaptersBACKUP1.py b/KLSadd_insertion/updateChaptersBACKUP1.py new file mode 100644 index 0000000..a738d07 --- /dev/null +++ b/KLSadd_insertion/updateChaptersBACKUP1.py @@ -0,0 +1,117 @@ +""" +Rahul Shah +self-taught python don't kill me I know its bad +2/5/16 +Re-write of linetest.py so people other than me can read it + +This project was/is being written to streamline the update process of the book used +for the online repository, updated via the KLSadd addendum file which only affects chapters +9 and 14 + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +NOTE! AS OF 2/18/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE +linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED + +Current update status: incomplete + +Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter +""" + +#start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files +#also keep track of which chapter each one is in + +#variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over +#chapNums is needed to know which file to open (9 or 14) +#mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name +#yes I like lists +chapNums = [] +paras = [] +mathPeople = [] + +#method to find the indices of the reference paragraphs +def findReferences(str): + references = [] + index = -1 + canAdd = False + for word in str: + index+=1 + #check sections and subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1: word.find("}")] + if(w not in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references.append(index) + canAdd = False + return references + +#method to change file string(actually a list right now), returns string to be written to file +def fixChapter(str, references, p): + #str is the file string, references is the specific references for the file, and p is the paras variable(not sure if needed) + #TODO: OPTIMIZE + count = 0 #count is used to represent the values in count + for i in references: + #add + str[i-3] += p[count] + count+=1 + #I actually don't remember why I had to do this but I think you need it + str[i-1] += p[count] + return str + +#open the KLSadd file to do things with +with open("KLSadd.tex", "r") as add: + #store the file as a string + addendum = add.readlines() + index = 0 + indexes = [] + for word in addendum: + index+=1 + if("." in word and "\\subsection*{" in word): + name = word[word.find(" "): word.find("}")] + mathPeople.append(name) + if("9." in word): + chapNums.append(9) + if("14." in word): + chapNums.append(9) + #get the index + indexes.append(index-1) + #now indexes holds all of the places there is a section + #using these indexes, get all of the words in between and add that to the paras[] + for i in range(len(indexes)-1): + str = ''.join(addendum[indexes[i]: indexes[i+1]-1]) + paras.append(str) + + #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate + #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable + #we can use the section names to place the relevant paragraphs in the right place + + #as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section + #parse both files 9 and 14 as strings + + #chapter 9 + with open("tempchap9.tex", "r") as ch9: + entire9 = ch9.readlines() #reads in as a list of strings + ch9.close() + + #chapter 14 + with open("tempchap14.tex", "r") as ch14: + entire14 = ch14.readlines() + ch14.close() + #call the findReferences method to find the index of the References paragraph in the two file strings + #two variables for the references lists one for chapter 9 one for chapter 14 + references9 = findReferences(entire9) + references14 = findReferences(entire14) + + #call the fixChapter method to get a list with the addendum paragraphs added in + str9 = ''.join(fixChapter(entire9, references9, paras)) + str14 = ''.join(fixChapter(entire14, references14, paras)) + + #write to file + #new output files for safety + with open("updated9.tex","w") as temp9: + temp9.write(str9) + temp9.close() + + with open("updated14.tex", "w") as temp14: + temp14.write(str9) + From 4178fe1ba94e83bc9b3cab80cd78f16861c7c605 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 22 Feb 2016 16:53:57 -0500 Subject: [PATCH 021/402] edward bian test commit --- KLSadd_insertion/updateChapters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 7cd7dcb..04c197c 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -7,7 +7,7 @@ This project was/is being written to streamline the update process of the book used for the online repository, updated via the KLSadd addendum file which only affects chapters 9 and 14 - +#Edward test commit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOTE! AS OF 2/22/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED From ec0635f8477e2adf632cd0688694e7fa0dceaac8 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 22 Feb 2016 17:02:03 -0500 Subject: [PATCH 022/402] more testing edward bian --- KLSadd_insertion/updateChapters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 04c197c..1bbca08 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -7,7 +7,7 @@ This project was/is being written to streamline the update process of the book used for the online repository, updated via the KLSadd addendum file which only affects chapters 9 and 14 -#Edward test commit +#Edward test 2 commit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOTE! AS OF 2/22/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED From 4f586f2898174090aaa775dc4c815689db88e01c Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 22 Feb 2016 17:16:43 -0500 Subject: [PATCH 023/402] more practice with git(just added some text) --- KLSadd_insertion/EdwardTasks.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/KLSadd_insertion/EdwardTasks.txt b/KLSadd_insertion/EdwardTasks.txt index 2e78c55..cd4bdcf 100644 --- a/KLSadd_insertion/EdwardTasks.txt +++ b/KLSadd_insertion/EdwardTasks.txt @@ -5,6 +5,8 @@ go there and try to work out your issue, rm your git directory and try git clone If all else fails, try ssh -vT git@github.com + ^ +ABOVE IS DONE | This is what updateChapters.py currently does: From 5241bb1d524c9fe317eeedf8a5969fc97852e310 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Feb 2016 12:41:44 -0500 Subject: [PATCH 024/402] Fixing Stuff for myself(Edward) --- KLSadd_insertion/EdwardTasks.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KLSadd_insertion/EdwardTasks.txt b/KLSadd_insertion/EdwardTasks.txt index cd4bdcf..0f5a079 100644 --- a/KLSadd_insertion/EdwardTasks.txt +++ b/KLSadd_insertion/EdwardTasks.txt @@ -1,4 +1,4 @@ -Fix your github; +Fix your github; hopefully fixed now (fixed if this message shows up on github) https://help.github.com/categories/ssh/ go there and try to work out your issue, rm your git directory and try git clone again. From c41d33be4782997c632d7571e0bff042741355fb Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Fri, 26 Feb 2016 17:16:25 -0500 Subject: [PATCH 025/402] Fixed some errors, incomplete --- KLSadd_insertion/updateChapters.py | 68 +++++++++++++++++------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 1bbca08..35ed303 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -9,7 +9,7 @@ 9 and 14 #Edward test 2 commit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -NOTE! AS OF 2/22/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE +NOTE! AS OF 2/26/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED Additional goals (already addressed in linetest.py): @@ -39,47 +39,53 @@ #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf -def prepareForPDF(str): +def prepareForPDF(chap): + print(type(chap)) footmiscIndex = 0 index = 0 - for word in str: + for word in chap: index+=1 if("footmisc" in word): footmiscIndex+= index #edits the chapter string sent to include hyperref, xparse, and cite packages - str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + #str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + chap.insert(footmiscIndex, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") - return str + return chap #2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds def getCommands(kls): + index = 0 for word in kls: index+=1 if("smallskipamount" in word): newCommands.append(index-1) if("mybibitem[1]" in word): newCommands.append(index) - #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs if("paragraph{" in word): + #not sure if this works, needs testing! temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] - #pretty sure I had to do something here but I forgot, so pass? - pass + + #pretty sure I had to do something here but I forgot, so pass? + pass #2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 -def insertCommands(kls, str): - #reads in the newCommands[] and puts them in str +def insertCommands(kls, chap): + #reads in the newCommands[] and puts them in chap beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. #find index of begin document in KLSadd + index = 0 for w in kls: index+=1 if("begin{document}" in word): beginIndex += index - str[beginIndex] += newCommands - return str + #chap[beginIndex] += newCommands + chap.insert(beginIndex, newCommands) + return chap #method to find the indices of the reference paragraphs def findReferences(str): @@ -100,22 +106,23 @@ def findReferences(str): #method to change file string(actually a list right now), returns string to be written to file #If you write a method that changes something, it is preffered that you call the method in here -def fixChapter(str, references, p, kls): - #str is the file string(actually a list), references is the specific references for the file, and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list +def fixChapter(chap, references, p, kls): + #chap is the file string(actually a list), references is the specific references for the file, + #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list #TODO: OPTIMIZE(?) count = 0 #count is used to represent the values in count for i in references: #add the paragraphs before the Reference paragraphs start - str[i-3] += p[count] + chap[i-3] += p[count] count+=1 - str[i-1] += p[count] + chap[i-1] += p[count] #I actually don't remember why I had to do this but I think you need it ^^^^^^^^^^^^^^^^^^^ - str = prepareForPDF(str) + chap = prepareForPDF(chap) getCommands(kls) - str = insertCommands(kls,str) + chap = insertCommands(kls,chap) #probably won't work because I don't know how anything works - return str + return chap #open the KLSadd file to do things with with open("KLSadd.tex", "r") as add: @@ -163,20 +170,21 @@ def fixChapter(str, references, p, kls): #call the fixChapter method to get a list with the addendum paragraphs added in - str9 = ''.join(fixChapter(entire9, references9, paras)) - str14 = ''.join(fixChapter(entire14, references14, paras)) + str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) + str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part is where the lists representing the words/strings in the chapter are joined together and updated as a string! +If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part +is where the lists representing the words/strings in the chapter are joined together and updated as a string! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ """ - #write to files - #new output files for safety - with open("updated9.tex","w") as temp9: - temp9.write(str9) - temp9.close() - - with open("updated14.tex", "w") as temp14: - temp14.write(str9) + + +#write to files +#new output files for safety +with open("updated9.tex","w") as temp9: + temp9.write(str9) +with open("updated14.tex", "w") as temp14: + temp14.write(str9) From e5dbb2d60ff3262ee6cf96fd79a9c325e5164d17 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Fri, 26 Feb 2016 17:30:41 -0500 Subject: [PATCH 026/402] Fixed some more bugs with list and types --- KLSadd_insertion/updateChapters.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 35ed303..a7cb7bc 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -7,7 +7,7 @@ This project was/is being written to streamline the update process of the book used for the online repository, updated via the KLSadd addendum file which only affects chapters 9 and 14 -#Edward test 2 commit + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOTE! AS OF 2/26/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED @@ -40,7 +40,6 @@ #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf def prepareForPDF(chap): - print(type(chap)) footmiscIndex = 0 index = 0 for word in chap: @@ -168,7 +167,8 @@ def fixChapter(chap, references, p, kls): references9 = findReferences(entire9) references14 = findReferences(entire14) - + #ERROR! entire9 sometimes contains lists, must only contain strings. Should be fixed by next week. Check the + #getCommands method, I suspect that is the problem #call the fixChapter method to get a list with the addendum paragraphs added in str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) From da1bd90125221368b9c6f06d0006dd54948376a8 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 27 Feb 2016 15:09:18 +0100 Subject: [PATCH 027/402] Reformat code * fix typo * follow IDE suggestions --- AlexDanoff/remove_excess.py | 209 +++++++++++++++++------------------- 1 file changed, 98 insertions(+), 111 deletions(-) diff --git a/AlexDanoff/remove_excess.py b/AlexDanoff/remove_excess.py index c520105..18c16b2 100644 --- a/AlexDanoff/remove_excess.py +++ b/AlexDanoff/remove_excess.py @@ -1,11 +1,11 @@ -"""This program begins with an unprocessed LaTeX file and removes parts that are unnecesssary for the DLMF.""" +"""This program begins with an unprocessed LaTeX file and removes parts that are unnecessary for the DLMF.""" import re import sys import parentheses from utilities import (writeout, readin, get_line_lengths, - find_line) + find_line) EQ_START = r'\begin{equation}' EQ_END = r'\end{equation}' @@ -18,65 +18,70 @@ STD_REGEX = r'.*?###open_(\d+)###.*?###close_\1###' -def main(): +def main(): if len(sys.argv) != 3: fname = "ZE.tex" - dot_ind = fname.index(".") + 1 + dot_ind = fname.index(".") + 1 ofname = fname[:dot_ind] + "1." + fname[dot_ind:] else: fname = sys.argv[1] - ofname = sys.argv[2] + ofname = sys.argv[2] writeout(ofname, remove_excess(readin(fname))) -def remove_group(name, content, skip_lines): - """Removes the group bounded by the group name and then curly braces.""" - - str_pat = name + STD_REGEX - pattern = re.compile(str_pat, re.DOTALL) - - return pattern.sub(r'', content) def remove_section(start, end, content): - """Removes the section or part bounded by start and end.""" - + """Removes the section or part bounded by start and end. + :param start: + :param end: + :param content: + """ + str_pat = start + r'.*?(' + end + r')' - pattern = re.compile(str_pat, re.DOTALL) + pattern = re.compile(str_pat, re.DOTALL) return pattern.sub(r'\1', content) + def remove_begin_end(name, content): - """Removes a group bound by \\begin{name} and \\end{name}.""" + """Removes a group bound by \\begin{name} and \\end{name}. + :param name: + :param content: + """ str_pat = r'\\begin{' + name + r'}.*?\\end{' + name + r'}' pattern = re.compile(str_pat, re.DOTALL) return pattern.sub(r'', content) + def remove_excess(content): - """Removes the excess pieces from the given content and returns the updated version as a string.""" + """Removes the excess pieces from the given content and returns the updated version as a string. + :param content: + """ oldest = content updated = _get_preamble() old = content - #edit single lines - content = re.sub(r'\\bibliography{\.\./bib/DLMF}', r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) - content = re.sub(r'\\author\[.*?\]{(.*?)}', r'\\author{\1}', content) - content = re.sub(r'{math}', r'{equation}', content) - - #modify labels, etc - content = re.sub(r'\\begin{equation}\[.*?\]+', r'\\begin{equation}', content, re.DOTALL) + # edit single lines + content = re.sub(r'\\bibliography{\.\./bib/DLMF}', + r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) + content = re.sub(r'\\author\[.*?\]{(.*?)}', r'\\author{\1}', content) + content = re.sub(r'\{math\}', r'{equation}', content) + + # modify labels, etc + content = re.sub(r'\\begin\{equation\}\[.*?\]+', r'\\begin{equation}', content, re.DOTALL) - print(len(old) -len(content)) + print(len(old) - len(content)) old = content - - #remove from something to the start of the next section/part/etc + + # remove from something to the start of the next section/part/etc content = remove_section(r'\\section{Special Notation}', r'\\part', content) content = remove_section(r'\\part{Computation}', r'\\bibliographystyle{plain}', content) content = remove_section(r'\\part{References}', r'\\bibliographystyle{plain}', content) @@ -85,17 +90,16 @@ def remove_excess(content): content = remove_section(r'\\subsection{Graphics}', r'\\subsection', content) content = remove_section(r'\\section{Integrals}', r'\\section', content) content = remove_section(r'\\subsection{Integrals}', r'\\subsection', content) - content = remove_section(r'\\section{Physical Applications}', r'\\bibliographystyle{plain}', content) + content = remove_section(r'\\section{Physical Applications}', r'\\bibliographystyle{plain}', content) print(len(old) - len(content)) - old = content to_join = [] - #takes out comment lines first + # takes out comment lines first for line in content.split("\n"): - - #if line only consists of % replace with nothing, otherwise don't add back + + # if line only consists of % replace with nothing, otherwise don't add back if line.lstrip().startswith("%"): if line.rstrip().endswith("%"): line = "" @@ -108,153 +112,150 @@ def remove_excess(content): skip_lines = set() - #remove begin/end groups + # remove begin/end groups content = remove_begin_end("figuregroup", content) content = remove_begin_end("comment", content) content = remove_begin_end("figure", content) content = remove_begin_end("errata", content) - content = parentheses.remove(content, curly=True) + content = parentheses.remove(content, curly=True) to_remove = [ r'\\citet', - r'\\lxDeclare\[.*?\]', + r'\\lxDeclare\[.*?\]', r'\\note', r'\\origref', r'\\lxRefDeclaration', r'\\MarkDefn.*?###open_(\d+)###.*?###close_\1###', - r'\\indexdefn', + r'\\indexdefn', r'\\MarkNotation.*?###open_(\d+)###.*?###close_\1###', - r'\\affiliation', + r'\\affiliation', ] lengths = get_line_lengths(content) - #go through each group and remove it + # go through each group and remove it for name in to_remove: - + str_regex = name + STD_REGEX pattern = re.compile(str_regex, re.DOTALL) - #go through every match, finding start and end + # go through every match, finding start and end for match in pattern.finditer(content): - - group = match.group() - start = find_line(match.start(), lengths) - end = find_line(match.end(), lengths) + end = find_line(match.end(), lengths) - #print("{0}: {1} - {2}".format(group, start, end)) + # print("{0}: {1} - {2}".format(group, start, end)) - skip_lines.update(range(start, end + 1)) + skip_lines.update(range(start, end + 1)) - #define items that cannot be at the beginning of any line or be contined in any line - illegal_starts = [r'\documentclass{DLMF}', r'\thischapter', r'\part{Notation}', r'\begin{equationgroup', r'\end{equationgroup', r'\begin{onecolumn', r'\end{onecolumn'] + # define items that cannot be at the beginning of any line or be contined in any line + illegal_starts = [r'\documentclass{DLMF}', r'\thischapter', r'\part{Notation}', r'\begin{equationgroup', + r'\end{equationgroup', r'\begin{onecolumn', r'\end{onecolumn'] illegal_elements = [r'TwoToOneRule', r'OneToTwoRule', r'\citet'] lines = content.split("\n") - #various flags that will be useful when going through the lines + # various flags that will be useful when going through the lines in_eq = False - in_eqmix = False in_const = False in_cases = False eqmix_label = "" const_str = "" - #remove trailing % and whitespace and add to updated - also remove lines that should be skipped + # remove trailing % and whitespace and add to updated - also remove lines that should be skipped for lnum, line in enumerate(lines): lnum += 1 - #don't add line back if it should be skipped + # don't add line back if it should be skipped if lnum in skip_lines: continue - + line = parentheses.insert(line, curly=True) - line_checks = [line.lstrip().startswith(start) for start in illegal_starts] + [element in line for element in illegal_elements] - - #skip current line if it starts with or contains an illegal element + line_checks = [line.lstrip().startswith(start) for start in illegal_starts] + [element in line for element in + illegal_elements] + + # skip current line if it starts with or contains an illegal element if any(line_checks): - continue + continue cleaned = line.rstrip().rstrip("%").rstrip() - #line marks the start of an equationmix, set the flag and remove the line + # line marks the start of an equationmix, set the flag and remove the line if EQMIX_START in cleaned: - in_eqmix = True - eqmix_label = cleaned[cleaned.index(r'\label'):] + eqmix_label = cleaned[cleaned.index(r'\label'):] continue - #line marks the end of an equationmix, set the flag and remove the line + # line marks the end of an equationmix, set the flag and remove the line if EQMIX_END in cleaned: - in_eqmix = False eqmix_label = "" continue - #if this line marks the start of an equation, set the flag + # if this line marks the start of an equation, set the flag if EQ_START in cleaned: - in_eq = True + in_eq = True cleaned = cleaned + eqmix_label - - #if this line marks the end of an equation, set the flag + + # if this line marks the end of an equation, set the flag if EQ_END in cleaned: in_eq = False - #comment out constraints and replace commas with double commas; we need to build the entire constraint string and then add it back together + # comment out constraints and replace commas with double commas; we need to build the entire constraint + # string and then add it back together if cleaned.lstrip().startswith(r"\constraint"): in_const = True - #starting a cases statement + # starting a cases statement if CASES_START in cleaned: in_cases = True - #ending a cases statement + # ending a cases statement if CASES_END in cleaned: in_cases = False - #remove commas, periods, colons, and semi-colons from the end of equations + # remove commas, periods, colons, and semi-colons from the end of equations if in_eq and not in_const: to_strip = ":;," - - #don't take off trailing commas when in a cases block + + # don't take off trailing commas when in a cases block if in_cases: to_strip = to_strip[:-1] - + cleaned = cleaned.rstrip(to_strip) - #we're still in a constraint, replace commas and comment out + # we're still in a constraint, replace commas and comment out if in_const: const_str += cleaned - #we're done with the constraint, make substitutions + # we're done with the constraint, make substitutions if cleaned.rstrip().rstrip(".,").endswith("}"): - const_str = re.sub(r'\$[;,](\s*(?:\$|or))', r'$ &\1', const_str) + const_str = re.sub(r'\$[;,](\s*(?:\$|or))', r'$ &\1', const_str) in_const = False - - #constraint ends with two }, put one on next line + + # constraint ends with two }, put one on next line if cleaned.rstrip().endswith("}}"): const_str = const_str[:-1] + "\n}" - + const_lines = [] split = const_str.split("\n") - + offset = 1 - #account for the case when there are no newlines present + # account for the case when there are no newlines present if len(split) == 1: - offset = 0 + offset = 0 - #split multiline constraints back into multiple lines + # split multiline constraints back into multiple lines for const_line in split[offset:]: - - #if line is not just a bracket, comment it out + + # if line is not just a bracket, comment it out if const_line.strip() != "}": const_line = "%" + const_line - + const_lines.append(const_line) updated.extend(const_lines) @@ -268,44 +269,30 @@ def remove_excess(content): content = '\n'.join(updated) - #remove blank lines around begin and end equation - space_pat = re.compile(r'\\begin{equation}(.*?)$\s+$', re.MULTILINE) + # remove blank lines around begin and end equation + space_pat = re.compile(r'\\begin\{equation\}(.*?)$\s+$', re.MULTILINE) content = space_pat.sub(r'\\begin{equation}\1', content) - space_pat = re.compile(r'^\s*$\n\\end{equation}', re.MULTILINE) + space_pat = re.compile(r'^\s*$\n\\end\{equation\}', re.MULTILINE) content = space_pat.sub(r'\\end{equation}', content) - #remove consecutive blank lines + # remove consecutive blank lines content = re.sub(r'(\n){3,}', '\n\n', content) print("Final: {0}".format(len(oldest) - len(content))) return content -#returns the preamble as a list of it's lines -def _get_preamble(): - preamble = [] - - preamble.append('\\documentclass{article}') - preamble.append('\\usepackage{amsmath}') - preamble.append('\\usepackage{amsfonts}') - preamble.append('\\usepackage{breqn}') - preamble.append('\\usepackage{DLMFmath}') - preamble.append('\\usepackage{DRMFfcns}') - preamble.append('') - preamble.append('\\oddsidemargin -0.7cm') - preamble.append('\\textwidth 18.3cm') - preamble.append('\\textheight 26.0cm') - preamble.append('\\topmargin -2.0cm') - preamble.append('') - preamble.append('% \constraint{') - preamble.append('% \substitution{') - preamble.append('% \drmfnote{') - preamble.append('% \drmfname{') - preamble.append('') +# returns the preamble as a list of it's lines +def _get_preamble(): + preamble = ['\\documentclass{article}', '\\usepackage{amsmath}', '\\usepackage{amsfonts}', '\\usepackage{breqn}', + '\\usepackage{DLMFmath}', '\\usepackage{DRMFfcns}', '', '\\oddsidemargin -0.7cm', '\\textwidth 18.3cm', + '\\textheight 26.0cm', '\\topmargin -2.0cm', '', '% \constraint{', '% \substitution{', + '% \drmfnote{', '% \drmfname{', ''] return preamble + if __name__ == "__main__": main() From c7f8c57ce2fc5f08fa303af8a2ff7f19167e9fbb Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 27 Feb 2016 16:55:33 +0100 Subject: [PATCH 028/402] Add travis integration --- .travis.yml | 2 ++ README.md | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b85e205 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,2 @@ +language: python +script: nosetests -w AlexDanoff \ No newline at end of file diff --git a/README.md b/README.md index 917598a..bd507b5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # DRMF-Seeding-Project +[![Build Status](https://travis-ci.org/DRMF/DRMF-Seeding-Project.svg?branch=master)](https://travis-ci.org/DRMF/DRMF-Seeding-Project) + This project is meant to convert different designated source formats to semantic LaTeX for the DRMF project. One major aspect of this conversion is the inclusion, insertion, and replacement of LaTeX semantic macros. From 4315dbedbb80e752e8274c4e6e6ba7a62e368022 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 27 Feb 2016 17:20:48 +0100 Subject: [PATCH 029/402] Reformat code * prevent data exploits by moving the private data into a directroy that is ignored by .gitignore --- AlexDanoff/prepare_annotations.py | 83 +++++++++-------- AlexDanoff/remove_excess.py | 2 +- AlexDanoff/replace_special.py | 144 +++++++++++++++--------------- 3 files changed, 119 insertions(+), 110 deletions(-) diff --git a/AlexDanoff/prepare_annotations.py b/AlexDanoff/prepare_annotations.py index 818eede..5f22cac 100644 --- a/AlexDanoff/prepare_annotations.py +++ b/AlexDanoff/prepare_annotations.py @@ -19,7 +19,7 @@ import parentheses from utilities import (readin, writeout, remove_inner_whitespace, - get_line_lengths, find_line) + get_line_lengths, find_line) FLUSH_START = r'\begin{flushright}' FLUSH_END = r'\end{flushright}' @@ -27,25 +27,27 @@ ANNOTATION_STR = r'\s*%\s*\\(?:constraint|substitution|drmf(?:note|name)|proof)' ANNOTATION_PAT = re.compile(ANNOTATION_STR, re.MULTILINE) -BRACE_PAT = re.compile(r'(?P' + ANNOTATION_STR + r')###open_(\d+)###(?![$ ])(?P.*?)(?![$ ])###close_\2###', re.DOTALL) +BRACE_PAT = re.compile( + r'(?P' + ANNOTATION_STR + r')###open_(\d+)###(?![$ ])(?P.*?)(?![$ ])###close_\2###', re.DOTALL) MEASURE_PAT = re.compile(r'(\S)\\\\\[0.2cm\]') -def main(): - #get the names of the input and output files +def main(): + # get the names of the input and output files if len(sys.argv) != 3: - fname = "ZE.3.tex" - ofname = "ZE.4.tex" + fname = "data/ZE.2.tex" + ofname = "data/ZE.3.tex" else: fname = sys.argv[1] - ofname = sys.argv[2] + ofname = sys.argv[2] writeout(ofname, prepare_annotations(readin(fname))) + def prepare_annotations(content): """ Prepares annotations in `content` to be compatible with WikiText. @@ -55,14 +57,15 @@ def prepare_annotations(content): * special formatting * etc. """ - + docstart = content.find(r'\begin{document}') - eq_comment_pattern = re.compile(r'\\begin{equation}(?P\\label{(?P.*?)}.*?\n^[^%]*$)(?P\n^ *%[\w\s\\{}()<>[\]&=@%,.:;|\'~_^$/+-]*?\n)\\end{equation}', re.MULTILINE) + eq_comment_pattern = re.compile( + r'\\begin{equation}(?P\\label{(?P.*?)}.*?\n^[^%]*$)(?P\n^ *%[\w\s\\{}()<>[\]&=@%,.:;|\'~_^$/+-]*?\n)\\end{equation}', + re.MULTILINE) content = content[:docstart] + eq_comment_pattern.sub(replace_comments, content[docstart:]) - special_annotations = { r'\\constraint': "C", r'\\substitution': "S", @@ -71,7 +74,7 @@ def prepare_annotations(content): r'\\proof': "PROOF" } - #replace the annotations with their "code" + # replace the annotations with their "code" for annotation, code in special_annotations.iteritems(): content = content[:docstart] + re.sub(annotation, r'{\\bf ' + code + '}:~', content[docstart:]) @@ -82,7 +85,8 @@ def prepare_annotations(content): return content -#moves annotations from inside equation blocks to the end of them and wraps them in a flushright block + +# moves annotations from inside equation blocks to the end of them and wraps them in a flushright block def replace_comments(match): """ Processes each equation block that contains comments. @@ -110,7 +114,7 @@ def replace_comments(match): before = match.group("before") - #print("Equation label: {0}".format(match.group("eq_label"))) + # print("Equation label: {0}".format(match.group("eq_label"))) replacement = r'\begin{equation}' + before @@ -128,26 +132,26 @@ def replace_comments(match): comment = BRACE_PAT.sub(r'\g\g', comment) comment = parentheses.insert(comment, curly=True) - #make sure every line in the comment is actually a comment + # make sure every line in the comment is actually a comment for comment_line in comment.split("\n"): stripped = comment_line.lstrip() - #line isn't really a comment, add it back to the equation + # line isn't really a comment, add it back to the equation if not stripped.startswith("%"): replacement += comment_line + "\n" - - else: #otherwise, process it (take off % and add in \displaystyle) and add it to the comment + + else: # otherwise, process it (take off % and add in \displaystyle) and add it to the comment num_annotations = len(ANNOTATION_PAT.findall(comment_line)) - #add measurement to the previous line if the current line is starting a new annotation + # add measurement to the previous line if the current line is starting a new annotation add_measure = num_annotations and annotations_left != total_annotations annotations_left -= num_annotations - + leading_whitespace = len(comment_line) - len(stripped) + 1 - comment_line = " " * leading_whitespace + stripped.lstrip("%") + comment_line = " " * leading_whitespace + stripped.lstrip("%") old_len = len(comment_line) @@ -158,22 +162,22 @@ def replace_comments(match): first_brack = comment_line.find("{") - #if we're going to go out of bounds, nothing to do on this line + # if we're going to go out of bounds, nothing to do on this line if first_brack + 1 < len(comment_line): after_first = comment_line[first_brack + 1] else: continue - + dollar_locs = _get_dollar_locs(comment_line) offset = 0 - #there's at least one $ in the line + # there's at least one $ in the line while dollar_locs: - - #the $ are balanced + + # the $ are balanced if len(dollar_locs) % 2 == 0: - + dollar_iter = iter(dollar_locs) start, end = (dollar_iter.next(), dollar_iter.next()) @@ -181,15 +185,17 @@ def replace_comments(match): previous = "" disp_string = '${' + r'\displaystyle ' - #only try to look behind the $ if it isn't the first character in the line + # only try to look behind the $ if it isn't the first character in the line if start != 0: - previous = comment_line[start-1] - - #we may need to add a space before displaystyle + previous = comment_line[start - 1] + + # we may need to add a space before displaystyle if previous == " ": disp_string = " " + disp_string - comment_line = comment_line[:start] + " " * extra_whitespace + disp_string + comment_line[start + 1:end] + '}' + comment_line[end:] + comment_line = comment_line[:start] + " " * extra_whitespace + disp_string + comment_line[ + start + 1:end] + '}' + comment_line[ + end:] comment_line = comment_line.rstrip().rstrip("}") + " " dollar_locs = _get_dollar_locs(comment_line) @@ -197,9 +203,9 @@ def replace_comments(match): dollar_locs = dollar_locs[offset:] - #add the measurement at the end + # add the measurement at the end if add_measure: - last = updated[-1] + last = updated[-1] last += r'\\[0.2cm]' last = MEASURE_PAT.sub(r'\1 \\\\[0.2cm]', last) updated[-1] = last @@ -222,19 +228,19 @@ def replace_comments(match): replacement += r'\end{flushright}' - #print("") + # print("") return replacement -#returns a list of the locations of the $ in the given string -def _get_dollar_locs(words): +# returns a list of the locations of the $ in the given string +def _get_dollar_locs(words): locs = [] start = 0 next_loc = words.find("$", start) - #keep adding to the list as long as more $ remain + # keep adding to the list as long as more $ remain while next_loc != -1: locs.append(next_loc) start = next_loc + 1 @@ -242,6 +248,7 @@ def _get_dollar_locs(words): return locs -#call main function + +# call main function if __name__ == "__main__": main() diff --git a/AlexDanoff/remove_excess.py b/AlexDanoff/remove_excess.py index 18c16b2..90eb3fd 100644 --- a/AlexDanoff/remove_excess.py +++ b/AlexDanoff/remove_excess.py @@ -22,7 +22,7 @@ def main(): if len(sys.argv) != 3: - fname = "ZE.tex" + fname = "data/ZE.tex" dot_ind = fname.index(".") + 1 ofname = fname[:dot_ind] + "1." + fname[dot_ind:] diff --git a/AlexDanoff/replace_special.py b/AlexDanoff/replace_special.py index 83e1a73..4407413 100644 --- a/AlexDanoff/replace_special.py +++ b/AlexDanoff/replace_special.py @@ -3,7 +3,7 @@ import re import sys -#for compatibility with Python 3 +# for compatibility with Python 3 try: from itertools import izip except ImportError: @@ -29,26 +29,27 @@ STD_REGEX = r'.*?###open_(\d+)###.*?###close_\1###' -def main(): +def main(): if len(sys.argv) != 3: - fname = "ZE.2.tex" - ofname = "ZE.3.tex" + fname = "data/ZE.1.tex" + ofname = "data/ZE.2.tex" else: fname = sys.argv[1] - ofname = sys.argv[2] + ofname = sys.argv[2] writeout(ofname, remove_special(readin(fname))) - + + def remove_special(content): """Removes the excess pieces from the given content and returns the updated version as a string.""" lines = content.split("\n") - - #various flags that will help us keep track of what elements we are inside of currently + + # various flags that will help us keep track of what elements we are inside of currently inside = { "constraint": [r'\constraint{', False], "substitution": [r'\substitution{', False], @@ -64,7 +65,7 @@ def remove_special(content): pi_pat = re.compile(r'(\s*)\\pi(\s*\b|[aeiou])') expe_pat = re.compile(r'\b([^\\]?\W*)\s*e\s*\^') - spaces_pat = re.compile(r' {2,}') + spaces_pat = re.compile(r' {2,}') paren_pat = re.compile(r'\(\s*(.*?)\s*\)') dollar_pat = re.compile(r'(? Date: Sat, 27 Feb 2016 18:51:15 +0100 Subject: [PATCH 030/402] reorganized the structure --- .../src}/conversion_ecf.py | 0 AlexDanoff/{ => src}/parentheses.py | 0 AlexDanoff/{ => src}/prepare_annotations.py | 0 AlexDanoff/{ => src}/remove_excess.py | 0 AlexDanoff/{ => src}/replace_special.py | 0 AlexDanoff/{ => src}/utilities.py | 0 AlexDanoff/test/test_remove_excess.py | 10 ++++++++++ 7 files changed, 10 insertions(+) rename {eCF-Seeding-Project => AlexDanoff/src}/conversion_ecf.py (100%) rename AlexDanoff/{ => src}/parentheses.py (100%) rename AlexDanoff/{ => src}/prepare_annotations.py (100%) rename AlexDanoff/{ => src}/remove_excess.py (100%) rename AlexDanoff/{ => src}/replace_special.py (100%) rename AlexDanoff/{ => src}/utilities.py (100%) create mode 100644 AlexDanoff/test/test_remove_excess.py diff --git a/eCF-Seeding-Project/conversion_ecf.py b/AlexDanoff/src/conversion_ecf.py similarity index 100% rename from eCF-Seeding-Project/conversion_ecf.py rename to AlexDanoff/src/conversion_ecf.py diff --git a/AlexDanoff/parentheses.py b/AlexDanoff/src/parentheses.py similarity index 100% rename from AlexDanoff/parentheses.py rename to AlexDanoff/src/parentheses.py diff --git a/AlexDanoff/prepare_annotations.py b/AlexDanoff/src/prepare_annotations.py similarity index 100% rename from AlexDanoff/prepare_annotations.py rename to AlexDanoff/src/prepare_annotations.py diff --git a/AlexDanoff/remove_excess.py b/AlexDanoff/src/remove_excess.py similarity index 100% rename from AlexDanoff/remove_excess.py rename to AlexDanoff/src/remove_excess.py diff --git a/AlexDanoff/replace_special.py b/AlexDanoff/src/replace_special.py similarity index 100% rename from AlexDanoff/replace_special.py rename to AlexDanoff/src/replace_special.py diff --git a/AlexDanoff/utilities.py b/AlexDanoff/src/utilities.py similarity index 100% rename from AlexDanoff/utilities.py rename to AlexDanoff/src/utilities.py diff --git a/AlexDanoff/test/test_remove_excess.py b/AlexDanoff/test/test_remove_excess.py new file mode 100644 index 0000000..a070edd --- /dev/null +++ b/AlexDanoff/test/test_remove_excess.py @@ -0,0 +1,10 @@ +from unittest import TestCase +from remove_excess import remove_section + + +class TestRemoveExcess(TestCase): + def test_remove_section(self): + content = 'AA{Begin} This should be removed {End}DDBB' + result = remove_section(r'{Begin}', r'{End}', content) + self.assertEqual('AA{End}DDBB', result) + From 06ea2c398a5f04284220ac4db199b3563f659812 Mon Sep 17 00:00:00 2001 From: Azeem Mohammed Date: Mon, 29 Feb 2016 12:14:46 +0100 Subject: [PATCH 031/402] Add Azeems programs * Add azeems contributions * Move data directory --- .gitignore | 506 ++++++------ AlexDanoff/src/prepare_annotations.py | 4 +- AlexDanoff/src/remove_excess.py | 2 +- AlexDanoff/src/replace_special.py | 4 +- Azeem/OrthogonalPolynomials.mmd | 81 ++ Azeem/Zeta.py | 7 + Azeem/new.Glossary.csv | 691 ++++++++++++++++ Azeem/tex2Wiki.py | 1069 +++++++++++++++++++++++++ 8 files changed, 2106 insertions(+), 258 deletions(-) create mode 100644 Azeem/OrthogonalPolynomials.mmd create mode 100644 Azeem/Zeta.py create mode 100644 Azeem/new.Glossary.csv create mode 100644 Azeem/tex2Wiki.py diff --git a/.gitignore b/.gitignore index c4436c3..a1bd6a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,253 +1,253 @@ -/data -Macro-Replacement/sources/ -KLSadd_insertion/chapterFilesIgnore - -### Python template -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -/KLSadd_insertion/hsc09.pdf -/KLSadd_insertion/hsc09.tex -/KLSadd_insertion/tempchap9.pdf -.installed.cfg -*.egg - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*,cover - -# Translations -*.mo -*.pot - -# Django stuff: -*.log - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -### JetBrains template -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio - -*.iml - -## Directory-based project format: -.idea/ -# if you remove the above rule, at least ignore the following: - -# User-specific stuff: -# .idea/workspace.xml -# .idea/tasks.xml -# .idea/dictionaries - -# Sensitive or high-churn files: -# .idea/dataSources.ids -# .idea/dataSources.xml -# .idea/sqlDataSources.xml -# .idea/dynamic.xml -# .idea/uiDesigner.xml - -# Gradle: -# .idea/gradle.xml -# .idea/libraries - -# Mongo Explorer plugin: -# .idea/mongoSettings.xml - -## File-based project format: -*.ipr -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties - -### TeX template -## Core latex/pdflatex auxiliary files: -*.aux -*.lof -*.log -*.lot -*.fls -*.out -*.toc - -## Intermediate documents: -*.dvi -*-converted-to.* -# these rules might exclude image files for figures etc. -# *.ps -# *.eps -# *.pdf - -## Bibliography auxiliary files (bibtex/biblatex/biber): -*.bbl -*.bcf -*.blg -*-blx.aux -*-blx.bib -*.brf -*.run.xml - -## Build tool auxiliary files: -*.fdb_latexmk -*.synctex -*.synctex.gz -*.synctex.gz(busy) -*.pdfsync - -## Auxiliary and intermediate files from other packages: - - -# algorithms -*.alg -*.loa - -# achemso -acs-*.bib - -# amsthm -*.thm - -# beamer -*.nav -*.snm -*.vrb - -#(e)ledmac/(e)ledpar -*.end -*.[1-9] -*.[1-9][0-9] -*.[1-9][0-9][0-9] -*.[1-9]R -*.[1-9][0-9]R -*.[1-9][0-9][0-9]R -*.eledsec[1-9] -*.eledsec[1-9]R -*.eledsec[1-9][0-9] -*.eledsec[1-9][0-9]R -*.eledsec[1-9][0-9][0-9] -*.eledsec[1-9][0-9][0-9]R - -# glossaries -*.acn -*.acr -*.glg -*.glo -*.gls - -# gnuplottex -*-gnuplottex-* - -# hyperref -*.brf - -# knitr -*-concordance.tex -*.tikz -*-tikzDictionary - -# listings -*.lol - -# makeidx -*.idx -*.ilg -*.ind -*.ist - -# minitoc -*.maf -*.mtc -*.mtc[0-9] -*.mtc[1-9][0-9] - -# minted -_minted* -*.pyg - -# morewrites -*.mw - -# mylatexformat -*.fmt - -# nomencl -*.nlo - -# sagetex -*.sagetex.sage -*.sagetex.py -*.sagetex.scmd - -# sympy -*.sout -*.sympy -sympy-plots-for-*.tex/ - -# TikZ & PGF -*.dpth -*.md5 -*.auxlock - -# todonotes -*.tdo - -# xindy -*.xdy - -# WinEdt -*.bak -*.sav - +/data +Macro-Replacement/sources/ +KLSadd_insertion/chapterFilesIgnore + +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +/KLSadd_insertion/hsc09.pdf +/KLSadd_insertion/hsc09.tex +/KLSadd_insertion/tempchap9.pdf +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio + +*.iml + +## Directory-based project format: +.idea/ +# if you remove the above rule, at least ignore the following: + +# User-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# .idea/dictionaries + +# Sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml +# .idea/uiDesigner.xml + +# Gradle: +# .idea/gradle.xml +# .idea/libraries + +# Mongo Explorer plugin: +# .idea/mongoSettings.xml + +## File-based project format: +*.ipr +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties + +### TeX template +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc + +## Intermediate documents: +*.dvi +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.brf +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Auxiliary and intermediate files from other packages: + + +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.snm +*.vrb + +#(e)ledmac/(e)ledpar +*.end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls + +# gnuplottex +*-gnuplottex-* + +# hyperref +*.brf + +# knitr +*-concordance.tex +*.tikz +*-tikzDictionary + +# listings +*.lol + +# makeidx +*.idx +*.ilg +*.ind +*.ist + +# minitoc +*.maf +*.mtc +*.mtc[0-9] +*.mtc[1-9][0-9] + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# mylatexformat +*.fmt + +# nomencl +*.nlo + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# xindy +*.xdy + +# WinEdt +*.bak +*.sav + diff --git a/AlexDanoff/src/prepare_annotations.py b/AlexDanoff/src/prepare_annotations.py index 5f22cac..4e10ab2 100644 --- a/AlexDanoff/src/prepare_annotations.py +++ b/AlexDanoff/src/prepare_annotations.py @@ -37,8 +37,8 @@ def main(): # get the names of the input and output files if len(sys.argv) != 3: - fname = "data/ZE.2.tex" - ofname = "data/ZE.3.tex" + fname = "../../data/ZE.2.tex" + ofname = "../../data/ZE.3.tex" else: diff --git a/AlexDanoff/src/remove_excess.py b/AlexDanoff/src/remove_excess.py index 90eb3fd..9bc28e9 100644 --- a/AlexDanoff/src/remove_excess.py +++ b/AlexDanoff/src/remove_excess.py @@ -22,7 +22,7 @@ def main(): if len(sys.argv) != 3: - fname = "data/ZE.tex" + fname = "../../data/ZE.tex" dot_ind = fname.index(".") + 1 ofname = fname[:dot_ind] + "1." + fname[dot_ind:] diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index 4407413..54ee6ae 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -33,8 +33,8 @@ def main(): if len(sys.argv) != 3: - fname = "data/ZE.1.tex" - ofname = "data/ZE.2.tex" + fname = "../../data/ZE.1.tex" + ofname = "../../data/ZE.2.tex" else: diff --git a/Azeem/OrthogonalPolynomials.mmd b/Azeem/OrthogonalPolynomials.mmd new file mode 100644 index 0000000..c841fb5 --- /dev/null +++ b/Azeem/OrthogonalPolynomials.mmd @@ -0,0 +1,81 @@ +drmf_bof +'''Orthogonal Polynomials''' +{{#set:Section=0}} +== Sections in KLS Chapter 1 == + +

+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+== Sections in KLS Chapter 9 == + +
+* [[Wilson|Wilson]] +* [[Racah|Racah]] +* [[Continuous dual Hahn|Continuous dual Hahn]] +* [[Continuous Hahn|Continuous Hahn]] +* [[Hahn|Hahn]] +* [[Dual Hahn|Dual Hahn]] +* [[Meixner-Pollaczek|Meixner-Pollaczek]] +* [[Jacobi|Jacobi]] +* [[Jacobi: Special cases|Jacobi: Special cases]] +* [[Pseudo Jacobi|Pseudo Jacobi]] +* [[Meixner|Meixner]] +* [[Krawtchouk|Krawtchouk]] +* [[Laguerre|Laguerre]] +* [[Bessel|Bessel]] +* [[Charlier|Charlier]] +* [[Hermite|Hermite]] +
+== Sections in KLS Chapter 14 == + +
+* [[Askey-Wilson|Askey-Wilson]] +* [[q-Racah|''q''-Racah]] +* [[Continuous dual q-Hahn|Continuous dual ''q''-Hahn]] +* [[Continuous q-Hahn|Continuous ''q''-Hahn]] +* [[Big q-Jacobi|Big ''q''-Jacobi]] +* [[Big q-Jacobi: Special case|Big ''q''-Jacobi: Special case]] +* [[q-Hahn|''q''-Hahn]] +* [[Dual q-Hahn|Dual ''q''-Hahn]] +* [[Al-Salam-Chihara|Al-Salam-Chihara]] +* [[q-Meixner-Pollaczek|''q''-Meixner-Pollaczek]] +* [[Continuous q-Jacobi|Continuous ''q''-Jacobi]] +* [[Continuous q-Jacobi: Special cases|Continuous ''q''-Jacobi: Special cases]] +* [[Big q-Laguerre|Big ''q''-Laguerre]] +* [[Little q-Jacobi|Little ''q''-Jacobi]] +* [[Little q-Jacobi: Special case|Little ''q''-Jacobi: Special case]] +* [[q-Meixner|''q''-Meixner]] +* [[Quantum q-Krawtchouk|Quantum ''q''-Krawtchouk]] +* [[q-Krawtchouk|''q''-Krawtchouk]] +* [[Affine q-Krawtchouk|Affine ''q''-Krawtchouk]] +* [[Dual q-Krawtchouk|Dual ''q''-Krawtchouk]] +* [[Continuous big q-Hermite|Continuous big ''q''-Hermite]] +* [[Continuous q-Laguerre|Continuous ''q''-Laguerre]] +* [[Little q-Laguerre / Wall|Little ''q''-Laguerre / Wall]] +* [[q-Laguerre|''q''-Laguerre]] +* [[q-Bessel|''q''-Bessel]] +* [[q-Charlier|''q''-Charlier]] +* [[Al-Salam-Carlitz I|Al-Salam-Carlitz I]] +* [[Al-Salam-Carlitz II|Al-Salam-Carlitz II]] +* [[Continuous q-Hermite|Continuous ''q''-Hermite]] +* [[Stieltjes-Wigert|Stieltjes-Wigert]] +* [[Discrete q-Hermite I|Discrete ''q''-Hermite I]] +* [[Discrete q-Hermite II|Discrete ''q''-Hermite II]] +
+ +drmf_eof diff --git a/Azeem/Zeta.py b/Azeem/Zeta.py new file mode 100644 index 0000000..198ee3d --- /dev/null +++ b/Azeem/Zeta.py @@ -0,0 +1,7 @@ +import os +import time +inp="y" +if inp!="n": + print("Zeta and Related Functions") + os.system("python tex2Wiki.py ../data/ZE.3.tex ../data/ZE.4.mmd") +print("Done") diff --git a/Azeem/new.Glossary.csv b/Azeem/new.Glossary.csv new file mode 100644 index 0000000..8875e6b --- /dev/null +++ b/Azeem/new.Glossary.csv @@ -0,0 +1,691 @@ +\AGM@{a}{g},arithmetic-geometric mean,arithmetic-geometric-mean,F|F:P,$M$,http://dlmf.nist.gov/19.8#SS1.p1, +\AThetaFunction@{x},Jacobi theta function $\vartheta$,a-theta-function,F|F:P,$\vartheta$,http://dlmf.nist.gov/23.1, +\AbstractJacobi{p}{q},generic Jacobian elliptic function,generic-Jacobian-elliptic-function,F|F,$\mathrm{pq}$,http://dlmf.nist.gov/22.2#E10, +\Acos@@{z},general inverse cosine function,multivalued-inverse-cosine,F|F:P:nP,$\mathrm{Arccos}$,http://dlmf.nist.gov/4.23#E2, +\Acosh@@{z},general inverse hyperbolic cosine function,multivalued-hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{Arccosh}$,http://dlmf.nist.gov/4.37#E2, +\Acot@@{z},general inverse cotangent function,multivalued-inverse-cotangent,F|F:P:nP,$\mathrm{Arccot}$,http://dlmf.nist.gov/4.23#E6, +\Acoth@@{z},general inverse hyperbolic cotangent function,multivalued-hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{Arccoth}$,http://dlmf.nist.gov/4.37#E6, +\Acsc@@{z},general inverse cosecant function,multivalued-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsc}$,http://dlmf.nist.gov/4.23#E4, +\Acsch@@{z},general inverse hyperbolic cosecant function,multivalued-hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsch}$,http://dlmf.nist.gov/4.37#E4, +\AffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk, +\AiryAi@{z},Airy function ${\rm Ai}$,Airy-Ai,F|F:P,$\mathrm{Ai}$,http://dlmf.nist.gov/9.2#i, +\AiryBi@{z},Airy function ${\rm Bi}$,Airy-Bi,F|F:P,$\mathrm{Bi}$,http://dlmf.nist.gov/9.2#i, +\AiryModulusM@{z},Airy modulus function $M$,modulus-Airy-M,F|F:P,$M$,http://dlmf.nist.gov/9.8#i, +\AiryModulusN@{z},Airy modulus function $N$,modulus-Airy-N,F|F:P,$N$,http://dlmf.nist.gov/9.8#i, +\AiryPhasePhi@{z},Airy phase function $\phi$,phase-Airy-Phi,F|F:P,$\phi$,http://dlmf.nist.gov/9.8#i, +\AiryPhaseTheta@{z},Airy phase function $\theta$,phase-Airy-Theta,F|F:P,$\theta$,http://dlmf.nist.gov/9.8#i, +\AlSalamCarlitzI{a}{n}@{x}{q},Al-Salam-Carlitz I polynomial,EMPTY,P|F:P,$U^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI, +\AlSalamCarlitzII{a}{n}@{x}{q},Al-Salam-Carlitz II polynomial,EMPTY,P|F:P,$V^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII, +\AlSalamChihara{n}@@{x}{a}{b}{q},Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-Q,P|F:P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara, +\AlSalamChiharaQ{n}@{x}{a}{b}{q},Al-Salam-Chihara polynomial,AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.28#E7, +\AlSalamIsmail{n}@{x}{s}{q},Al-Salam Ismail polynomial,Al-Salam-Ismail-q-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail, +\AngerA{\nu}@{z},Anger-Weber function,associated-Anger-Weber-A,F|F:P,$\mathbf{A}_{\nu}$,http://dlmf.nist.gov/11.10#E4, +\AngerJ{\nu}@{z},Anger function,Anger-J,F|F:P,$\mathbf{J}_{\nu}$,http://dlmf.nist.gov/11.10#E1, +\AntiDer@{x}{f(x)},semantic antiderivative,antiderivative,SM|O,"$\int f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:AntiDer, +\AppellFi@{\alpha}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_1$,Appell-F-1,F|F:P,${F_{1}}$,http://dlmf.nist.gov/16.13#E1, +\AppellFii@{\alpha}{\beta}{\beta'}{\gamma}{\gamma'}{x}{y},Appell function $F_2$,Appell-F-2,F|F:P,${F_{2}}$,http://dlmf.nist.gov/16.13#E2, +\AppellFiii@{\alpha}{\alpha'}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_3$,Appell-F-3,F|F:P,${F_{3}}$,http://dlmf.nist.gov/16.13#E3, +\AppellFiv@{\alpha}{\beta}{\gamma}{\gamma'}{x}{y},Appell function $F_4$,Appell-F-4,F|F:P,${F_{4}}$,http://dlmf.nist.gov/16.13#E4, +\Asec@@{z},general inverse secant function,multivalued-inverse-secant,F|F:P:nP,$\mathrm{Arcsec}$,http://dlmf.nist.gov/4.23#E5, +\Asech@@{z},general inverse hyperbolic secant function,multivalued-hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{Arcsech}$,http://dlmf.nist.gov/4.37#E5, +\Asin@@{z},general inverse sine function,multivalued-inverse-sine,F|F:P:nP,$\mathrm{Arcsin}$,http://dlmf.nist.gov/4.23#E1, +\Asinh@@{z},general inverse hyperbolic sine function,multivalued-hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{Arcsinh}$,http://dlmf.nist.gov/4.37#E1, +\AskeyWilson{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, +\AskeyWilsonp{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, +\AssJacobiP{\alpha}{\beta}{n}@{x}{c},associated Jacobi polynomial,associated-Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\alpha)}_{n}$",http://dlmf.nist.gov/18.30#E4, +\AssLegendrePoly{n}@{x}{c},associated Legendre polynomial,Legendre-spherical-polynomial-P,F|F:P,$P_{n}$,http://dlmf.nist.gov/18.30#E6, +\Atan@@{z},general inverse tangent function,multivalued-inverse-tangent,F|F:P:nP,$\mathrm{Arctan}$,http://dlmf.nist.gov/4.23#E3, +\Atanh@@{z},general inverse hyperbolic tangent function,multivalued-hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{Arctanh}$,http://dlmf.nist.gov/4.37#E3, +\BarnesGamma@{z},Barnes $G$-function (or double gamma function),Barnes-Gamma,F|F:P,$G$,http://dlmf.nist.gov/5.17#E1, +\BellNumber@{n},Bell number,Bell-number,I|F:P,$B$,http://dlmf.nist.gov/26.7#i, +\BernoulliB{n}@{x},Bernoulli polynomial,Bernoulli-polynomial-B,P|F:P,$B_{n}$,http://dlmf.nist.gov/24.2#i, +\BesselA{\nu}@{\Matrix{T}},Bessel function of matrix argument of the first kind,Bessel-of-matrix-A,F|F:P,$A_{\nu}$,http://dlmf.nist.gov/35.5#i, +\BesselB{\nu}@{\Matrix{T}},Bessel function of matrix argument of the second kind,Bessel-of-matrix-B,F|F:P,$B_{\nu}$,http://dlmf.nist.gov/35.5#E3, +\BesselI{\nu}@{z},modified Bessel function of the first kind,modified-Bessel-first-kind,F|F:P,$I_{\nu}$,http://dlmf.nist.gov/23.1, +\BesselItilde{\nu}@{x},modified Bessel function of the first kind of imaginary order,modified-Bessel-first-kind-imaginary-order,F|F:P,$\widetilde{I}_{\nu}$,http://dlmf.nist.gov/23.1, +\BesselJ{\nu}@{z},Bessel function of the first kind,Bessel-J,F|F:P,$J_{\nu}$,http://dlmf.nist.gov/10.2#E2, +\BesselJtilde{\nu}@{x},Bessel function of the first kind of imaginary order,Bessel-J-imaginary-order,F|F:P,$\widetilde{J}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, +\BesselK{\nu}@{z},modified Bessel function of the second kind,modified-Bessel-second-kind,F|F:P,$K_{\nu}$,http://dlmf.nist.gov/23.1, +\BesselKtilde{\nu}@{x},modified Bessel function of the second kind of imaginary order,modified-Bessel-second-kind-imaginary-order,F|F:P,$\widetilde{K}_{\nu}$,http://dlmf.nist.gov/10.45#E2, +\BesselModulusM{\nu}@{x},modulus of Bessel functions,modulus-Bessel-M,F|F:P,$M_{\nu}$,http://dlmf.nist.gov/10.18#E1, +\BesselModulusN{\nu}@{x},modulus of derivatives of Bessel functions,modulus-Bessel-N,F|F:P,$N_{\nu}$,http://dlmf.nist.gov/10.18#E2, +\BesselPhasePhi{\nu}@{x},phase of derivatives of Bessel functions,phase-Bessel-Phi,F|F:P,$\phi_{\nu}$,http://dlmf.nist.gov/10.18#E3, +\BesselPhaseTheta{\nu}@{x},phase of Bessel functions,phase-Bessel-Theta,F|F:P,$\theta_{\nu}$,http://dlmf.nist.gov/10.18#E3, +\BesselPoly{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, +\BesselPolyy{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, +\BesselY{\nu}@{z},Bessel function of the second kind,Bessel-Y-Weber,F|F:P,$Y_{\nu}$,http://dlmf.nist.gov/10.2#E3, +\BesselYtilde{\nu}@{x},Bessel function of the second kind of imaginary order,Bessel-Y-Weber-imaginary-order,F|F:P,$\widetilde{Y}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, +\BickleyKi{\alpha}@{x},Bickley function,Bickley-Ki,F|F:P,$\mathrm{Ki}_{\alpha}$,http://dlmf.nist.gov/10.43#E11, +\BigO@{x},order not exceeding,Big-O,Q|F:P,$O$,http://dlmf.nist.gov/2.1#E3, +\CanonicInt{K}@{\Vector{x}},canonical integral $\Psi_K$,canonical-integral,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E4, +\CanonicIntU@{\Vector{x}},umbilic canonical integral $\Psi^{({\rm U})}$,canonical-umbilic-integral,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E5, +\CanonicIntE@{\Vector{x}},elliptic umbilic canonical integral $\Psi^{({\rm E})}$,elliptic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E6, +\CanonicIntH@{\Vector{x}},hyperbolic umbilic canonical integral $\Psi^{({\rm H})}$,hyperbolic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E8, +\CatalanNumber@{n},Catalan number,Catalan-number,I|F:P,$C$,http://dlmf.nist.gov/26.5#E1, +\CatalansConstant,Catalan's constant,Catalan's-constant,C|F,$G$,http://dlmf.nist.gov/25.11.E40, +\Charlier{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, +\CharlierC{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, +\ChebyC{n}@{x},dilated Chebyshev polynomial of the first kind,dilated-Chebyshev-polynomial-second-kind-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.1#E3, +\ChebyS{n}@{x},dilated Chebyshev polynomial of the second kind,dilated-Chebyshev-polynomial-first-kind-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.1#E3, +\ChebyT{n}@{x},Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-T,P|F:P,$T_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r8, +\ChebyTs{n}@{x},shifted Chebyshev polynomial of the first kind,shifted-Chebyshev-polynomial-first-kind-T-star,P|F:P,$T^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r20, +\ChebyU{n}@{x},Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-U,P|F:P,$U_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r11, +\ChebyUs{n}@{x},shifted Chebyshev polynomial of the second kind,shifted-Chebyshev-polynomial-second-kind-U-star,P|F:P,$U^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r23, +\ChebyV{n}@{x},Chebyshev polynomial of the third kind,Chebyshev-polynomial-third-kind-V,P|F:P,$V_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r14, +\ChebyW{n}@{x},Chebyshev polynomial of the fourth kind,Chebyshev-polynomial-fourth-kind-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r17, +\ChebyshevPsi@{x},Chebyshev $\ChebyshevPsi$-function,Chebyshev-psi,F|F:P,$\psi$,http://dlmf.nist.gov/25.16#E1, +\CiglerqChebyT{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $T$,Cigler-q-Chebyshev-polynomial-T,P|P:F,$T_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT, +\CiglerqChebyU{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $U$,Cigler-q-Chebyshev-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU, +\CompEllIntCE@@{k},Legendre's complementary complete elliptic integral of the second kind,complementary-complete-elliptic-integral-second-kind-E,F|F:P:nP,${E'}$,http://dlmf.nist.gov/19.2#E9, +\CompEllIntCK@@{k},Legendre's complementary complete elliptic integral of the first kind,complementary-complete-elliptic-integral-first-kind-K,F|F:P:nP,${K'}$,http://dlmf.nist.gov/19.2#E9, +\CompEllIntD@@{k},complete elliptic integral of Legendre's type,complete-elliptic-integral-D,F|F:P:nP,$D$,http://dlmf.nist.gov/19.2#E8, +\CompEllIntE@@{k},Legendre's complete elliptic integral of the second kind,complete-elliptic-integral-second-kind-E,F|F:P:nP,$E$,http://dlmf.nist.gov/19.2#E8, +\CompEllIntK@@{k},Legendre's complete elliptic integral of the first kind,complete-elliptic-integral-first-kind-K,F|F:P:nP,$K$,http://dlmf.nist.gov/19.2#E8, +\CompEllIntPi@{\alpha^2}{k},Legendre's complete elliptic integral of the third kind,complete-elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E8, +\Complex,set of complex numbers,EMPTY,SN|F,$\mathbb{C}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r1, +\ComplexZeroAiryBi{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi$,complex-zero-Airy-Bi,F|F,$\beta_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, +\ComplexZeroAiryBiPrime{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi'$,complex-zero-derivative-Airy-Bi,F|F,$\beta'_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, +\CompositionsC[m]@{n},number of compositions,number-of-compositions-C,I|F:F:P:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, +\CosInt@{z},cosine integral ${\rm Ci}$,cosine-integral,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/6.2#E11, +\CosIntCin@{z},cosine integral ${\rm Cin}$,cosine-integral-Cin,F|F:P,$\mathrm{Cin}$,http://dlmf.nist.gov/6.2#E12, +\CosIntg@{a}{z},generalized cosine integral ${\rm Ci}$,generalized-cosine-integral-Ci,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/8.21#E2, +\CoshInt@{z},hyperbolic cosine integral,hyperbolic-cosine-integral,F|F:P,$\mathrm{Chi}$,http://dlmf.nist.gov/6.2#E16, +\CoulombC{\ell}@{\eta},normalizing constant for Coulomb radial functions,Coulomb-C,F|F:P,$C_{\ell}$,http://dlmf.nist.gov/33.2#E5, +\CoulombF{\ell}@{\eta}{\rho},regular Coulomb radial function,regular-Coulomb-F,F|F:P,$F_{\ell}$,http://dlmf.nist.gov/33.2#E3, +\CoulombG{\ell}@{\eta}{\rho},irregular Coulomb radial function,irregular-Coulomb-G,F|F:P,$G_{\ell}$,http://dlmf.nist.gov/33.2#E11, +\CoulombH{\pm}{\ell}@{\eta}{\rho},irregular Coulomb radial functions,irregular-Coulomb-H,F|F:P,${H^{\pm}_{\ell}}$,http://dlmf.nist.gov/33.2#E7, +\CoulombM{\ell}@{\eta}{\rho},envelope of Coulomb functions,envelope-Coulomb-M,F|F:P,$M_{\ell}$,http://dlmf.nist.gov/33.3#E1, +\CoulombSigma{\ell}@{\eta},Coulomb phase shift,Coulomb-phase-shift,F|F:P,${\sigma_{\ell}}$,http://dlmf.nist.gov/33.2#E10, +\CoulombTheta{\ell}@{\eta}{\rho},phase of Coulomb functions,Coulomb-phase,F|F:P,${\theta_{\ell}}$,http://dlmf.nist.gov/33.2#E9, +\Coulombc@{\epsilon}{\ell}{r},irregular Coulomb function $c$,Coulomb-c,F|F:P,$c$,http://dlmf.nist.gov/23.1, +\Coulombf@{\epsilon}{\ell}{r},regular Coulomb function $f$,Coulomb-f,F|F:P,$f$,http://dlmf.nist.gov/33.14#E4, +\Coulombh@{\epsilon}{\ell}{r},irregular Coulomb function $h$,Coulomb-h,F|F:P,$h$,http://dlmf.nist.gov/33.14#E7, +\Coulombrhotp@{\eta}{\ell},outer turning point for Coulomb radial functions,Coulomb-radial-outer-turning-point,F|F:P,$\rho_{\mathrm{tp}}$,http://dlmf.nist.gov/33.2#E2, +\Coulombrtp@{\epsilon}{\ell},outer turning point for Coulomb functions,Coulomb-outer-turning-point,F|F:P,$r_{\mathrm{tp}}$,http://dlmf.nist.gov/33.14#E3, +\Coulombs@{\epsilon}{\ell}{r},regular Coulomb function $s$,Coulomb-s,F|F:P,$s$,http://dlmf.nist.gov/33.14#E9, +\CuspCat{K}@{t}{\Vector{x}},cuspoid catastrophe,cuspoid-catastrophe,F|F:P,$\Phi_{K}$,http://dlmf.nist.gov/36.2#E1, +\Cylinder{\nu}@{z},cylinder function,cylinder-function,F|F:P,$\mathscr{C}_{\nu}$,http://dlmf.nist.gov/10.2#P5.p1, +\DawsonsInt@{z},Dawson's integral,Dawsons-integral,F|F:P,$F$,http://dlmf.nist.gov/7.2#E5, +\DedekindModularEta@{\tau},Dedekind's eta function (or Dedekind modular function),Dedekind-modular-Eta,F|F:P,$\eta$,http://dlmf.nist.gov/23.15#E9,http://dlmf.nist.gov/27.14#E12 +\DiffCat{K}@{\Vector{x}}{k},diffraction catastrophe,diffraction-catastrophe,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E10, +\DiffCatE@{\Vector{x}}{k},elliptic umbilic canonical integral function,diffraction-elliptic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/23.1, +\DiffCatH@{\Vector{x}}{k},hyperbolic umbilic canonical integral function,diffraction-hyperbolic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E11, +\DiffCatU@{\Vector{x}}{k},umbilic canonical integral function,diffraction-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E11, +\Dilogarithm@{z},dilogarithm,dilogarithm,F|F:P,$\mathrm{Li}_2$,http://dlmf.nist.gov/25.12#E1, +\Diracdelta@{x-a},Dirac delta (or Dirac delta function),Dirac-delta,D|F:P,$\Diracdelta@{x-a}$,http://dlmf.nist.gov/1.17#SS1.p1, +\DirichletCharacter@@{n}{k},Dirichlet character,Dirichlet-character,I|F:P:nP,$\chi$,http://dlmf.nist.gov/27.8, +\DirichletL@{s}{\chi},Dirichlet $\DirichletL$-function,Dirichlet-L,F|F:P,$L$,http://dlmf.nist.gov/25.15#E1, +\DiscriminantDelta@{\tau},discriminant function,discriminant-delta,F|F:P,$\Delta$,http://dlmf.nist.gov/27.14#E16, +\DiskOP{\alpha}{m}{n}@{z},disk polynomial,disk-orthogonal-polynomial-R,P|F:P,"$R^{(\alpha)}_{m,n}$",http://dlmf.nist.gov/18.37#E1, +\Distribution{f}{g},distribution,EMPTY,D|F,"$\left\langle f,g\right\rangle$",http://dlmf.nist.gov/1.16#SS1.p5, +\DivisorFunctionD[k]@{n},divisor function,divisor-function-D,F|F:P,$d_{k}$,http://dlmf.nist.gov/27.2#E9, +\DivisorSigma{\alpha}@{n},sum of powers of divisors,divisor-sigma,I|F:P,$\sigma_{\alpha}$,http://dlmf.nist.gov/27.2#E10, +\EllIntD@{\phi}{k},incomplete elliptic integral of Legendre's type,elliptic-integral-third-kind-D,F|F:P,$D$,http://dlmf.nist.gov/19.2#E6, +\EllIntE@{\phi}{k},Legendre's incomplete elliptic integral of the second kind,elliptic-integral-second-kind-E,F|F:P,$E$,http://dlmf.nist.gov/19.2#E5, +\EllIntF@{\phi}{k},Legendre's incomplete elliptic integral of the first kind,elliptic-integral-first-kind-F,F|F:P,$F$,http://dlmf.nist.gov/19.2#E4, +\EllIntPi@{\phi}{\alpha^2}{k},Legendre's incomplete elliptic integral of the third kind,elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E7, +\EllIntR{-a}@{\Vector{b}}{\Vector{z}},Carlson integral $R_{-a}$,Carlson-integral-R,F|F:P,$R_{-a}$,http://dlmf.nist.gov/19.16#E9, +\EllIntRC@@{x}{y},Carlson's elliptic integral $R_C$,Carlson-integral-RC,F|F:P:nP,$R_C$,http://dlmf.nist.gov/19.2#E17, +\EllIntRD@@{x}{y}{z},Carlson's elliptic integral $R_D$,Carlson-integral-RD,F|F:P:nP,$R_D$,http://dlmf.nist.gov/19.16#E5, +\EllIntRF@@{x}{y}{z},Carlson's symmetric elliptic integral of first kind,Carlson-integral-RF,F|F:P:nP,$R_F$,http://dlmf.nist.gov/19.16#E1, +\EllIntRG@@{x}{y}{z},Carlson's symmetric elliptic integral of second kind,Carlson-integral-RG,F|F:P:nP,$R_G$,http://dlmf.nist.gov/19.16#E3, +\EllIntRJ@@{x}{y}{z}{p},Carlson's symmetric elliptic integral of third kind,Carlson-integral-RJ,F|F:P:nP,$R_J$,http://dlmf.nist.gov/19.16#E2, +\EllIntcel@{k_c}{p}{a}{b},Bulirsch's complete elliptic integral,Bulirsch-integral-cel,F|F:P,$\mathrm{cel}$,http://dlmf.nist.gov/19.2#E11, +\EllIntelone@{x}{k_c},Bulirsch's incomplete elliptic integral of the first kind,Bulirsch-integral-el-1,F|F:P,$\mathrm{el1}$,http://dlmf.nist.gov/19.2#E15, +\EllIntelthree@{x}{k_c}{p},Bulirsch's incomplete elliptic integral of the third kind,Bulirsch-integral-el-3,F|F:P,$\mathrm{el3}$,http://dlmf.nist.gov/19.2#E16, +\EllInteltwo@{x}{k_c}{a}{b},Bulirsch's incomplete elliptic integral of the second kind,Bulirsch-integral-el-2,F|F:P,$\mathrm{el2}$,http://dlmf.nist.gov/19.2#E12, +\EulerBeta@{a}{b},beta function,Euler-Beta,F|F:P,$\mathrm{B}$,http://dlmf.nist.gov/5.12#E1, +\EulerConstant,Euler's (Euler-Mascheroni) constant,EMPTY,C|F,$\gamma$,http://dlmf.nist.gov/5.2#E3, +\EulerE{n}@{x},Euler polynomial,Euler-polynomial-E,P|F:P,$E_{n}$,http://dlmf.nist.gov/24.2#ii, +\EulerGamma@{z},Euler's gamma function,Euler-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/5.2#E1, +\EulerPhi@{x},Euler's reciprocal function,Euler-phi,F|F:P,$\mathit{f}$,http://dlmf.nist.gov/27.14#E2, +\EulerSumH@{s},Euler sums,Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p1, +\EulerTotientPhi[k]@{n},Euler's totient $\phi_k(n)$,Euler-totient-phi,I|F:P,$\phi_{k}$,http://dlmf.nist.gov/27.2#E6, +\EulerianNumber{n}{k},Eulerian number,Eulerian-number,I|F,$\left\langle n\atop k\right\rangle$,http://dlmf.nist.gov/26.14#SS1.p3, +\ExpInt@{z},exponential integral $E_1$,exponential-integral,F|F:P,$E_1$,http://dlmf.nist.gov/6.2#E1, +\ExpIntEin@{z},complementary exponential integral ${\rm Ein}$,complementary-exponential-integral,F|F:P,$\mathrm{Ein}$,http://dlmf.nist.gov/6.2#E3, +\ExpInti@{x},exponential integral ${\rm Ei}$,exponential-integral-Ei,F|F:P,$\mathrm{Ei}$,http://dlmf.nist.gov/6.2#E1, +\ExpIntn{p}@{z},generalized exponential integral,exponential-integral-En,F|F:P,$E_{p}$,http://dlmf.nist.gov/8.19#E1, +\FerrersHatQ[-\mu]{-\frac{1}{2}+i\tau}@{x},conical function $\widehat{\mathsf{Q}}_\nu^\mu$,Ferrers-conical-legendre-Q-hat,F|FO:PO:FnO:PnO,$\widehat{\mathsf{Q}}_\nu^\mu$,http://dlmf.nist.gov/14.20#E2, +\FerrersP[\mu]{\nu}@{x},Ferrers function of the first kind,Ferrers-Legendre-P-first-kind,F|FO:PO:FnO:PnO,$\mathsf{P}_\nu^\mu$,http://dlmf.nist.gov/14.3#E1, +\FerrersQ[\mu]{\nu}@{x},Ferrers function of the second kind,Ferrers-Legendre-Q-first-kind,F|FO:PO:FnO:PnO,$\mathsf{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E2, +\FishersHh{n}@{z},probability function,Fishers-Hh,F|F:P,$\mathit{Hh}_{n}$,http://dlmf.nist.gov/7.18#E12, +\FresnelCos@{z},Fresnel integral $C$,Fresnel-cosine-integral,F|F:P,$C$,http://dlmf.nist.gov/7.2#E7, +\FresnelF@{z},Fresnel integral ${\mathcal F}$,Fresnel-integral,F|F:P,$\mathcal{F}$,http://dlmf.nist.gov/7.2#E6, +\FresnelSin@{z},Fresnel integral $S$,Fresnel-sine-integral,F|F:P,$S$,http://dlmf.nist.gov/7.2#E8, +\Fresnelf@{z},auxiliary function for Fresnel integrals ${\rm f}$,Fresnel-auxilliary-function-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/7.2#E10, +\Fresnelg@{z},auxiliary function for Fresnel integrals ${\rm g}$,Fresnel-auxilliary-function-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/7.2#E11, +\GammaP@{a}{z},normalized incomplete gamma function $P$,incomplete-gamma-P,F|F:P,$P$,http://dlmf.nist.gov/8.2#E4, +\GammaQ@{a}{z},normalized incomplete gamma function $Q$,incomplete-gamma-Q,F|F:P,$Q$,http://dlmf.nist.gov/8.2#E4, +\GaussSum@{n}{\DirichletCharacter},Gauss sum,Gauss-sum,F|F:P,$G$,http://dlmf.nist.gov/27.10#E9, +\GenBernoulliB{\ell}{n}@{x},generalized Bernoulli polynomial,generalized-Bernoulli-polynomial-B,P|F:P,$B^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, +\GenBesselFun@{\rho}{\beta}{z},generalized Bessel function,generalized-Bessel-function,F|F:P,$\phi$,http://dlmf.nist.gov/10.46#E1, +\GenEulerE{\ell}{n}@{x},generalized Euler polynomial,generalized-Euler-polynomial-E,P|F:P,$E^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, +\GenEulerSumH@{s}{z},generalized Euler sums,generalized-Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p7, +\GenGegenbauer{\alpha}{\beta}{n}@{x},Generalized Gegenbauer polynomial,generalized-Gegenbauer-polynomial-S,P|F:P,"$S^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer, +\GenHermite[\alpha]{n}@{x},generalized Hermite polynomial,generalized-Hermite-polynomial-H,P|FO:PO:FnO:PnO,$H_n^{\mu}$,http://drmf.wmflabs.org/wiki/Definition:GenHermite, +\GoodStat@{z},Goodwin-Staton integral,Goodwin-Staton-integral,F|F:P,$G$,http://dlmf.nist.gov/7.2#E12, +\GottliebLaguerre{n}@{x},Gottlieb-Laguerre polynomial,Gottlieb-Laguerre-polynomial-l,P|F:P,$l_{n}$,http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre, +\Gudermannian@@{x},Gudermannian function,inverse-Gudermannian,F|F:P:nP,$\mathrm{gd}$,http://dlmf.nist.gov/4.23#E39, +\Hahn{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, +\HahnQ{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, +\HahnR{n}@{x}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, +\HahnS{n}@{x}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, +\Hahnp{n}@{x}{a}{b}{\conj{a}}{\conj{b}},continuous Hahn polynomial,continuous-Hahn-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, +\HankelHi{\nu}@{z},Hankel function of the first kind,Hankel-H-1-Bessel-third-kind,F|F:P,${H^{(1)}_{\nu}}$,http://dlmf.nist.gov/10.2#E5, +\HankelHii{\nu}@{z},Hankel function of the second kind,Hankel-H-2-Bessel-third-kind,F|F:P,${H^{(2)}_{\nu}}$,http://dlmf.nist.gov/10.2#E6, +\HarmonicNumber{n},Harmonic number,Harmonic-number,I|F,$H_{n}$,http://dlmf.nist.gov/25.11#E33, +\HeavisideH@{x},Heaviside step function,Heaviside-H,F|F:P,$H$,http://dlmf.nist.gov/1.16#E13, +\Hermite{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, +\HermiteH{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, +\HermiteHe{n}@{x},Hermite polynomial $He_n$,Hermite-polynomial-He,P|F:P,$\mathit{He}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r29, +\HeunFunction{m}{a}{b}@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $(a;b)Hf_m^\nu$,Heun-function,F|FO:PO:nPO:FnO:PnO:nPnO,"$(s_1,s_2)\mathit{Hf}_{m}^\nu$",http://dlmf.nist.gov/31.4#p1, +\HeunLocal@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $Hl$,Heun-local,F|F:P:nP,$\mathit{H\!\ell}$,http://dlmf.nist.gov/31.3#E1, +\HeunPolynom{n}{m}@@{a}{q}{-n}{\beta}{\gamma}{\delta}{z},Heun polynomial,Heun-polynomial-m,P|F:P:nP,"$\mathit{Hp}_{n,m}$",http://dlmf.nist.gov/31.5#E2, +\HilbertTrans@{f}{x},Hilbert transform,Hilbert-transform,O|F:P,$\mathcal{H}$,http://dlmf.nist.gov/1.14#SS5.p1, +\HurwitzZeta@{s}{a},Hurwitz zeta function,Hurwitz-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.11#E1, +\HyperPsi@{a}{b}{\Matrix{T}},confluent hypergeometric function of matrix argument of the second kind,confluent-hypergeometric-of-matrix-Psi,F|F:P,$\Psi$,http://dlmf.nist.gov/35.6#E2, +\HyperboldpFq{p}{q}@@@{\Vector{a}}{\Vector{b}}{z},scaled (or Olver's) generalized hypergeometric function,hypergeometric-bold-pFq,F|F:fo1:fo2:fo3,${{}_{p}{\mathbf{F}}_{q}}$,http://dlmf.nist.gov/16.2#E5, +\HypergeoF@@@{a}{b}{c}{z},hypergeometric function,Gauss-hypergeometric-F,F|F:fo1:fo2:fo3,$F$,http://dlmf.nist.gov/15.2#E1, +\HypergeoboldF@@@{a}{b}{c}{z},Olver's hypergeometric function,scaled-hypergeometric-bold-F,F|F:fo1:fo2:fo3,$\mathbf{F}$,http://dlmf.nist.gov/15.2#E2, +"\HyperpFq{p}{q}@@@{a_1,...,a_p}{b_1,...,b_q}{z}",generalized hypergeometric function,Gauss-hypergeometric-pFq,F|F:fo1:fo2:fo3,${{}_{p}F_{q}}$,http://dlmf.nist.gov/16.2#E1, +"\HyperpHq{p}{q}@@@{{a_1,...,a_p}{b_1,...,b_q}{z}",bilateral hypergeometric function,hypergeometric-pHq,F|F:fo1:fo2:fo3,${{}_{p}H_{q}}$,http://dlmf.nist.gov/16.4#E16, +\IncBeta{x}@{a}{b},incomplete beta function,incomplete-Beta,F|F:P,$\mathrm{B}_{x}$,http://dlmf.nist.gov/8.17#E1, +\IncGamma@{a}{z},incomplete gamma function $\Gamma$,incomplete-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/8.2#E2, +\IncI{x}@{a}{b},regularized incomplete beta function,IncI,F|F:P,$I_{x}$,http://dlmf.nist.gov/8.17#E2, +\Int{a}{b}@{x}{f(x)},semantic definite integral,semantic-definite-integral,SM|O,"$\int_{a}^{b}f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:Int, +\Integer,set of integers,EMPTY,SN|F,$\mathbb{Z}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r20, +\IntgenAiryA{k}@{z}{p},generalized Airy function from integral representation $A_k$,Integral-generalized-Airy-A,F|F:P,$A_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, +\IntgenAiryB{k}@{z}{p},generalized Airy function from integral representation $B_k$,Integral-generalized-Airy-B,F|F:P,$B_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, +\JacksonqBesselI{\nu}@{z}{q},Jackson $q$-Bessel function 1,EMPTY,F|F:P,$J^{(1)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI, +\JacksonqBesselII{\nu}@{z}{q},Jackson $q$-Bessel function 2,EMPTY,F|F:P,$J^{(2)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII, +\JacksonqBesselIII{\nu}@{z}{q},Jackson/Hahn-Exton $q$-Bessel function 3,EMPTY,F|F:P,$J^{(3)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII, +\Jacobi{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, +\JacobiEpsilon@{x}{k},Jacobi's epsilon function,Jacobi-Epsilon,F|F:P,$\mathcal{E}$,http://dlmf.nist.gov/22.16#E14, +\JacobiG{n}@{p}{q}{x},shifted Jacobi polynomial,shifted-Jacobi-polynomial-G,P|F:P,$G_{n}$,http://dlmf.nist.gov/18.1#E2, +\JacobiP{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, +\JacobiSymbol{n}{P},Jacobi symbol,Jacobi-symbol,I|F,$(n|P)$,http://dlmf.nist.gov/27.9#p3, +\JacobiTheta{j}@{z}{q},Jacobi theta function,Jacobi-theta,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, +\JacobiThetaCombined{n}{m}@{z}{q},combined theta function,Jacobi-theta-combined,F|F:P,"$\varphi_{m,n}$",http://dlmf.nist.gov/20.11#SS5.p2, +\JacobiThetaTau{j}@{z}{\tau},Jacobi theta $\tau$ function $\theta_j$,Jacobi-theta-tau,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, +\JacobiZeta@{x}{k},Jacobi's zeta function,Jacobi-Zeta,F|F:P,$\mathrm{Z}$,http://dlmf.nist.gov/22.16#E32, +\Jacobiam@@{x}{k},Jacobi's amplitude function ${\rm am}$,Jacobi-elliptic-amplitude,F|F:P:nP,$\mathrm{am}$,http://dlmf.nist.gov/23.1, +\Jacobicd@@{z}{k},Jacobian elliptic function ${\rm cd}$,Jacobi-elliptic-cd,F|F:P:nP,$\mathrm{cd}$,http://dlmf.nist.gov/22.2#E8, +\Jacobicn@@{z}{k},Jacobian elliptic function ${\rm cn}$,Jacobi-elliptic-cn,F|F:P:nP,$\mathrm{cn}$,http://dlmf.nist.gov/22.2#E5, +\Jacobics@@{z}{k},Jacobian elliptic function ${\rm cs}$,Jacobi-elliptic-cs,F|F:P:nP,$\mathrm{cs}$,http://dlmf.nist.gov/23.1, +\Jacobidc@@{z}{k},Jacobian elliptic function ${\rm dc}$,Jacobi-elliptic-dc,F|F:P:nP,$\mathrm{dc}$,http://dlmf.nist.gov/23.1, +\Jacobidn@@{z}{k},Jacobian elliptic function ${\rm dn}$,Jacobi-elliptic-dn,F|F:P:nP,$\mathrm{dn}$,http://dlmf.nist.gov/22.2#E6, +\Jacobids@@{z}{k},Jacobian elliptic function ${\rm ds}$,Jacobi-elliptic-ds,F|F:P:nP,$\mathrm{ds}$,http://dlmf.nist.gov/23.1, +\Jacobinc@@{z}{k},Jacobian elliptic function ${\rm nc}$,Jacobi-elliptic-nc,F|F:P:nP,$\mathrm{nc}$,http://dlmf.nist.gov/23.1, +\Jacobind@@{z}{k},Jacobian elliptic function ${\rm nd}$,Jacobi-elliptic-nd,F|F:P:nP,$\mathrm{nd}$,http://dlmf.nist.gov/23.1, +\Jacobins@@{z}{k},Jacobian elliptic function ${\rm ns}$,Jacobi-elliptic-ns,F|F:P:nP,$\mathrm{ns}$,http://dlmf.nist.gov/23.1, +\Jacobiphi{\alpha}{\beta}{\lambda}@{t},Jacobi function,Jacobi-hypergeometric-phi,F|F:P,"$\phi^{(\alpha,\beta)}_{\lambda}$",http://dlmf.nist.gov/15.9#E11, +\Jacobisc@@{z}{k},Jacobian elliptic function ${\rm sc}$,Jacobi-elliptic-sc,F|F:P:nP,$\mathrm{sc}$,http://dlmf.nist.gov/22.2#E9, +\Jacobisd@@{z}{k},Jacobian elliptic function ${\rm sd}$,Jacobi-elliptic-sd,F|F:P:nP,$\mathrm{sd}$,http://dlmf.nist.gov/22.2#E7, +\Jacobisn@@{z}{k},Jacobian elliptic function ${\rm sn}$,Jacobi-elliptic-sn,F|F:P:nP,$\mathrm{sn}$,http://dlmf.nist.gov/22.2#E4, +\JonquierePhi@{z}{s}=\Polylogarithm{s}@{z},Jonquiére's function,Jonquiere-phi,F|F:P,$\phi$,http://dlmf.nist.gov/23.1, +\JordanJ{k}@{n},Jordan's function,Jordan-J,F|F:P,$J_{k}$,http://dlmf.nist.gov/27.2#E11, +\Kelvinbei{\nu}@@{x},Kelvin function ${\rm bei}_\nu$,Kelvin-bei,F|F:P:nP,$\mathrm{bei}_{\nu}$,http://dlmf.nist.gov/10.61#E1, +\Kelvinber{\nu}@@{x},Kelvin function ${\rm ber}_\nu$,Kelvin-ber,F|F:P:nP,$\mathrm{ber}_{\nu}$,http://dlmf.nist.gov/10.61#E1, +\Kelvinkei{\nu}@@{x},Kelvin function ${\rm kei}_\nu$,Kelvin-kei,F|F:P:nP,$\mathrm{kei}_{\nu}$,http://dlmf.nist.gov/10.61#E2, +\Kelvinker{\nu}@@{x},Kelvin function ${\rm ker}_\nu$,Kelvin-ker,F|F:P:nP,$\mathrm{ker}_{\nu}$,http://dlmf.nist.gov/10.61#E2, +\Krawtchouk{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, +\KrawtchoukK{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, +\Kronecker{j}{k},Kronecker delta,EMPTY,I|F,"$\delta_{m,n}$",http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4, +\KummerM@{a}{b}{z},Kummer confluent hypergeometric function $M$,Kummer-confluent-hypergeometric-M,F|F:P,$M$,http://dlmf.nist.gov/13.2#E2, +\KummerU@{a}{b}{z},Kummer confluent hypergeometric function $U$,Kummer-confluent-hypergeometric-U,F|F:P,$U$,http://dlmf.nist.gov/13.2#E6, +\KummerboldM@{a}{b}{z},Olver's confluent hypergeometric function,Kummer-confluent-hypergeometric-bold-M,F|F:P,${\mathbf{M}}$,http://dlmf.nist.gov/13.2#E3, +\Laguerre[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, +\LaguerreL[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, +\LambertW@{x},Lambert $\LambertW$-function,Lambert-W,F|F:P,$W$,http://dlmf.nist.gov/23.1, +\LambertWm@{x},non-principal branch of Lambert $\LambertW$-function,Lambert-Wm,F|F:P,$\mathrm{Wm}$,http://dlmf.nist.gov/4.13#p2, +\LambertWp@{x},principal branch of Lambert $\LambertW$-function,Lambert-Wp,F|F:P,$\mathrm{Wp}$,http://dlmf.nist.gov/23.1, +\LameEc{m}{\nu}@{z}{k^2},Lamé function $Ec_\nu^m$,Lame-Ec,F|F:P,$\mathit{Ec}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\LameEs{m}{\nu}@{z}{k^2},Lamé function $Es_\nu^m$,Lame-Es,F|F:P,$\mathit{Es}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\Lamea{n}{\nu}@{k^2},eigenvalues of Lamé's equation $a_\nu^m$,Lame-eigenvalue-a,F|F:P,$a^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, +\Lameb{n}{\nu}@{k^2},eigenvalues of Lamé's equation $b_\nu^m$,Lame-eigenvalue-b,F|F:P,$b^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, +\LamecE{m}{2n+1}@{z}{k^2},Lamé polynomial $cE_{2n+1}^m$,Lame-polynomial-cE,P|F:P,$\mathit{cE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\LamecdE{m}{2n+2}@{z}{k^2},Lamé polynomial $cdE_{2n+2}^m$,Lame-polynomial-cdE,P|F:P,$\mathit{cdE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\LamedE{m}{2n+1}@{z}{k^2},Lamé polynomial $dE_{2n+1}^m$,Lame-polynomial-dE,P|F:P,$\mathit{dE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E4, +\LamesE{m}{2n+1}@{z}{k^2},Lamé polynomial $sE_{2n+1}^m$,Lame-polynomial-sE,P|F:P,$\mathit{sE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E2, +\LamescE{m}{2n+2}@{z}{k^2},Lamé polynomial $scE_{2n+2}^m$,Lame-polynomial-scE,P|F:P,$\mathit{scE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E5, +\LamescdE{m}{2n+3}@{z}{k^2},Lamé polynomial $scdE_{2n+3}^m$,Lame-polynomial-scdE,P|F:P,$\mathit{scdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E8, +\LamesdE{m}{2n+2}@{z}{k^2},Lamé polynomial $sdE_{2n+2}^m$,Lame-polynomial-sdE,P|F:P,$\mathit{sdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E6, +\LameuE{m}{2n}@{z}{k^2},Lamé polynomial $uE_{2n}^m$,Lame-polynomial-uE,P|F:P,$\mathit{uE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E1, +\LaplaceTrans@{f}{s},Laplace transform,Laplace-transform,O|F:P,$\mathscr{L}$,http://dlmf.nist.gov/1.14#E17, +\Lattice{L},lattice in $\Complex$,EMPTY,SN|F,$\mathbb{L}$,http://dlmf.nist.gov/23.2#i, +"\LauricellaFD@{a}{b_1,...,b_n}{c}{z_1,...,z_n}",Lauricella's multivariate hypergeometric function,Lauricella-FD,F|F:P,$F_D$,http://dlmf.nist.gov/19.15#p1, +\LegendreBlackQ[\mu]{\nu}@{z},Olver's associated Legendre function,associated-Legendre-black-Q,F|FO:PO:FnO:PnO,$\boldsymbol{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E10, +\LegendreP[\mu]{\nu}@{z},associated Legendre function of the first kind,Legendre-P-first-kind,F|FO:PO:FnO:PnO,$P_\nu^\mu$,http://dlmf.nist.gov/14.3#E6, +\LegendrePoly{n}@{x},Legendre polynomial,Legendre-spherical-polynomial,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r25, +\LegendrePolys{n}@{x},shifted Legendre polynomial,shifted-spherical-Legendre-polynomial-s,P|F:P,$P^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r26, +\LegendreQ[\mu]{\nu}@{z},associated Legendre function of the second kind,Legendre-Q-second-kind,F|FO:PO:FnO:PnO,$Q_\nu^\mu$,http://dlmf.nist.gov/14.3#E7, +\LegendreSymbol{n}{p},Legendre symbol,Legendre-symbol,I|F,$(n|p)$,http://dlmf.nist.gov/27.9, +\LerchPhi@{z}{s}{a},Lerch's transcendent,Lerch-Phi,F|F:P,$\Phi$,http://dlmf.nist.gov/25.14#E1, +\LeviCivita{j}{k}{\ell},Levi-Civita symbol,EMPTY,I|F,$\epsilon_{jkl}$,http://dlmf.nist.gov/1.6#E14, +\LinBrF@{a}{u},line-broadening function,line-broadening-function,F|F:P,$H$,http://dlmf.nist.gov/7.19#E4, +\LiouvilleLambda@{n},Liouville's function,Liouville-lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/27.2#E13, +\Ln@@{z},general logarithm function,multivalued-natural-logarithm,F|F:P:nP,$\mathrm{Ln}$,http://dlmf.nist.gov/4.2#E1, +\LogInt@{x},logarithmic integral,logarithmic-integral,F|F:P,$\mathrm{li}$,http://dlmf.nist.gov/6.2#E8, +\LommelS{\mu}{\nu}@{z},"Lommel function $S$",Lommel-S,F|F:P,"$S_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E5, +\Lommels{\mu}{\nu}@{z},"Lommel function $s$",Lommel-s,F|F:P,"$s_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E3, +\Longleftrightarrow,is equivalent to,equivalent-to,SM|F,$\Longleftrightarrow $,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r13, +\Longrightarrow,implies,EMPTY,SM|F,$\Longrightarrow$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r12, +\MangoldtLambda@{n},Mangoldt's function,Mangoldt-Lambda,F|F:P,$\Lambda$,http://dlmf.nist.gov/27.2#E14, +\MathieuCe{\nu}@@{z}{q},modified Mathieu function ${\rm Ce}_\nu$,modified-Mathieu-Ce,F|F:P:nP,$\mathrm{Ce}_{n}$,http://dlmf.nist.gov/28.20#E3, +\MathieuD{j}@{\nu}{\mu}{z},cross-products of modified Mathieu functions and their derivatives ${\rm D}_{j}$,Mathieu-D,F|F:P,$\mathrm{D}_{j}$,http://dlmf.nist.gov/28.28#E24, +\MathieuDc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dc}_j$,Mathieu-Dc,F|F:P,$\mathrm{Dc}_{j}$,http://dlmf.nist.gov/28.28#E39, +\MathieuDs{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Ds}_j$,Mathieu-Ds,F|F:P,$\mathrm{Ds}_{j}$,http://dlmf.nist.gov/28.28#E35, +\MathieuDsc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dsc}_j$,Mathieu-Dsc,F|F:P,$\mathrm{Dsc}_{j}$,http://dlmf.nist.gov/28.28#E40, +\MathieuEigenvaluea{n}@@{q},eigenvalues of Mathieu equation $a_n(q)$,Mathieu-eigenvalue-a,F|F:P:nP,$a_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, +\MathieuEigenvalueb{n}@@{q},eigenvalues of Mathieu equation $b_n(q)$,Mathieu-eigenvalue-b,F|F:P:nP,$b_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, +\MathieuEigenvaluelambda{\nu+2n}@@{q},eigenvalues of Mathieu equation $\lambda_\nu(q)$,Mathieu-eigenvalue-lambda,F|F:P:nP,$\lambda_{\nu}$,http://dlmf.nist.gov/28.12#SS1.p2, +\MathieuFc{m}@{z}{h},Mathieu function ${\rm Fc}_m$,Mathieu-Fc,F|F:P,$\mathrm{Fc}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuFe{n}@@{z}{q},modified Mathieu function ${\rm Fe}_n$,modified-Mathieu-Fe,F|F:P:nP,$\mathrm{Fe}_{n}$,http://dlmf.nist.gov/28.20#E6, +\MathieuFs{m}@{z}{h},Mathieu function ${\rm Fs}_m$,Mathieu-Fs,F|F:P,$\mathrm{Fs}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuGc{m}@{z}{h},Mathieu function ${\rm Gc}_m$,Mathieu-Gc,F|F:P,$\mathrm{Gc}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuGe{n}@@{z}{q},modified Mathieu function ${\rm Ge}_n$,modified-Mathieu-Ge,F|F:P:nP,$\mathrm{Ge}_{n}$,http://dlmf.nist.gov/28.20#E7, +\MathieuGs{m}@{z}{h},Mathieu function ${\rm Gs}_m$,Mathieu-Gs,F|F:P,$\mathrm{Gs}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuIe{n}@@{z}{h},modified Mathieu function ${\rm Ie}_n$,modified-Mathieu-Ie,F|F:P:nP,$\mathrm{Ie}_{n}$,http://dlmf.nist.gov/28.20#E17, +\MathieuIo{n}@@{z}{h},modified Mathieu function ${\rm Io}_n$,modified-Mathieu-Io,F|F:P:nP,$\mathrm{Io}_{n}$,http://dlmf.nist.gov/28.20#E18, +\MathieuKe{n}@@{z}{h},modified Mathieu function ${\rm Ke}_n$,modified-Mathieu-Ke,F|F:P:nP,$\mathrm{Ke}_{n}$,http://dlmf.nist.gov/28.20#E19, +\MathieuKo{n}@@{z}{h},modified Mathieu function ${\rm Ko}_n$,modified-Mathieu-Ko,F|F:P:nP,$\mathrm{Ko}_{n}$,http://dlmf.nist.gov/28.20#E20, +\MathieuM{j}{\nu}@@{z}{h},modified Mathieu function ${\rm M}_\nu^{(j)}$,modified-Mathieu-M,F|F:P:nP,${\mathrm{M}^{(j)}_{\nu}}$,http://dlmf.nist.gov/23.1, +\MathieuMc{j}{n}@@{z}{h},radial Mathieu function ${\rm Mc}_n^{(j)}$,modified-Mathieu-Mc,F|F:P:nP,${\mathrm{Mc}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E15, +\MathieuMe{\nu}@@{z}{q},modified Mathieu function ${\rm Me}_\nu$,modified-Mathieu-Me,F|F:P:nP,$\mathrm{Me}_{n}$,http://dlmf.nist.gov/28.20#E5, +\MathieuMs{j}{n}@@{z}{h},radial Mathieu function ${\rm Ms}_n^{(j)}$,modified-Mathieu-Ms,F|F:P:nP,${\mathrm{Ms}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E16, +\MathieuSe{\nu}@@{z}{q},modified Mathieu function ${\rm Se}_\nu$,modified-Mathieu-Se,F|F:P:nP,$\mathrm{Se}_{n}$,http://dlmf.nist.gov/28.20#E4, +\Mathieuce{n}@@{z}{q},Mathieu function ${\rm ce}_\nu$,Mathieu-ce,F|F:P:nP,$\mathrm{ce}_{n}$,http://dlmf.nist.gov/23.1, +\Mathieufe{n}@@{z}{q},second solution of Mathieu's equation ${\rm fe}_n$,Mathieu-fe,F|F:P:nP,$\mathrm{fe}_{n}$,http://dlmf.nist.gov/28.5#E1, +\Mathieuge{n}@@{z}{q},second solution of Mathieu's equation ${\rm ge}_n$,Mathieu-ge,F|F:P:nP,$\mathrm{ge}_{n}$,http://dlmf.nist.gov/28.5#E2, +\Mathieume{n}@@{z}{q},Mathieu function ${\rm me}_\nu$,Mathieu-me,F|F:P:nP,$\mathrm{me}_{\nu}$,http://dlmf.nist.gov/23.1, +\Mathieuse{n}@@{z}{q},Mathieu function ${\rm se}_\nu$,Mathieu-se,F|F:P:nP,$\mathrm{se}_{\nu}$,http://dlmf.nist.gov/23.1, +\Matrix{I},Bessel function of matrix argument (first kind),EMPTY,F|F,$\Matrix{T}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r9, +\MeijerG{m}{n}{p}{q}@@@{z}{\Vector{a}}{\Vector{b}},Meijer $G$-function,Meijer-G,F|F:fo1:fo2:fo3,"${G^{m,n}_{p,q}}$",http://dlmf.nist.gov/16.17#E1, +\Meixner{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, +\MeixnerM{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, +\MeixnerPollaczek{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, +\MeixnerPollaczekP{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, +\MellinTrans@{f}{s},Mellin transform,Mellin-transform,O|F:P,$\mathscr{M}$,http://dlmf.nist.gov/1.14#E32, +\Mills@{x},Mills ratio ${\sf M}$,Mills-ratio,F|F:P,$\mathsf{M}$,http://dlmf.nist.gov/7.8#E1, +\MittagLeffler{a}{b}@{z},Mittag-Leffler function,Mittag-Leffler-function,F|F:P,"$E_{a,b}$",http://dlmf.nist.gov/10.46#E3, +\ModCylinder{\nu}@{z},modified cylinder function,modified-cylinder-function,F|F:P,$\mathscr{Z}_{\nu}$,http://dlmf.nist.gov/10.25#P2.p1, +\ModularJ@{\tau},Klein's complete invariant,Kleins-invariant-modular-J,F|F:P,$J$,http://dlmf.nist.gov/23.15#E7, +\ModularLambda@{\tau},elliptic modular function,modular-Lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/23.15#E6, +\MoebiusMu@{n},Möbius function,Moebius-mu,F|F:P,$\mu$,http://dlmf.nist.gov/27.2#E12, +\NatNumber,set of positive integers,EMPTY,SN|F,$\mathbb{N}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r11, +\NeumannFactor{n},Neumann factor,Neumann-factor,I|F,$\epsilon_{m}$,http://drmf.wmflabs.org/wiki/Definition:NeumannFactor, +\NeumannPoly{n}@{x},Neumann's polynomial,Neumann-polynomial,P|F:P,$O_{k}$,http://dlmf.nist.gov/10.23#E12, +\NumPrimeDivNu@{n},$\nu(n)$ : number of distinct primes dividing $n$,number-of-primes-dividing-nu,I|F:P,$\nu$,http://dlmf.nist.gov/27.2#SS1.p1, +\NumPrimesLessPi@{x},number of primes not exceeding $x$,number-of-primes-less-pi,I|F:P,$\pi$,http://dlmf.nist.gov/27.2#E2, +\NumSquaresR{k}@{n},number of squares,number-of-squares-R,I|F:P,$r_{k}$,http://dlmf.nist.gov/27.13#SS4.p1, +\ODEgenAiryA{n}@{z},generalized Airy function from differential equation $A_n$,ODE-generalized-Airy-A,F|F:P,$A_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, +\ODEgenAiryB{n}@{z},generalized Airy function from differential equation $B_n$,ODE-generalized-Airy-B,F|F:P,$B_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, +\Pade{p}{q}{f},Padé approximant,Pade-approximant,O|F,${[p/q]_{f}}$,http://dlmf.nist.gov/3.11#SS4.p1, +\ParabolicU@{a}{z},parabolic cylinder function $U$,parabolic-U,F|F:P,$U$,http://dlmf.nist.gov/12.4.E1, +\ParabolicUbar@{a}{x},parabolic cylinder function $\overline{U}$,parabolic-U-bar,F|F:P,$\overline{U}$,http://dlmf.nist.gov/12.2.21, +\ParabolicV@{a}{z},parabolic cylinder function $V$,parabolic-V,F|F:P,$V$,http://dlmf.nist.gov/12.4.E2, +\ParabolicW@{a}{x},parabolic cylinder function $W$,parabolic-W,F|F:P,$W$,http://dlmf.nist.gov/12.14.i, +\PartitionsP[k]@{n},total number of partitions,partition-function,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.2#P4.p2, +\PeriodicBernoulliB{n}@{x},periodic Bernoulli functions,periodic-Bernoulli-polynomial-B,F|F:P,$\widetilde{B}_{n}$,http://dlmf.nist.gov/24.2#iii, +\PeriodicEulerE{n}@{x},periodic Euler functions,periodic-Euler-polynomial-E,F|F:P,$\widetilde{E}_{n}$,http://dlmf.nist.gov/24.2#iii, +\PeriodicZeta@{x}{s},periodic zeta function,periodic-zeta,F|F:P,$F$,http://dlmf.nist.gov/25.13#E1, +\Permutations{n},"set of permutations of ${\bf n}$",set-of-permutations,SN|F,$\mathfrak{S}_{n}$,http://dlmf.nist.gov/23.1, +\PlanePartitionsPP@{n},number of plane partitions of $n$,plane-partitions-PP,I|F:P,$\mathit{pp}$,http://dlmf.nist.gov/26.12#SS1.p4, +\PollaczekP{\lambda}{n}@{x}{a}{b},Pollaczek polynomial,Pollaczek-polynomial-P,P|F:P,$P^{(\lambda)}_{n}$,http://dlmf.nist.gov/18.35#E4, +\Polylogarithm{s}@{z},polylogarithm,polylogarithm,F|F:P,$\mathrm{Li}_{s}$,http://dlmf.nist.gov/25.12#E10, +\Prod{n}{k1}{k2}@{f(n)},semantic product,EMPTY,SM|O:O,$\prod_{n=\alpha}^{\beta}$,http://drmf.wmflabs.org/wiki/Definition:Prod, +\Racah{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, +\RacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, +\RamanujanSum{k}@{n},Ramanujan's sum,Ramanujan-sum,F|F:P,$c_{k}$,http://dlmf.nist.gov/27.10#E4, +\RamanujanTau@{n},Ramanujan's tau function,Ramanujan-tau,F|F:P,$\tau$,http://dlmf.nist.gov/27.14#E18, +\Rational,set of rational numbers,EMPTY,SN|F,$\mathbb{Q}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r13, +\RayleighFun{n}@{\nu},Rayleigh function,Rayleigh-function,F|F:P,$\sigma_{n}$,http://dlmf.nist.gov/10.21#E55, +\Real,set of real numbers,EMPTY,SN|F,$\mathbb{R}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r14, +\RepInterfc{n}@{z},repeated integrals of the complementary error function,repeated-integral-complementary-error-function,F|F:P,$\mathrm{i}^{n}\mathrm{erfc}$,http://dlmf.nist.gov/7.18#E2, +\Residue,residue,EMPTY,O|F,$\mathrm{res}$,http://dlmf.nist.gov/1.10#SS3.p5, +\RestrictedCompositionsC@{\mathrm{condition}}{n},restricted number of compositions,restricted-number-of-compositions-C,I|F:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, +\RestrictedPartitionsP[k]@{\mathrm{condition}}{n},restricted number of partitions,restricted-partitions-P,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.10#i, +\RiemannP@{\begin{Bmatrix} \alpha & \beta &\gamma & \\ a_1 & b_1 & c_1 & z \\ a_2 & b_2 & c_2 & \end{Bmatrix}},Riemann-Papperitz $\RiemannP$-symbol for solutions of the generalized hypergeometric differential equation,Riemann-P-symbol,Q|F:P,$P$,http://dlmf.nist.gov/15.11#E3, +\RiemannTheta@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function,Riemann-theta,F|F:P,$\theta$,http://dlmf.nist.gov/21.2#E1, +\RiemannThetaChar{\Vector{\alpha}}{\Vector{\beta}}@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function with characteristics,Riemann-theta-characterstics,F|F:P,$\theta\left[\Vector{\alpha} \atop \Vector{\beta} \right]$,http://dlmf.nist.gov/21.2#E5, +\RiemannThetaHat@{\Vector{z}}{\Matrix{\Omega}},scaled Riemann theta function,Riemann-theta-hat,F|F:P,$\hat{\theta}$,http://dlmf.nist.gov/21.2#E2, +\RiemannXi@{s},Riemann's $\RiemannXi$-function,Riemann-xi,F|F:P,$\xi$,http://dlmf.nist.gov/25.4#E4, +\RiemannZeta@{s},Riemann zeta function,Riemann-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.2#E1, +\Schwarzian{z}{\zeta},Schwarzian derivative,EMPTY,O|F,"$\left\{f,g\right\}$",http://dlmf.nist.gov/1.13#E20, +\ScorerGi@{z},Scorer function (inhomogeneous Airy function) ${\rm Gi}$,Scorer-Gi,F|F:P,$\mathrm{Gi}$,http://dlmf.nist.gov/9.12#i, +\ScorerHi@{z},Scorer function (inhomogeneous Airy function) ${\rm Hi}$,Scorer-Hi,F|F:P,$\mathrm{Hi}$,http://dlmf.nist.gov/9.12#i, +\SinCosIntf@{z},auxiliary function for sine and cosine integrals ${\rm f}$,sine-cosine-integral-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/6.2#E17, +\SinCosIntg@{z},auxiliary function for sine and cosine integrals ${\rm g}$,sine-cosine-integral-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/6.2#E18, +\SinInt@{z},sine integral ${\rm Si}$,sine-integral,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/6.2#E9, +\SinIntg@{a}{z},generalized sine integral ${\rm Si}$,generalized-sine-integral-Si,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/8.21#E2, +\SinhInt@{z},hyperbolic sine integral,hyperbolic-sine-integral,F|F:P,$\mathrm{Shi}$,http://dlmf.nist.gov/6.2#E15, +\SphBesselIi{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(1)}$,spherical-Bessel-I-1,F|F:P,${\mathsf{i}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E7, +\SphBesselIii{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(2)}$,spherical-Bessel-I-2,F|F:P,${\mathsf{i}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E8, +\SphBesselJ{n}@{z},spherical Bessel function of the first kind ${\sf j}_n$,spherical-Bessel-J,F|F:P,$\mathsf{j}_{n}$,http://dlmf.nist.gov/10.47#E3, +\SphBesselK{n}@{z},modified spherical Bessel function of the second kind ${\sf k}_n$,spherical-Bessel-K,F|F:P,$\mathsf{k}_{n}$,http://dlmf.nist.gov/10.47#E9, +\SphBesselY{n}@{z},spherical Bessel function of the second kind ${\sf y}_n$,spherical-Bessel-Y,F|F:P,$\mathsf{y}_{n}$,http://dlmf.nist.gov/10.47#E4, +\SphHankelHi{n}@{z},spherical Hankel function of the first kind ${\sf h}_n^{(1)}$,spherical-Hankel-H-1-Bessel-third-kind,F|F:P,${\mathsf{h}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E5, +\SphHankelHii{n}@{z},spherical Hankel function of the second kind ${\sf h}_n^{(2)}$,spherical-Hankel-H-2-Bessel-third-kind,F|F:P,${\mathsf{h}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E6, +\SphericalHarmonicY{l}{m}@{\theta}{\phi},spherical harmonic,spherical-harmonic-Y,F|F:P,"$Y_{{\ell},{m}}$",http://dlmf.nist.gov/14.30#E1, +\SpheroidalEigenvalueLambda{m}{n}@{\gamma^2},eigenvalues of the spheroidal differential equation,spheroidal-eigenvalue-lambda,O|F:P,$\lambda^{m}_{n}$,http://dlmf.nist.gov/30.3#SS1.p1, +\SpheroidalOnCutPs{m}{n}@{x}{\gamma^2},spheroidal wave function of the first kind ${\sf Ps}_n^m$,spheroidal-wave-on-cut-Ps,F|F:P,$\mathsf{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.4#i, +\SpheroidalOnCutQs{m}{n}@{x}{\gamma^2},spheroidal wave function of the second kind ${\sf Qs}_n^m$,spheroidal-wave-on-cut-Qs,F|F:P,$\mathsf{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.5, +\SpheroidalPs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Ps_n^m$,spheroidal-wave-Ps,F|F:P,$\mathit{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, +\SpheroidalQs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Qs_n^m$,spheroidal-wave-Qs,F|F:P,$\mathit{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, +\SpheroidalRadialS{m}{j}{n}@{z}{\gamma},radial spheroidal wave function,radial-spheroidal-wave-S,F|F:P,$S^{m(j)}_{n}$,http://dlmf.nist.gov/30.11#E3, +\StieltjesConstants{n},Stieltjes constants,Stieltjes-constants,C|F,$\gamma_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants, +\StieltjesTrans@{f}{s},Stieltjes transform,Stieltjes-transform,O|F:P,$\mathcal{S}$,http://dlmf.nist.gov/1.14#E47, +\StieltjesWigert{n}@@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P:PS,$S_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert, +\StieltjesWigertS{n}@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.27#E18, +\StirlingS@{n}{k},Stirling number of the first kind,Stirling-number-first-kind-S,I|F:P,$s$,http://dlmf.nist.gov/26.8#SS1.p1, +\StirlingSS@{n}{k},Stirling number of the second kind,Stirling-number-second-kind-S,I|F:P,$S$,http://dlmf.nist.gov/26.8#SS1.p3, +\StruveH{\nu}@{z},Struve function ${\bf H}_{\nu}$,Struve-H,F|F:P,$\mathbf{H}_{\nu}$,http://dlmf.nist.gov/11.2#E1, +\StruveK{\nu}@{z},Struve function ${\bf K}_{\nu}$,associated-Struve-K,F|F:P,$\mathbf{K}_{\nu}$,http://dlmf.nist.gov/11.2#E5, +\StruveL{\nu}@{z},modified Struve function ${\bf L}_{\nu}$,modified-Struve-L,F|F:P,$\mathbf{L}_{\nu}$,http://dlmf.nist.gov/11.2#E2, +\StruveM{\nu}@{z},modified Struve function ${\bf M}_{\nu}$,associated-Struve-M,F|F:P,$\mathbf{M}_{\nu}$,http://dlmf.nist.gov/11.2#E6, +\Sum{n}{0}{k}@{f(n)},semantic sum,EMPTY,SM|F:P,$\sum_{n=k}^{N}$,http://drmf.wmflabs.org/wiki/Definition:Sum, +\SurfaceHarmonicY{l}{m}@{\theta}{\phi},surface harmonic of the first kind,surface-harmonic-Y,F|F:P,$Y_{l}^{m}$,http://dlmf.nist.gov/14.30#E2, +\TriangleOP{\alpha}{\beta}{\gamma}{m}{n}@{x}{y},triangle polynomial,triangle-orthogonal-polynomial-P,P|F:P,"$P^{\alpha,\beta,\gamma}_{m,n}$",http://dlmf.nist.gov/18.37#E7, +\Ultra{\lambda}{n}@{x},ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{\mu}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, +\Ultraspherical{\lambda}{n}@{x},ultraspherical (or Gegenbauer) polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{(\mu)}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, +\UmbilicCatE@{s}{t}{\Vector{x}},elliptic umbilic catastrophe,elliptic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E2, +\UmbilicCatH@{s}{t}{\Vector{x}},hyperbolic umbilic catastrophe,hyperbolic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E3, +\VariationalOp[a;b]@{f},total variation,variational-operator,F|FO:PO:FnO:PnO,"$\mathcal{V}_{a,b}$",http://dlmf.nist.gov/1.4#E33, +\VoigtU@{x}{t},Voigt function ${\sf U}$,Voigt-U,F|F:P,$\mathsf{U}$,http://dlmf.nist.gov/7.19#E1, +\VoigtV@{x}{t},Voigt function ${\sf V}$,Voigt-V,F|F:P,$\mathsf{V}$,http://dlmf.nist.gov/7.19#E2, +\WaringG@{k},Waring's function $G$,Waring-G,F|F:P,$G$,http://dlmf.nist.gov/27.13#SS3.p1, +\Waringg@{k},Waring's function $g$,Waring-g,F|F:P,$g$,http://dlmf.nist.gov/27.13#SS3.p1, +\WeberE{\nu}@{z},Weber function,Weber-E,F|F:P,$\mathbf{E}_{\nu}$,http://dlmf.nist.gov/11.10#E2, +\WeierPInv@@{z}{g_2}{g_3},Weierstrass $\WeierPInv$-function on invariants $\WeierPInv@{z}{g_2}{g_3}$,Weierstrass-P-on-invariants,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, +\WeierPLat@@{z}{\Lattice{L}},Weierstrass $\WeierPLat$-function on lattice $\WeierPLat@{z}{\Lattice{L}}$,Weierstrass-P-on-lattice,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, +\WeiersigmaInv@@{z}{g_2}{g_3},Weierstrass sigma function on invariants,Weierstrass-sigma-on-invariants,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, +\WeiersigmaLat@@{z}{\Lattice{L}},Weierstrass sigma function on lattice,Weierstrass-sigma-on-lattice,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, +\WeierzetaInv@@{z}{g_2}{g_3},Weierstrass zeta function on invariants,Weierstrass-zeta-on-invariants,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, +\WeierzetaLat@@{z}{\Lattice{L}},Weierstrass zeta function on lattice,Weierstrass-zeta-on-lattice,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, +\WhitD{\nu}@{z},parabolic cylinder function,Whittaker-D,F|F:P,$D_{n}$,http://dlmf.nist.gov/23.1, +\WhitM{\kappa}{\mu}@{z},Whittaker function $M_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-M,F|F:P,"$M_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E2, +\WhitW{\kappa}{\mu}@{z},Whittaker function $W_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-W,F|F:P,"$W_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E3, +\Wilson{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, +\WilsonW{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, +\Wronskian@{w_1(z);w_2(z)},Wronskian,Wronskian,F|F:P,$\mathscr{W}$,http://dlmf.nist.gov/1.13#E4, +\ZeroAiryAi{k},$k$\textsuperscript{th} zero of Airy $\AiryAi$,zero-Airy-Ai,F|F,$a_{k}$,http://dlmf.nist.gov/23.1, +\ZeroAiryAiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryAi'$,zero-derivative-Airy-Ai,F|F,$a'_{k}$,http://dlmf.nist.gov/23.1, +\ZeroAiryBi{k},$k$\textsuperscript{th} zero of Airy $\AiryBi$,zero-Airy-Bi,F|F,$b_{k}$,http://dlmf.nist.gov/23.1, +\ZeroAiryBiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryBi'$,zero-derivative-Airy-Bi,F|F,$b'_{k}$,http://dlmf.nist.gov/23.1, +\ZeroBesselJ{\nu}{m},zeros of the Bessel function $\BesselJ{\nu}@{x}$,zero-Bessel-J,F|F,"$j_{\nu,m}$",http://dlmf.nist.gov/23.1, +\ZeroBesselJPrime{\nu}{m},zeros of the Bessel function derivative $\BesselJ{\nu}'@{x}$,zero-derivative-Bessel-J,F|F,"${j'_{\nu,m}}$",http://dlmf.nist.gov/23.1, +\ZeroBesselY{\nu}{m},zeros of the Bessel function $\BesselY{\nu}@{x}$,zero-Bessel-Y-Weber,F|F,"$y_{\nu,m}$",http://dlmf.nist.gov/23.1, +\ZeroBesselYPrime{\nu}{m},zeros of the Bessel function derivative $\BesselY{\nu}'@{x}$,zero-derivative-Bessel-Y-Weber,F|F,"${y'_{\nu,m}}$",http://dlmf.nist.gov/23.1, +\ZonalPoly{\kappa}@{\Matrix{T}},zonal polynomial,zonal-polynomial,P|F:P,$Z_{\kappa}$,http://dlmf.nist.gov/35.4#SS1.p3, +\acos@@{z},inverse cosine function,inverse-cosine,F|F:P:nP,$\mathrm{arccos}$,http://dlmf.nist.gov/4.23#SS2.p1, +\acosh@@{z},inverse hyperbolic cosine function,hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{arccosh}$,http://dlmf.nist.gov/4.37#SS2.p1, +\acot@@{z},inverse cotangent function,inverse-cotangent,F|F:P:nP,$\mathrm{arccot}$,http://dlmf.nist.gov/4.23#E9, +\acoth@@{z},inverse hyperbolic cotangent function,hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{arccoth}$,http://dlmf.nist.gov/4.37#E9, +\acsc@@{z},inverse cosecant function,inverse-cosecant,F|F:P:nP,$\mathrm{arccsc}$,http://dlmf.nist.gov/4.23#E7, +\acsch@@{z},inverse hyperbolic cosecant function,hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{arccsch}$,http://dlmf.nist.gov/4.37#E7, +\arcGudermannian@@{x},inverse Gudermannian function,inverse-Gudermannian,F|F:P:nP,${\mathrm{gd}^{-1}}$,http://dlmf.nist.gov/4.23#E41, +\arcJacobicd@{x}{k},inverse Jacobian elliptic function ${\rm arccd}$,inverse-Jacobi-elliptic-cd,F|F:P,$\mathrm{arccd}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobicn@{x}{k},inverse Jacobian elliptic function ${\rm arccn}$,inverse-Jacobi-elliptic-cn,F|F:P,$\mathrm{arccn}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobics@{x}{k},inverse Jacobian elliptic function ${\rm arccs}$,inverse-Jacobi-elliptic-cs,F|F:P,$\mathrm{arccs}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobidc@{x}{k},inverse Jacobian elliptic function ${\rm arcdc}$,inverse-Jacobi-elliptic-dc,F|F:P,$\mathrm{arcdc}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobidn@{x}{k},inverse Jacobian elliptic function ${\rm arcdn}$,inverse-Jacobi-elliptic-dn,F|F:P,$\mathrm{arcdn}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobids@{x}{k},inverse Jacobian elliptic function ${\rm arcds}$,inverse-Jacobi-elliptic-ds,F|F:P,$\mathrm{arcds}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobinc@{x}{k},inverse Jacobian elliptic function ${\rm arcnc}$,inverse-Jacobi-elliptic-nc,F|F:P,$\mathrm{arcnc}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobind@{x}{k},inverse Jacobian elliptic function ${\rm arcnd}$,inverse-Jacobi-elliptic-nd,F|F:P,$\mathrm{arcnd}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobins@{x}{k},inverse Jacobian elliptic function ${\rm arcns}$,inverse-Jacobi-elliptic-ns,F|F:P,$\mathrm{arcns}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobisc@{x}{k},inverse Jacobian elliptic function ${\rm arcsc}$,inverse-Jacobi-elliptic-sc,F|F:P,$\mathrm{arcsc}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobisd@{x}{k},inverse Jacobian elliptic function ${\rm arcsd}$,inverse-Jacobi-elliptic-sd,F|F:P,$\mathrm{arcsd}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobisn@{x}{k},inverse Jacobian elliptic function ${\rm arcsn}$,inverse-Jacobi-elliptic-sn,F|F:P,$\mathrm{arcsn}$,http://dlmf.nist.gov/22.15#SS1.p1, +\asec@@{z},inverse secant function,inverse-secant,F|F:P:nP,$\mathrm{arcsec}$,http://dlmf.nist.gov/4.23#E8, +\asech@@{z},inverse hyperbolic secant function,hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{arcsech}$,http://dlmf.nist.gov/4.37#E8, +\asin@@{z},inverse sine function,inverse-sine,F|F:P:nP,$\mathrm{arcsin}$,http://dlmf.nist.gov/4.23#SS2.p1, +\asinh@@{z},inverse hyperbolic sine function,hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{arcsinh}$,http://dlmf.nist.gov/4.37#SS2.p1, +\atan@@{z},inverse tangent function,inverse-tangent,F|F:P:nP,$\mathrm{arctan}$,http://dlmf.nist.gov/4.23#SS2.p1, +\atanh@@{z},inverse hyperbolic tangent function,hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{arctanh}$,http://dlmf.nist.gov/4.37#SS2.p1, +\bDiff[x],backward difference,EMPTY,O|F,"$\,\nabla_{x}$",http://dlmf.nist.gov/18.1#EGx2, +\bigqJacobi{n}@@{x}{a}{b}{c}{q},big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobi, +\bigqJacobiIVparam{n}@@{x}{a}{b}{c}{d}{q},big $q$-Jacobi polynomial with four parameters,big-q-Jacobi-polynomial-four-parameters-P,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam, +\bigqLaguerre{n}@{x}{a}{b}{q},big $q$-Laguerre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre, +\bigqLegendre{n}@{x}{c}{q},big $q$-Legendre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLegendre, +\binom{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 +\binomial{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 +\cDiff[x],central difference,EMPTY,O|F,"$\,\delta_{x}$",http://dlmf.nist.gov/18.1#EGx3, +\card,number of elements of a finite set,EMPTY,SN|F,$\left|A\right|$,http://dlmf.nist.gov/26.1, +\cartprod,$G\cartprod H$: Cartesian product of groups $G$ and $H$,EMPTY,O|F,$\times$,http://dlmf.nist.gov/23.1, +\ceiling{x},ceiling,EMPTY,I|F,$\left\lceil a\right\rceil$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r17, +\conj{z},complex conjugate,EMPTY,O|F,$\overline{a}$,http://dlmf.nist.gov/1.9#E11, +\cos@@{z},cosine function,cos,F|F:P:nP,$\mathrm{cos}$,http://dlmf.nist.gov/4.14#E2, +\cosh@@{z},hyperbolic cosine function,hyperbolic-cosine,F|F:P:nP,$\mathrm{cosh}$,http://dlmf.nist.gov/4.28#E2, +\cosintg@{a}{z},generalized cosine integral ${\rm ci}$,generalized-cosine-integral-ci,F|F:P,$\mathrm{ci}$,http://dlmf.nist.gov/8.21#E1, +\cot@@{z},cotangent function,cotangent,F|F:P:nP,$\mathrm{cot}$,http://dlmf.nist.gov/4.14#E7, +\coth@@{z},hyperbolic cotangent function,hyperbolic-cotangent,F|F:P:nP,$\mathrm{coth}$,http://dlmf.nist.gov/4.28#E7, +\cpi,ratio of a circle's circumference to its diameter,ratio-of-a-circle's-circumference-to-its-diameter,C|F,$\pi$,http://dlmf.nist.gov/5.19.E4, +\csc@@{z},cosecant function,cosecant,F|F:P:nP,$\mathrm{csc}$,http://dlmf.nist.gov/4.14#E5, +\csch@@{z},hyperbolic cosecant function,hyperbolic-cosecant,F|F:P:nP,$\mathrm{csch}$,http://dlmf.nist.gov/4.28#E5, +\ctsHahn{n}@@{x}{a}{b}{c}{d},continuous Hahn polynomial,continuous-Hahn-polynomial,P|F:P:PS,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, +\ctsbigqHermite{n}@{x}{a}{q},continuous big $q$-Hermite polynomial,EMPTY,P|F:P,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite, +\ctsdualHahn{n}@@{x^2}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-normalized-S,P|F:P:PS,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, +\ctsdualqHahn{n}@{x}{a}{b}{c}{q},continuous dual $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn, +\ctsqHahn{n}@{x}{a}{b}{c}{d}{q},continuous $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHahn, +\ctsqHermite{n}@@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P:PS,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHermite, +\ctsqJacobi{\alpha}{\beta}{m}@{x}{q},continuous $q$-Jacobi polynomial,EMPTY,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi, +\ctsqJacobiRahman{n}@@{x}{q},continuous $q$-Jacobi-Rahman-polynomial,continuous-q-Jacobi-Rahman-polynomial-P,P|F:P:PS,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobiRahman, +\ctsqLaguerre{\alpha}{n}@{x}{q},continuous $q$-Laguerre polynomial,EMPTY,P|F:P,$P^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre, +\ctsqLegendre{n}@@{x}{q},continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre, +\ctsqLegendreRahman{n}@@{x}{q},continuous $q$-Legendre-Rahman polynomial,continuous-q-Legendre-Rahman-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendreRahman, +\ctsqUltra{n}@{x}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, +\ctsqUltrae{n}@{e^{i\theta}}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial exponential argument,continuous-q-ultraspherical-Rogers-polynomial-exponential-argument,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqUltrae, +\curl,curl of vector-valued function,EMPTY,F|F,$\nabla\times$,http://dlmf.nist.gov/1.6#E22, +\deltaDistribution,Dirac delta distribution,Dirac delta distribution,D|F,$\delta_x$,http://dlmf.nist.gov/1.17.i, +\deriv{f}{x},derivative,EMPTY,O|F,$\deriv{}{x}}$,http://dlmf.nist.gov/1.4#E4, +\det,determinant,EMPTY,L|F,$\det$,http://dlmf.nist.gov/1.3#i, +\diag,diagonal part of a matrix,EMPTY,L|F,$\diag[\Matrix{a}]$,http://dlmf.nist.gov/21.5.E7, +\diff{x},differential,EMPTY,O|F,$\mathrm{d}^nx$,http://dlmf.nist.gov/1.4#iv, +\digamma@{z},psi (or digamma) function,digamma,F|F:P,$\psi$,http://dlmf.nist.gov/5.2#E2, +\discrqHermiteI{n}@@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P:PS,$h_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI, +\discrqHermiteII{n}@@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-h-tilde,P|F:P:PS,$\tilde{h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII, +\divergence,divergence of vector-valued function,EMPTY,F|F,$\mathrm{div}$,http://dlmf.nist.gov/1.6#E21, +\divides,divides,EMPTY,O|F,$\nabla\cdot$,http://dlmf.nist.gov/24.1, +\dualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-polynomial-R,P|F:P:PS,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, +\dualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},dual $q$-Hahn polynomial,dual-q-Hahn-R,P|F:P:PS,$R_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqHahn, +\dualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk, +\erf@@{z},error function,error-function,F|F:P:nP,$\mathrm{erf}$,http://dlmf.nist.gov/7.2#E1, +\erfc@@{z},complementary error function,repeated-integral-complementary-error-function,F|F:P:nP,$\mathrm{erfc}$,http://dlmf.nist.gov/7.2#E2, +\erfw@@{z},complementary error function $w$,error-function-w,F|F:P:nP,$w$,http://dlmf.nist.gov/7.2#E3, +\exp@@{z},exponential function,exponential,F|F:P:nP,$\mathrm{exp}$,http://dlmf.nist.gov/4.2#E19, +\expe,the base of the natural logarithm,EMPTY,F|F,$\mathrm{e}$,http://dlmf.nist.gov/4.2.E11, +\exptrace@{\Matrix{X}},exponential of trace of a matrix,exponential-trace,L|F:P,$\mathrm{etr}$,http://dlmf.nist.gov/35.1#p3.t1.r10, +\f{f}@{x},function,EMPTY,SM|F:P,${f}$,http://drmf.wmflabs.org/wiki/Definition:f, +\fDiff,forward difference operator,EMPTY,O|F,"$\,\Delta_{y}$",http://dlmf.nist.gov/3.6#SS1.p1, +\floor{x},floor,EMPTY,I|F,$\left\lfloor a\right\rfloor$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16, +\forall,for every,EMPTY,Q|F,$\forall$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r11, +\gradient,gradient of differentiable scalar function,EMPTY,F|F,$\nabla$,http://dlmf.nist.gov/1.6#E20, +"\idem@{\chi_1}{\chi_1,...,\chi_n}",$\idem$ function,idem,F|F:P,$\mathrm{idem}$,http://dlmf.nist.gov/17.1#p3, +\ifrac,semantic slash fraction,EMPTY,SM|F,$(a)/(b)$,http://dlmf.nist.gov/4.2.E8, +\imagpart{z},imaginary part,EMPTY,O|F,"$\Im {z}$",http://dlmf.nist.gov/1.9#E2, +\in,element of,EMPTY,Q|F,$\in$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r9, +\incgamma@{a}{z},incomplete gamma function $\gamma$,incomplete-gamma,F|F:P,$\gamma$,http://dlmf.nist.gov/8.2#E1, +\incgammastar@{a}{z},incomplete gamma function $\gamma^{*}$,incomplete-gamma-star,F|F:P,$\gamma^{*}$,http://dlmf.nist.gov/8.2#E6, +\inf,greatest lower bound (infimum),EMPTY,Q|F,$\mathrm{inf}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r24, +\int,integral,EMPTY,F|F,$\int$,http://dlmf.nist.gov/1.4#iv, +\inverf@@{x},inverse error function,inverse-error-function,F|F:P:nP,$\mathrm{inverf}$,http://dlmf.nist.gov/7.17#E1, +\inverfc@@{x},inverse complementary error function,inverse-complementary-error-function,F|F:P:nP,$\mathrm{inverfc}$,http://dlmf.nist.gov/7.17#E1, +\iunit,imaginary unit,EMPTY,C|F,$\mathrm{i}$,http://dlmf.nist.gov/1.9.i, +\liminf,least limit point,EMPTY,Q|F,$\mathrm{liminf}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r4, +\littleo@{x},order less than,little-o,Q|F:P,$o$,http://dlmf.nist.gov/2.1#E2, +\littleqJacobi{n}@@{x}{a}{b}{q},little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-p,P|F:P:PS,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqJacobi, +\littleqLaguerre{n}@{x}{a}{q},little $q$-Laguerre / Wall polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre, +\littleqLegendre{m}@{x}{q},little $q$-Legendre polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLegendre, +\ln@@{z},principal branch of logarithm function,natural-logarithm,F|F:P:nP,$\mathrm{ln}$,http://dlmf.nist.gov/4.2#E2, +\log@@{z},principle branch of natural logarithm,logarithm,F|F:P:nP,$\mathrm{log}$,http://dlmf.nist.gov/4.2#E2, +\logb{a}@@{z},logarithm to general base,logarithm,F|F:P:nP,$\mathrm{log}_{b}$,http://dlmf.nist.gov/4.2#EGx1, +\lrselection,bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right\}$,http://drmf.wmflabs.org/wiki/Definition:Lrselection, +\lselection,left bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right.$,http://dlmf.nist.gov/28.4.E22, +\mEulerBeta{m}@{a}{b},multivariate beta function,multivariate-Euler-Beta,F|F:P,$\mathrm{B}_{m}$,http://dlmf.nist.gov/35.3#E3, +\mEulerGamma{m}@{a},multivariate gamma function,multivariate-Euler-Gamma,F|F:P,$\Gamma_{m}$,http://dlmf.nist.gov/35.3#i, +\mod,modulo,EMPTY,Q|F,$\mod$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r10, +\monicAffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,$\widehat{K}^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk, +\monicAlSalamCarlitzI{a}{n}@@{x}{q},monic Al-Salam-Carlitz I polynomial,q-Al-Salam-Carlitz-I-polynomial-monic-p,P|F:P:PS,${\widehat U}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI, +\monicAlSalamCarlitzII{a}{n}@@{x}{q},monic Al-Salam-Carlitz II polynomial,q-Al-Salam-Carlitz-II-polynomial-monic-p,P|F:P:PS,${\widehat V}^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII, +\monicAlSalamChihara{n}@@{x}{a}{b}{q},monic Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara, +\monicAskeyWilson{n}@@{x}{a}{b}{c}{d}{q},monic Askey-Wilson polynomial,Askey-Wilson-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson, +\monicBesselPoly{n}@@{x}{a},monic Bessel polynomial,Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly, +\monicCharlier{n}@@{x}{a},monic Charlier polynomial,Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicCharlier, +\monicChebyT{n}@@{x},monic Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-monic-p,P|F:P:PS,${\widehat T}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyT, +\monicChebyU{n}@@{x},monic Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-monic-p,P|F:P:PS,${\widehat U}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyU, +\monicHahn{n}@@{x}{\alpha}{\beta}{N},monic Hahn polynomial,Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHahn, +\monicHermite{n}@@{x},monic Hermite polynomial,Hermite-polynomial-monic,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHermite, +\monicJacobi{n}@@{x},monic Jacobi polynomial,Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicJacobi, +\monicKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic Krawtchouk polynomial,Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk, +\monicLaguerre{n}@@{x},monic Laguerre polynomial,generalized-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{\alpha}_n$,http://drmf.wmflabs.org/wiki/Definition:monicLaguerre, +\monicLegendrePoly{n}@@{x},monic Legendre polynomial,Legendre-spherical-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly, +\monicMeixner{n}@@{x}{\beta}{c},monic Meixner polynomial,Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixner, +\monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi},monic Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek, +\monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta},monic Racah polynomial,Racah-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicRacah, +\monicStieltjesWigert{n}@@{x}{q},monic Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert, +\monicUltra{n}@@{x},monic ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial-monic-p,P|F:P:PS,${\widehat C}^{\mu}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicUltra, +\monicWilson{n}@@{x^2}{a}{b}{c}{d},monic Wilson polynomial,Wilson-polynomial-monic-p,P|F:P:PS,${\widehat W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicWilson, +\monicbigqJacobi{n}@@{x}{a}{b}{c}{q},monic big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi, +\monicbigqLaguerre{n}@@{x}{a}{b}{q},monic big $q$-Laguerre polynomial,big-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre, +\monicbigqLegendre{n}@@{x}{c}{q},monic big $q$-Legendre polynomial,big-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre, +\monicctsHahn{n}@@{x}{a}{b}{c}{d},monic continuous Hahn polynomial,continuous-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsHahn, +\monicctsbigqHermite{n}@@{x}{a}{q},monic continuous big $q$-Hermite polynomial,continuous-big-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite, +\monicctsdualHahn{n}@@{x^2}{a}{b}{c}{d},monic continuous dual Hahn polynomial,continuous-dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn, +\monicctsdualqHahn{n}@@{x^2}{a}{b}{c},monic continuous dual $q$-Hahn polynomial,continuous-dual-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn, +\monicctsqHahn{n}@@{x}{a}{b}{c}{d}{q},monic continuous $q$-Hahn polynomial,continuous-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn, +\monicctsqHermite{n}@@{x}{q},monic continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite, +\monicctsqJacobi{n}@@{x}{q},monic continuous $q$-Jacobi polynomial,continuous-q-Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi, +\monicctsqLaguerre{n}@@{x}{q},monic continuous $q$-Laguerre polynomial,continuous-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre, +\monicctsqLegendre{n}@@{x}{q},monic continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre, +\monicctsqUltra{n}@@{x}{\beta}{q},monic continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra, +\monicdiscrqHermiteI{n}@@{x}{q},monic discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-I-monic-p,P|F:P:PS,${\widehat h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI, +\monicdiscrqHermiteII{n}@@{x}{q},monic discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-monic-p,P|F:P:PS,${\widehat \tilde{p}_{n}}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII, +\monicdualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},monic dual Hahn polynomial,dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualHahn, +\monicdualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},monic dual $q$-Hahn polynomial,dual-q-Hahn-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn, +\monicdualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},monic dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk, +\moniclittleqJacobi{n}@@{x}{a}{b}{q},monic little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi, +\moniclittleqLaguerre{n}@@{x}{a}{q},monic little $q$-Laguerre/Wall polynomial,little-q-Laguerre-Wall-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre, +\moniclittleqLegendre{n}@@{x}{q},monic little $q$-Legendre polynomial,little-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre, +\monicpseudoJacobi{n}@@{x}{\nu}{N},monic pseudo-Jacobi polynomial,pseudo-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi, +\monicqBesselPoly{n}@@{x}{a}{q},monic $q$-Bessel polynomial,q-Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqBessel, +\monicqCharlier{n}@@{q^{-x}}{a}{q},monic $q$-Charlier polynomial,q-Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqCharlier, +\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},monic $q$-Hahn polynomial,q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqHahn, +\monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic $q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk, +\monicqLaguerre{n}@@{x}{q},monic $q$-Laguerre polynomial,q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre, +\monicqMeixner{n}@@{q^{-x}}{b}{c}{q},monic $q$-Meixner polynomial,q-Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixner, +\monicqMeixnerPollaczek{n}@@{x}{a}{q},monic $q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek, +\monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q},monic $q$-Racah polynomial,q-Racah-polynomial-monic-R,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqRacah, +\monicqinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},monic $q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-monic-p,P|F:P,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara, +\monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K^{\mathrm{qtm}}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk, +"\multinomial{n_1+n_2+\dots+n_k}{n_1,...,n_k}",multinomial coefficient,EMPTY,I|F,$\left(A;B\right)$,http://dlmf.nist.gov/26.4.E2, +\ninej@@{j_{11}}{j_{12}}{j_{13}}{j_{21}}{j_{22}}{j_{23}}{j_{31}}{j_{32}}{j_{33}},$\ninej$ symbol,EMPTY,F|F:P:nP,$$,http://dlmf.nist.gov/34.6#E1, +\normAskeyWilsonptilde{n}@@{x}{a}{b}{c}{d}{q},normalized Askey-Wilson polynomial ${\tilde p}$,Askey-Wilson-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normAskeyWilsonptilde, +\normJacobiR{\alpha}{\beta}{n}@{x},normalized Jacobi polynomial,Jacobi-polynomial-R,P|F:P,"$R^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normJacobiR, +\normWilsonWtilde{n}@@{x^2}{a}{b}{c}{d},normalized Wilson polynomial ${\tilde W}$,Wilson-polynomial-normalized-W-tilde,P|F:P:PS,${\tilde W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde, +\normctsHahnptilde{n}@@{x}{a}{b}{c}{d},normalized continuous Hahn polynomial ${\tilde p}$,continuous-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde, +\normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}{d},normalized continuous dual Hahn polynomial ${\tilde S}$,continuous-dual-Hahn-polynomial-normalized-S-tilde,P|P:PS,${\tilde S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde, +\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q},normalized continuous dual $q$-Hahn polynomial ${\tilde p}$,continuous-dual-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde, +\normctsqHahnptilde{n}@@{x}{a}{b}{c}{d}{q},normalized continuous $q$-Hahn polynomial ${\tilde p}$,continuous-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde, +\normctsqJacobiPtilde{n}@@{x}{q},normalized continuous $q$-Jacobi polynomial ${\tilde P}$,continuous-q-Jacobi-polynomial-P-tilde,P|F:P:PS,"${\tilde P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normctsqJacobiPtilde, +\notin,not an element of,EMPTY,Q|F,$\notin$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r10, +\opminus,negative unity to an integer power,EMPTY,I|F,$(-1)$,http://dlmf.nist.gov/5.7.E7, +\pderiv{f}{x},partial derivative,EMPTY,O|F,$\frac{\partial f}{\partial x}$,http://dlmf.nist.gov/1.5#E3, +\pdiff{x},power of a partial differential,EMPTY,O|F,"$\partial^nx$",http://dlmf.nist.gov/1.5#E3, +\pgcd,greatest common divisor,EMPTY,I|F,"$\left(m,n\right)$",http://dlmf.nist.gov/27.1, +\ph@@{z},phase,phase,O|F:P:nP,$\mathrm{ph}$,http://dlmf.nist.gov/1.9#E7, +\pochhammer{a}{n},Pochhammer symbol,EMPTY,F|F,$(a)_n$,http://dlmf.nist.gov/5.2#iii, +\poly{p}{n}@{x},polynomial,EMPTY,SM|F:P,${p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:poly, +\polygamma{n}@{z},polygamma functions,polygamma,F|F:P,$\psi^{(n)}$,http://dlmf.nist.gov/5.15, +\power,power function,EMPTY,F|F,$x^y$,http://dlmf.nist.gov/36.12.E9, +\prod,product,EMPTY,SM|F,$\Pi$,http://drmf.wmflabs.org/wiki/Definition:prod, +\pseudoJacobi{n}@{x}{\nu}{N},pseudo Jacobi polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi, +\psfactorial{a}{\kappa},partitional shifted factorial,EMPTY,F|F,${\left[a\right]_{\kappa}}$,http://dlmf.nist.gov/35.4#E1, +\pvint,Cauchy principal value,EMPTY,O|F,$\pvint_a^b$,http://dlmf.nist.gov/1.4#E24, +\qAppelli@{a}{b}{b'}{c}{q}{x}{y},first $q$-Appell function,q-Appell-Phi-1,F|F:P,$\Phi^{(1)}$,http://dlmf.nist.gov/17.4.E5, +\qAppellii@{a}{b}{b'}{c}{c'}{q}{x}{y},second $q$-Appell function,q-Appell-Phi-2,F|F:P,$\Phi^{(2)}$,http://dlmf.nist.gov/17.4.E6, +\qAppelliii@{a}{a'}{b}{b'}{c}{q}{x}{y},third $q$-Appell function,q-Appell-Phi-3,F|F:P,$\Phi^{(3)}$,http://dlmf.nist.gov/17.4.E7, +\qAppelliv@{a}{b}{c}{c'}{q}{x}{y},fourth $q$-Appell function,q-Appell-Phi-4,F|F:P,$\Phi^{(4)}$,http://dlmf.nist.gov/17.4.E8, +\qBernoulli{n}@{x}{q},$q$-Bernoulli polynomial,q-Bernoulli-polynomial,P|F:P,$\beta_{q}$,http://dlmf.nist.gov/17.3#E7, +\qBesselPoly{n}@{x}{b}{q},$q$-Bessel polynomial,EMPTY,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:qBessel, +\qBeta{q}@{a}{b},$q$-beta function,q-Beta,F|F:P,$\mathrm{B}_{q}$,http://dlmf.nist.gov/5.18#E11, +\qBinomial{n}{m}{q},$q$-binomial coefficient (or Gaussian polynomial),EMPTY,F|F,$\left[n \atop m\right]_{q}$,http://dlmf.nist.gov/17.2#E27,http://dlmf.nist.gov/26.9#SS2.p1 +\qCharlier{n}@{x}{c}{q},$q$-Charlier polynomial,EMPTY,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:qCharlier, +\qCos{q}@@{x},$q$-analogue of the $\cos$ function: ${\rm Cos}_q$,q-Cos,F|F:nP:P,$\mathrm{Cos}_{q}$,http://dlmf.nist.gov/17.3#E6, +\qCosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\mathrm{Cos}_{q}$,q-Cos-KLS,P|F:nP:P,$\mathrm{Cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qCosKLS, +\qDigamma{q}@{z},$q$-digamma function,q-digamma,F|F:P,$\psi_{q}$,http://drmf.wmflabs.org/wiki/Definition:qDigamma, +\qEuler{m}{s}@{q},$q$-Euler number,q-Euler-number,F|F:P,"$A_{m,n}$",http://dlmf.nist.gov/17.3#E8, +\qExp{q}@@{x},$q$-analogue of the $\exp$ function: $E_q$,q-Exp,F|F:nP:P,$E_{q}$,http://dlmf.nist.gov/17.3#E2, +\qExpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{E}_{q}$,q-Exp-KLS,F|F:nP:P,$\mathrm{E}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qExpKLS, +\qFactorial{n}{q},$q$-factorial,q-factorial,F|F,$n!_q$,http://dlmf.nist.gov/5.18#E2, +\qGamma{q}@{z},$q$-gamma function,q-gamma,F|F:P,$\Gamma_{q}$,http://dlmf.nist.gov/5.18#E4, +\qHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:qHahn, +\qHahnQ{n}@{x}{\alpha}{\beta}{N}{q},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.27#E3, +\qHermiteH{n}@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.28#E16, +\qHermitehI{n}@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P,$h_{n}$,http://dlmf.nist.gov/18.27#E21, +\qHermitehII{n}@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-h-II,P|F:P,$\tilde{h}_{n}$,http://dlmf.nist.gov/18.27#E23, +"\qHyperrWs{r}{r+1}@@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}",very-well-poised basic hypergeometric (or $q$-hypergeometric) function,very-well-poised-q-hypergeometric-rWs,F|F:fo1:fo2:fo3,${{}_{r+1}W_{r}}$,http://drmf.wmflabs.org/wiki/Definition:qHyperrWs, +"\qHyperrphis{r}{s}@@@{a_1,...a_r}{b_1,...,b_s}{q}{z}",basic hypergeometric (or $q$-hypergeometric) function,q-hypergeometric-rphis,F|F:fo1:fo2:fo3,${{}_{r}\phi_{s}}$,http://dlmf.nist.gov/17.4#E1, +"\qHyperrpsis{r}{s}@@@{a_1,...,a_r}{b_1,...,b_s}{q}{z}",bilateral basic hypergeometric (or bilateral $q$-hypergeometric) function,q-hypergeometric-rpsis,F|F:fo1:fo2:fo3,${{}_{r}\psi_{s}}$,http://dlmf.nist.gov/17.4#E3, +\qJacobiP{n}@{x}{a}{b}{c}{q},"big $q$-Jacobi polynomial $P_n(x;a,b,c;q)$",q-Jacobi-polynomial-P,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.27#E5, +\qJacobiPP{\alpha}{\beta}{n}@{x}{c}{d}{q},"big $q$-Jacobi polynomial $P_n^{(\alpha,\beta)}(x;c,d;q)$",big-q-Jacobi-polynomial-P-type-2,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.27#E6, +\qJacobip{n}@{x}{a}{b}{q},little $q$-Jacobi polynomial,q-Jacobi-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.27#E13, +\qKrawtchouk{n}@@{q^{-x}}{p}{N}{q},$q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk, +\qLaguerre[\alpha]{n}@@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:nPnO:F:P:PS,$L_n^{(\alpha)}$,http://drmf.wmflabs.org/wiki/Definition:qLaguerre, +\qLaguerreL[\alpha]{n}@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.27#E15, +\qLegendre{n}@{x}{q},continuous $q$-Legendre polynomial,EMPTY,P|F:P,$\qLegendre{n}$,http://drmf.wmflabs.org/wiki/Definition:qLegendre, +\qMeixner{n}@{x}{b}{c}{q},$q$-Meixner polynomial,q-Meixner-polynomial-M,P|F:P,$M_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixner, +\qMeixnerPollaczek{n}@{x}{a}{q},$q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-M,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek, +"\qMultiPochhammer{a_1,\ldots,a_n}{q}{n}",$q$-multi-Pochhammer symbol,q-multi-Pochhammer,F|F,"$\(a_1,\ldots,a_k;q)_n$",http://dlmf.nist.gov/17.2.E5, +"\qMultinomial{a_1+\ldots+a_n}{a_1,\ldots,a_n}{q}",$q$-multinomial,q-multinomial,F|F,"$\left[a_1+\ldots+a_n \atop a_1,\ldots,a_n\right]_{q}$",http://dlmf.nist.gov/26.16.E1, +\qPochhammer{a}{q}{n},$q$-Pochhammer symbol,EMPTY,F|F,$(a;q)_n$,http://dlmf.nist.gov/5.18#i,http://dlmf.nist.gov/17.2#SS1.p1 +\qPolygamma{n}{q}@{z},$q$-polygamma function,q-polygamma,F|F:P,$\psi_{q}^{(n)}$,http://drmf.wmflabs.org/wiki/Definition:qPolygamma, +\qRacah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, +\qRacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, +\qSin{q}@@{x},$q$-analogue of the $\sin$ function: ${\rm Sin}_q$,q-Sin,F|F:nP:P,$\mathrm{Sin}_{q}$,http://dlmf.nist.gov/17.3#E4, +\qSinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\mathrm{Sin}_q$,q-Sin-KLS,F|F:nP:P,$\mathrm{Sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qSinKLS, +\qStirling{m}{s}@{q},$q$-Stirling number,q-Stirling-number,F|F:P,"$a_{m,s}$",http://dlmf.nist.gov/17.3#E9, +\qUltraspherical{n}@{x}{\beta}{q},continuous $q$-ultraspherical polynomial,q-ultraspherical-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, +\qcos{q}@@{x},$q$-analogue of the $\cos$ function: $\cos_q$,q-cos,F|F:nP:P,$\mathrm{cos}_{q}$,http://dlmf.nist.gov/17.3#E5, +\qcosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\cos_q$,q-cos-KLS,P|F:nP:P,$\mathrm{cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qcosKLS, +\qderiv[n]{q}@{z},$q$-derivative,q-derivative,O|FO:PO:FnO:PnO,$\mathcal{D}_q^n$,http://drmf.wmflabs.org/wiki/Definition:qderiv, +\qdiff{q}{x},$q$-differential,EMPTY,O|F,"${\mathrm d}^n_qx$",http://dlmf.nist.gov/17.2#SS5.p1, +\qexp{q}@@{x},$q$-analogue of the $\exp$ function: $e_q$,q-exp,F|F:nP:P,$e_{q}$,http://dlmf.nist.gov/17.3#E1, +\qexpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{e}_{q}$,q-exp-KLS,F|F:nP:P,$\mathrm{e}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qexpKLS, +\qinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},$q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/23.1, +\qinvHermiteh{n}@{x}{q},continuous $q$-inverse Hermite polynomial,continuous-q-inverse-Hermite-polynomial-h,P|F:P,$h_{n}$,http://dlmf.nist.gov/23.1, +\qsin{q}@@{x},$q$-analogue of the $\sin$ function: $\sin_q$,q-sin,F|F:nP:P,$\mathrm{sin}_{q}$,http://dlmf.nist.gov/17.3#E3, +\qsinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\sin_q$,q-sin-KLS,F|F:nP:P,$\mathrm{sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qsinKLS, +\qtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{qtm}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk, +\realpart{z},real part,EMPTY,O|F,"$\Re {z}$",http://dlmf.nist.gov/1.9#E2, +\terminant{p}@{z},terminant function,terminant-function,F|F:P,$F_{p}$,http://dlmf.nist.gov/2.11#E11, +\rescaledTerminant{p}@{z},rescaled terminant functions,rescaled-terminant-function,F|F:P,$G_{p}$,http://dlmf.nist.gov/9.7#SS5.p1, +\rselection,right bracketed generalization of $\pm$,EMPTY,SM|F,$\left.\begin{matrix}x\end{matrix}\right\$,http://dlmf.nist.gov/28.4.E22, +\sec@@{z},secant function,secant,F|F:P:nP,$\mathrm{sec}$,http://dlmf.nist.gov/4.14#E6, +\sech@@{z},hyperbolic secant function,hyperbolic-secant,F|F:P:nP,$\mathrm{sech}$,http://dlmf.nist.gov/4.28#E6, +\selection,generalization of $\pm$,EMPTY,SM|F,$\;\begin{matrix}x\end{matrix}\;$,http://dlmf.nist.gov/10.23.E7, +\setminus,set subtraction,EMPTY,Q|F,$\setminus$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r19, +\setmod,$S_1 \setmod S_2$: set of all elements of $S_1$ modulo elements of $S_2$,EMPTY,SN|F,$/$,http://dlmf.nist.gov/21.1#p2.t1.r17, +\sign@@{x},sign function,sign,F|F:P:nP,$\mathrm{sign}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r18, +\sim,asymptotic equality,EMPTY,Q|F,$\tilde$,http://dlmf.nist.gov/2.1#E1, +\sin@@{z},sine function,sin,F|F:P:nP,$\mathrm{sin}$,http://dlmf.nist.gov/4.14#E1, +\sinInt@{z},sine integral ${\rm si}$,shifted-sine-integral,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/6.2#E10, +\sinh@@{z},hyperbolic sine function,hyperbolic-sine,F|F:P:nP,$\mathrm{sinh}$,http://dlmf.nist.gov/4.28#E1, +\sinintg@{a}{z},generalized sine integral ${\rm si}$,generalized-sine-integral-si,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/8.21#E1, +\sixj@@{j_{1}}{j_{2}}{j_{3}}{l_{1}}{l_{2}}{l_{3}},$\sixj$ symbol,EMPTY,F|F:P:nP,$\left\{\begin{array}{ccc}j_1 & j_2 & j_3\\l_1 & l_2 & l_3\end{array}\right\}$,http://dlmf.nist.gov/23.1, +\subset,is contained in,EMPTY,Q|F,$\subset$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r2, +\subseteq,is in or is contained in,EMPTY,Q|F,$\subseteq$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r3, +\sum,sum,EMPTY,SM|F,$\Sigma$,http://drmf.wmflabs.org/wiki/Definition:sum, +\sup,least upper bound (supremum),EMPTY,Q|F,$\mathrm{sup}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r25, +\tan@@{z},tangent function,tangent,F|F:P:nP,$\mathrm{tan}$,http://dlmf.nist.gov/4.14#E4, +\tanh@@{z},hyperbolic tangent function,hyperbolic-tangent,F|F:P:nP,$\mathrm{tanh}$,http://dlmf.nist.gov/4.28#E4, +\threej@@{j_1}{j_2}{j_3}{m_1}{m_2}{m_3},$\threej$ symbol,EMPTY,F|F:P:nP,$\left(\begin{array}{ccc}j_1 & j_2 & j_3\\m_1 & m_2 & m_3\end{array}\right)$,http://dlmf.nist.gov/34.2#E4, +\trace,trace of matrix,trace,L|F,$\mathrm{etr}$,http://dlmf.nist.gov/23.1, +\transpose,transpose of a matrix,EMPTY,L|F,$A^{\mathrm{T}}$,http://dlmf.nist.gov/1.3.E5, +\weight{w}@{x},weight function,EMPTY,SM|F:P,${w}$,http://drmf.wmflabs.org/wiki/Definition:weight, +\wigner{j_1}{m_1}{j_2}{m_2}{j_3}{-m_3},Clebsch-Gordan coefficient,EMPTY,F|F,"$\left(j_{1}\;m_{1}\;j_{2}\;m_{2} | j_{1}\;j_{2}\; j_{3}\,\,-m_{3}\right)$",http://dlmf.nist.gov/34.1#p4, +\BesselPolyIIparam{n}@{x}{a}{b},Bessel polynomial with two parameters $y_n$,Bessel-polynomial-two-parameters-y,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam, +\BesselPolyTheta{n}@{x}{a}{b},Bessel polynomial with two parameters $\theta_n$,Bessel-polynomial-two-parameters-theta,P|F:P,$\theta_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta, +\FourierTrans@{f}{s},Fourier transform,Fourier-transform,O|F:P,$\mathscr{F}$,http://dlmf.nist.gov/1.14#E1, +\Continuous@{A},space of continuous functions on a set $A$,set-of-continuous-functions,S|F,$C(A)$,http://dlmf.nist.gov/1.4#ii, +\SpaceTestFunTempered@{A},space of test functions for tempered distributions,space-of-test-functions-for-tempered-distributions-T,S|F,${\mathcal T}(\Real)$,http://dlmf.nist.gov/1.16#v, diff --git a/Azeem/tex2Wiki.py b/Azeem/tex2Wiki.py new file mode 100644 index 0000000..0711a0f --- /dev/null +++ b/Azeem/tex2Wiki.py @@ -0,0 +1,1069 @@ +# Version 14: Templates +# Convert tex to wikiText +import csv # imported for using csv format +import sys # imported for getting args +import os # imported for copying file + + +def isnumber(char): + return char[0] in "0123456789" + + +def getString(line): # Gets all data within curly braces on a line + # -------Initialization------- + stringWrite = "" + getStr = False + pW = "" + # ---------------------------- + for c in line: + if c == "{" or c == "}": # if there is a curly brace in the line + getStr = not (getStr) # toggle the getStr flag + if c == "}": # no more info needed + break + elif getStr: # if within curly braces + if not (pW == c and c == "-"): # if there is no double dash (makes single dash) + if c != "$": # if not a $ sign + stringWrite += c # this character is part of the data + else: # replace $ with '' + stringWrite += "\'\'" # add double ' + pW = c # change last character for finding double dashes + return (stringWrite.rstrip('\n').lstrip()) # return the data without newlines and without leading spaces + + +def getG(line): # gets equation for symbols list + start = True + final = "" + for c in line: + if c == "$" and start: + final += "{\\displaystyle " + start = False + elif c == "$": + final += "}" + start = True + else: + final += c + return (final) + + +def getEq(line): # Gets all data within constraints,substitutions + # -------Initialization------- + per = 1 + stringWrite = "" + fEq = False + count = 0 + # ---------------------------- + for c in line: # read each character + if count >= 0 and per != 0: + per += 1 + if c != " " and c != "%": + per = 0 + if c == "{" and per == 0: + if count > 0: + stringWrite += c + count += 1 + elif c == "}" and per == 0: + count -= 1 + if count > 0: + stringWrite += c + elif c == "$" and per == 0: # either begin or end equation + fEq = not (fEq) # toggle fEq flag to know if begin or end equation + if fEq: # if begin + stringWrite += "{\\displaystyle " + else: # if end + stringWrite += "}" + elif c == "\n" and per == 0: # if newline + stringWrite = stringWrite.strip() # remove all leading and trailing whitespace + + # should above be rstrip?<-------------------------------------------------------------------CHECK THIS + + stringWrite += c # add the newline character + per += 1 # watch for % signs + elif count > 0 and per == 0: # not special character + stringWrite += c # write the character + + return (stringWrite.rstrip().lstrip()) + + +def getEqP(line, Flag): # Gets all data within proofs + if Flag: + a = 1 + else: + a = 0 + per = 1 + stringWrite = "" + fEq = False + count = 0 + length = 0 + for c in line: + if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): + length += 1 + if count >= 0 and per != 0: + per += 1 + if c != " " and c != "%": + # if c!="%": + per = 0 + if c == "{" and per == 0: + if count > 0: + stringWrite += c + count += 1 + elif c == "}" and per == 0: + count -= 1 + if count > 0: + stringWrite += c + elif c == "$" and per == 0: + fEq = not (fEq) + if fEq: + stringWrite += "{\\displaystyle " + else: + if length < 10: + stringWrite += "}" + else: + stringWrite += "}" + "
" + length = 0 + elif c == "\n" and per == 0: + stringWrite = stringWrite.strip() + stringWrite += c + per += 1 + elif count > 0 and per == 0: + stringWrite += c + + return (stringWrite.lstrip()) + + +def getSym(line): # Gets all symbols on a line for symbols list + symList = [] + if line == "": + return symList + symbol = "" + symFlag = False + argFlag = False + cC = 0 + for i in range(0, len(line)): + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + c = line[i] + if symFlag: + if c == "{" or c == "[": + cC += 1 + argFlag = True + if c != "}" and c != "]": + if argFlag or c.isalpha(): + symbol += c + else: + symFlag = False + argFlag = False + symList.append(symbol) + symList += (getSym(symbol)) + symbol = "" + else: + cC -= 1 + symbol += c + if i + 1 == len(line): + p = "" + else: + p = line[i + 1] + if cC == 0 and p != "{" and p != "[" and p != "@": + symFlag = False + # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: + symList.append(symbol) + symList += (getSym(symbol)) + argFlag = False + symbol = "" + + elif c == "\\": + symFlag = True + elif c == "&": + symList.append("&") + + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + symList.append(symbol) + symList += getSym(symbol) + return (symList) + + +def unmodLabel(label): + label = label.replace(".0", ".") + label = label.replace(":0", ":") + return (label) + + +def secLabel(label): + return (label.replace("\'\'", "")) + + +def modLabel(label): + # label.replace("Formula:KLS:","KLS;") + isNumer = False + newlabel = "" + num = "" + for i in range(0, len(label)): + if isNumer and not isnumber(label[i]): + if len(num) > 1: + newlabel += num + isNumer = False + num = "" + else: + newlabel += "0" + str(num) + num = "" + isNumer = False + if isnumber(label[i]): + isNumer = True + num += str(label[i]) + else: + isNumer = False + newlabel += label[i] + if len(num) > 1: + newlabel += num + elif len(num) == 1: + newlabel += "0" + num + return (newlabel) + + +# try: +for jsahlfkjsd in range(0, 1): + tex = open(sys.argv[1], 'r') + wiki = open(sys.argv[2], 'w') + main = open("OrthogonalPolynomials.mmd", "r") + mainText = main.read() + mainPrepend = "" + mainWrite = open("OrthogonalPolynomials.mmd.new", "w") + tester = open("testData.txt", 'w') + # glossary=open('Glossary', 'r') + glossary = open('new.Glossary.csv', 'rb') + gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') + # lLinks=open('BruceLabelLinks', 'r') + lGlos = glossary.readlines() + # lLink=lLinks.readlines() + math = False + constraint = False + substitution = False + symbols = [] + lines = tex.readlines() + refLines = [] + sections = [] + labels = [] + eqs = [] + refEqs = [] + parse = False + head = False + # chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] + refLabels = [] + '''for c in chapRef: + refLines=refLines+(c[1].readlines()) + c[1].close()''' + for i in range(0, len(refLines)): + line = refLines[i] + if "\\begin{equation}" in line: + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1 and l[len(label)+1]=="=": + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + refLabels.append(label) + refEqs.append("") + math = True + elif math: + refEqs[len(refEqs) - 1] += line + if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ + refLines[i + 1] or "\\drmfn" in refLines[i + 1]: + math = False + + for i in range(0, len(lines)): + line = lines[i] + if "\\begin{document}" in line: + # wiki.write("drmf_bof\n") + parse = True + elif "\\end{document}" in line and parse: + # wiki.write("\n") + mainPrepend += "\n" + mainText = mainPrepend + mainText + mainText = mainText.replace("drmf_bof\n", "") + mainText = mainText.replace("drmf_eof\n", "") + mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") + mainText = mainText.replace("{{#set:Section=0}}\n", "") + mainText = mainText[0:mainText.rfind("== Sections ")] + mainText = "drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n{{#set:Section=0}}\n" + mainText + "\ndrmf_eof\n" + mainWrite.write(mainText) + mainWrite.close() + main.close() + os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") + # wiki.write("\ndrmf_eof\n") + parse = False + elif "\\title" in line and parse: + stringWrite = "\'\'\'" + stringWrite += getString(line) + "\'\'\'\n" + labels.append("Orthogonal Polynomials") + sections.append(["Orthogonal Polynomials", 0]) + # wiki.write(stringWrite) + # mainPrepend+=stringWrite + chapter = getString(line) + mainPrepend += ( + "\n== Sections in " + chapter + " ==\n\n
\n") + elif "\\part" in line: + if getString(line) == "BOF": + parse = False + elif getString(line) == "EOF": + parse = True + elif parse: + mainPrepend += ("\n
\n= " + getString(line) + " =\n") + head = True + elif "\\section" in line: + mainPrepend += ("* [[" + secLabel(getString(line)) + "|" + getString(line) + "]]\n") + sections.append([getString(line)]) + + secCounter = 0 + eqCounter = 0 + for i in range(0, len(lines)): + line = lines[i] + # line.replace("\\begin{equation}","$") + # line.replace("\\end{equation},"$") + '''if "\\begin{document}" in line: + wiki.write("drmf_bof\n") + parse=True + elif "\\end{document}" in line and parse: + wiki.write("\ndrmf_eof\n") + parse=False + elif "\\title" in line and parse: + stringWrite="\'\'\'" + stringWrite+=getString(line)+"\'\'\'\n" + labels.append("Orthogonal Polynomials") + wiki.write(stringWrite\n) + elif "\\part" in line: + if getString(line)=="BOF": + parse=False + elif getString(line)=="EOF": + parse=True + elif parse: + wiki.write("\n
\n= "+getString(line)+" =\n") + head=True + ''' + if "\\section" in line: + parse = True + secCounter += 1 + wiki.write("drmf_bof\n") + wiki.write("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") + wiki.write("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") + # wiki.write("
\n") + # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") + # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + # wiki.write("{{head|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") + wiki.write("{{#set:Chapter=" + chapter + "}}\n") + wiki.write("{{#set:Section=" + str(secCounter) + "}}\n") + wiki.write("{{headSection}}\n") + head = True + wiki.write("== " + getString(line) + " ==\n") + elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[(i + 1) % len(lines)]) and parse: + # wiki.write("
\n") + # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") + # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + # wiki.write("{{foot|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") + wiki.write("{{footSection}}\n") + wiki.write("drmf_eof\n") + sections[secCounter].append(eqCounter) + eqCounter = 0 + + elif "\\subsection" in line and parse: + wiki.write("\n== " + getString(line) + " ==\n") + head = True + elif "\\paragraph" in line and parse: + wiki.write("\n=== " + getString(line) + " ===\n") + head = True + elif "\\subsubsection" in line and parse: + wiki.write("\n=== " + getString(line) + " ===\n") + head = True + + elif "\\begin{equation}" in line and parse: + # symLine="" + if head: + wiki.write("\n") + head = False + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + eqCounter += 1 + '''for l in lLink: + if label==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + labels.append(label) + eqs.append("") + # wiki.write("\n\n") + wiki.write("{\displaystyle \n") + math = True + elif "\\begin{equation}" in line and not parse: + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + labels.append("*" + label) # special marker + eqs.append("") + math = True + elif "\\end{equation}" in line: + + math = False + elif "\\constraint" in line and parse: + constraint = True + math = False + conLine = "" + elif "\\substitution" in line and parse: + substitution = True + math = False + subLine = "" + # wiki.write("
Substitution(s): "+getEq(line)+"

\n") + elif "\\proof" in line and parse: + math = False + elif "\\drmfn" in line and parse: + math = False + if "\\drmfname" in line and parse: + wiki.write("
This formula has the name: " + getString(line) + "

\n") + elif math and parse: + flagM = True + eqs[len(eqs) - 1] += line + + if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in lines[ + i + 3] and not "\\part" in lines[i + 3]: + u = i + flagM2 = False + while flagM: + u += 1 + if "\\begin{equation}" in lines[u] in lines[u]: + flagM = False + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ + u] or "\\end{document}" in lines[u]: + flagM = False + flagM2 = True + if not (flagM2): + + wiki.write(line.rstrip("\n")) + wiki.write("\n}
\n") + else: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\end{equation}" in lines[i + 1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + else: + wiki.write(line) + elif math and not parse: + eqs[len(eqs) - 1] += line + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\drmfn" in lines[i + 1]: + math = False + if substitution and parse: + subLine = subLine + line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + substitution = False + wiki.write("
Substitution(s): " + getEq(subLine) + "

\n") + + if constraint and parse: + conLine = conLine + line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + constraint = False + wiki.write("
Constraint(s): " + getEq(conLine) + "

\n") + + eqCounter = 0 + endNum = len(labels) - 1 + '''for n in range(1,len(labels)): + if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": + labels[n]=""+labels[n] + endNum=n + elif labels[n][0]=="*": + labels[n]=""+labels[n][1:] + else: + labels[n]=""+labels[n]''' + '''for n in range(0,len(refLabels)): + refLabels[n]=""+refLabels[n]''' + parse = False + constraint = False + substitution = False + note = False + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + comToWrite = "" + secCount = -1 + newSec = False + for i in range(0, len(lines)): + line = lines[i] + + if "\\section" in line: + secCount += 1 + newSec = True + eqS = 0 + + if "\\begin{equation}" in line: + symLine = line.strip("\n") + eqS += 1 + constraint = False + substitution = False + note = False + comToWrite = "" + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + parse = True + symbols = [] + eqCounter += 1 + wiki.write("drmf_bof\n") + label = labels[eqCounter] + wiki.write("\'\'\'" + secLabel(label) + "\'\'\'\n") + wiki.write("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") + if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS + wiki.write("
\n") + if newSec: + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + if eqS == sections[secCount][1]: + wiki.write( + "
[[" + secLabel(sections[(secCount + 1) % len(sections)][0]).replace( + " ", "_") + "|" + secLabel(sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") + else: + wiki.write( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + wiki.write("
\n\n") + elif eqCounter == endNum: + wiki.write("
\n") + if newSec: + newSec = False + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + wiki.write("
[[" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") + wiki.write("
\n\n") + + wiki.write("
{\displaystyle \n") + math = True + elif "\\end{equation}" in line: + wiki.write(comToWrite) + parse = False + math = False + if hProof: + wiki.write( + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") + + wiki.write("\n== Symbols List ==\n\n") + newSym = [] + # if "09.07:04" in label: + for x in symbols: + flagA = True + # if x not in newSym: + cN = 0 + cC = 0 + flag = True + ArgCx = 0 + for z in x: + if z.isalpha() and flag or z == "&": + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgCx += 1 + noA = x[:cN] + for y in newSym: + cN = 0 + cC = 0 + ArgC = 0 + flag = True + for z in y: + if z.isalpha() and flag or z == "&": + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgC += 1 + + if y[:cN] == noA: # and ArgC==ArgCx: + flagA = False + break + if flagA: + newSym.append(x) + newSym.reverse() + symF = False + ampFlag = False + finSym = [] + for s in range(len(newSym) - 1, -1, -1): + symbolPar = "\\" + newSym[s] + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + for z in symbolPar: + if z == "@": + parFlag = True + elif z.isalpha() or z == "&": + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + + if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: + if symbolPar.find("[") == -1: + symbol = symbolPar[0:symbolPar.find("{")] + elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): + symbol = symbolPar[0:symbolPar.find("[")] + else: + symbol = symbolPar[0:symbolPar.find("{")] + else: + symbol = symbolPar + numArg = parCx + numPar = ArgCx + gFlag = False + checkFlag = False + get = False + gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + preG = "" + if symbol == "\\&": + ampFlag = True + for S in gCSV: + G = S + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + ind = G[0].find("@") + if ind == -1: + ind = len(G[0]) - 1 + for z in G[0]: + if z == "@": + parFlag = True + elif z.isalpha(): + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ + len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + checkFlag = True + get = True + preG = S + + + elif checkFlag: + get = True + checkFlag = False + + if (get): + if get: + G = preG + get = False + checkFlag = False + if True: + if symbolPar.find("@") != -1: + Q = symbolPar[:symbolPar.find("@")] + else: + Q = symbolPar + listArgs = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": + argFlag = True + elif Q[o] == "}" or z == "]": + argFlag = False + listArgs.append(ap) + ap = "" + else: + ap += Q[o] + '''websiteU=g[g.find("http://"):].strip("\n") + k=0 + websites=[] + for r in range(0,len(websiteU)): + if websiteU[r]==",": + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + k=r + + + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + websiteF="" + for d in websites: + websiteF=websiteF+" ["+d+" "+d+"]"''' + # websiteF=G[4].strip("\n") + websiteF = "" + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + + # p1=Q + # if Q.find("@")!=-1: + # p1=Q[:Q.find("@")] + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + # if checkFlag: + new1 = "" + new2 = "" + pause = False + mathF = True + '''for k in range(0,len(p1)): + if p1[k]=="$": + if mathF: + new1+="{\\displaystyle " + else: + new1+="}" + mathF=not mathF + + elif p1[k]=="#" and p1[k+1].isdigit(): + pause=True + elif pause: + num=int(p1[k]) + #letter=chr(num+96) + letter=listArgs[num-1] + new1+=letter + pause=False + + else: + new1+=p1[k]''' + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF + else: + new2 += p2[k] + # p1=new1 + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + # gFlag=True + # if not symF: + # symF=True + # wiki.write("[") + # else: + # wiki.write("
\n") + # wiki.write("[") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + # wiki.write("] : ") + # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + # wiki.write(" : [") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write("] ")''' + + # preG=S + if not gFlag: + del newSym[s] + + gFlag = True + # finSym.reverse() + if ampFlag: + wiki.write("& : logical and") + gFlag = False + for y in finSym: + if y == "& : logical and": + pass + elif gFlag: + gFlag = False + wiki.write("[" + y) + else: + wiki.write("
\n[" + y) + + wiki.write("\n
\n") + + wiki.write("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? + r = unmodLabel(labels[eqCounter]) + q = r.find("KLS:") + 4 + p = r.find(":", q) + section = r[q:p] + equation = r[p + 1:] + if equation.find(":") != -1: + equation = equation[0:equation.find(":")] + + wiki.write( + "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? + wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + if eqCounter < endNum: + wiki.write("
\n") + if newSec: + newSec = False + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + if eqS == sections[secCount][1]: + wiki.write("
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", + "_") + "|" + + sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") + else: + wiki.write( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + wiki.write("
\n\ndrmf_eof\n") + else: # FOR EXTRA EQUATIONS + wiki.write("
\n") + wiki.write("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ + endNum - 1] + "]]
\n") + wiki.write("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ + 8:] + "|formula in " + + labels[0] + "]]
\n") + wiki.write("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ + 0 % endNum] + "]]
\n") + wiki.write("
\n\ndrmf_eof\n") + + + + elif "\\constraint" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hCon: + comToWrite = comToWrite + "\n== Constraint(s) ==\n\n" + hCon = False + constraint = True + math = False + conLine = "" + # wiki.write("
"+getEq(line)+"

\n") + elif "\\substitution" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hSub: + comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" + hSub = False + # wiki.write("
"+getEq(line)+"

\n") + substitution = True + math = False + subLine = "" + elif "\\drmfname" in line and parse: + math = False + comToWrite = "\n== Name ==\n\n
" + getString(line) + "

\n" + comToWrite + + elif "\\drmfnote" in line and parse: + symbols = symbols + getSym(line) + if hNote: + comToWrite = comToWrite + "\n== Note(s) ==\n\n" + hNote = False + note = True + math = False + noteLine = "" + + elif "\\proof" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hProof: + hProof = False + comToWrite = comToWrite + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" + proof = True + proofLine = "" + pause = False + pauseP = False + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd = refLabels.index("" + label) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n{\displaystyle \n" + refEqs[ + eInd] + "}" + z + "
\n") + else: + if z == "}": + proofLine += ( + "
\n{\displaystyle \n" + refEqs[eInd] + "}
") + else: + proofLine += ( + "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") + + + else: + if pause: + if line[ind] == "}": + pause = False + elif pauseP: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: + pass + else: + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + # symLine+=line.strip("\n") + wiki.write(comToWrite + getEqP(proofLine, False) + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" + + # wiki.write(line) + + elif proof: + symLine += line.strip("\n") + pauseP = False + # symbols=symbols+getSym(line) + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd = refLabels.index("" + label) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n{\displaystyle \n" + refEqs[ + eInd] + "}" + z + "
\n") + else: + proofLine += ( + "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") + + else: + if pause: + if line[ind] == "}": + pause = False + elif pauseP: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: + pass + + else: + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + # symLine+=line.strip("\n") + wiki.write(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" + + elif math: + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in lines[ + i + 1]: + wiki.write(line.rstrip("\n")) + symLine += line.strip("\n") + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write("\n}
\n") + else: + symLine += line.strip("\n") + wiki.write(line) + if note and parse: + noteLine = noteLine + line + symbols = symbols + getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + note = False + comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" + + if constraint and parse: + conLine = conLine + line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + constraint = False + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write(comToWrite + "
" + getEq(conLine) + "

\n") + comToWrite = "" + if substitution and parse: + subLine = subLine + line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: + substitution = False + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write(comToWrite + "
" + getEq(subLine) + "

\n") + comToWrite = "" +# except Exception as detail: #If exception occured +# print("Exception",detail) #print details of error +# except: #If anythin else occured... +# print ("ERROR",sys.exc_info()[0])#ERROR with basic info From 3de50241c8fc18dda3d01d46cbe64d3cde6fae64 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Mon, 29 Feb 2016 14:41:34 +0100 Subject: [PATCH 032/402] Add test for Azeems code --- .gitignore | 3 - .travis.yml | 4 +- Azeem/{ => src}/OrthogonalPolynomials.mmd | 0 Azeem/{ => src}/Zeta.py | 0 Azeem/{ => src}/new.Glossary.csv | 0 Azeem/src/tex2Wiki.py | 1069 +++++++++++++++++++++ Azeem/test/test_isnumber.py | 8 + Azeem/tex2Wiki.py | 1069 --------------------- 8 files changed, 1079 insertions(+), 1074 deletions(-) rename Azeem/{ => src}/OrthogonalPolynomials.mmd (100%) rename Azeem/{ => src}/Zeta.py (100%) rename Azeem/{ => src}/new.Glossary.csv (100%) create mode 100644 Azeem/src/tex2Wiki.py create mode 100644 Azeem/test/test_isnumber.py delete mode 100644 Azeem/tex2Wiki.py diff --git a/.gitignore b/.gitignore index a1bd6a8..e9b040a 100644 --- a/.gitignore +++ b/.gitignore @@ -117,7 +117,6 @@ crashlytics-build.properties ## Core latex/pdflatex auxiliary files: *.aux *.lof -*.log *.lot *.fls *.out @@ -191,8 +190,6 @@ acs-*.bib *-gnuplottex-* # hyperref -*.brf - # knitr *-concordance.tex *.tikz diff --git a/.travis.yml b/.travis.yml index b85e205..14a628f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,2 +1,2 @@ -language: python -script: nosetests -w AlexDanoff \ No newline at end of file +language: python +script: nosetests AlexDanoff Azeem \ No newline at end of file diff --git a/Azeem/OrthogonalPolynomials.mmd b/Azeem/src/OrthogonalPolynomials.mmd similarity index 100% rename from Azeem/OrthogonalPolynomials.mmd rename to Azeem/src/OrthogonalPolynomials.mmd diff --git a/Azeem/Zeta.py b/Azeem/src/Zeta.py similarity index 100% rename from Azeem/Zeta.py rename to Azeem/src/Zeta.py diff --git a/Azeem/new.Glossary.csv b/Azeem/src/new.Glossary.csv similarity index 100% rename from Azeem/new.Glossary.csv rename to Azeem/src/new.Glossary.csv diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py new file mode 100644 index 0000000..6f6a219 --- /dev/null +++ b/Azeem/src/tex2Wiki.py @@ -0,0 +1,1069 @@ +# Version 14: Templates +# Convert tex to wikiText +import csv # imported for using csv format +import sys # imported for getting args +import os # imported for copying file + + +def isnumber(char): + return char[0] in "0123456789" + + +def getString(line): # Gets all data within curly braces on a line + # -------Initialization------- + stringWrite = "" + getStr = False + pW = "" + # ---------------------------- + for c in line: + if c == "{" or c == "}": # if there is a curly brace in the line + getStr = not (getStr) # toggle the getStr flag + if c == "}": # no more info needed + break + elif getStr: # if within curly braces + if not (pW == c and c == "-"): # if there is no double dash (makes single dash) + if c != "$": # if not a $ sign + stringWrite += c # this character is part of the data + else: # replace $ with '' + stringWrite += "\'\'" # add double ' + pW = c # change last character for finding double dashes + return (stringWrite.rstrip('\n').lstrip()) # return the data without newlines and without leading spaces + + +def getG(line): # gets equation for symbols list + start = True + final = "" + for c in line: + if c == "$" and start: + final += "{\\displaystyle " + start = False + elif c == "$": + final += "}" + start = True + else: + final += c + return (final) + + +def getEq(line): # Gets all data within constraints,substitutions + # -------Initialization------- + per = 1 + stringWrite = "" + fEq = False + count = 0 + # ---------------------------- + for c in line: # read each character + if count >= 0 and per != 0: + per += 1 + if c != " " and c != "%": + per = 0 + if c == "{" and per == 0: + if count > 0: + stringWrite += c + count += 1 + elif c == "}" and per == 0: + count -= 1 + if count > 0: + stringWrite += c + elif c == "$" and per == 0: # either begin or end equation + fEq = not (fEq) # toggle fEq flag to know if begin or end equation + if fEq: # if begin + stringWrite += "{\\displaystyle " + else: # if end + stringWrite += "}" + elif c == "\n" and per == 0: # if newline + stringWrite = stringWrite.strip() # remove all leading and trailing whitespace + + # should above be rstrip?<-------------------------------------------------------------------CHECK THIS + + stringWrite += c # add the newline character + per += 1 # watch for % signs + elif count > 0 and per == 0: # not special character + stringWrite += c # write the character + + return (stringWrite.rstrip().lstrip()) + + +def getEqP(line, Flag): # Gets all data within proofs + if Flag: + a = 1 + else: + a = 0 + per = 1 + stringWrite = "" + fEq = False + count = 0 + length = 0 + for c in line: + if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): + length += 1 + if count >= 0 and per != 0: + per += 1 + if c != " " and c != "%": + # if c!="%": + per = 0 + if c == "{" and per == 0: + if count > 0: + stringWrite += c + count += 1 + elif c == "}" and per == 0: + count -= 1 + if count > 0: + stringWrite += c + elif c == "$" and per == 0: + fEq = not (fEq) + if fEq: + stringWrite += "{\\displaystyle " + else: + if length < 10: + stringWrite += "}" + else: + stringWrite += "}" + "
" + length = 0 + elif c == "\n" and per == 0: + stringWrite = stringWrite.strip() + stringWrite += c + per += 1 + elif count > 0 and per == 0: + stringWrite += c + + return (stringWrite.lstrip()) + + +def getSym(line): # Gets all symbols on a line for symbols list + symList = [] + if line == "": + return symList + symbol = "" + symFlag = False + argFlag = False + cC = 0 + for i in range(0, len(line)): + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + c = line[i] + if symFlag: + if c == "{" or c == "[": + cC += 1 + argFlag = True + if c != "}" and c != "]": + if argFlag or c.isalpha(): + symbol += c + else: + symFlag = False + argFlag = False + symList.append(symbol) + symList += (getSym(symbol)) + symbol = "" + else: + cC -= 1 + symbol += c + if i + 1 == len(line): + p = "" + else: + p = line[i + 1] + if cC == 0 and p != "{" and p != "[" and p != "@": + symFlag = False + # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: + symList.append(symbol) + symList += (getSym(symbol)) + argFlag = False + symbol = "" + + elif c == "\\": + symFlag = True + elif c == "&": + symList.append("&") + + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + symList.append(symbol) + symList += getSym(symbol) + return (symList) + + +def unmodLabel(label): + label = label.replace(".0", ".") + label = label.replace(":0", ":") + return (label) + + +def secLabel(label): + return (label.replace("\'\'", "")) + + +def modLabel(label): + # label.replace("Formula:KLS:","KLS;") + isNumer = False + newlabel = "" + num = "" + for i in range(0, len(label)): + if isNumer and not isnumber(label[i]): + if len(num) > 1: + newlabel += num + isNumer = False + num = "" + else: + newlabel += "0" + str(num) + num = "" + isNumer = False + if isnumber(label[i]): + isNumer = True + num += str(label[i]) + else: + isNumer = False + newlabel += label[i] + if len(num) > 1: + newlabel += num + elif len(num) == 1: + newlabel += "0" + num + return (newlabel) + +def main(): + # try: + for jsahlfkjsd in range(0, 1): + tex = open(sys.argv[1], 'r') + wiki = open(sys.argv[2], 'w') + main = open("OrthogonalPolynomials.mmd", "r") + mainText = main.read() + mainPrepend = "" + mainWrite = open("OrthogonalPolynomials.mmd.new", "w") + tester = open("testData.txt", 'w') + # glossary=open('Glossary', 'r') + glossary = open('new.Glossary.csv', 'rb') + gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') + # lLinks=open('BruceLabelLinks', 'r') + lGlos = glossary.readlines() + # lLink=lLinks.readlines() + math = False + constraint = False + substitution = False + symbols = [] + lines = tex.readlines() + refLines = [] + sections = [] + labels = [] + eqs = [] + refEqs = [] + parse = False + head = False + # chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] + refLabels = [] + '''for c in chapRef: + refLines=refLines+(c[1].readlines()) + c[1].close()''' + for i in range(0, len(refLines)): + line = refLines[i] + if "\\begin{equation}" in line: + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1 and l[len(label)+1]=="=": + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + refLabels.append(label) + refEqs.append("") + math = True + elif math: + refEqs[len(refEqs) - 1] += line + if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ + refLines[i + 1] or "\\drmfn" in refLines[i + 1]: + math = False + + for i in range(0, len(lines)): + line = lines[i] + if "\\begin{document}" in line: + # wiki.write("drmf_bof\n") + parse = True + elif "\\end{document}" in line and parse: + # wiki.write("\n") + mainPrepend += "\n" + mainText = mainPrepend + mainText + mainText = mainText.replace("drmf_bof\n", "") + mainText = mainText.replace("drmf_eof\n", "") + mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") + mainText = mainText.replace("{{#set:Section=0}}\n", "") + mainText = mainText[0:mainText.rfind("== Sections ")] + mainText = "drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n{{#set:Section=0}}\n" + mainText + "\ndrmf_eof\n" + mainWrite.write(mainText) + mainWrite.close() + main.close() + os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") + # wiki.write("\ndrmf_eof\n") + parse = False + elif "\\title" in line and parse: + stringWrite = "\'\'\'" + stringWrite += getString(line) + "\'\'\'\n" + labels.append("Orthogonal Polynomials") + sections.append(["Orthogonal Polynomials", 0]) + # wiki.write(stringWrite) + # mainPrepend+=stringWrite + chapter = getString(line) + mainPrepend += ( + "\n== Sections in " + chapter + " ==\n\n
\n") + elif "\\part" in line: + if getString(line) == "BOF": + parse = False + elif getString(line) == "EOF": + parse = True + elif parse: + mainPrepend += ("\n
\n= " + getString(line) + " =\n") + head = True + elif "\\section" in line: + mainPrepend += ("* [[" + secLabel(getString(line)) + "|" + getString(line) + "]]\n") + sections.append([getString(line)]) + + secCounter = 0 + eqCounter = 0 + for i in range(0, len(lines)): + line = lines[i] + # line.replace("\\begin{equation}","$") + # line.replace("\\end{equation},"$") + '''if "\\begin{document}" in line: + wiki.write("drmf_bof\n") + parse=True + elif "\\end{document}" in line and parse: + wiki.write("\ndrmf_eof\n") + parse=False + elif "\\title" in line and parse: + stringWrite="\'\'\'" + stringWrite+=getString(line)+"\'\'\'\n" + labels.append("Orthogonal Polynomials") + wiki.write(stringWrite\n) + elif "\\part" in line: + if getString(line)=="BOF": + parse=False + elif getString(line)=="EOF": + parse=True + elif parse: + wiki.write("\n
\n= "+getString(line)+" =\n") + head=True + ''' + if "\\section" in line: + parse = True + secCounter += 1 + wiki.write("drmf_bof\n") + wiki.write("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") + wiki.write("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") + # wiki.write("
\n") + # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") + # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + # wiki.write("{{head|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") + wiki.write("{{#set:Chapter=" + chapter + "}}\n") + wiki.write("{{#set:Section=" + str(secCounter) + "}}\n") + wiki.write("{{headSection}}\n") + head = True + wiki.write("== " + getString(line) + " ==\n") + elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[(i + 1) % len(lines)]) and parse: + # wiki.write("
\n") + # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") + # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + # wiki.write("{{foot|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") + wiki.write("{{footSection}}\n") + wiki.write("drmf_eof\n") + sections[secCounter].append(eqCounter) + eqCounter = 0 + + elif "\\subsection" in line and parse: + wiki.write("\n== " + getString(line) + " ==\n") + head = True + elif "\\paragraph" in line and parse: + wiki.write("\n=== " + getString(line) + " ===\n") + head = True + elif "\\subsubsection" in line and parse: + wiki.write("\n=== " + getString(line) + " ===\n") + head = True + + elif "\\begin{equation}" in line and parse: + # symLine="" + if head: + wiki.write("\n") + head = False + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + eqCounter += 1 + '''for l in lLink: + if label==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + labels.append(label) + eqs.append("") + # wiki.write("\n\n") + wiki.write("{\displaystyle \n") + math = True + elif "\\begin{equation}" in line and not parse: + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + labels.append("*" + label) # special marker + eqs.append("") + math = True + elif "\\end{equation}" in line: + + math = False + elif "\\constraint" in line and parse: + constraint = True + math = False + conLine = "" + elif "\\substitution" in line and parse: + substitution = True + math = False + subLine = "" + # wiki.write("
Substitution(s): "+getEq(line)+"

\n") + elif "\\proof" in line and parse: + math = False + elif "\\drmfn" in line and parse: + math = False + if "\\drmfname" in line and parse: + wiki.write("
This formula has the name: " + getString(line) + "

\n") + elif math and parse: + flagM = True + eqs[len(eqs) - 1] += line + + if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in lines[ + i + 3] and not "\\part" in lines[i + 3]: + u = i + flagM2 = False + while flagM: + u += 1 + if "\\begin{equation}" in lines[u] in lines[u]: + flagM = False + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ + u] or "\\end{document}" in lines[u]: + flagM = False + flagM2 = True + if not (flagM2): + + wiki.write(line.rstrip("\n")) + wiki.write("\n}
\n") + else: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\end{equation}" in lines[i + 1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + else: + wiki.write(line) + elif math and not parse: + eqs[len(eqs) - 1] += line + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\drmfn" in lines[i + 1]: + math = False + if substitution and parse: + subLine = subLine + line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + substitution = False + wiki.write("
Substitution(s): " + getEq(subLine) + "

\n") + + if constraint and parse: + conLine = conLine + line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + constraint = False + wiki.write("
Constraint(s): " + getEq(conLine) + "

\n") + + eqCounter = 0 + endNum = len(labels) - 1 + '''for n in range(1,len(labels)): + if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": + labels[n]=""+labels[n] + endNum=n + elif labels[n][0]=="*": + labels[n]=""+labels[n][1:] + else: + labels[n]=""+labels[n]''' + '''for n in range(0,len(refLabels)): + refLabels[n]=""+refLabels[n]''' + parse = False + constraint = False + substitution = False + note = False + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + comToWrite = "" + secCount = -1 + newSec = False + for i in range(0, len(lines)): + line = lines[i] + + if "\\section" in line: + secCount += 1 + newSec = True + eqS = 0 + + if "\\begin{equation}" in line: + symLine = line.strip("\n") + eqS += 1 + constraint = False + substitution = False + note = False + comToWrite = "" + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + parse = True + symbols = [] + eqCounter += 1 + wiki.write("drmf_bof\n") + label = labels[eqCounter] + wiki.write("\'\'\'" + secLabel(label) + "\'\'\'\n") + wiki.write("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") + if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS + wiki.write("
\n") + if newSec: + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + if eqS == sections[secCount][1]: + wiki.write( + "
[[" + secLabel(sections[(secCount + 1) % len(sections)][0]).replace( + " ", "_") + "|" + secLabel(sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") + else: + wiki.write( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + wiki.write("
\n\n") + elif eqCounter == endNum: + wiki.write("
\n") + if newSec: + newSec = False + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + wiki.write("
[[" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") + wiki.write("
\n\n") + + wiki.write("
{\displaystyle \n") + math = True + elif "\\end{equation}" in line: + wiki.write(comToWrite) + parse = False + math = False + if hProof: + wiki.write( + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") + + wiki.write("\n== Symbols List ==\n\n") + newSym = [] + # if "09.07:04" in label: + for x in symbols: + flagA = True + # if x not in newSym: + cN = 0 + cC = 0 + flag = True + ArgCx = 0 + for z in x: + if z.isalpha() and flag or z == "&": + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgCx += 1 + noA = x[:cN] + for y in newSym: + cN = 0 + cC = 0 + ArgC = 0 + flag = True + for z in y: + if z.isalpha() and flag or z == "&": + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgC += 1 + + if y[:cN] == noA: # and ArgC==ArgCx: + flagA = False + break + if flagA: + newSym.append(x) + newSym.reverse() + symF = False + ampFlag = False + finSym = [] + for s in range(len(newSym) - 1, -1, -1): + symbolPar = "\\" + newSym[s] + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + for z in symbolPar: + if z == "@": + parFlag = True + elif z.isalpha() or z == "&": + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + + if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: + if symbolPar.find("[") == -1: + symbol = symbolPar[0:symbolPar.find("{")] + elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): + symbol = symbolPar[0:symbolPar.find("[")] + else: + symbol = symbolPar[0:symbolPar.find("{")] + else: + symbol = symbolPar + numArg = parCx + numPar = ArgCx + gFlag = False + checkFlag = False + get = False + gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + preG = "" + if symbol == "\\&": + ampFlag = True + for S in gCSV: + G = S + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + ind = G[0].find("@") + if ind == -1: + ind = len(G[0]) - 1 + for z in G[0]: + if z == "@": + parFlag = True + elif z.isalpha(): + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ + len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + checkFlag = True + get = True + preG = S + + + elif checkFlag: + get = True + checkFlag = False + + if (get): + if get: + G = preG + get = False + checkFlag = False + if True: + if symbolPar.find("@") != -1: + Q = symbolPar[:symbolPar.find("@")] + else: + Q = symbolPar + listArgs = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": + argFlag = True + elif Q[o] == "}" or z == "]": + argFlag = False + listArgs.append(ap) + ap = "" + else: + ap += Q[o] + '''websiteU=g[g.find("http://"):].strip("\n") + k=0 + websites=[] + for r in range(0,len(websiteU)): + if websiteU[r]==",": + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + k=r + + + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + websiteF="" + for d in websites: + websiteF=websiteF+" ["+d+" "+d+"]"''' + # websiteF=G[4].strip("\n") + websiteF = "" + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + + # p1=Q + # if Q.find("@")!=-1: + # p1=Q[:Q.find("@")] + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + # if checkFlag: + new1 = "" + new2 = "" + pause = False + mathF = True + '''for k in range(0,len(p1)): + if p1[k]=="$": + if mathF: + new1+="{\\displaystyle " + else: + new1+="}" + mathF=not mathF + + elif p1[k]=="#" and p1[k+1].isdigit(): + pause=True + elif pause: + num=int(p1[k]) + #letter=chr(num+96) + letter=listArgs[num-1] + new1+=letter + pause=False + + else: + new1+=p1[k]''' + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF + else: + new2 += p2[k] + # p1=new1 + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + # gFlag=True + # if not symF: + # symF=True + # wiki.write("[") + # else: + # wiki.write("
\n") + # wiki.write("[") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + # wiki.write("] : ") + # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + # wiki.write(" : [") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write("] ")''' + + # preG=S + if not gFlag: + del newSym[s] + + gFlag = True + # finSym.reverse() + if ampFlag: + wiki.write("& : logical and") + gFlag = False + for y in finSym: + if y == "& : logical and": + pass + elif gFlag: + gFlag = False + wiki.write("[" + y) + else: + wiki.write("
\n[" + y) + + wiki.write("\n
\n") + + wiki.write("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? + r = unmodLabel(labels[eqCounter]) + q = r.find("KLS:") + 4 + p = r.find(":", q) + section = r[q:p] + equation = r[p + 1:] + if equation.find(":") != -1: + equation = equation[0:equation.find(":")] + + wiki.write( + "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? + wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + if eqCounter < endNum: + wiki.write("
\n") + if newSec: + newSec = False + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + if eqS == sections[secCount][1]: + wiki.write("
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", + "_") + "|" + + sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") + else: + wiki.write( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + wiki.write("
\n\ndrmf_eof\n") + else: # FOR EXTRA EQUATIONS + wiki.write("
\n") + wiki.write("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ + endNum - 1] + "]]
\n") + wiki.write("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ + 8:] + "|formula in " + + labels[0] + "]]
\n") + wiki.write("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ + 0 % endNum] + "]]
\n") + wiki.write("
\n\ndrmf_eof\n") + + + + elif "\\constraint" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hCon: + comToWrite = comToWrite + "\n== Constraint(s) ==\n\n" + hCon = False + constraint = True + math = False + conLine = "" + # wiki.write("
"+getEq(line)+"

\n") + elif "\\substitution" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hSub: + comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" + hSub = False + # wiki.write("
"+getEq(line)+"

\n") + substitution = True + math = False + subLine = "" + elif "\\drmfname" in line and parse: + math = False + comToWrite = "\n== Name ==\n\n
" + getString(line) + "

\n" + comToWrite + + elif "\\drmfnote" in line and parse: + symbols = symbols + getSym(line) + if hNote: + comToWrite = comToWrite + "\n== Note(s) ==\n\n" + hNote = False + note = True + math = False + noteLine = "" + + elif "\\proof" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hProof: + hProof = False + comToWrite = comToWrite + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" + proof = True + proofLine = "" + pause = False + pauseP = False + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd = refLabels.index("" + label) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n{\displaystyle \n" + refEqs[ + eInd] + "}" + z + "
\n") + else: + if z == "}": + proofLine += ( + "
\n{\displaystyle \n" + refEqs[eInd] + "}
") + else: + proofLine += ( + "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") + + + else: + if pause: + if line[ind] == "}": + pause = False + elif pauseP: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: + pass + else: + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + # symLine+=line.strip("\n") + wiki.write(comToWrite + getEqP(proofLine, False) + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" + + # wiki.write(line) + + elif proof: + symLine += line.strip("\n") + pauseP = False + # symbols=symbols+getSym(line) + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd = refLabels.index("" + label) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n{\displaystyle \n" + refEqs[ + eInd] + "}" + z + "
\n") + else: + proofLine += ( + "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") + + else: + if pause: + if line[ind] == "}": + pause = False + elif pauseP: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: + pass + + else: + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + # symLine+=line.strip("\n") + wiki.write(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" + + elif math: + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in lines[ + i + 1]: + wiki.write(line.rstrip("\n")) + symLine += line.strip("\n") + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write("\n}
\n") + else: + symLine += line.strip("\n") + wiki.write(line) + if note and parse: + noteLine = noteLine + line + symbols = symbols + getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + note = False + comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" + + if constraint and parse: + conLine = conLine + line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + constraint = False + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write(comToWrite + "
" + getEq(conLine) + "

\n") + comToWrite = "" + if substitution and parse: + subLine = subLine + line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: + substitution = False + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write(comToWrite + "
" + getEq(subLine) + "

\n") + comToWrite = "" + # except Exception as detail: #If exception occured + # print("Exception",detail) #print details of error + # except: #If anythin else occured... + # print ("ERROR",sys.exc_info()[0])#ERROR with basic info diff --git a/Azeem/test/test_isnumber.py b/Azeem/test/test_isnumber.py new file mode 100644 index 0000000..84ae1c7 --- /dev/null +++ b/Azeem/test/test_isnumber.py @@ -0,0 +1,8 @@ +from unittest import TestCase +from tex2Wiki import isnumber + + +class TestIsnumber(TestCase): + def test_isnumber(self): + self.assertEqual(True, isnumber("1")) + self.assertEqual(False, isnumber("a")) diff --git a/Azeem/tex2Wiki.py b/Azeem/tex2Wiki.py deleted file mode 100644 index 0711a0f..0000000 --- a/Azeem/tex2Wiki.py +++ /dev/null @@ -1,1069 +0,0 @@ -# Version 14: Templates -# Convert tex to wikiText -import csv # imported for using csv format -import sys # imported for getting args -import os # imported for copying file - - -def isnumber(char): - return char[0] in "0123456789" - - -def getString(line): # Gets all data within curly braces on a line - # -------Initialization------- - stringWrite = "" - getStr = False - pW = "" - # ---------------------------- - for c in line: - if c == "{" or c == "}": # if there is a curly brace in the line - getStr = not (getStr) # toggle the getStr flag - if c == "}": # no more info needed - break - elif getStr: # if within curly braces - if not (pW == c and c == "-"): # if there is no double dash (makes single dash) - if c != "$": # if not a $ sign - stringWrite += c # this character is part of the data - else: # replace $ with '' - stringWrite += "\'\'" # add double ' - pW = c # change last character for finding double dashes - return (stringWrite.rstrip('\n').lstrip()) # return the data without newlines and without leading spaces - - -def getG(line): # gets equation for symbols list - start = True - final = "" - for c in line: - if c == "$" and start: - final += "{\\displaystyle " - start = False - elif c == "$": - final += "}" - start = True - else: - final += c - return (final) - - -def getEq(line): # Gets all data within constraints,substitutions - # -------Initialization------- - per = 1 - stringWrite = "" - fEq = False - count = 0 - # ---------------------------- - for c in line: # read each character - if count >= 0 and per != 0: - per += 1 - if c != " " and c != "%": - per = 0 - if c == "{" and per == 0: - if count > 0: - stringWrite += c - count += 1 - elif c == "}" and per == 0: - count -= 1 - if count > 0: - stringWrite += c - elif c == "$" and per == 0: # either begin or end equation - fEq = not (fEq) # toggle fEq flag to know if begin or end equation - if fEq: # if begin - stringWrite += "{\\displaystyle " - else: # if end - stringWrite += "}" - elif c == "\n" and per == 0: # if newline - stringWrite = stringWrite.strip() # remove all leading and trailing whitespace - - # should above be rstrip?<-------------------------------------------------------------------CHECK THIS - - stringWrite += c # add the newline character - per += 1 # watch for % signs - elif count > 0 and per == 0: # not special character - stringWrite += c # write the character - - return (stringWrite.rstrip().lstrip()) - - -def getEqP(line, Flag): # Gets all data within proofs - if Flag: - a = 1 - else: - a = 0 - per = 1 - stringWrite = "" - fEq = False - count = 0 - length = 0 - for c in line: - if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): - length += 1 - if count >= 0 and per != 0: - per += 1 - if c != " " and c != "%": - # if c!="%": - per = 0 - if c == "{" and per == 0: - if count > 0: - stringWrite += c - count += 1 - elif c == "}" and per == 0: - count -= 1 - if count > 0: - stringWrite += c - elif c == "$" and per == 0: - fEq = not (fEq) - if fEq: - stringWrite += "{\\displaystyle " - else: - if length < 10: - stringWrite += "}" - else: - stringWrite += "}" + "
" - length = 0 - elif c == "\n" and per == 0: - stringWrite = stringWrite.strip() - stringWrite += c - per += 1 - elif count > 0 and per == 0: - stringWrite += c - - return (stringWrite.lstrip()) - - -def getSym(line): # Gets all symbols on a line for symbols list - symList = [] - if line == "": - return symList - symbol = "" - symFlag = False - argFlag = False - cC = 0 - for i in range(0, len(line)): - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - c = line[i] - if symFlag: - if c == "{" or c == "[": - cC += 1 - argFlag = True - if c != "}" and c != "]": - if argFlag or c.isalpha(): - symbol += c - else: - symFlag = False - argFlag = False - symList.append(symbol) - symList += (getSym(symbol)) - symbol = "" - else: - cC -= 1 - symbol += c - if i + 1 == len(line): - p = "" - else: - p = line[i + 1] - if cC == 0 and p != "{" and p != "[" and p != "@": - symFlag = False - # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: - symList.append(symbol) - symList += (getSym(symbol)) - argFlag = False - symbol = "" - - elif c == "\\": - symFlag = True - elif c == "&": - symList.append("&") - - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - symList.append(symbol) - symList += getSym(symbol) - return (symList) - - -def unmodLabel(label): - label = label.replace(".0", ".") - label = label.replace(":0", ":") - return (label) - - -def secLabel(label): - return (label.replace("\'\'", "")) - - -def modLabel(label): - # label.replace("Formula:KLS:","KLS;") - isNumer = False - newlabel = "" - num = "" - for i in range(0, len(label)): - if isNumer and not isnumber(label[i]): - if len(num) > 1: - newlabel += num - isNumer = False - num = "" - else: - newlabel += "0" + str(num) - num = "" - isNumer = False - if isnumber(label[i]): - isNumer = True - num += str(label[i]) - else: - isNumer = False - newlabel += label[i] - if len(num) > 1: - newlabel += num - elif len(num) == 1: - newlabel += "0" + num - return (newlabel) - - -# try: -for jsahlfkjsd in range(0, 1): - tex = open(sys.argv[1], 'r') - wiki = open(sys.argv[2], 'w') - main = open("OrthogonalPolynomials.mmd", "r") - mainText = main.read() - mainPrepend = "" - mainWrite = open("OrthogonalPolynomials.mmd.new", "w") - tester = open("testData.txt", 'w') - # glossary=open('Glossary', 'r') - glossary = open('new.Glossary.csv', 'rb') - gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') - # lLinks=open('BruceLabelLinks', 'r') - lGlos = glossary.readlines() - # lLink=lLinks.readlines() - math = False - constraint = False - substitution = False - symbols = [] - lines = tex.readlines() - refLines = [] - sections = [] - labels = [] - eqs = [] - refEqs = [] - parse = False - head = False - # chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] - refLabels = [] - '''for c in chapRef: - refLines=refLines+(c[1].readlines()) - c[1].close()''' - for i in range(0, len(refLines)): - line = refLines[i] - if "\\begin{equation}" in line: - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1 and l[len(label)+1]=="=": - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' - refLabels.append(label) - refEqs.append("") - math = True - elif math: - refEqs[len(refEqs) - 1] += line - if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ - refLines[i + 1] or "\\drmfn" in refLines[i + 1]: - math = False - - for i in range(0, len(lines)): - line = lines[i] - if "\\begin{document}" in line: - # wiki.write("drmf_bof\n") - parse = True - elif "\\end{document}" in line and parse: - # wiki.write("\n") - mainPrepend += "\n" - mainText = mainPrepend + mainText - mainText = mainText.replace("drmf_bof\n", "") - mainText = mainText.replace("drmf_eof\n", "") - mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") - mainText = mainText.replace("{{#set:Section=0}}\n", "") - mainText = mainText[0:mainText.rfind("== Sections ")] - mainText = "drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n{{#set:Section=0}}\n" + mainText + "\ndrmf_eof\n" - mainWrite.write(mainText) - mainWrite.close() - main.close() - os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") - # wiki.write("\ndrmf_eof\n") - parse = False - elif "\\title" in line and parse: - stringWrite = "\'\'\'" - stringWrite += getString(line) + "\'\'\'\n" - labels.append("Orthogonal Polynomials") - sections.append(["Orthogonal Polynomials", 0]) - # wiki.write(stringWrite) - # mainPrepend+=stringWrite - chapter = getString(line) - mainPrepend += ( - "\n== Sections in " + chapter + " ==\n\n
\n") - elif "\\part" in line: - if getString(line) == "BOF": - parse = False - elif getString(line) == "EOF": - parse = True - elif parse: - mainPrepend += ("\n
\n= " + getString(line) + " =\n") - head = True - elif "\\section" in line: - mainPrepend += ("* [[" + secLabel(getString(line)) + "|" + getString(line) + "]]\n") - sections.append([getString(line)]) - - secCounter = 0 - eqCounter = 0 - for i in range(0, len(lines)): - line = lines[i] - # line.replace("\\begin{equation}","$") - # line.replace("\\end{equation},"$") - '''if "\\begin{document}" in line: - wiki.write("drmf_bof\n") - parse=True - elif "\\end{document}" in line and parse: - wiki.write("\ndrmf_eof\n") - parse=False - elif "\\title" in line and parse: - stringWrite="\'\'\'" - stringWrite+=getString(line)+"\'\'\'\n" - labels.append("Orthogonal Polynomials") - wiki.write(stringWrite\n) - elif "\\part" in line: - if getString(line)=="BOF": - parse=False - elif getString(line)=="EOF": - parse=True - elif parse: - wiki.write("\n
\n= "+getString(line)+" =\n") - head=True - ''' - if "\\section" in line: - parse = True - secCounter += 1 - wiki.write("drmf_bof\n") - wiki.write("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") - wiki.write("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") - # wiki.write("
\n") - # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") - # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") - # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - # wiki.write("{{head|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") - wiki.write("{{#set:Chapter=" + chapter + "}}\n") - wiki.write("{{#set:Section=" + str(secCounter) + "}}\n") - wiki.write("{{headSection}}\n") - head = True - wiki.write("== " + getString(line) + " ==\n") - elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[(i + 1) % len(lines)]) and parse: - # wiki.write("
\n") - # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") - # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") - # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - # wiki.write("{{foot|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") - wiki.write("{{footSection}}\n") - wiki.write("drmf_eof\n") - sections[secCounter].append(eqCounter) - eqCounter = 0 - - elif "\\subsection" in line and parse: - wiki.write("\n== " + getString(line) + " ==\n") - head = True - elif "\\paragraph" in line and parse: - wiki.write("\n=== " + getString(line) + " ===\n") - head = True - elif "\\subsubsection" in line and parse: - wiki.write("\n=== " + getString(line) + " ===\n") - head = True - - elif "\\begin{equation}" in line and parse: - # symLine="" - if head: - wiki.write("\n") - head = False - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - eqCounter += 1 - '''for l in lLink: - if label==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - labels.append(label) - eqs.append("") - # wiki.write("\n\n") - wiki.write("{\displaystyle \n") - math = True - elif "\\begin{equation}" in line and not parse: - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' - labels.append("*" + label) # special marker - eqs.append("") - math = True - elif "\\end{equation}" in line: - - math = False - elif "\\constraint" in line and parse: - constraint = True - math = False - conLine = "" - elif "\\substitution" in line and parse: - substitution = True - math = False - subLine = "" - # wiki.write("
Substitution(s): "+getEq(line)+"

\n") - elif "\\proof" in line and parse: - math = False - elif "\\drmfn" in line and parse: - math = False - if "\\drmfname" in line and parse: - wiki.write("
This formula has the name: " + getString(line) + "

\n") - elif math and parse: - flagM = True - eqs[len(eqs) - 1] += line - - if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in lines[ - i + 3] and not "\\part" in lines[i + 3]: - u = i - flagM2 = False - while flagM: - u += 1 - if "\\begin{equation}" in lines[u] in lines[u]: - flagM = False - if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ - u] or "\\end{document}" in lines[u]: - flagM = False - flagM2 = True - if not (flagM2): - - wiki.write(line.rstrip("\n")) - wiki.write("\n}
\n") - else: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - elif "\\end{equation}" in lines[i + 1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - else: - wiki.write(line) - elif math and not parse: - eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\drmfn" in lines[i + 1]: - math = False - if substitution and parse: - subLine = subLine + line.replace("&", "&
") - if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: - substitution = False - wiki.write("
Substitution(s): " + getEq(subLine) + "

\n") - - if constraint and parse: - conLine = conLine + line.replace("&", "&
") - if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: - constraint = False - wiki.write("
Constraint(s): " + getEq(conLine) + "

\n") - - eqCounter = 0 - endNum = len(labels) - 1 - '''for n in range(1,len(labels)): - if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": - labels[n]=""+labels[n] - endNum=n - elif labels[n][0]=="*": - labels[n]=""+labels[n][1:] - else: - labels[n]=""+labels[n]''' - '''for n in range(0,len(refLabels)): - refLabels[n]=""+refLabels[n]''' - parse = False - constraint = False - substitution = False - note = False - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - comToWrite = "" - secCount = -1 - newSec = False - for i in range(0, len(lines)): - line = lines[i] - - if "\\section" in line: - secCount += 1 - newSec = True - eqS = 0 - - if "\\begin{equation}" in line: - symLine = line.strip("\n") - eqS += 1 - constraint = False - substitution = False - note = False - comToWrite = "" - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - parse = True - symbols = [] - eqCounter += 1 - wiki.write("drmf_bof\n") - label = labels[eqCounter] - wiki.write("\'\'\'" + secLabel(label) + "\'\'\'\n") - wiki.write("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") - if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS - wiki.write("
\n") - if newSec: - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") - else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") - if eqS == sections[secCount][1]: - wiki.write( - "
[[" + secLabel(sections[(secCount + 1) % len(sections)][0]).replace( - " ", "_") + "|" + secLabel(sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") - else: - wiki.write( - "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", - "_") + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - wiki.write("
\n\n") - elif eqCounter == endNum: - wiki.write("
\n") - if newSec: - newSec = False - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") - else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") - wiki.write("
[[" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") - wiki.write("
\n\n") - - wiki.write("
{\displaystyle \n") - math = True - elif "\\end{equation}" in line: - wiki.write(comToWrite) - parse = False - math = False - if hProof: - wiki.write( - "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - - wiki.write("\n== Symbols List ==\n\n") - newSym = [] - # if "09.07:04" in label: - for x in symbols: - flagA = True - # if x not in newSym: - cN = 0 - cC = 0 - flag = True - ArgCx = 0 - for z in x: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgCx += 1 - noA = x[:cN] - for y in newSym: - cN = 0 - cC = 0 - ArgC = 0 - flag = True - for z in y: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgC += 1 - - if y[:cN] == noA: # and ArgC==ArgCx: - flagA = False - break - if flagA: - newSym.append(x) - newSym.reverse() - symF = False - ampFlag = False - finSym = [] - for s in range(len(newSym) - 1, -1, -1): - symbolPar = "\\" + newSym[s] - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - for z in symbolPar: - if z == "@": - parFlag = True - elif z.isalpha() or z == "&": - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - - if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: - if symbolPar.find("[") == -1: - symbol = symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): - symbol = symbolPar[0:symbolPar.find("[")] - else: - symbol = symbolPar[0:symbolPar.find("{")] - else: - symbol = symbolPar - numArg = parCx - numPar = ArgCx - gFlag = False - checkFlag = False - get = False - gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') - preG = "" - if symbol == "\\&": - ampFlag = True - for S in gCSV: - G = S - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 - for z in G[0]: - if z == "@": - parFlag = True - elif z.isalpha(): - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): - checkFlag = True - get = True - preG = S - - - elif checkFlag: - get = True - checkFlag = False - - if (get): - if get: - G = preG - get = False - checkFlag = False - if True: - if symbolPar.find("@") != -1: - Q = symbolPar[:symbolPar.find("@")] - else: - Q = symbolPar - listArgs = [] - if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - argFlag = True - elif Q[o] == "}" or z == "]": - argFlag = False - listArgs.append(ap) - ap = "" - else: - ap += Q[o] - '''websiteU=g[g.find("http://"):].strip("\n") - k=0 - websites=[] - for r in range(0,len(websiteU)): - if websiteU[r]==",": - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - k=r - - - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - websiteF="" - for d in websites: - websiteF=websiteF+" ["+d+" "+d+"]"''' - # websiteF=G[4].strip("\n") - websiteF = "" - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - - # p1=Q - # if Q.find("@")!=-1: - # p1=Q[:Q.find("@")] - p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" - # if checkFlag: - new1 = "" - new2 = "" - pause = False - mathF = True - '''for k in range(0,len(p1)): - if p1[k]=="$": - if mathF: - new1+="{\\displaystyle " - else: - new1+="}" - mathF=not mathF - - elif p1[k]=="#" and p1[k+1].isdigit(): - pause=True - elif pause: - num=int(p1[k]) - #letter=chr(num+96) - letter=listArgs[num-1] - new1+=letter - pause=False - - else: - new1+=p1[k]''' - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += "{\\displaystyle " - else: - new2 += "}" - mathF = not mathF - else: - new2 += p2[k] - # p1=new1 - p2 = new2 - finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - # gFlag=True - # if not symF: - # symF=True - # wiki.write("[") - # else: - # wiki.write("
\n") - # wiki.write("[") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - # wiki.write("] : ") - # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - # wiki.write(" : [") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write("] ")''' - - # preG=S - if not gFlag: - del newSym[s] - - gFlag = True - # finSym.reverse() - if ampFlag: - wiki.write("& : logical and") - gFlag = False - for y in finSym: - if y == "& : logical and": - pass - elif gFlag: - gFlag = False - wiki.write("[" + y) - else: - wiki.write("
\n[" + y) - - wiki.write("\n
\n") - - wiki.write("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? - r = unmodLabel(labels[eqCounter]) - q = r.find("KLS:") + 4 - p = r.find(":", q) - section = r[q:p] - equation = r[p + 1:] - if equation.find(":") != -1: - equation = equation[0:equation.find(":")] - - wiki.write( - "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? - wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") - if eqCounter < endNum: - wiki.write("
\n") - if newSec: - newSec = False - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") - else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") - if eqS == sections[secCount][1]: - wiki.write("
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", - "_") + "|" + - sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") - else: - wiki.write( - "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", - "_") + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - wiki.write("
\n\ndrmf_eof\n") - else: # FOR EXTRA EQUATIONS - wiki.write("
\n") - wiki.write("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ - endNum - 1] + "]]
\n") - wiki.write("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ - 8:] + "|formula in " + - labels[0] + "]]
\n") - wiki.write("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ - 0 % endNum] + "]]
\n") - wiki.write("
\n\ndrmf_eof\n") - - - - elif "\\constraint" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hCon: - comToWrite = comToWrite + "\n== Constraint(s) ==\n\n" - hCon = False - constraint = True - math = False - conLine = "" - # wiki.write("
"+getEq(line)+"

\n") - elif "\\substitution" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hSub: - comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" - hSub = False - # wiki.write("
"+getEq(line)+"

\n") - substitution = True - math = False - subLine = "" - elif "\\drmfname" in line and parse: - math = False - comToWrite = "\n== Name ==\n\n
" + getString(line) + "

\n" + comToWrite - - elif "\\drmfnote" in line and parse: - symbols = symbols + getSym(line) - if hNote: - comToWrite = comToWrite + "\n== Note(s) ==\n\n" - hNote = False - note = True - math = False - noteLine = "" - - elif "\\proof" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hProof: - hProof = False - comToWrite = comToWrite + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" - proof = True - proofLine = "" - pause = False - pauseP = False - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - - eInd = refLabels.index("" + label) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n{\displaystyle \n" + refEqs[ - eInd] + "}" + z + "
\n") - else: - if z == "}": - proofLine += ( - "
\n{\displaystyle \n" + refEqs[eInd] + "}
") - else: - proofLine += ( - "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") - - - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - # symLine+=line.strip("\n") - wiki.write(comToWrite + getEqP(proofLine, False) + "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - # wiki.write(line) - - elif proof: - symLine += line.strip("\n") - pauseP = False - # symbols=symbols+getSym(line) - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - - eInd = refLabels.index("" + label) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n{\displaystyle \n" + refEqs[ - eInd] + "}" + z + "
\n") - else: - proofLine += ( - "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") - - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - # symLine+=line.strip("\n") - wiki.write(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - elif math: - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in lines[ - i + 1]: - wiki.write(line.rstrip("\n")) - symLine += line.strip("\n") - symbols = symbols + getSym(symLine) - symLine = "" - wiki.write("\n}
\n") - else: - symLine += line.strip("\n") - wiki.write(line) - if note and parse: - noteLine = noteLine + line - symbols = symbols + getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: - note = False - comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" - - if constraint and parse: - conLine = conLine + line.replace("&", "&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: - constraint = False - symbols = symbols + getSym(symLine) - symLine = "" - wiki.write(comToWrite + "
" + getEq(conLine) + "

\n") - comToWrite = "" - if substitution and parse: - subLine = subLine + line.replace("&", "&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: - substitution = False - symbols = symbols + getSym(symLine) - symLine = "" - wiki.write(comToWrite + "
" + getEq(subLine) + "

\n") - comToWrite = "" -# except Exception as detail: #If exception occured -# print("Exception",detail) #print details of error -# except: #If anythin else occured... -# print ("ERROR",sys.exc_info()[0])#ERROR with basic info From f93c1562110ac366348a68c95b5c27281d568358 Mon Sep 17 00:00:00 2001 From: HowardCohl Date: Mon, 29 Feb 2016 11:03:41 -0500 Subject: [PATCH 033/402] Update README.md --- AlexDanoff/README.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/AlexDanoff/README.md b/AlexDanoff/README.md index fc8395b..49dea05 100644 --- a/AlexDanoff/README.md +++ b/AlexDanoff/README.md @@ -1,9 +1,5 @@ # DRMF-Seeding-Project -This project is meant to convert different designated source formats to MediaWiki WikiText. - -## MediaWiki Wikitext Generation - ## Alex Danoff Seeding Source Code To achieve the desired result, one should execute the progams in the following order (using the output of the previous program as input for the next one): @@ -11,13 +7,3 @@ To achieve the desired result, one should execute the progams in the following o 1. remove_excess.py 2. replace_special.py 3. prepare_annotations.py - -## KLS Seeding Project - -## DLMF Seeding Project - -## eCF Seeding Project - -## BMP Seeding Project - - From a54331e451af5320c51ba6c7a825cc1a6e29cb8f Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Mon, 29 Feb 2016 22:18:38 +0100 Subject: [PATCH 034/402] Experiment with MediaWiki dump format output --- AlexDanoff/src/remove_excess.py | 2 +- Azeem/experiments/xml_output.py | 16 ++++++ Azeem/src/Zeta.py | 2 +- Azeem/src/tex2Wiki.py | 86 +++++++++++++++++++-------------- 4 files changed, 69 insertions(+), 37 deletions(-) create mode 100644 Azeem/experiments/xml_output.py diff --git a/AlexDanoff/src/remove_excess.py b/AlexDanoff/src/remove_excess.py index 9bc28e9..183712c 100644 --- a/AlexDanoff/src/remove_excess.py +++ b/AlexDanoff/src/remove_excess.py @@ -23,7 +23,7 @@ def main(): if len(sys.argv) != 3: fname = "../../data/ZE.tex" - dot_ind = fname.index(".") + 1 + dot_ind = fname.rfind(".") + 1 ofname = fname[:dot_ind] + "1." + fname[dot_ind:] else: diff --git a/Azeem/experiments/xml_output.py b/Azeem/experiments/xml_output.py new file mode 100644 index 0000000..97e8fe5 --- /dev/null +++ b/Azeem/experiments/xml_output.py @@ -0,0 +1,16 @@ +import xml.etree.ElementTree as ET + + +def main(): + ET.register_namespace('', 'http://www.mediawiki.org/xml/export-0.10/') + root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') + page = ET.SubElement(root, 'page') + title = ET.SubElement(page, 'title') + title.text = 'the Title & stuff' + ET.dump(root) + tree = ET.ElementTree(root) + tree.write("page.xhtml", xml_declaration=True, encoding='utf-8', method='xml') + + +if __name__ == "__main__": + main() diff --git a/Azeem/src/Zeta.py b/Azeem/src/Zeta.py index 198ee3d..830722c 100644 --- a/Azeem/src/Zeta.py +++ b/Azeem/src/Zeta.py @@ -3,5 +3,5 @@ inp="y" if inp!="n": print("Zeta and Related Functions") - os.system("python tex2Wiki.py ../data/ZE.3.tex ../data/ZE.4.mmd") + os.system("python tex2Wiki.py ../../data/ZE.3.tex ../../data/ZE.4.mmd") print("Done") diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 6f6a219..8eb35f7 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -4,6 +4,7 @@ import sys # imported for getting args import os # imported for copying file +global wiki def isnumber(char): return char[0] in "0123456789" @@ -217,6 +218,9 @@ def modLabel(label): newlabel += "0" + num return (newlabel) +def appendText(text): + wiki.write(text) + def main(): # try: for jsahlfkjsd in range(0, 1): @@ -301,7 +305,7 @@ def main(): # mainPrepend+=stringWrite chapter = getString(line) mainPrepend += ( - "\n== Sections in " + chapter + " ==\n\n
\n") + "\n== Sections in " + chapter + " ==\n\n
\n") elif "\\part" in line: if getString(line) == "BOF": parse = False @@ -356,7 +360,8 @@ def main(): wiki.write("{{headSection}}\n") head = True wiki.write("== " + getString(line) + " ==\n") - elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[(i + 1) % len(lines)]) and parse: + elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ + (i + 1) % len(lines)]) and parse: # wiki.write("
\n") # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") @@ -433,8 +438,9 @@ def main(): flagM = True eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in lines[ - i + 3] and not "\\part" in lines[i + 3]: + if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in \ + lines[ + i + 3] and not "\\part" in lines[i + 3]: u = i flagM2 = False while flagM: @@ -546,8 +552,10 @@ def main(): sections[secCount + 1][0]) + "]]
\n") if eqS == sections[secCount][1]: wiki.write( - "
[[" + secLabel(sections[(secCount + 1) % len(sections)][0]).replace( - " ", "_") + "|" + secLabel(sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") + "
[[" + secLabel( + sections[(secCount + 1) % len(sections)][0]).replace( + " ", "_") + "|" + secLabel( + sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") else: wiki.write( "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", @@ -796,21 +804,21 @@ def main(): break # gFlag=True # if not symF: - # symF=True - # wiki.write("[") - # else: - # wiki.write("
\n") - # wiki.write("[") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - # wiki.write("] : ") - # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - # wiki.write(" : [") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write("] ")''' + # symF=True + # wiki.write("[") + # else: + # wiki.write("
\n") + # wiki.write("[") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + # wiki.write("] : ") + # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + # wiki.write(" : [") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write("] ")''' # preG=S if not gFlag: @@ -860,9 +868,10 @@ def main(): labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( sections[secCount + 1][0]) + "]]
\n") if eqS == sections[secCount][1]: - wiki.write("
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", - "_") + "|" + - sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") + wiki.write( + "
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", + "_") + "|" + + sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") else: wiki.write( "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", @@ -891,7 +900,7 @@ def main(): constraint = True math = False conLine = "" - # wiki.write("
"+getEq(line)+"

\n") + # wiki.write("
"+getEq(line)+"

\n") elif "\\substitution" in line and parse: # symbols=symbols+getSym(line) symLine = line.strip("\n") @@ -947,10 +956,12 @@ def main(): else: if z == "}": proofLine += ( - "
\n{\displaystyle \n" + refEqs[eInd] + "}
") + "
\n{\displaystyle \n" + refEqs[ + eInd] + "}
") else: proofLine += ( - "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") + "
\n{\displaystyle \n" + refEqs[ + eInd] + "}
\n") else: @@ -971,7 +982,7 @@ def main(): symbols = symbols + getSym(symLine) symLine = "" - # wiki.write(line) + # wiki.write(line) elif proof: symLine += line.strip("\n") @@ -998,7 +1009,8 @@ def main(): eInd] + "}" + z + "
\n") else: proofLine += ( - "
\n{\displaystyle \n" + refEqs[eInd] + "}
\n") + "
\n{\displaystyle \n" + refEqs[ + eInd] + "}
\n") else: if pause: @@ -1021,8 +1033,9 @@ def main(): elif math: if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in lines[ - i + 1]: + i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in \ + lines[ + i + 1]: wiki.write(line.rstrip("\n")) symLine += line.strip("\n") symbols = symbols + getSym(symLine) @@ -1063,7 +1076,10 @@ def main(): symLine = "" wiki.write(comToWrite + "
" + getEq(subLine) + "

\n") comToWrite = "" - # except Exception as detail: #If exception occured - # print("Exception",detail) #print details of error - # except: #If anythin else occured... - # print ("ERROR",sys.exc_info()[0])#ERROR with basic info + # except Exception as detail: #If exception occured + # print("Exception",detail) #print details of error + # except: #If anythin else occured... + # print ("ERROR",sys.exc_info()[0])#ERROR with basic info + +if __name__ == "__main__": + main() \ No newline at end of file From de810a04b92cd04b00fa0a23708a975a20bab06a Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Mon, 29 Feb 2016 22:29:21 +0100 Subject: [PATCH 035/402] fix copy problem within windows --- Azeem/src/tex2Wiki.py | 241 +++++++++++++++++++++--------------------- 1 file changed, 119 insertions(+), 122 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 8eb35f7..da30863 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -3,9 +3,11 @@ import csv # imported for using csv format import sys # imported for getting args import os # imported for copying file +from shutil import copyfile global wiki + def isnumber(char): return char[0] in "0123456789" @@ -218,12 +220,16 @@ def modLabel(label): newlabel += "0" + num return (newlabel) -def appendText(text): + +def append_text(text): + global wiki wiki.write(text) + def main(): # try: for jsahlfkjsd in range(0, 1): + global wiki tex = open(sys.argv[1], 'r') wiki = open(sys.argv[2], 'w') main = open("OrthogonalPolynomials.mmd", "r") @@ -278,10 +284,10 @@ def main(): for i in range(0, len(lines)): line = lines[i] if "\\begin{document}" in line: - # wiki.write("drmf_bof\n") + # append_text("drmf_bof\n") parse = True elif "\\end{document}" in line and parse: - # wiki.write("
\n") + # append_text("
\n") mainPrepend += "
\n" mainText = mainPrepend + mainText mainText = mainText.replace("drmf_bof\n", "") @@ -293,15 +299,15 @@ def main(): mainWrite.write(mainText) mainWrite.close() main.close() - os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") - # wiki.write("\ndrmf_eof\n") + copyfile('OrthogonalPolynomials.mmd', 'OrthogonalPolynomials.mmd.new') + # append_text("\ndrmf_eof\n") parse = False elif "\\title" in line and parse: stringWrite = "\'\'\'" stringWrite += getString(line) + "\'\'\'\n" labels.append("Orthogonal Polynomials") sections.append(["Orthogonal Polynomials", 0]) - # wiki.write(stringWrite) + # append_text(stringWrite) # mainPrepend+=stringWrite chapter = getString(line) mainPrepend += ( @@ -325,67 +331,57 @@ def main(): # line.replace("\\begin{equation}","$") # line.replace("\\end{equation},"$") '''if "\\begin{document}" in line: - wiki.write("drmf_bof\n") + append_text("drmf_bof\n") parse=True elif "\\end{document}" in line and parse: - wiki.write("\ndrmf_eof\n") + append_text("\ndrmf_eof\n") parse=False elif "\\title" in line and parse: stringWrite="\'\'\'" stringWrite+=getString(line)+"\'\'\'\n" labels.append("Orthogonal Polynomials") - wiki.write(stringWrite\n) + append_text(stringWrite\n) elif "\\part" in line: if getString(line)=="BOF": parse=False elif getString(line)=="EOF": parse=True elif parse: - wiki.write("\n
\n= "+getString(line)+" =\n") + append_text("\n
\n= "+getString(line)+" =\n") head=True ''' if "\\section" in line: parse = True secCounter += 1 - wiki.write("drmf_bof\n") - wiki.write("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") - wiki.write("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") - # wiki.write("
\n") - # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") - # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") - # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - # wiki.write("{{head|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") - wiki.write("{{#set:Chapter=" + chapter + "}}\n") - wiki.write("{{#set:Section=" + str(secCounter) + "}}\n") - wiki.write("{{headSection}}\n") + append_text("drmf_bof\n") + append_text("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") + append_text("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") + append_text("{{#set:Chapter=" + chapter + "}}\n") + append_text("{{#set:Section=" + str(secCounter) + "}}\n") + append_text("{{headSection}}\n") head = True - wiki.write("== " + getString(line) + " ==\n") + append_text("== " + getString(line) + " ==\n") elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ (i + 1) % len(lines)]) and parse: - # wiki.write("
\n") - # wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") - # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") - # wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+"|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - # wiki.write("{{foot|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") - wiki.write("{{footSection}}\n") - wiki.write("drmf_eof\n") + append_text("{{footSection}}\n") + append_text("drmf_eof\n") sections[secCounter].append(eqCounter) eqCounter = 0 elif "\\subsection" in line and parse: - wiki.write("\n== " + getString(line) + " ==\n") + append_text("\n== " + getString(line) + " ==\n") head = True elif "\\paragraph" in line and parse: - wiki.write("\n=== " + getString(line) + " ===\n") + append_text("\n=== " + getString(line) + " ===\n") head = True elif "\\subsubsection" in line and parse: - wiki.write("\n=== " + getString(line) + " ===\n") + append_text("\n=== " + getString(line) + " ===\n") head = True elif "\\begin{equation}" in line and parse: # symLine="" if head: - wiki.write("\n") + append_text("\n") head = False sLabel = line.find("\\formula{") + 9 eLabel = line.find("}", sLabel) @@ -400,8 +396,8 @@ def main(): break''' labels.append(label) eqs.append("") - # wiki.write("\n\n") - wiki.write("{\displaystyle \n") + # append_text("\n\n") + append_text("{\displaystyle \n") math = True elif "\\begin{equation}" in line and not parse: sLabel = line.find("\\formula{") + 9 @@ -427,13 +423,13 @@ def main(): substitution = True math = False subLine = "" - # wiki.write("
Substitution(s): "+getEq(line)+"

\n") + # append_text("
Substitution(s): "+getEq(line)+"

\n") elif "\\proof" in line and parse: math = False elif "\\drmfn" in line and parse: math = False if "\\drmfname" in line and parse: - wiki.write("
This formula has the name: " + getString(line) + "

\n") + append_text("
This formula has the name: " + getString(line) + "

\n") elif math and parse: flagM = True eqs[len(eqs) - 1] += line @@ -453,19 +449,19 @@ def main(): flagM2 = True if not (flagM2): - wiki.write(line.rstrip("\n")) - wiki.write("\n}
\n") + append_text(line.rstrip("\n")) + append_text("\n}
\n") else: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") + append_text(line.rstrip("\n")) + append_text("\n}\n") elif "\\end{equation}" in lines[i + 1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") + append_text(line.rstrip("\n")) + append_text("\n}\n") elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") + append_text(line.rstrip("\n")) + append_text("\n}\n") else: - wiki.write(line) + append_text(line) elif math and not parse: eqs[len(eqs) - 1] += line if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ @@ -476,14 +472,14 @@ def main(): if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: substitution = False - wiki.write("
Substitution(s): " + getEq(subLine) + "

\n") + append_text("
Substitution(s): " + getEq(subLine) + "

\n") if constraint and parse: conLine = conLine + line.replace("&", "&
") if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: constraint = False - wiki.write("
Constraint(s): " + getEq(conLine) + "

\n") + append_text("
Constraint(s): " + getEq(conLine) + "

\n") eqCounter = 0 endNum = len(labels) - 1 @@ -532,67 +528,67 @@ def main(): parse = True symbols = [] eqCounter += 1 - wiki.write("drmf_bof\n") + append_text("drmf_bof\n") label = labels[eqCounter] - wiki.write("\'\'\'" + secLabel(label) + "\'\'\'\n") - wiki.write("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") + append_text("\'\'\'" + secLabel(label) + "\'\'\'\n") + append_text("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS - wiki.write("
\n") + append_text("
\n") if newSec: - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( + append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( sections[secCount][0]) + "]]
\n") else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( + append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( sections[secCount + 1][0]) + "]]
\n") if eqS == sections[secCount][1]: - wiki.write( + append_text( "
[[" + secLabel( sections[(secCount + 1) % len(sections)][0]).replace( " ", "_") + "|" + secLabel( sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") else: - wiki.write( + append_text( "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + "|" + secLabel( labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - wiki.write("
\n\n") + append_text("
\n\n") elif eqCounter == endNum: - wiki.write("
\n") + append_text("
\n") if newSec: newSec = False - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( + append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( sections[secCount][0]) + "]]
\n") else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( + append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( sections[secCount + 1][0]) + "]]
\n") - wiki.write("
[[" + secLabel( + append_text("
[[" + secLabel( labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") - wiki.write("
\n\n") + append_text("
\n\n") - wiki.write("
{\displaystyle \n") + append_text("
{\displaystyle \n") math = True elif "\\end{equation}" in line: - wiki.write(comToWrite) + append_text(comToWrite) parse = False math = False if hProof: - wiki.write( + append_text( "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - wiki.write("\n== Symbols List ==\n\n") + append_text("\n== Symbols List ==\n\n") newSym = [] # if "09.07:04" in label: for x in symbols: @@ -805,20 +801,20 @@ def main(): # gFlag=True # if not symF: # symF=True - # wiki.write("[") + # append_text("[") # else: - # wiki.write("
\n") - # wiki.write("[") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - # wiki.write("] : ") - # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - # wiki.write(" : [") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write("] ")''' + # append_text("
\n") + # append_text("[") + # append_text(g[g.find("http://"):].strip("\n")) + # append_text(" ") + # append_text(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + # append_text("] : ") + # append_text(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + # append_text(" : [") + # append_text(g[g.find("http://"):].strip("\n")) + # append_text(" ") + # append_text(g[g.find("http://"):].strip("\n")) + # append_text("] ")''' # preG=S if not gFlag: @@ -827,20 +823,20 @@ def main(): gFlag = True # finSym.reverse() if ampFlag: - wiki.write("& : logical and") + append_text("& : logical and") gFlag = False for y in finSym: if y == "& : logical and": pass elif gFlag: gFlag = False - wiki.write("[" + y) + append_text("[" + y) else: - wiki.write("
\n[" + y) + append_text("
\n[" + y) - wiki.write("\n
\n") + append_text("\n
\n") - wiki.write("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? + append_text("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? r = unmodLabel(labels[eqCounter]) q = r.find("KLS:") + 4 p = r.find(":", q) @@ -849,45 +845,45 @@ def main(): if equation.find(":") != -1: equation = equation[0:equation.find(":")] - wiki.write( + append_text( "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? - wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") if eqCounter < endNum: - wiki.write("
\n") + append_text("
\n") if newSec: newSec = False - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( + append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( sections[secCount][0]) + "]]
\n") else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( + append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( sections[secCount + 1][0]) + "]]
\n") if eqS == sections[secCount][1]: - wiki.write( + append_text( "
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", "_") + "|" + sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") else: - wiki.write( + append_text( "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + "|" + secLabel( labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - wiki.write("
\n\ndrmf_eof\n") + append_text("
\n\ndrmf_eof\n") else: # FOR EXTRA EQUATIONS - wiki.write("
\n") - wiki.write("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ + append_text("
\n") + append_text("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ endNum - 1] + "]]
\n") - wiki.write("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ - 8:] + "|formula in " + - labels[0] + "]]
\n") - wiki.write("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ + append_text("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ + 8:] + "|formula in " + + labels[0] + "]]
\n") + append_text("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ 0 % endNum] + "]]
\n") - wiki.write("
\n\ndrmf_eof\n") + append_text("
\n\ndrmf_eof\n") @@ -900,14 +896,14 @@ def main(): constraint = True math = False conLine = "" - # wiki.write("
"+getEq(line)+"

\n") + # append_text("
"+getEq(line)+"

\n") elif "\\substitution" in line and parse: # symbols=symbols+getSym(line) symLine = line.strip("\n") if hSub: comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" hSub = False - # wiki.write("
"+getEq(line)+"

\n") + # append_text("
"+getEq(line)+"

\n") substitution = True math = False subLine = "" @@ -977,12 +973,12 @@ def main(): if "\\end{equation}" in lines[i + 1]: proof = False # symLine+=line.strip("\n") - wiki.write(comToWrite + getEqP(proofLine, False) + "
\n
\n") + append_text(comToWrite + getEqP(proofLine, False) + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" - # wiki.write(line) + # append_text(line) elif proof: symLine += line.strip("\n") @@ -1026,7 +1022,7 @@ def main(): if "\\end{equation}" in lines[i + 1]: proof = False # symLine+=line.strip("\n") - wiki.write(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") + append_text(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" @@ -1036,14 +1032,14 @@ def main(): i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in \ lines[ i + 1]: - wiki.write(line.rstrip("\n")) + append_text(line.rstrip("\n")) symLine += line.strip("\n") symbols = symbols + getSym(symLine) symLine = "" - wiki.write("\n}
\n") + append_text("\n}
\n") else: symLine += line.strip("\n") - wiki.write(line) + append_text(line) if note and parse: noteLine = noteLine + line symbols = symbols + getSym(line) @@ -1062,7 +1058,7 @@ def main(): constraint = False symbols = symbols + getSym(symLine) symLine = "" - wiki.write(comToWrite + "
" + getEq(conLine) + "

\n") + append_text(comToWrite + "
" + getEq(conLine) + "

\n") comToWrite = "" if substitution and parse: subLine = subLine + line.replace("&", "&
") @@ -1074,12 +1070,13 @@ def main(): substitution = False symbols = symbols + getSym(symLine) symLine = "" - wiki.write(comToWrite + "
" + getEq(subLine) + "

\n") + append_text(comToWrite + "
" + getEq(subLine) + "

\n") comToWrite = "" # except Exception as detail: #If exception occured # print("Exception",detail) #print details of error # except: #If anythin else occured... # print ("ERROR",sys.exc_info()[0])#ERROR with basic info + if __name__ == "__main__": - main() \ No newline at end of file + main() From e3fffff2fce6a8fd8356fe639e5824e8a959b338 Mon Sep 17 00:00:00 2001 From: ILIKEFUUD Date: Mon, 29 Feb 2016 16:34:35 -0500 Subject: [PATCH 036/402] Deleted for redundancy All taken care of and redundant with the README anyway --- KLSadd_insertion/EdwardTasks.txt | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 KLSadd_insertion/EdwardTasks.txt diff --git a/KLSadd_insertion/EdwardTasks.txt b/KLSadd_insertion/EdwardTasks.txt deleted file mode 100644 index 0f5a079..0000000 --- a/KLSadd_insertion/EdwardTasks.txt +++ /dev/null @@ -1,26 +0,0 @@ -Fix your github; hopefully fixed now (fixed if this message shows up on github) - -https://help.github.com/categories/ssh/ -go there and try to work out your issue, rm your git directory and try git clone again. - - -If all else fails, try ssh -vT git@github.com - ^ -ABOVE IS DONE | - -This is what updateChapters.py currently does: - --rips paragraphs from KLSadd and puts them after the References paragraphs. -TESTED: WORKING - -This is what has been written but not implemented/tested: - --method to add relevant usepackages from KLSadd (cite, hyperref, xparse) --method to add relevant new commands from KLSadd --method to add "\large\bf KLSadd:" after every "paragraph{" inserted from KLSadd so everything looks neat - -This is what needs to be written: --method that inserts limit relations straight into the limit relations paragraph in relevant sections instead of just at the end of the section - -keep checking back here every time I've commited to see what's left, and you can change stuff around here just add a comment saying what you did and the date you did it - From 9928601d99435163f7329e6195cc318256a80dd8 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Mon, 29 Feb 2016 16:44:42 -0500 Subject: [PATCH 037/402] Updated for redundancy --- KLSadd_insertion/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index 5c3febb..71ad1ef 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -4,6 +4,7 @@ This project uses python and string manipulation to insert sections of the KLSad ``` python updateChapters.py ``` +The program must have a tempchap9.tex and a tempchap14.tex as well as the KLSadd.tex file in the same directory! The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. NOTE: Both the updateChapters.py and linetest.py lack a pdf version of their chapter 14 output. One must be generated to view results. @@ -15,5 +16,4 @@ NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file **THIS MEANS YOU SHOULD NOT RUN updateChapters.py OR linetest.py FROM YOUR GIT DIRECTORY. THE CHAPTER FILES ARE NOT PUBLIC DOMAIN, DO NOT COMMIT THEM! COPY THE FILES OVER INTO A SEPERATE DIRECTORY AND THEN COPY THEM BACK OVER WHEN YOU ARE READY TO COMMIT** -**Edward, check the EdwardTasks.txt file to check what's done and what needs work, if your github is still down just try to write out what the method should be like in a seperate file** From 75ee246d8373b2a054de83d3fe1fb087b8cdc406 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Mon, 29 Feb 2016 22:49:09 +0100 Subject: [PATCH 038/402] remove superfluous displaystyle in math tags --- Azeem/src/tex2Wiki.py | 59 +++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index da30863..7643694 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -2,7 +2,6 @@ # Convert tex to wikiText import csv # imported for using csv format import sys # imported for getting args -import os # imported for copying file from shutil import copyfile global wiki @@ -38,10 +37,10 @@ def getG(line): # gets equation for symbols list final = "" for c in line: if c == "$" and start: - final += "{\\displaystyle " + final += " " start = False elif c == "$": - final += "}" + final += "" start = True else: final += c @@ -71,9 +70,9 @@ def getEq(line): # Gets all data within constraints,substitutions elif c == "$" and per == 0: # either begin or end equation fEq = not (fEq) # toggle fEq flag to know if begin or end equation if fEq: # if begin - stringWrite += "{\\displaystyle " + stringWrite += "" else: # if end - stringWrite += "}" + stringWrite += "" elif c == "\n" and per == 0: # if newline stringWrite = stringWrite.strip() # remove all leading and trailing whitespace @@ -116,12 +115,12 @@ def getEqP(line, Flag): # Gets all data within proofs elif c == "$" and per == 0: fEq = not (fEq) if fEq: - stringWrite += "{\\displaystyle " + stringWrite += " " else: if length < 10: - stringWrite += "}" + stringWrite += "" else: - stringWrite += "}" + "
" + stringWrite += "" + "
" length = 0 elif c == "\n" and per == 0: stringWrite = stringWrite.strip() @@ -397,7 +396,7 @@ def main(): labels.append(label) eqs.append("") # append_text("\n\n") - append_text("{\displaystyle \n") + append_text("") math = True elif "\\begin{equation}" in line and not parse: sLabel = line.find("\\formula{") + 9 @@ -450,16 +449,16 @@ def main(): if not (flagM2): append_text(line.rstrip("\n")) - append_text("\n}
\n") + append_text("\n
\n") else: append_text(line.rstrip("\n")) - append_text("\n}\n") + append_text("\n\n") elif "\\end{equation}" in lines[i + 1]: append_text(line.rstrip("\n")) - append_text("\n}\n") + append_text("\n\n") elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: append_text(line.rstrip("\n")) - append_text("\n}\n") + append_text("\n\n") else: append_text(line) elif math and not parse: @@ -578,7 +577,7 @@ def main(): labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") append_text("
\n\n") - append_text("
{\displaystyle \n") + append_text("
\n") math = True elif "\\end{equation}" in line: append_text(comToWrite) @@ -759,7 +758,7 @@ def main(): # if Q.find("@")!=-1: # p1=Q[:Q.find("@")] p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" + p1 = "" + p1 + "" # if checkFlag: new1 = "" new2 = "" @@ -768,9 +767,9 @@ def main(): '''for k in range(0,len(p1)): if p1[k]=="$": if mathF: - new1+="{\\displaystyle " + new1+="" else: - new1+="}" + new1+="" mathF=not mathF elif p1[k]=="#" and p1[k+1].isdigit(): @@ -788,9 +787,9 @@ def main(): for k in range(0, len(p2)): if p2[k] == "$": if mathF: - new2 += "{\\displaystyle " + new2 += " " else: - new2 += "}" + new2 += "" mathF = not mathF else: new2 += p2[k] @@ -947,17 +946,17 @@ def main(): z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True - proofLine += ("
\n{\displaystyle \n" + refEqs[ - eInd] + "}" + z + "
\n") + proofLine += ("
\n" + refEqs[ + eInd] + "" + z + "
\n") else: if z == "}": proofLine += ( - "
\n{\displaystyle \n" + refEqs[ - eInd] + "}
") + "
\n" + refEqs[ + eInd] + "
") else: proofLine += ( - "
\n{\displaystyle \n" + refEqs[ - eInd] + "}
\n") + "
\n \n" + refEqs[ + eInd] + "
\n") else: @@ -1001,12 +1000,12 @@ def main(): z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True - proofLine += ("
\n{\displaystyle \n" + refEqs[ - eInd] + "}" + z + "
\n") + proofLine += ("
\n" + refEqs[ + eInd] + "" + z + "
\n") else: proofLine += ( - "
\n{\displaystyle \n" + refEqs[ - eInd] + "}
\n") + "
\n" + refEqs[ + eInd] + "
\n") else: if pause: @@ -1036,7 +1035,7 @@ def main(): symLine += line.strip("\n") symbols = symbols + getSym(symLine) symLine = "" - append_text("\n}
\n") + append_text("\n
\n") else: symLine += line.strip("\n") append_text(line) From a28006da2a4ea328722853d64dbbbd8f4accbdea Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Mon, 29 Feb 2016 17:19:28 -0500 Subject: [PATCH 039/402] Fixed some bugs with KLSadd command insertion --- KLSadd_insertion/updateChapters.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index a7cb7bc..a3d6ac1 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -35,7 +35,8 @@ chapNums = [] paras = [] mathPeople = [] -newCommands = [] #used to hold extra commands that need to be inserted from KLSadd to the chapter files +newCommands = [] #used to hold the indexes of the commands +comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf @@ -68,11 +69,13 @@ def getCommands(kls): temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] #pretty sure I had to do something here but I forgot, so pass? - pass + #duh, obviously I need to store the commands somewhere! + comms = kls[newCommands[0]:newCommands[1]] + return comms #2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 -def insertCommands(kls, chap): +def insertCommands(kls, chap, cms): #reads in the newCommands[] and puts them in chap beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. @@ -82,8 +85,11 @@ def insertCommands(kls, chap): index+=1 if("begin{document}" in word): beginIndex += index - #chap[beginIndex] += newCommands - chap.insert(beginIndex, newCommands) + tempIndex = 0 + #D'OH FOUND THE PROBLEM newCommands stores just the integer value of the indexes of the commands. we need to get the actual commands. easy fix, do next time + for i in cms: + chap.insert(beginIndex+tempIndex,i) + tempIndex +=1 return chap #method to find the indices of the reference paragraphs @@ -118,8 +124,8 @@ def fixChapter(chap, references, p, kls): #I actually don't remember why I had to do this but I think you need it ^^^^^^^^^^^^^^^^^^^ chap = prepareForPDF(chap) - getCommands(kls) - chap = insertCommands(kls,chap) + cms = getCommands(kls) + chap = insertCommands(kls,chap, cms) #probably won't work because I don't know how anything works return chap From ac051e773bae3e9da895a059b3e147099db5b5b6 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 1 Mar 2016 11:33:59 +0100 Subject: [PATCH 040/402] Output XML directly * DRMF used an intermediate mmd file. That file was converted to a wikidump using an IDL program. * This change writes to the wikidump format directly --- Azeem/src/Zeta.py | 7 ------ Azeem/src/tex2Wiki.py | 50 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 12 deletions(-) delete mode 100644 Azeem/src/Zeta.py diff --git a/Azeem/src/Zeta.py b/Azeem/src/Zeta.py deleted file mode 100644 index 830722c..0000000 --- a/Azeem/src/Zeta.py +++ /dev/null @@ -1,7 +0,0 @@ -import os -import time -inp="y" -if inp!="n": - print("Zeta and Related Functions") - os.system("python tex2Wiki.py ../../data/ZE.3.tex ../../data/ZE.4.mmd") -print("Done") diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 7643694..a0143b3 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -3,8 +3,12 @@ import csv # imported for using csv format import sys # imported for getting args from shutil import copyfile +import xml.etree.ElementTree as ET +import datetime -global wiki +wiki = '' +ET.register_namespace('', 'http://www.mediawiki.org/xml/export-0.10/') +root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') def isnumber(char): @@ -222,15 +226,49 @@ def modLabel(label): def append_text(text): global wiki - wiki.write(text) + wiki.text = wiki.text + text + + +def append_revision(param): + global wiki + page = ET.SubElement(root, 'page') + title = ET.SubElement(page, 'title') + title.text = param + revision = ET.SubElement(page, 'revision') + timestamp = ET.SubElement(revision, 'timestamp') + timestamp.text = str(datetime.datetime.utcnow()) + contributor = ET.SubElement(revision, 'contributor') + username = ET.SubElement(contributor, 'username') + username.text = 'SeedBot' + wiki = ET.SubElement(revision, 'text') + wiki.text = '' + + +def writeout(ofname): + tree = ET.ElementTree(root) + tree.write(ofname, xml_declaration=True, encoding='utf-8', method='xml') def main(): + if len(sys.argv) != 3: + + fname = "../../data/ZE.3.tex" + ofname = "../../data/ZE.4.xml" + + else: + + fname = sys.argv[1] + ofname = sys.argv[2] + + readin(fname) + writeout(ofname) + + +def readin(ofname): # try: for jsahlfkjsd in range(0, 1): global wiki - tex = open(sys.argv[1], 'r') - wiki = open(sys.argv[2], 'w') + tex = open(ofname, 'r') main = open("OrthogonalPolynomials.mmd", "r") mainText = main.read() mainPrepend = "" @@ -352,6 +390,7 @@ def main(): if "\\section" in line: parse = True secCounter += 1 + append_revision(secLabel(getString(line))) append_text("drmf_bof\n") append_text("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") append_text("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") @@ -527,8 +566,9 @@ def main(): parse = True symbols = [] eqCounter += 1 - append_text("drmf_bof\n") label = labels[eqCounter] + append_revision(secLabel(label)) + append_text("drmf_bof\n") append_text("\'\'\'" + secLabel(label) + "\'\'\'\n") append_text("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS From 82a4c7fbf2839f5044ea6a6bd1dd6566eaa0c02f Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 1 Mar 2016 12:11:47 +0100 Subject: [PATCH 041/402] tex2Wiki should parse DLMF and KLS sources * tex to wiki should find formula names in both \formula and \label commands * this change also uses the DLMF format, where the \label tag was used --- Azeem/src/tex2Wiki.py | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index a0143b3..cef5170 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -196,8 +196,13 @@ def secLabel(label): return (label.replace("\'\'", "")) -def modLabel(label): +def modLabel(line): # label.replace("Formula:KLS:","KLS;") + start_label = line.find("\\formula{") + 9 + if start_label == 8: + start_label = line.find("\\label{") + 7 + end_label = line.find("}", start_label) + label = line[start_label:end_label] isNumer = False newlabel = "" num = "" @@ -221,7 +226,7 @@ def modLabel(label): newlabel += num elif len(num) == 1: newlabel += "0" + num - return (newlabel) + return newlabel def append_text(text): @@ -300,15 +305,7 @@ def readin(ofname): for i in range(0, len(refLines)): line = refLines[i] if "\\begin{equation}" in line: - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1 and l[len(label)+1]=="=": - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' + label = modLabel(line) refLabels.append(label) refEqs.append("") math = True @@ -421,32 +418,15 @@ def readin(ofname): if head: append_text("\n") head = False - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) + label = modLabel(line) eqCounter += 1 - '''for l in lLink: - if label==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' labels.append(label) eqs.append("") # append_text("\n\n") append_text("") math = True elif "\\begin{equation}" in line and not parse: - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' + label = modLabel(line) labels.append("*" + label) # special marker eqs.append("") math = True From 58a80e683aa224cf80ce36cb15f30a6a7d95bfb4 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 1 Mar 2016 12:27:11 +0100 Subject: [PATCH 042/402] Enable coversall --- .travis.yml | 7 ++++++- README.md | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 14a628f..8344e4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,2 +1,7 @@ language: python -script: nosetests AlexDanoff Azeem \ No newline at end of file +install: + - pip install coveralls +script: + nosetests --with-coverage AlexDanoff Azeem +after_success: + coveralls \ No newline at end of file diff --git a/README.md b/README.md index bd507b5..ef118d7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # DRMF-Seeding-Project [![Build Status](https://travis-ci.org/DRMF/DRMF-Seeding-Project.svg?branch=master)](https://travis-ci.org/DRMF/DRMF-Seeding-Project) +[![Coverage Status](https://coveralls.io/repos/github/DRMF/DRMF-Seeding-Project/badge.svg?branch=master)](https://coveralls.io/github/DRMF/DRMF-Seeding-Project?branch=master) This project is meant to convert different designated source formats to semantic LaTeX for the DRMF project. One major aspect of this conversion is the inclusion, insertion, and replacement From 25065f6c26fc1c8e1df9d5e7fff08d85d854fd42 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 1 Mar 2016 12:59:12 +0100 Subject: [PATCH 043/402] Only coverage src files --- .coveragerc | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .coveragerc diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000..378def2 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,5 @@ +[report] +omit = + */python?.?/* + */test/* + */site-packages/nose/* From 81a480695dc4d65ce08ae5effbb192991df79b24 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 1 Mar 2016 17:43:07 +0100 Subject: [PATCH 044/402] Remove drmf BOF and EOF markers The markers are no longer required since the all data is inserted into the XML dump directly --- Azeem/src/tex2Wiki.py | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index cef5170..9003bfe 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -318,23 +318,20 @@ def readin(ofname): for i in range(0, len(lines)): line = lines[i] if "\\begin{document}" in line: - # append_text("drmf_bof\n") parse = True elif "\\end{document}" in line and parse: # append_text("
\n") mainPrepend += "
\n" mainText = mainPrepend + mainText - mainText = mainText.replace("drmf_bof\n", "") - mainText = mainText.replace("drmf_eof\n", "") mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") mainText = mainText.replace("{{#set:Section=0}}\n", "") mainText = mainText[0:mainText.rfind("== Sections ")] - mainText = "drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n{{#set:Section=0}}\n" + mainText + "\ndrmf_eof\n" + append_revision('Orthogonal Polynomials') + mainText = "{{#set:Section=0}}\n" + mainText mainWrite.write(mainText) mainWrite.close() main.close() copyfile('OrthogonalPolynomials.mmd', 'OrthogonalPolynomials.mmd.new') - # append_text("\ndrmf_eof\n") parse = False elif "\\title" in line and parse: stringWrite = "\'\'\'" @@ -362,34 +359,10 @@ def readin(ofname): eqCounter = 0 for i in range(0, len(lines)): line = lines[i] - # line.replace("\\begin{equation}","$") - # line.replace("\\end{equation},"$") - '''if "\\begin{document}" in line: - append_text("drmf_bof\n") - parse=True - elif "\\end{document}" in line and parse: - append_text("\ndrmf_eof\n") - parse=False - elif "\\title" in line and parse: - stringWrite="\'\'\'" - stringWrite+=getString(line)+"\'\'\'\n" - labels.append("Orthogonal Polynomials") - append_text(stringWrite\n) - elif "\\part" in line: - if getString(line)=="BOF": - parse=False - elif getString(line)=="EOF": - parse=True - elif parse: - append_text("\n
\n= "+getString(line)+" =\n") - head=True - ''' if "\\section" in line: parse = True secCounter += 1 append_revision(secLabel(getString(line))) - append_text("drmf_bof\n") - append_text("\'\'\'" + secLabel(getString(line)) + "\'\'\'\n") append_text("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") append_text("{{#set:Chapter=" + chapter + "}}\n") append_text("{{#set:Section=" + str(secCounter) + "}}\n") @@ -399,7 +372,6 @@ def readin(ofname): elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ (i + 1) % len(lines)]) and parse: append_text("{{footSection}}\n") - append_text("drmf_eof\n") sections[secCounter].append(eqCounter) eqCounter = 0 @@ -548,8 +520,6 @@ def readin(ofname): eqCounter += 1 label = labels[eqCounter] append_revision(secLabel(label)) - append_text("drmf_bof\n") - append_text("\'\'\'" + secLabel(label) + "\'\'\'\n") append_text("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS append_text("
\n") @@ -892,7 +862,7 @@ def readin(ofname): "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + "|" + secLabel( labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - append_text("
\n\ndrmf_eof\n") + append_text("
\n") else: # FOR EXTRA EQUATIONS append_text("
\n") append_text("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ @@ -902,7 +872,7 @@ def readin(ofname): labels[0] + "]]
\n") append_text("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ 0 % endNum] + "]]
\n") - append_text("
\n\ndrmf_eof\n") + append_text("
\n") From 6fffbf62d4aad99d35bef1e02b7f79fee7cd11e6 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Wed, 2 Mar 2016 16:15:51 +0100 Subject: [PATCH 045/402] Provide script to test the whole pipeline --- Pipeline/src/OrthogonalPolynomials.mmd | 81 +++ Pipeline/src/new.Glossary.csv | 691 +++++++++++++++++++++++++ Pipeline/src/pipeline.py | 31 ++ 3 files changed, 803 insertions(+) create mode 100644 Pipeline/src/OrthogonalPolynomials.mmd create mode 100644 Pipeline/src/new.Glossary.csv create mode 100644 Pipeline/src/pipeline.py diff --git a/Pipeline/src/OrthogonalPolynomials.mmd b/Pipeline/src/OrthogonalPolynomials.mmd new file mode 100644 index 0000000..c841fb5 --- /dev/null +++ b/Pipeline/src/OrthogonalPolynomials.mmd @@ -0,0 +1,81 @@ +drmf_bof +'''Orthogonal Polynomials''' +{{#set:Section=0}} +== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+== Sections in KLS Chapter 9 == + +
+* [[Wilson|Wilson]] +* [[Racah|Racah]] +* [[Continuous dual Hahn|Continuous dual Hahn]] +* [[Continuous Hahn|Continuous Hahn]] +* [[Hahn|Hahn]] +* [[Dual Hahn|Dual Hahn]] +* [[Meixner-Pollaczek|Meixner-Pollaczek]] +* [[Jacobi|Jacobi]] +* [[Jacobi: Special cases|Jacobi: Special cases]] +* [[Pseudo Jacobi|Pseudo Jacobi]] +* [[Meixner|Meixner]] +* [[Krawtchouk|Krawtchouk]] +* [[Laguerre|Laguerre]] +* [[Bessel|Bessel]] +* [[Charlier|Charlier]] +* [[Hermite|Hermite]] +
+== Sections in KLS Chapter 14 == + +
+* [[Askey-Wilson|Askey-Wilson]] +* [[q-Racah|''q''-Racah]] +* [[Continuous dual q-Hahn|Continuous dual ''q''-Hahn]] +* [[Continuous q-Hahn|Continuous ''q''-Hahn]] +* [[Big q-Jacobi|Big ''q''-Jacobi]] +* [[Big q-Jacobi: Special case|Big ''q''-Jacobi: Special case]] +* [[q-Hahn|''q''-Hahn]] +* [[Dual q-Hahn|Dual ''q''-Hahn]] +* [[Al-Salam-Chihara|Al-Salam-Chihara]] +* [[q-Meixner-Pollaczek|''q''-Meixner-Pollaczek]] +* [[Continuous q-Jacobi|Continuous ''q''-Jacobi]] +* [[Continuous q-Jacobi: Special cases|Continuous ''q''-Jacobi: Special cases]] +* [[Big q-Laguerre|Big ''q''-Laguerre]] +* [[Little q-Jacobi|Little ''q''-Jacobi]] +* [[Little q-Jacobi: Special case|Little ''q''-Jacobi: Special case]] +* [[q-Meixner|''q''-Meixner]] +* [[Quantum q-Krawtchouk|Quantum ''q''-Krawtchouk]] +* [[q-Krawtchouk|''q''-Krawtchouk]] +* [[Affine q-Krawtchouk|Affine ''q''-Krawtchouk]] +* [[Dual q-Krawtchouk|Dual ''q''-Krawtchouk]] +* [[Continuous big q-Hermite|Continuous big ''q''-Hermite]] +* [[Continuous q-Laguerre|Continuous ''q''-Laguerre]] +* [[Little q-Laguerre / Wall|Little ''q''-Laguerre / Wall]] +* [[q-Laguerre|''q''-Laguerre]] +* [[q-Bessel|''q''-Bessel]] +* [[q-Charlier|''q''-Charlier]] +* [[Al-Salam-Carlitz I|Al-Salam-Carlitz I]] +* [[Al-Salam-Carlitz II|Al-Salam-Carlitz II]] +* [[Continuous q-Hermite|Continuous ''q''-Hermite]] +* [[Stieltjes-Wigert|Stieltjes-Wigert]] +* [[Discrete q-Hermite I|Discrete ''q''-Hermite I]] +* [[Discrete q-Hermite II|Discrete ''q''-Hermite II]] +
+ +drmf_eof diff --git a/Pipeline/src/new.Glossary.csv b/Pipeline/src/new.Glossary.csv new file mode 100644 index 0000000..8875e6b --- /dev/null +++ b/Pipeline/src/new.Glossary.csv @@ -0,0 +1,691 @@ +\AGM@{a}{g},arithmetic-geometric mean,arithmetic-geometric-mean,F|F:P,$M$,http://dlmf.nist.gov/19.8#SS1.p1, +\AThetaFunction@{x},Jacobi theta function $\vartheta$,a-theta-function,F|F:P,$\vartheta$,http://dlmf.nist.gov/23.1, +\AbstractJacobi{p}{q},generic Jacobian elliptic function,generic-Jacobian-elliptic-function,F|F,$\mathrm{pq}$,http://dlmf.nist.gov/22.2#E10, +\Acos@@{z},general inverse cosine function,multivalued-inverse-cosine,F|F:P:nP,$\mathrm{Arccos}$,http://dlmf.nist.gov/4.23#E2, +\Acosh@@{z},general inverse hyperbolic cosine function,multivalued-hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{Arccosh}$,http://dlmf.nist.gov/4.37#E2, +\Acot@@{z},general inverse cotangent function,multivalued-inverse-cotangent,F|F:P:nP,$\mathrm{Arccot}$,http://dlmf.nist.gov/4.23#E6, +\Acoth@@{z},general inverse hyperbolic cotangent function,multivalued-hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{Arccoth}$,http://dlmf.nist.gov/4.37#E6, +\Acsc@@{z},general inverse cosecant function,multivalued-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsc}$,http://dlmf.nist.gov/4.23#E4, +\Acsch@@{z},general inverse hyperbolic cosecant function,multivalued-hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsch}$,http://dlmf.nist.gov/4.37#E4, +\AffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk, +\AiryAi@{z},Airy function ${\rm Ai}$,Airy-Ai,F|F:P,$\mathrm{Ai}$,http://dlmf.nist.gov/9.2#i, +\AiryBi@{z},Airy function ${\rm Bi}$,Airy-Bi,F|F:P,$\mathrm{Bi}$,http://dlmf.nist.gov/9.2#i, +\AiryModulusM@{z},Airy modulus function $M$,modulus-Airy-M,F|F:P,$M$,http://dlmf.nist.gov/9.8#i, +\AiryModulusN@{z},Airy modulus function $N$,modulus-Airy-N,F|F:P,$N$,http://dlmf.nist.gov/9.8#i, +\AiryPhasePhi@{z},Airy phase function $\phi$,phase-Airy-Phi,F|F:P,$\phi$,http://dlmf.nist.gov/9.8#i, +\AiryPhaseTheta@{z},Airy phase function $\theta$,phase-Airy-Theta,F|F:P,$\theta$,http://dlmf.nist.gov/9.8#i, +\AlSalamCarlitzI{a}{n}@{x}{q},Al-Salam-Carlitz I polynomial,EMPTY,P|F:P,$U^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI, +\AlSalamCarlitzII{a}{n}@{x}{q},Al-Salam-Carlitz II polynomial,EMPTY,P|F:P,$V^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII, +\AlSalamChihara{n}@@{x}{a}{b}{q},Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-Q,P|F:P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara, +\AlSalamChiharaQ{n}@{x}{a}{b}{q},Al-Salam-Chihara polynomial,AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.28#E7, +\AlSalamIsmail{n}@{x}{s}{q},Al-Salam Ismail polynomial,Al-Salam-Ismail-q-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail, +\AngerA{\nu}@{z},Anger-Weber function,associated-Anger-Weber-A,F|F:P,$\mathbf{A}_{\nu}$,http://dlmf.nist.gov/11.10#E4, +\AngerJ{\nu}@{z},Anger function,Anger-J,F|F:P,$\mathbf{J}_{\nu}$,http://dlmf.nist.gov/11.10#E1, +\AntiDer@{x}{f(x)},semantic antiderivative,antiderivative,SM|O,"$\int f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:AntiDer, +\AppellFi@{\alpha}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_1$,Appell-F-1,F|F:P,${F_{1}}$,http://dlmf.nist.gov/16.13#E1, +\AppellFii@{\alpha}{\beta}{\beta'}{\gamma}{\gamma'}{x}{y},Appell function $F_2$,Appell-F-2,F|F:P,${F_{2}}$,http://dlmf.nist.gov/16.13#E2, +\AppellFiii@{\alpha}{\alpha'}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_3$,Appell-F-3,F|F:P,${F_{3}}$,http://dlmf.nist.gov/16.13#E3, +\AppellFiv@{\alpha}{\beta}{\gamma}{\gamma'}{x}{y},Appell function $F_4$,Appell-F-4,F|F:P,${F_{4}}$,http://dlmf.nist.gov/16.13#E4, +\Asec@@{z},general inverse secant function,multivalued-inverse-secant,F|F:P:nP,$\mathrm{Arcsec}$,http://dlmf.nist.gov/4.23#E5, +\Asech@@{z},general inverse hyperbolic secant function,multivalued-hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{Arcsech}$,http://dlmf.nist.gov/4.37#E5, +\Asin@@{z},general inverse sine function,multivalued-inverse-sine,F|F:P:nP,$\mathrm{Arcsin}$,http://dlmf.nist.gov/4.23#E1, +\Asinh@@{z},general inverse hyperbolic sine function,multivalued-hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{Arcsinh}$,http://dlmf.nist.gov/4.37#E1, +\AskeyWilson{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, +\AskeyWilsonp{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, +\AssJacobiP{\alpha}{\beta}{n}@{x}{c},associated Jacobi polynomial,associated-Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\alpha)}_{n}$",http://dlmf.nist.gov/18.30#E4, +\AssLegendrePoly{n}@{x}{c},associated Legendre polynomial,Legendre-spherical-polynomial-P,F|F:P,$P_{n}$,http://dlmf.nist.gov/18.30#E6, +\Atan@@{z},general inverse tangent function,multivalued-inverse-tangent,F|F:P:nP,$\mathrm{Arctan}$,http://dlmf.nist.gov/4.23#E3, +\Atanh@@{z},general inverse hyperbolic tangent function,multivalued-hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{Arctanh}$,http://dlmf.nist.gov/4.37#E3, +\BarnesGamma@{z},Barnes $G$-function (or double gamma function),Barnes-Gamma,F|F:P,$G$,http://dlmf.nist.gov/5.17#E1, +\BellNumber@{n},Bell number,Bell-number,I|F:P,$B$,http://dlmf.nist.gov/26.7#i, +\BernoulliB{n}@{x},Bernoulli polynomial,Bernoulli-polynomial-B,P|F:P,$B_{n}$,http://dlmf.nist.gov/24.2#i, +\BesselA{\nu}@{\Matrix{T}},Bessel function of matrix argument of the first kind,Bessel-of-matrix-A,F|F:P,$A_{\nu}$,http://dlmf.nist.gov/35.5#i, +\BesselB{\nu}@{\Matrix{T}},Bessel function of matrix argument of the second kind,Bessel-of-matrix-B,F|F:P,$B_{\nu}$,http://dlmf.nist.gov/35.5#E3, +\BesselI{\nu}@{z},modified Bessel function of the first kind,modified-Bessel-first-kind,F|F:P,$I_{\nu}$,http://dlmf.nist.gov/23.1, +\BesselItilde{\nu}@{x},modified Bessel function of the first kind of imaginary order,modified-Bessel-first-kind-imaginary-order,F|F:P,$\widetilde{I}_{\nu}$,http://dlmf.nist.gov/23.1, +\BesselJ{\nu}@{z},Bessel function of the first kind,Bessel-J,F|F:P,$J_{\nu}$,http://dlmf.nist.gov/10.2#E2, +\BesselJtilde{\nu}@{x},Bessel function of the first kind of imaginary order,Bessel-J-imaginary-order,F|F:P,$\widetilde{J}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, +\BesselK{\nu}@{z},modified Bessel function of the second kind,modified-Bessel-second-kind,F|F:P,$K_{\nu}$,http://dlmf.nist.gov/23.1, +\BesselKtilde{\nu}@{x},modified Bessel function of the second kind of imaginary order,modified-Bessel-second-kind-imaginary-order,F|F:P,$\widetilde{K}_{\nu}$,http://dlmf.nist.gov/10.45#E2, +\BesselModulusM{\nu}@{x},modulus of Bessel functions,modulus-Bessel-M,F|F:P,$M_{\nu}$,http://dlmf.nist.gov/10.18#E1, +\BesselModulusN{\nu}@{x},modulus of derivatives of Bessel functions,modulus-Bessel-N,F|F:P,$N_{\nu}$,http://dlmf.nist.gov/10.18#E2, +\BesselPhasePhi{\nu}@{x},phase of derivatives of Bessel functions,phase-Bessel-Phi,F|F:P,$\phi_{\nu}$,http://dlmf.nist.gov/10.18#E3, +\BesselPhaseTheta{\nu}@{x},phase of Bessel functions,phase-Bessel-Theta,F|F:P,$\theta_{\nu}$,http://dlmf.nist.gov/10.18#E3, +\BesselPoly{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, +\BesselPolyy{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, +\BesselY{\nu}@{z},Bessel function of the second kind,Bessel-Y-Weber,F|F:P,$Y_{\nu}$,http://dlmf.nist.gov/10.2#E3, +\BesselYtilde{\nu}@{x},Bessel function of the second kind of imaginary order,Bessel-Y-Weber-imaginary-order,F|F:P,$\widetilde{Y}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, +\BickleyKi{\alpha}@{x},Bickley function,Bickley-Ki,F|F:P,$\mathrm{Ki}_{\alpha}$,http://dlmf.nist.gov/10.43#E11, +\BigO@{x},order not exceeding,Big-O,Q|F:P,$O$,http://dlmf.nist.gov/2.1#E3, +\CanonicInt{K}@{\Vector{x}},canonical integral $\Psi_K$,canonical-integral,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E4, +\CanonicIntU@{\Vector{x}},umbilic canonical integral $\Psi^{({\rm U})}$,canonical-umbilic-integral,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E5, +\CanonicIntE@{\Vector{x}},elliptic umbilic canonical integral $\Psi^{({\rm E})}$,elliptic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E6, +\CanonicIntH@{\Vector{x}},hyperbolic umbilic canonical integral $\Psi^{({\rm H})}$,hyperbolic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E8, +\CatalanNumber@{n},Catalan number,Catalan-number,I|F:P,$C$,http://dlmf.nist.gov/26.5#E1, +\CatalansConstant,Catalan's constant,Catalan's-constant,C|F,$G$,http://dlmf.nist.gov/25.11.E40, +\Charlier{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, +\CharlierC{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, +\ChebyC{n}@{x},dilated Chebyshev polynomial of the first kind,dilated-Chebyshev-polynomial-second-kind-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.1#E3, +\ChebyS{n}@{x},dilated Chebyshev polynomial of the second kind,dilated-Chebyshev-polynomial-first-kind-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.1#E3, +\ChebyT{n}@{x},Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-T,P|F:P,$T_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r8, +\ChebyTs{n}@{x},shifted Chebyshev polynomial of the first kind,shifted-Chebyshev-polynomial-first-kind-T-star,P|F:P,$T^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r20, +\ChebyU{n}@{x},Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-U,P|F:P,$U_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r11, +\ChebyUs{n}@{x},shifted Chebyshev polynomial of the second kind,shifted-Chebyshev-polynomial-second-kind-U-star,P|F:P,$U^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r23, +\ChebyV{n}@{x},Chebyshev polynomial of the third kind,Chebyshev-polynomial-third-kind-V,P|F:P,$V_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r14, +\ChebyW{n}@{x},Chebyshev polynomial of the fourth kind,Chebyshev-polynomial-fourth-kind-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r17, +\ChebyshevPsi@{x},Chebyshev $\ChebyshevPsi$-function,Chebyshev-psi,F|F:P,$\psi$,http://dlmf.nist.gov/25.16#E1, +\CiglerqChebyT{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $T$,Cigler-q-Chebyshev-polynomial-T,P|P:F,$T_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT, +\CiglerqChebyU{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $U$,Cigler-q-Chebyshev-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU, +\CompEllIntCE@@{k},Legendre's complementary complete elliptic integral of the second kind,complementary-complete-elliptic-integral-second-kind-E,F|F:P:nP,${E'}$,http://dlmf.nist.gov/19.2#E9, +\CompEllIntCK@@{k},Legendre's complementary complete elliptic integral of the first kind,complementary-complete-elliptic-integral-first-kind-K,F|F:P:nP,${K'}$,http://dlmf.nist.gov/19.2#E9, +\CompEllIntD@@{k},complete elliptic integral of Legendre's type,complete-elliptic-integral-D,F|F:P:nP,$D$,http://dlmf.nist.gov/19.2#E8, +\CompEllIntE@@{k},Legendre's complete elliptic integral of the second kind,complete-elliptic-integral-second-kind-E,F|F:P:nP,$E$,http://dlmf.nist.gov/19.2#E8, +\CompEllIntK@@{k},Legendre's complete elliptic integral of the first kind,complete-elliptic-integral-first-kind-K,F|F:P:nP,$K$,http://dlmf.nist.gov/19.2#E8, +\CompEllIntPi@{\alpha^2}{k},Legendre's complete elliptic integral of the third kind,complete-elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E8, +\Complex,set of complex numbers,EMPTY,SN|F,$\mathbb{C}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r1, +\ComplexZeroAiryBi{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi$,complex-zero-Airy-Bi,F|F,$\beta_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, +\ComplexZeroAiryBiPrime{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi'$,complex-zero-derivative-Airy-Bi,F|F,$\beta'_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, +\CompositionsC[m]@{n},number of compositions,number-of-compositions-C,I|F:F:P:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, +\CosInt@{z},cosine integral ${\rm Ci}$,cosine-integral,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/6.2#E11, +\CosIntCin@{z},cosine integral ${\rm Cin}$,cosine-integral-Cin,F|F:P,$\mathrm{Cin}$,http://dlmf.nist.gov/6.2#E12, +\CosIntg@{a}{z},generalized cosine integral ${\rm Ci}$,generalized-cosine-integral-Ci,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/8.21#E2, +\CoshInt@{z},hyperbolic cosine integral,hyperbolic-cosine-integral,F|F:P,$\mathrm{Chi}$,http://dlmf.nist.gov/6.2#E16, +\CoulombC{\ell}@{\eta},normalizing constant for Coulomb radial functions,Coulomb-C,F|F:P,$C_{\ell}$,http://dlmf.nist.gov/33.2#E5, +\CoulombF{\ell}@{\eta}{\rho},regular Coulomb radial function,regular-Coulomb-F,F|F:P,$F_{\ell}$,http://dlmf.nist.gov/33.2#E3, +\CoulombG{\ell}@{\eta}{\rho},irregular Coulomb radial function,irregular-Coulomb-G,F|F:P,$G_{\ell}$,http://dlmf.nist.gov/33.2#E11, +\CoulombH{\pm}{\ell}@{\eta}{\rho},irregular Coulomb radial functions,irregular-Coulomb-H,F|F:P,${H^{\pm}_{\ell}}$,http://dlmf.nist.gov/33.2#E7, +\CoulombM{\ell}@{\eta}{\rho},envelope of Coulomb functions,envelope-Coulomb-M,F|F:P,$M_{\ell}$,http://dlmf.nist.gov/33.3#E1, +\CoulombSigma{\ell}@{\eta},Coulomb phase shift,Coulomb-phase-shift,F|F:P,${\sigma_{\ell}}$,http://dlmf.nist.gov/33.2#E10, +\CoulombTheta{\ell}@{\eta}{\rho},phase of Coulomb functions,Coulomb-phase,F|F:P,${\theta_{\ell}}$,http://dlmf.nist.gov/33.2#E9, +\Coulombc@{\epsilon}{\ell}{r},irregular Coulomb function $c$,Coulomb-c,F|F:P,$c$,http://dlmf.nist.gov/23.1, +\Coulombf@{\epsilon}{\ell}{r},regular Coulomb function $f$,Coulomb-f,F|F:P,$f$,http://dlmf.nist.gov/33.14#E4, +\Coulombh@{\epsilon}{\ell}{r},irregular Coulomb function $h$,Coulomb-h,F|F:P,$h$,http://dlmf.nist.gov/33.14#E7, +\Coulombrhotp@{\eta}{\ell},outer turning point for Coulomb radial functions,Coulomb-radial-outer-turning-point,F|F:P,$\rho_{\mathrm{tp}}$,http://dlmf.nist.gov/33.2#E2, +\Coulombrtp@{\epsilon}{\ell},outer turning point for Coulomb functions,Coulomb-outer-turning-point,F|F:P,$r_{\mathrm{tp}}$,http://dlmf.nist.gov/33.14#E3, +\Coulombs@{\epsilon}{\ell}{r},regular Coulomb function $s$,Coulomb-s,F|F:P,$s$,http://dlmf.nist.gov/33.14#E9, +\CuspCat{K}@{t}{\Vector{x}},cuspoid catastrophe,cuspoid-catastrophe,F|F:P,$\Phi_{K}$,http://dlmf.nist.gov/36.2#E1, +\Cylinder{\nu}@{z},cylinder function,cylinder-function,F|F:P,$\mathscr{C}_{\nu}$,http://dlmf.nist.gov/10.2#P5.p1, +\DawsonsInt@{z},Dawson's integral,Dawsons-integral,F|F:P,$F$,http://dlmf.nist.gov/7.2#E5, +\DedekindModularEta@{\tau},Dedekind's eta function (or Dedekind modular function),Dedekind-modular-Eta,F|F:P,$\eta$,http://dlmf.nist.gov/23.15#E9,http://dlmf.nist.gov/27.14#E12 +\DiffCat{K}@{\Vector{x}}{k},diffraction catastrophe,diffraction-catastrophe,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E10, +\DiffCatE@{\Vector{x}}{k},elliptic umbilic canonical integral function,diffraction-elliptic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/23.1, +\DiffCatH@{\Vector{x}}{k},hyperbolic umbilic canonical integral function,diffraction-hyperbolic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E11, +\DiffCatU@{\Vector{x}}{k},umbilic canonical integral function,diffraction-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E11, +\Dilogarithm@{z},dilogarithm,dilogarithm,F|F:P,$\mathrm{Li}_2$,http://dlmf.nist.gov/25.12#E1, +\Diracdelta@{x-a},Dirac delta (or Dirac delta function),Dirac-delta,D|F:P,$\Diracdelta@{x-a}$,http://dlmf.nist.gov/1.17#SS1.p1, +\DirichletCharacter@@{n}{k},Dirichlet character,Dirichlet-character,I|F:P:nP,$\chi$,http://dlmf.nist.gov/27.8, +\DirichletL@{s}{\chi},Dirichlet $\DirichletL$-function,Dirichlet-L,F|F:P,$L$,http://dlmf.nist.gov/25.15#E1, +\DiscriminantDelta@{\tau},discriminant function,discriminant-delta,F|F:P,$\Delta$,http://dlmf.nist.gov/27.14#E16, +\DiskOP{\alpha}{m}{n}@{z},disk polynomial,disk-orthogonal-polynomial-R,P|F:P,"$R^{(\alpha)}_{m,n}$",http://dlmf.nist.gov/18.37#E1, +\Distribution{f}{g},distribution,EMPTY,D|F,"$\left\langle f,g\right\rangle$",http://dlmf.nist.gov/1.16#SS1.p5, +\DivisorFunctionD[k]@{n},divisor function,divisor-function-D,F|F:P,$d_{k}$,http://dlmf.nist.gov/27.2#E9, +\DivisorSigma{\alpha}@{n},sum of powers of divisors,divisor-sigma,I|F:P,$\sigma_{\alpha}$,http://dlmf.nist.gov/27.2#E10, +\EllIntD@{\phi}{k},incomplete elliptic integral of Legendre's type,elliptic-integral-third-kind-D,F|F:P,$D$,http://dlmf.nist.gov/19.2#E6, +\EllIntE@{\phi}{k},Legendre's incomplete elliptic integral of the second kind,elliptic-integral-second-kind-E,F|F:P,$E$,http://dlmf.nist.gov/19.2#E5, +\EllIntF@{\phi}{k},Legendre's incomplete elliptic integral of the first kind,elliptic-integral-first-kind-F,F|F:P,$F$,http://dlmf.nist.gov/19.2#E4, +\EllIntPi@{\phi}{\alpha^2}{k},Legendre's incomplete elliptic integral of the third kind,elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E7, +\EllIntR{-a}@{\Vector{b}}{\Vector{z}},Carlson integral $R_{-a}$,Carlson-integral-R,F|F:P,$R_{-a}$,http://dlmf.nist.gov/19.16#E9, +\EllIntRC@@{x}{y},Carlson's elliptic integral $R_C$,Carlson-integral-RC,F|F:P:nP,$R_C$,http://dlmf.nist.gov/19.2#E17, +\EllIntRD@@{x}{y}{z},Carlson's elliptic integral $R_D$,Carlson-integral-RD,F|F:P:nP,$R_D$,http://dlmf.nist.gov/19.16#E5, +\EllIntRF@@{x}{y}{z},Carlson's symmetric elliptic integral of first kind,Carlson-integral-RF,F|F:P:nP,$R_F$,http://dlmf.nist.gov/19.16#E1, +\EllIntRG@@{x}{y}{z},Carlson's symmetric elliptic integral of second kind,Carlson-integral-RG,F|F:P:nP,$R_G$,http://dlmf.nist.gov/19.16#E3, +\EllIntRJ@@{x}{y}{z}{p},Carlson's symmetric elliptic integral of third kind,Carlson-integral-RJ,F|F:P:nP,$R_J$,http://dlmf.nist.gov/19.16#E2, +\EllIntcel@{k_c}{p}{a}{b},Bulirsch's complete elliptic integral,Bulirsch-integral-cel,F|F:P,$\mathrm{cel}$,http://dlmf.nist.gov/19.2#E11, +\EllIntelone@{x}{k_c},Bulirsch's incomplete elliptic integral of the first kind,Bulirsch-integral-el-1,F|F:P,$\mathrm{el1}$,http://dlmf.nist.gov/19.2#E15, +\EllIntelthree@{x}{k_c}{p},Bulirsch's incomplete elliptic integral of the third kind,Bulirsch-integral-el-3,F|F:P,$\mathrm{el3}$,http://dlmf.nist.gov/19.2#E16, +\EllInteltwo@{x}{k_c}{a}{b},Bulirsch's incomplete elliptic integral of the second kind,Bulirsch-integral-el-2,F|F:P,$\mathrm{el2}$,http://dlmf.nist.gov/19.2#E12, +\EulerBeta@{a}{b},beta function,Euler-Beta,F|F:P,$\mathrm{B}$,http://dlmf.nist.gov/5.12#E1, +\EulerConstant,Euler's (Euler-Mascheroni) constant,EMPTY,C|F,$\gamma$,http://dlmf.nist.gov/5.2#E3, +\EulerE{n}@{x},Euler polynomial,Euler-polynomial-E,P|F:P,$E_{n}$,http://dlmf.nist.gov/24.2#ii, +\EulerGamma@{z},Euler's gamma function,Euler-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/5.2#E1, +\EulerPhi@{x},Euler's reciprocal function,Euler-phi,F|F:P,$\mathit{f}$,http://dlmf.nist.gov/27.14#E2, +\EulerSumH@{s},Euler sums,Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p1, +\EulerTotientPhi[k]@{n},Euler's totient $\phi_k(n)$,Euler-totient-phi,I|F:P,$\phi_{k}$,http://dlmf.nist.gov/27.2#E6, +\EulerianNumber{n}{k},Eulerian number,Eulerian-number,I|F,$\left\langle n\atop k\right\rangle$,http://dlmf.nist.gov/26.14#SS1.p3, +\ExpInt@{z},exponential integral $E_1$,exponential-integral,F|F:P,$E_1$,http://dlmf.nist.gov/6.2#E1, +\ExpIntEin@{z},complementary exponential integral ${\rm Ein}$,complementary-exponential-integral,F|F:P,$\mathrm{Ein}$,http://dlmf.nist.gov/6.2#E3, +\ExpInti@{x},exponential integral ${\rm Ei}$,exponential-integral-Ei,F|F:P,$\mathrm{Ei}$,http://dlmf.nist.gov/6.2#E1, +\ExpIntn{p}@{z},generalized exponential integral,exponential-integral-En,F|F:P,$E_{p}$,http://dlmf.nist.gov/8.19#E1, +\FerrersHatQ[-\mu]{-\frac{1}{2}+i\tau}@{x},conical function $\widehat{\mathsf{Q}}_\nu^\mu$,Ferrers-conical-legendre-Q-hat,F|FO:PO:FnO:PnO,$\widehat{\mathsf{Q}}_\nu^\mu$,http://dlmf.nist.gov/14.20#E2, +\FerrersP[\mu]{\nu}@{x},Ferrers function of the first kind,Ferrers-Legendre-P-first-kind,F|FO:PO:FnO:PnO,$\mathsf{P}_\nu^\mu$,http://dlmf.nist.gov/14.3#E1, +\FerrersQ[\mu]{\nu}@{x},Ferrers function of the second kind,Ferrers-Legendre-Q-first-kind,F|FO:PO:FnO:PnO,$\mathsf{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E2, +\FishersHh{n}@{z},probability function,Fishers-Hh,F|F:P,$\mathit{Hh}_{n}$,http://dlmf.nist.gov/7.18#E12, +\FresnelCos@{z},Fresnel integral $C$,Fresnel-cosine-integral,F|F:P,$C$,http://dlmf.nist.gov/7.2#E7, +\FresnelF@{z},Fresnel integral ${\mathcal F}$,Fresnel-integral,F|F:P,$\mathcal{F}$,http://dlmf.nist.gov/7.2#E6, +\FresnelSin@{z},Fresnel integral $S$,Fresnel-sine-integral,F|F:P,$S$,http://dlmf.nist.gov/7.2#E8, +\Fresnelf@{z},auxiliary function for Fresnel integrals ${\rm f}$,Fresnel-auxilliary-function-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/7.2#E10, +\Fresnelg@{z},auxiliary function for Fresnel integrals ${\rm g}$,Fresnel-auxilliary-function-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/7.2#E11, +\GammaP@{a}{z},normalized incomplete gamma function $P$,incomplete-gamma-P,F|F:P,$P$,http://dlmf.nist.gov/8.2#E4, +\GammaQ@{a}{z},normalized incomplete gamma function $Q$,incomplete-gamma-Q,F|F:P,$Q$,http://dlmf.nist.gov/8.2#E4, +\GaussSum@{n}{\DirichletCharacter},Gauss sum,Gauss-sum,F|F:P,$G$,http://dlmf.nist.gov/27.10#E9, +\GenBernoulliB{\ell}{n}@{x},generalized Bernoulli polynomial,generalized-Bernoulli-polynomial-B,P|F:P,$B^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, +\GenBesselFun@{\rho}{\beta}{z},generalized Bessel function,generalized-Bessel-function,F|F:P,$\phi$,http://dlmf.nist.gov/10.46#E1, +\GenEulerE{\ell}{n}@{x},generalized Euler polynomial,generalized-Euler-polynomial-E,P|F:P,$E^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, +\GenEulerSumH@{s}{z},generalized Euler sums,generalized-Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p7, +\GenGegenbauer{\alpha}{\beta}{n}@{x},Generalized Gegenbauer polynomial,generalized-Gegenbauer-polynomial-S,P|F:P,"$S^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer, +\GenHermite[\alpha]{n}@{x},generalized Hermite polynomial,generalized-Hermite-polynomial-H,P|FO:PO:FnO:PnO,$H_n^{\mu}$,http://drmf.wmflabs.org/wiki/Definition:GenHermite, +\GoodStat@{z},Goodwin-Staton integral,Goodwin-Staton-integral,F|F:P,$G$,http://dlmf.nist.gov/7.2#E12, +\GottliebLaguerre{n}@{x},Gottlieb-Laguerre polynomial,Gottlieb-Laguerre-polynomial-l,P|F:P,$l_{n}$,http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre, +\Gudermannian@@{x},Gudermannian function,inverse-Gudermannian,F|F:P:nP,$\mathrm{gd}$,http://dlmf.nist.gov/4.23#E39, +\Hahn{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, +\HahnQ{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, +\HahnR{n}@{x}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, +\HahnS{n}@{x}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, +\Hahnp{n}@{x}{a}{b}{\conj{a}}{\conj{b}},continuous Hahn polynomial,continuous-Hahn-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, +\HankelHi{\nu}@{z},Hankel function of the first kind,Hankel-H-1-Bessel-third-kind,F|F:P,${H^{(1)}_{\nu}}$,http://dlmf.nist.gov/10.2#E5, +\HankelHii{\nu}@{z},Hankel function of the second kind,Hankel-H-2-Bessel-third-kind,F|F:P,${H^{(2)}_{\nu}}$,http://dlmf.nist.gov/10.2#E6, +\HarmonicNumber{n},Harmonic number,Harmonic-number,I|F,$H_{n}$,http://dlmf.nist.gov/25.11#E33, +\HeavisideH@{x},Heaviside step function,Heaviside-H,F|F:P,$H$,http://dlmf.nist.gov/1.16#E13, +\Hermite{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, +\HermiteH{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, +\HermiteHe{n}@{x},Hermite polynomial $He_n$,Hermite-polynomial-He,P|F:P,$\mathit{He}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r29, +\HeunFunction{m}{a}{b}@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $(a;b)Hf_m^\nu$,Heun-function,F|FO:PO:nPO:FnO:PnO:nPnO,"$(s_1,s_2)\mathit{Hf}_{m}^\nu$",http://dlmf.nist.gov/31.4#p1, +\HeunLocal@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $Hl$,Heun-local,F|F:P:nP,$\mathit{H\!\ell}$,http://dlmf.nist.gov/31.3#E1, +\HeunPolynom{n}{m}@@{a}{q}{-n}{\beta}{\gamma}{\delta}{z},Heun polynomial,Heun-polynomial-m,P|F:P:nP,"$\mathit{Hp}_{n,m}$",http://dlmf.nist.gov/31.5#E2, +\HilbertTrans@{f}{x},Hilbert transform,Hilbert-transform,O|F:P,$\mathcal{H}$,http://dlmf.nist.gov/1.14#SS5.p1, +\HurwitzZeta@{s}{a},Hurwitz zeta function,Hurwitz-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.11#E1, +\HyperPsi@{a}{b}{\Matrix{T}},confluent hypergeometric function of matrix argument of the second kind,confluent-hypergeometric-of-matrix-Psi,F|F:P,$\Psi$,http://dlmf.nist.gov/35.6#E2, +\HyperboldpFq{p}{q}@@@{\Vector{a}}{\Vector{b}}{z},scaled (or Olver's) generalized hypergeometric function,hypergeometric-bold-pFq,F|F:fo1:fo2:fo3,${{}_{p}{\mathbf{F}}_{q}}$,http://dlmf.nist.gov/16.2#E5, +\HypergeoF@@@{a}{b}{c}{z},hypergeometric function,Gauss-hypergeometric-F,F|F:fo1:fo2:fo3,$F$,http://dlmf.nist.gov/15.2#E1, +\HypergeoboldF@@@{a}{b}{c}{z},Olver's hypergeometric function,scaled-hypergeometric-bold-F,F|F:fo1:fo2:fo3,$\mathbf{F}$,http://dlmf.nist.gov/15.2#E2, +"\HyperpFq{p}{q}@@@{a_1,...,a_p}{b_1,...,b_q}{z}",generalized hypergeometric function,Gauss-hypergeometric-pFq,F|F:fo1:fo2:fo3,${{}_{p}F_{q}}$,http://dlmf.nist.gov/16.2#E1, +"\HyperpHq{p}{q}@@@{{a_1,...,a_p}{b_1,...,b_q}{z}",bilateral hypergeometric function,hypergeometric-pHq,F|F:fo1:fo2:fo3,${{}_{p}H_{q}}$,http://dlmf.nist.gov/16.4#E16, +\IncBeta{x}@{a}{b},incomplete beta function,incomplete-Beta,F|F:P,$\mathrm{B}_{x}$,http://dlmf.nist.gov/8.17#E1, +\IncGamma@{a}{z},incomplete gamma function $\Gamma$,incomplete-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/8.2#E2, +\IncI{x}@{a}{b},regularized incomplete beta function,IncI,F|F:P,$I_{x}$,http://dlmf.nist.gov/8.17#E2, +\Int{a}{b}@{x}{f(x)},semantic definite integral,semantic-definite-integral,SM|O,"$\int_{a}^{b}f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:Int, +\Integer,set of integers,EMPTY,SN|F,$\mathbb{Z}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r20, +\IntgenAiryA{k}@{z}{p},generalized Airy function from integral representation $A_k$,Integral-generalized-Airy-A,F|F:P,$A_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, +\IntgenAiryB{k}@{z}{p},generalized Airy function from integral representation $B_k$,Integral-generalized-Airy-B,F|F:P,$B_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, +\JacksonqBesselI{\nu}@{z}{q},Jackson $q$-Bessel function 1,EMPTY,F|F:P,$J^{(1)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI, +\JacksonqBesselII{\nu}@{z}{q},Jackson $q$-Bessel function 2,EMPTY,F|F:P,$J^{(2)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII, +\JacksonqBesselIII{\nu}@{z}{q},Jackson/Hahn-Exton $q$-Bessel function 3,EMPTY,F|F:P,$J^{(3)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII, +\Jacobi{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, +\JacobiEpsilon@{x}{k},Jacobi's epsilon function,Jacobi-Epsilon,F|F:P,$\mathcal{E}$,http://dlmf.nist.gov/22.16#E14, +\JacobiG{n}@{p}{q}{x},shifted Jacobi polynomial,shifted-Jacobi-polynomial-G,P|F:P,$G_{n}$,http://dlmf.nist.gov/18.1#E2, +\JacobiP{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, +\JacobiSymbol{n}{P},Jacobi symbol,Jacobi-symbol,I|F,$(n|P)$,http://dlmf.nist.gov/27.9#p3, +\JacobiTheta{j}@{z}{q},Jacobi theta function,Jacobi-theta,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, +\JacobiThetaCombined{n}{m}@{z}{q},combined theta function,Jacobi-theta-combined,F|F:P,"$\varphi_{m,n}$",http://dlmf.nist.gov/20.11#SS5.p2, +\JacobiThetaTau{j}@{z}{\tau},Jacobi theta $\tau$ function $\theta_j$,Jacobi-theta-tau,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, +\JacobiZeta@{x}{k},Jacobi's zeta function,Jacobi-Zeta,F|F:P,$\mathrm{Z}$,http://dlmf.nist.gov/22.16#E32, +\Jacobiam@@{x}{k},Jacobi's amplitude function ${\rm am}$,Jacobi-elliptic-amplitude,F|F:P:nP,$\mathrm{am}$,http://dlmf.nist.gov/23.1, +\Jacobicd@@{z}{k},Jacobian elliptic function ${\rm cd}$,Jacobi-elliptic-cd,F|F:P:nP,$\mathrm{cd}$,http://dlmf.nist.gov/22.2#E8, +\Jacobicn@@{z}{k},Jacobian elliptic function ${\rm cn}$,Jacobi-elliptic-cn,F|F:P:nP,$\mathrm{cn}$,http://dlmf.nist.gov/22.2#E5, +\Jacobics@@{z}{k},Jacobian elliptic function ${\rm cs}$,Jacobi-elliptic-cs,F|F:P:nP,$\mathrm{cs}$,http://dlmf.nist.gov/23.1, +\Jacobidc@@{z}{k},Jacobian elliptic function ${\rm dc}$,Jacobi-elliptic-dc,F|F:P:nP,$\mathrm{dc}$,http://dlmf.nist.gov/23.1, +\Jacobidn@@{z}{k},Jacobian elliptic function ${\rm dn}$,Jacobi-elliptic-dn,F|F:P:nP,$\mathrm{dn}$,http://dlmf.nist.gov/22.2#E6, +\Jacobids@@{z}{k},Jacobian elliptic function ${\rm ds}$,Jacobi-elliptic-ds,F|F:P:nP,$\mathrm{ds}$,http://dlmf.nist.gov/23.1, +\Jacobinc@@{z}{k},Jacobian elliptic function ${\rm nc}$,Jacobi-elliptic-nc,F|F:P:nP,$\mathrm{nc}$,http://dlmf.nist.gov/23.1, +\Jacobind@@{z}{k},Jacobian elliptic function ${\rm nd}$,Jacobi-elliptic-nd,F|F:P:nP,$\mathrm{nd}$,http://dlmf.nist.gov/23.1, +\Jacobins@@{z}{k},Jacobian elliptic function ${\rm ns}$,Jacobi-elliptic-ns,F|F:P:nP,$\mathrm{ns}$,http://dlmf.nist.gov/23.1, +\Jacobiphi{\alpha}{\beta}{\lambda}@{t},Jacobi function,Jacobi-hypergeometric-phi,F|F:P,"$\phi^{(\alpha,\beta)}_{\lambda}$",http://dlmf.nist.gov/15.9#E11, +\Jacobisc@@{z}{k},Jacobian elliptic function ${\rm sc}$,Jacobi-elliptic-sc,F|F:P:nP,$\mathrm{sc}$,http://dlmf.nist.gov/22.2#E9, +\Jacobisd@@{z}{k},Jacobian elliptic function ${\rm sd}$,Jacobi-elliptic-sd,F|F:P:nP,$\mathrm{sd}$,http://dlmf.nist.gov/22.2#E7, +\Jacobisn@@{z}{k},Jacobian elliptic function ${\rm sn}$,Jacobi-elliptic-sn,F|F:P:nP,$\mathrm{sn}$,http://dlmf.nist.gov/22.2#E4, +\JonquierePhi@{z}{s}=\Polylogarithm{s}@{z},Jonquiére's function,Jonquiere-phi,F|F:P,$\phi$,http://dlmf.nist.gov/23.1, +\JordanJ{k}@{n},Jordan's function,Jordan-J,F|F:P,$J_{k}$,http://dlmf.nist.gov/27.2#E11, +\Kelvinbei{\nu}@@{x},Kelvin function ${\rm bei}_\nu$,Kelvin-bei,F|F:P:nP,$\mathrm{bei}_{\nu}$,http://dlmf.nist.gov/10.61#E1, +\Kelvinber{\nu}@@{x},Kelvin function ${\rm ber}_\nu$,Kelvin-ber,F|F:P:nP,$\mathrm{ber}_{\nu}$,http://dlmf.nist.gov/10.61#E1, +\Kelvinkei{\nu}@@{x},Kelvin function ${\rm kei}_\nu$,Kelvin-kei,F|F:P:nP,$\mathrm{kei}_{\nu}$,http://dlmf.nist.gov/10.61#E2, +\Kelvinker{\nu}@@{x},Kelvin function ${\rm ker}_\nu$,Kelvin-ker,F|F:P:nP,$\mathrm{ker}_{\nu}$,http://dlmf.nist.gov/10.61#E2, +\Krawtchouk{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, +\KrawtchoukK{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, +\Kronecker{j}{k},Kronecker delta,EMPTY,I|F,"$\delta_{m,n}$",http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4, +\KummerM@{a}{b}{z},Kummer confluent hypergeometric function $M$,Kummer-confluent-hypergeometric-M,F|F:P,$M$,http://dlmf.nist.gov/13.2#E2, +\KummerU@{a}{b}{z},Kummer confluent hypergeometric function $U$,Kummer-confluent-hypergeometric-U,F|F:P,$U$,http://dlmf.nist.gov/13.2#E6, +\KummerboldM@{a}{b}{z},Olver's confluent hypergeometric function,Kummer-confluent-hypergeometric-bold-M,F|F:P,${\mathbf{M}}$,http://dlmf.nist.gov/13.2#E3, +\Laguerre[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, +\LaguerreL[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, +\LambertW@{x},Lambert $\LambertW$-function,Lambert-W,F|F:P,$W$,http://dlmf.nist.gov/23.1, +\LambertWm@{x},non-principal branch of Lambert $\LambertW$-function,Lambert-Wm,F|F:P,$\mathrm{Wm}$,http://dlmf.nist.gov/4.13#p2, +\LambertWp@{x},principal branch of Lambert $\LambertW$-function,Lambert-Wp,F|F:P,$\mathrm{Wp}$,http://dlmf.nist.gov/23.1, +\LameEc{m}{\nu}@{z}{k^2},Lamé function $Ec_\nu^m$,Lame-Ec,F|F:P,$\mathit{Ec}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\LameEs{m}{\nu}@{z}{k^2},Lamé function $Es_\nu^m$,Lame-Es,F|F:P,$\mathit{Es}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\Lamea{n}{\nu}@{k^2},eigenvalues of Lamé's equation $a_\nu^m$,Lame-eigenvalue-a,F|F:P,$a^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, +\Lameb{n}{\nu}@{k^2},eigenvalues of Lamé's equation $b_\nu^m$,Lame-eigenvalue-b,F|F:P,$b^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, +\LamecE{m}{2n+1}@{z}{k^2},Lamé polynomial $cE_{2n+1}^m$,Lame-polynomial-cE,P|F:P,$\mathit{cE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\LamecdE{m}{2n+2}@{z}{k^2},Lamé polynomial $cdE_{2n+2}^m$,Lame-polynomial-cdE,P|F:P,$\mathit{cdE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, +\LamedE{m}{2n+1}@{z}{k^2},Lamé polynomial $dE_{2n+1}^m$,Lame-polynomial-dE,P|F:P,$\mathit{dE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E4, +\LamesE{m}{2n+1}@{z}{k^2},Lamé polynomial $sE_{2n+1}^m$,Lame-polynomial-sE,P|F:P,$\mathit{sE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E2, +\LamescE{m}{2n+2}@{z}{k^2},Lamé polynomial $scE_{2n+2}^m$,Lame-polynomial-scE,P|F:P,$\mathit{scE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E5, +\LamescdE{m}{2n+3}@{z}{k^2},Lamé polynomial $scdE_{2n+3}^m$,Lame-polynomial-scdE,P|F:P,$\mathit{scdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E8, +\LamesdE{m}{2n+2}@{z}{k^2},Lamé polynomial $sdE_{2n+2}^m$,Lame-polynomial-sdE,P|F:P,$\mathit{sdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E6, +\LameuE{m}{2n}@{z}{k^2},Lamé polynomial $uE_{2n}^m$,Lame-polynomial-uE,P|F:P,$\mathit{uE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E1, +\LaplaceTrans@{f}{s},Laplace transform,Laplace-transform,O|F:P,$\mathscr{L}$,http://dlmf.nist.gov/1.14#E17, +\Lattice{L},lattice in $\Complex$,EMPTY,SN|F,$\mathbb{L}$,http://dlmf.nist.gov/23.2#i, +"\LauricellaFD@{a}{b_1,...,b_n}{c}{z_1,...,z_n}",Lauricella's multivariate hypergeometric function,Lauricella-FD,F|F:P,$F_D$,http://dlmf.nist.gov/19.15#p1, +\LegendreBlackQ[\mu]{\nu}@{z},Olver's associated Legendre function,associated-Legendre-black-Q,F|FO:PO:FnO:PnO,$\boldsymbol{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E10, +\LegendreP[\mu]{\nu}@{z},associated Legendre function of the first kind,Legendre-P-first-kind,F|FO:PO:FnO:PnO,$P_\nu^\mu$,http://dlmf.nist.gov/14.3#E6, +\LegendrePoly{n}@{x},Legendre polynomial,Legendre-spherical-polynomial,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r25, +\LegendrePolys{n}@{x},shifted Legendre polynomial,shifted-spherical-Legendre-polynomial-s,P|F:P,$P^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r26, +\LegendreQ[\mu]{\nu}@{z},associated Legendre function of the second kind,Legendre-Q-second-kind,F|FO:PO:FnO:PnO,$Q_\nu^\mu$,http://dlmf.nist.gov/14.3#E7, +\LegendreSymbol{n}{p},Legendre symbol,Legendre-symbol,I|F,$(n|p)$,http://dlmf.nist.gov/27.9, +\LerchPhi@{z}{s}{a},Lerch's transcendent,Lerch-Phi,F|F:P,$\Phi$,http://dlmf.nist.gov/25.14#E1, +\LeviCivita{j}{k}{\ell},Levi-Civita symbol,EMPTY,I|F,$\epsilon_{jkl}$,http://dlmf.nist.gov/1.6#E14, +\LinBrF@{a}{u},line-broadening function,line-broadening-function,F|F:P,$H$,http://dlmf.nist.gov/7.19#E4, +\LiouvilleLambda@{n},Liouville's function,Liouville-lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/27.2#E13, +\Ln@@{z},general logarithm function,multivalued-natural-logarithm,F|F:P:nP,$\mathrm{Ln}$,http://dlmf.nist.gov/4.2#E1, +\LogInt@{x},logarithmic integral,logarithmic-integral,F|F:P,$\mathrm{li}$,http://dlmf.nist.gov/6.2#E8, +\LommelS{\mu}{\nu}@{z},"Lommel function $S$",Lommel-S,F|F:P,"$S_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E5, +\Lommels{\mu}{\nu}@{z},"Lommel function $s$",Lommel-s,F|F:P,"$s_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E3, +\Longleftrightarrow,is equivalent to,equivalent-to,SM|F,$\Longleftrightarrow $,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r13, +\Longrightarrow,implies,EMPTY,SM|F,$\Longrightarrow$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r12, +\MangoldtLambda@{n},Mangoldt's function,Mangoldt-Lambda,F|F:P,$\Lambda$,http://dlmf.nist.gov/27.2#E14, +\MathieuCe{\nu}@@{z}{q},modified Mathieu function ${\rm Ce}_\nu$,modified-Mathieu-Ce,F|F:P:nP,$\mathrm{Ce}_{n}$,http://dlmf.nist.gov/28.20#E3, +\MathieuD{j}@{\nu}{\mu}{z},cross-products of modified Mathieu functions and their derivatives ${\rm D}_{j}$,Mathieu-D,F|F:P,$\mathrm{D}_{j}$,http://dlmf.nist.gov/28.28#E24, +\MathieuDc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dc}_j$,Mathieu-Dc,F|F:P,$\mathrm{Dc}_{j}$,http://dlmf.nist.gov/28.28#E39, +\MathieuDs{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Ds}_j$,Mathieu-Ds,F|F:P,$\mathrm{Ds}_{j}$,http://dlmf.nist.gov/28.28#E35, +\MathieuDsc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dsc}_j$,Mathieu-Dsc,F|F:P,$\mathrm{Dsc}_{j}$,http://dlmf.nist.gov/28.28#E40, +\MathieuEigenvaluea{n}@@{q},eigenvalues of Mathieu equation $a_n(q)$,Mathieu-eigenvalue-a,F|F:P:nP,$a_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, +\MathieuEigenvalueb{n}@@{q},eigenvalues of Mathieu equation $b_n(q)$,Mathieu-eigenvalue-b,F|F:P:nP,$b_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, +\MathieuEigenvaluelambda{\nu+2n}@@{q},eigenvalues of Mathieu equation $\lambda_\nu(q)$,Mathieu-eigenvalue-lambda,F|F:P:nP,$\lambda_{\nu}$,http://dlmf.nist.gov/28.12#SS1.p2, +\MathieuFc{m}@{z}{h},Mathieu function ${\rm Fc}_m$,Mathieu-Fc,F|F:P,$\mathrm{Fc}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuFe{n}@@{z}{q},modified Mathieu function ${\rm Fe}_n$,modified-Mathieu-Fe,F|F:P:nP,$\mathrm{Fe}_{n}$,http://dlmf.nist.gov/28.20#E6, +\MathieuFs{m}@{z}{h},Mathieu function ${\rm Fs}_m$,Mathieu-Fs,F|F:P,$\mathrm{Fs}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuGc{m}@{z}{h},Mathieu function ${\rm Gc}_m$,Mathieu-Gc,F|F:P,$\mathrm{Gc}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuGe{n}@@{z}{q},modified Mathieu function ${\rm Ge}_n$,modified-Mathieu-Ge,F|F:P:nP,$\mathrm{Ge}_{n}$,http://dlmf.nist.gov/28.20#E7, +\MathieuGs{m}@{z}{h},Mathieu function ${\rm Gs}_m$,Mathieu-Gs,F|F:P,$\mathrm{Gs}_{m}$,http://dlmf.nist.gov/23.1, +\MathieuIe{n}@@{z}{h},modified Mathieu function ${\rm Ie}_n$,modified-Mathieu-Ie,F|F:P:nP,$\mathrm{Ie}_{n}$,http://dlmf.nist.gov/28.20#E17, +\MathieuIo{n}@@{z}{h},modified Mathieu function ${\rm Io}_n$,modified-Mathieu-Io,F|F:P:nP,$\mathrm{Io}_{n}$,http://dlmf.nist.gov/28.20#E18, +\MathieuKe{n}@@{z}{h},modified Mathieu function ${\rm Ke}_n$,modified-Mathieu-Ke,F|F:P:nP,$\mathrm{Ke}_{n}$,http://dlmf.nist.gov/28.20#E19, +\MathieuKo{n}@@{z}{h},modified Mathieu function ${\rm Ko}_n$,modified-Mathieu-Ko,F|F:P:nP,$\mathrm{Ko}_{n}$,http://dlmf.nist.gov/28.20#E20, +\MathieuM{j}{\nu}@@{z}{h},modified Mathieu function ${\rm M}_\nu^{(j)}$,modified-Mathieu-M,F|F:P:nP,${\mathrm{M}^{(j)}_{\nu}}$,http://dlmf.nist.gov/23.1, +\MathieuMc{j}{n}@@{z}{h},radial Mathieu function ${\rm Mc}_n^{(j)}$,modified-Mathieu-Mc,F|F:P:nP,${\mathrm{Mc}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E15, +\MathieuMe{\nu}@@{z}{q},modified Mathieu function ${\rm Me}_\nu$,modified-Mathieu-Me,F|F:P:nP,$\mathrm{Me}_{n}$,http://dlmf.nist.gov/28.20#E5, +\MathieuMs{j}{n}@@{z}{h},radial Mathieu function ${\rm Ms}_n^{(j)}$,modified-Mathieu-Ms,F|F:P:nP,${\mathrm{Ms}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E16, +\MathieuSe{\nu}@@{z}{q},modified Mathieu function ${\rm Se}_\nu$,modified-Mathieu-Se,F|F:P:nP,$\mathrm{Se}_{n}$,http://dlmf.nist.gov/28.20#E4, +\Mathieuce{n}@@{z}{q},Mathieu function ${\rm ce}_\nu$,Mathieu-ce,F|F:P:nP,$\mathrm{ce}_{n}$,http://dlmf.nist.gov/23.1, +\Mathieufe{n}@@{z}{q},second solution of Mathieu's equation ${\rm fe}_n$,Mathieu-fe,F|F:P:nP,$\mathrm{fe}_{n}$,http://dlmf.nist.gov/28.5#E1, +\Mathieuge{n}@@{z}{q},second solution of Mathieu's equation ${\rm ge}_n$,Mathieu-ge,F|F:P:nP,$\mathrm{ge}_{n}$,http://dlmf.nist.gov/28.5#E2, +\Mathieume{n}@@{z}{q},Mathieu function ${\rm me}_\nu$,Mathieu-me,F|F:P:nP,$\mathrm{me}_{\nu}$,http://dlmf.nist.gov/23.1, +\Mathieuse{n}@@{z}{q},Mathieu function ${\rm se}_\nu$,Mathieu-se,F|F:P:nP,$\mathrm{se}_{\nu}$,http://dlmf.nist.gov/23.1, +\Matrix{I},Bessel function of matrix argument (first kind),EMPTY,F|F,$\Matrix{T}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r9, +\MeijerG{m}{n}{p}{q}@@@{z}{\Vector{a}}{\Vector{b}},Meijer $G$-function,Meijer-G,F|F:fo1:fo2:fo3,"${G^{m,n}_{p,q}}$",http://dlmf.nist.gov/16.17#E1, +\Meixner{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, +\MeixnerM{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, +\MeixnerPollaczek{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, +\MeixnerPollaczekP{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, +\MellinTrans@{f}{s},Mellin transform,Mellin-transform,O|F:P,$\mathscr{M}$,http://dlmf.nist.gov/1.14#E32, +\Mills@{x},Mills ratio ${\sf M}$,Mills-ratio,F|F:P,$\mathsf{M}$,http://dlmf.nist.gov/7.8#E1, +\MittagLeffler{a}{b}@{z},Mittag-Leffler function,Mittag-Leffler-function,F|F:P,"$E_{a,b}$",http://dlmf.nist.gov/10.46#E3, +\ModCylinder{\nu}@{z},modified cylinder function,modified-cylinder-function,F|F:P,$\mathscr{Z}_{\nu}$,http://dlmf.nist.gov/10.25#P2.p1, +\ModularJ@{\tau},Klein's complete invariant,Kleins-invariant-modular-J,F|F:P,$J$,http://dlmf.nist.gov/23.15#E7, +\ModularLambda@{\tau},elliptic modular function,modular-Lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/23.15#E6, +\MoebiusMu@{n},Möbius function,Moebius-mu,F|F:P,$\mu$,http://dlmf.nist.gov/27.2#E12, +\NatNumber,set of positive integers,EMPTY,SN|F,$\mathbb{N}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r11, +\NeumannFactor{n},Neumann factor,Neumann-factor,I|F,$\epsilon_{m}$,http://drmf.wmflabs.org/wiki/Definition:NeumannFactor, +\NeumannPoly{n}@{x},Neumann's polynomial,Neumann-polynomial,P|F:P,$O_{k}$,http://dlmf.nist.gov/10.23#E12, +\NumPrimeDivNu@{n},$\nu(n)$ : number of distinct primes dividing $n$,number-of-primes-dividing-nu,I|F:P,$\nu$,http://dlmf.nist.gov/27.2#SS1.p1, +\NumPrimesLessPi@{x},number of primes not exceeding $x$,number-of-primes-less-pi,I|F:P,$\pi$,http://dlmf.nist.gov/27.2#E2, +\NumSquaresR{k}@{n},number of squares,number-of-squares-R,I|F:P,$r_{k}$,http://dlmf.nist.gov/27.13#SS4.p1, +\ODEgenAiryA{n}@{z},generalized Airy function from differential equation $A_n$,ODE-generalized-Airy-A,F|F:P,$A_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, +\ODEgenAiryB{n}@{z},generalized Airy function from differential equation $B_n$,ODE-generalized-Airy-B,F|F:P,$B_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, +\Pade{p}{q}{f},Padé approximant,Pade-approximant,O|F,${[p/q]_{f}}$,http://dlmf.nist.gov/3.11#SS4.p1, +\ParabolicU@{a}{z},parabolic cylinder function $U$,parabolic-U,F|F:P,$U$,http://dlmf.nist.gov/12.4.E1, +\ParabolicUbar@{a}{x},parabolic cylinder function $\overline{U}$,parabolic-U-bar,F|F:P,$\overline{U}$,http://dlmf.nist.gov/12.2.21, +\ParabolicV@{a}{z},parabolic cylinder function $V$,parabolic-V,F|F:P,$V$,http://dlmf.nist.gov/12.4.E2, +\ParabolicW@{a}{x},parabolic cylinder function $W$,parabolic-W,F|F:P,$W$,http://dlmf.nist.gov/12.14.i, +\PartitionsP[k]@{n},total number of partitions,partition-function,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.2#P4.p2, +\PeriodicBernoulliB{n}@{x},periodic Bernoulli functions,periodic-Bernoulli-polynomial-B,F|F:P,$\widetilde{B}_{n}$,http://dlmf.nist.gov/24.2#iii, +\PeriodicEulerE{n}@{x},periodic Euler functions,periodic-Euler-polynomial-E,F|F:P,$\widetilde{E}_{n}$,http://dlmf.nist.gov/24.2#iii, +\PeriodicZeta@{x}{s},periodic zeta function,periodic-zeta,F|F:P,$F$,http://dlmf.nist.gov/25.13#E1, +\Permutations{n},"set of permutations of ${\bf n}$",set-of-permutations,SN|F,$\mathfrak{S}_{n}$,http://dlmf.nist.gov/23.1, +\PlanePartitionsPP@{n},number of plane partitions of $n$,plane-partitions-PP,I|F:P,$\mathit{pp}$,http://dlmf.nist.gov/26.12#SS1.p4, +\PollaczekP{\lambda}{n}@{x}{a}{b},Pollaczek polynomial,Pollaczek-polynomial-P,P|F:P,$P^{(\lambda)}_{n}$,http://dlmf.nist.gov/18.35#E4, +\Polylogarithm{s}@{z},polylogarithm,polylogarithm,F|F:P,$\mathrm{Li}_{s}$,http://dlmf.nist.gov/25.12#E10, +\Prod{n}{k1}{k2}@{f(n)},semantic product,EMPTY,SM|O:O,$\prod_{n=\alpha}^{\beta}$,http://drmf.wmflabs.org/wiki/Definition:Prod, +\Racah{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, +\RacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, +\RamanujanSum{k}@{n},Ramanujan's sum,Ramanujan-sum,F|F:P,$c_{k}$,http://dlmf.nist.gov/27.10#E4, +\RamanujanTau@{n},Ramanujan's tau function,Ramanujan-tau,F|F:P,$\tau$,http://dlmf.nist.gov/27.14#E18, +\Rational,set of rational numbers,EMPTY,SN|F,$\mathbb{Q}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r13, +\RayleighFun{n}@{\nu},Rayleigh function,Rayleigh-function,F|F:P,$\sigma_{n}$,http://dlmf.nist.gov/10.21#E55, +\Real,set of real numbers,EMPTY,SN|F,$\mathbb{R}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r14, +\RepInterfc{n}@{z},repeated integrals of the complementary error function,repeated-integral-complementary-error-function,F|F:P,$\mathrm{i}^{n}\mathrm{erfc}$,http://dlmf.nist.gov/7.18#E2, +\Residue,residue,EMPTY,O|F,$\mathrm{res}$,http://dlmf.nist.gov/1.10#SS3.p5, +\RestrictedCompositionsC@{\mathrm{condition}}{n},restricted number of compositions,restricted-number-of-compositions-C,I|F:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, +\RestrictedPartitionsP[k]@{\mathrm{condition}}{n},restricted number of partitions,restricted-partitions-P,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.10#i, +\RiemannP@{\begin{Bmatrix} \alpha & \beta &\gamma & \\ a_1 & b_1 & c_1 & z \\ a_2 & b_2 & c_2 & \end{Bmatrix}},Riemann-Papperitz $\RiemannP$-symbol for solutions of the generalized hypergeometric differential equation,Riemann-P-symbol,Q|F:P,$P$,http://dlmf.nist.gov/15.11#E3, +\RiemannTheta@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function,Riemann-theta,F|F:P,$\theta$,http://dlmf.nist.gov/21.2#E1, +\RiemannThetaChar{\Vector{\alpha}}{\Vector{\beta}}@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function with characteristics,Riemann-theta-characterstics,F|F:P,$\theta\left[\Vector{\alpha} \atop \Vector{\beta} \right]$,http://dlmf.nist.gov/21.2#E5, +\RiemannThetaHat@{\Vector{z}}{\Matrix{\Omega}},scaled Riemann theta function,Riemann-theta-hat,F|F:P,$\hat{\theta}$,http://dlmf.nist.gov/21.2#E2, +\RiemannXi@{s},Riemann's $\RiemannXi$-function,Riemann-xi,F|F:P,$\xi$,http://dlmf.nist.gov/25.4#E4, +\RiemannZeta@{s},Riemann zeta function,Riemann-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.2#E1, +\Schwarzian{z}{\zeta},Schwarzian derivative,EMPTY,O|F,"$\left\{f,g\right\}$",http://dlmf.nist.gov/1.13#E20, +\ScorerGi@{z},Scorer function (inhomogeneous Airy function) ${\rm Gi}$,Scorer-Gi,F|F:P,$\mathrm{Gi}$,http://dlmf.nist.gov/9.12#i, +\ScorerHi@{z},Scorer function (inhomogeneous Airy function) ${\rm Hi}$,Scorer-Hi,F|F:P,$\mathrm{Hi}$,http://dlmf.nist.gov/9.12#i, +\SinCosIntf@{z},auxiliary function for sine and cosine integrals ${\rm f}$,sine-cosine-integral-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/6.2#E17, +\SinCosIntg@{z},auxiliary function for sine and cosine integrals ${\rm g}$,sine-cosine-integral-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/6.2#E18, +\SinInt@{z},sine integral ${\rm Si}$,sine-integral,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/6.2#E9, +\SinIntg@{a}{z},generalized sine integral ${\rm Si}$,generalized-sine-integral-Si,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/8.21#E2, +\SinhInt@{z},hyperbolic sine integral,hyperbolic-sine-integral,F|F:P,$\mathrm{Shi}$,http://dlmf.nist.gov/6.2#E15, +\SphBesselIi{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(1)}$,spherical-Bessel-I-1,F|F:P,${\mathsf{i}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E7, +\SphBesselIii{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(2)}$,spherical-Bessel-I-2,F|F:P,${\mathsf{i}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E8, +\SphBesselJ{n}@{z},spherical Bessel function of the first kind ${\sf j}_n$,spherical-Bessel-J,F|F:P,$\mathsf{j}_{n}$,http://dlmf.nist.gov/10.47#E3, +\SphBesselK{n}@{z},modified spherical Bessel function of the second kind ${\sf k}_n$,spherical-Bessel-K,F|F:P,$\mathsf{k}_{n}$,http://dlmf.nist.gov/10.47#E9, +\SphBesselY{n}@{z},spherical Bessel function of the second kind ${\sf y}_n$,spherical-Bessel-Y,F|F:P,$\mathsf{y}_{n}$,http://dlmf.nist.gov/10.47#E4, +\SphHankelHi{n}@{z},spherical Hankel function of the first kind ${\sf h}_n^{(1)}$,spherical-Hankel-H-1-Bessel-third-kind,F|F:P,${\mathsf{h}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E5, +\SphHankelHii{n}@{z},spherical Hankel function of the second kind ${\sf h}_n^{(2)}$,spherical-Hankel-H-2-Bessel-third-kind,F|F:P,${\mathsf{h}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E6, +\SphericalHarmonicY{l}{m}@{\theta}{\phi},spherical harmonic,spherical-harmonic-Y,F|F:P,"$Y_{{\ell},{m}}$",http://dlmf.nist.gov/14.30#E1, +\SpheroidalEigenvalueLambda{m}{n}@{\gamma^2},eigenvalues of the spheroidal differential equation,spheroidal-eigenvalue-lambda,O|F:P,$\lambda^{m}_{n}$,http://dlmf.nist.gov/30.3#SS1.p1, +\SpheroidalOnCutPs{m}{n}@{x}{\gamma^2},spheroidal wave function of the first kind ${\sf Ps}_n^m$,spheroidal-wave-on-cut-Ps,F|F:P,$\mathsf{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.4#i, +\SpheroidalOnCutQs{m}{n}@{x}{\gamma^2},spheroidal wave function of the second kind ${\sf Qs}_n^m$,spheroidal-wave-on-cut-Qs,F|F:P,$\mathsf{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.5, +\SpheroidalPs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Ps_n^m$,spheroidal-wave-Ps,F|F:P,$\mathit{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, +\SpheroidalQs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Qs_n^m$,spheroidal-wave-Qs,F|F:P,$\mathit{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, +\SpheroidalRadialS{m}{j}{n}@{z}{\gamma},radial spheroidal wave function,radial-spheroidal-wave-S,F|F:P,$S^{m(j)}_{n}$,http://dlmf.nist.gov/30.11#E3, +\StieltjesConstants{n},Stieltjes constants,Stieltjes-constants,C|F,$\gamma_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants, +\StieltjesTrans@{f}{s},Stieltjes transform,Stieltjes-transform,O|F:P,$\mathcal{S}$,http://dlmf.nist.gov/1.14#E47, +\StieltjesWigert{n}@@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P:PS,$S_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert, +\StieltjesWigertS{n}@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.27#E18, +\StirlingS@{n}{k},Stirling number of the first kind,Stirling-number-first-kind-S,I|F:P,$s$,http://dlmf.nist.gov/26.8#SS1.p1, +\StirlingSS@{n}{k},Stirling number of the second kind,Stirling-number-second-kind-S,I|F:P,$S$,http://dlmf.nist.gov/26.8#SS1.p3, +\StruveH{\nu}@{z},Struve function ${\bf H}_{\nu}$,Struve-H,F|F:P,$\mathbf{H}_{\nu}$,http://dlmf.nist.gov/11.2#E1, +\StruveK{\nu}@{z},Struve function ${\bf K}_{\nu}$,associated-Struve-K,F|F:P,$\mathbf{K}_{\nu}$,http://dlmf.nist.gov/11.2#E5, +\StruveL{\nu}@{z},modified Struve function ${\bf L}_{\nu}$,modified-Struve-L,F|F:P,$\mathbf{L}_{\nu}$,http://dlmf.nist.gov/11.2#E2, +\StruveM{\nu}@{z},modified Struve function ${\bf M}_{\nu}$,associated-Struve-M,F|F:P,$\mathbf{M}_{\nu}$,http://dlmf.nist.gov/11.2#E6, +\Sum{n}{0}{k}@{f(n)},semantic sum,EMPTY,SM|F:P,$\sum_{n=k}^{N}$,http://drmf.wmflabs.org/wiki/Definition:Sum, +\SurfaceHarmonicY{l}{m}@{\theta}{\phi},surface harmonic of the first kind,surface-harmonic-Y,F|F:P,$Y_{l}^{m}$,http://dlmf.nist.gov/14.30#E2, +\TriangleOP{\alpha}{\beta}{\gamma}{m}{n}@{x}{y},triangle polynomial,triangle-orthogonal-polynomial-P,P|F:P,"$P^{\alpha,\beta,\gamma}_{m,n}$",http://dlmf.nist.gov/18.37#E7, +\Ultra{\lambda}{n}@{x},ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{\mu}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, +\Ultraspherical{\lambda}{n}@{x},ultraspherical (or Gegenbauer) polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{(\mu)}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, +\UmbilicCatE@{s}{t}{\Vector{x}},elliptic umbilic catastrophe,elliptic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E2, +\UmbilicCatH@{s}{t}{\Vector{x}},hyperbolic umbilic catastrophe,hyperbolic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E3, +\VariationalOp[a;b]@{f},total variation,variational-operator,F|FO:PO:FnO:PnO,"$\mathcal{V}_{a,b}$",http://dlmf.nist.gov/1.4#E33, +\VoigtU@{x}{t},Voigt function ${\sf U}$,Voigt-U,F|F:P,$\mathsf{U}$,http://dlmf.nist.gov/7.19#E1, +\VoigtV@{x}{t},Voigt function ${\sf V}$,Voigt-V,F|F:P,$\mathsf{V}$,http://dlmf.nist.gov/7.19#E2, +\WaringG@{k},Waring's function $G$,Waring-G,F|F:P,$G$,http://dlmf.nist.gov/27.13#SS3.p1, +\Waringg@{k},Waring's function $g$,Waring-g,F|F:P,$g$,http://dlmf.nist.gov/27.13#SS3.p1, +\WeberE{\nu}@{z},Weber function,Weber-E,F|F:P,$\mathbf{E}_{\nu}$,http://dlmf.nist.gov/11.10#E2, +\WeierPInv@@{z}{g_2}{g_3},Weierstrass $\WeierPInv$-function on invariants $\WeierPInv@{z}{g_2}{g_3}$,Weierstrass-P-on-invariants,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, +\WeierPLat@@{z}{\Lattice{L}},Weierstrass $\WeierPLat$-function on lattice $\WeierPLat@{z}{\Lattice{L}}$,Weierstrass-P-on-lattice,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, +\WeiersigmaInv@@{z}{g_2}{g_3},Weierstrass sigma function on invariants,Weierstrass-sigma-on-invariants,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, +\WeiersigmaLat@@{z}{\Lattice{L}},Weierstrass sigma function on lattice,Weierstrass-sigma-on-lattice,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, +\WeierzetaInv@@{z}{g_2}{g_3},Weierstrass zeta function on invariants,Weierstrass-zeta-on-invariants,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, +\WeierzetaLat@@{z}{\Lattice{L}},Weierstrass zeta function on lattice,Weierstrass-zeta-on-lattice,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, +\WhitD{\nu}@{z},parabolic cylinder function,Whittaker-D,F|F:P,$D_{n}$,http://dlmf.nist.gov/23.1, +\WhitM{\kappa}{\mu}@{z},Whittaker function $M_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-M,F|F:P,"$M_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E2, +\WhitW{\kappa}{\mu}@{z},Whittaker function $W_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-W,F|F:P,"$W_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E3, +\Wilson{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, +\WilsonW{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, +\Wronskian@{w_1(z);w_2(z)},Wronskian,Wronskian,F|F:P,$\mathscr{W}$,http://dlmf.nist.gov/1.13#E4, +\ZeroAiryAi{k},$k$\textsuperscript{th} zero of Airy $\AiryAi$,zero-Airy-Ai,F|F,$a_{k}$,http://dlmf.nist.gov/23.1, +\ZeroAiryAiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryAi'$,zero-derivative-Airy-Ai,F|F,$a'_{k}$,http://dlmf.nist.gov/23.1, +\ZeroAiryBi{k},$k$\textsuperscript{th} zero of Airy $\AiryBi$,zero-Airy-Bi,F|F,$b_{k}$,http://dlmf.nist.gov/23.1, +\ZeroAiryBiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryBi'$,zero-derivative-Airy-Bi,F|F,$b'_{k}$,http://dlmf.nist.gov/23.1, +\ZeroBesselJ{\nu}{m},zeros of the Bessel function $\BesselJ{\nu}@{x}$,zero-Bessel-J,F|F,"$j_{\nu,m}$",http://dlmf.nist.gov/23.1, +\ZeroBesselJPrime{\nu}{m},zeros of the Bessel function derivative $\BesselJ{\nu}'@{x}$,zero-derivative-Bessel-J,F|F,"${j'_{\nu,m}}$",http://dlmf.nist.gov/23.1, +\ZeroBesselY{\nu}{m},zeros of the Bessel function $\BesselY{\nu}@{x}$,zero-Bessel-Y-Weber,F|F,"$y_{\nu,m}$",http://dlmf.nist.gov/23.1, +\ZeroBesselYPrime{\nu}{m},zeros of the Bessel function derivative $\BesselY{\nu}'@{x}$,zero-derivative-Bessel-Y-Weber,F|F,"${y'_{\nu,m}}$",http://dlmf.nist.gov/23.1, +\ZonalPoly{\kappa}@{\Matrix{T}},zonal polynomial,zonal-polynomial,P|F:P,$Z_{\kappa}$,http://dlmf.nist.gov/35.4#SS1.p3, +\acos@@{z},inverse cosine function,inverse-cosine,F|F:P:nP,$\mathrm{arccos}$,http://dlmf.nist.gov/4.23#SS2.p1, +\acosh@@{z},inverse hyperbolic cosine function,hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{arccosh}$,http://dlmf.nist.gov/4.37#SS2.p1, +\acot@@{z},inverse cotangent function,inverse-cotangent,F|F:P:nP,$\mathrm{arccot}$,http://dlmf.nist.gov/4.23#E9, +\acoth@@{z},inverse hyperbolic cotangent function,hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{arccoth}$,http://dlmf.nist.gov/4.37#E9, +\acsc@@{z},inverse cosecant function,inverse-cosecant,F|F:P:nP,$\mathrm{arccsc}$,http://dlmf.nist.gov/4.23#E7, +\acsch@@{z},inverse hyperbolic cosecant function,hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{arccsch}$,http://dlmf.nist.gov/4.37#E7, +\arcGudermannian@@{x},inverse Gudermannian function,inverse-Gudermannian,F|F:P:nP,${\mathrm{gd}^{-1}}$,http://dlmf.nist.gov/4.23#E41, +\arcJacobicd@{x}{k},inverse Jacobian elliptic function ${\rm arccd}$,inverse-Jacobi-elliptic-cd,F|F:P,$\mathrm{arccd}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobicn@{x}{k},inverse Jacobian elliptic function ${\rm arccn}$,inverse-Jacobi-elliptic-cn,F|F:P,$\mathrm{arccn}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobics@{x}{k},inverse Jacobian elliptic function ${\rm arccs}$,inverse-Jacobi-elliptic-cs,F|F:P,$\mathrm{arccs}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobidc@{x}{k},inverse Jacobian elliptic function ${\rm arcdc}$,inverse-Jacobi-elliptic-dc,F|F:P,$\mathrm{arcdc}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobidn@{x}{k},inverse Jacobian elliptic function ${\rm arcdn}$,inverse-Jacobi-elliptic-dn,F|F:P,$\mathrm{arcdn}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobids@{x}{k},inverse Jacobian elliptic function ${\rm arcds}$,inverse-Jacobi-elliptic-ds,F|F:P,$\mathrm{arcds}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobinc@{x}{k},inverse Jacobian elliptic function ${\rm arcnc}$,inverse-Jacobi-elliptic-nc,F|F:P,$\mathrm{arcnc}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobind@{x}{k},inverse Jacobian elliptic function ${\rm arcnd}$,inverse-Jacobi-elliptic-nd,F|F:P,$\mathrm{arcnd}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobins@{x}{k},inverse Jacobian elliptic function ${\rm arcns}$,inverse-Jacobi-elliptic-ns,F|F:P,$\mathrm{arcns}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobisc@{x}{k},inverse Jacobian elliptic function ${\rm arcsc}$,inverse-Jacobi-elliptic-sc,F|F:P,$\mathrm{arcsc}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobisd@{x}{k},inverse Jacobian elliptic function ${\rm arcsd}$,inverse-Jacobi-elliptic-sd,F|F:P,$\mathrm{arcsd}$,http://dlmf.nist.gov/22.15#SS1.p1, +\arcJacobisn@{x}{k},inverse Jacobian elliptic function ${\rm arcsn}$,inverse-Jacobi-elliptic-sn,F|F:P,$\mathrm{arcsn}$,http://dlmf.nist.gov/22.15#SS1.p1, +\asec@@{z},inverse secant function,inverse-secant,F|F:P:nP,$\mathrm{arcsec}$,http://dlmf.nist.gov/4.23#E8, +\asech@@{z},inverse hyperbolic secant function,hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{arcsech}$,http://dlmf.nist.gov/4.37#E8, +\asin@@{z},inverse sine function,inverse-sine,F|F:P:nP,$\mathrm{arcsin}$,http://dlmf.nist.gov/4.23#SS2.p1, +\asinh@@{z},inverse hyperbolic sine function,hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{arcsinh}$,http://dlmf.nist.gov/4.37#SS2.p1, +\atan@@{z},inverse tangent function,inverse-tangent,F|F:P:nP,$\mathrm{arctan}$,http://dlmf.nist.gov/4.23#SS2.p1, +\atanh@@{z},inverse hyperbolic tangent function,hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{arctanh}$,http://dlmf.nist.gov/4.37#SS2.p1, +\bDiff[x],backward difference,EMPTY,O|F,"$\,\nabla_{x}$",http://dlmf.nist.gov/18.1#EGx2, +\bigqJacobi{n}@@{x}{a}{b}{c}{q},big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobi, +\bigqJacobiIVparam{n}@@{x}{a}{b}{c}{d}{q},big $q$-Jacobi polynomial with four parameters,big-q-Jacobi-polynomial-four-parameters-P,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam, +\bigqLaguerre{n}@{x}{a}{b}{q},big $q$-Laguerre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre, +\bigqLegendre{n}@{x}{c}{q},big $q$-Legendre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLegendre, +\binom{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 +\binomial{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 +\cDiff[x],central difference,EMPTY,O|F,"$\,\delta_{x}$",http://dlmf.nist.gov/18.1#EGx3, +\card,number of elements of a finite set,EMPTY,SN|F,$\left|A\right|$,http://dlmf.nist.gov/26.1, +\cartprod,$G\cartprod H$: Cartesian product of groups $G$ and $H$,EMPTY,O|F,$\times$,http://dlmf.nist.gov/23.1, +\ceiling{x},ceiling,EMPTY,I|F,$\left\lceil a\right\rceil$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r17, +\conj{z},complex conjugate,EMPTY,O|F,$\overline{a}$,http://dlmf.nist.gov/1.9#E11, +\cos@@{z},cosine function,cos,F|F:P:nP,$\mathrm{cos}$,http://dlmf.nist.gov/4.14#E2, +\cosh@@{z},hyperbolic cosine function,hyperbolic-cosine,F|F:P:nP,$\mathrm{cosh}$,http://dlmf.nist.gov/4.28#E2, +\cosintg@{a}{z},generalized cosine integral ${\rm ci}$,generalized-cosine-integral-ci,F|F:P,$\mathrm{ci}$,http://dlmf.nist.gov/8.21#E1, +\cot@@{z},cotangent function,cotangent,F|F:P:nP,$\mathrm{cot}$,http://dlmf.nist.gov/4.14#E7, +\coth@@{z},hyperbolic cotangent function,hyperbolic-cotangent,F|F:P:nP,$\mathrm{coth}$,http://dlmf.nist.gov/4.28#E7, +\cpi,ratio of a circle's circumference to its diameter,ratio-of-a-circle's-circumference-to-its-diameter,C|F,$\pi$,http://dlmf.nist.gov/5.19.E4, +\csc@@{z},cosecant function,cosecant,F|F:P:nP,$\mathrm{csc}$,http://dlmf.nist.gov/4.14#E5, +\csch@@{z},hyperbolic cosecant function,hyperbolic-cosecant,F|F:P:nP,$\mathrm{csch}$,http://dlmf.nist.gov/4.28#E5, +\ctsHahn{n}@@{x}{a}{b}{c}{d},continuous Hahn polynomial,continuous-Hahn-polynomial,P|F:P:PS,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, +\ctsbigqHermite{n}@{x}{a}{q},continuous big $q$-Hermite polynomial,EMPTY,P|F:P,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite, +\ctsdualHahn{n}@@{x^2}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-normalized-S,P|F:P:PS,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, +\ctsdualqHahn{n}@{x}{a}{b}{c}{q},continuous dual $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn, +\ctsqHahn{n}@{x}{a}{b}{c}{d}{q},continuous $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHahn, +\ctsqHermite{n}@@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P:PS,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHermite, +\ctsqJacobi{\alpha}{\beta}{m}@{x}{q},continuous $q$-Jacobi polynomial,EMPTY,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi, +\ctsqJacobiRahman{n}@@{x}{q},continuous $q$-Jacobi-Rahman-polynomial,continuous-q-Jacobi-Rahman-polynomial-P,P|F:P:PS,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobiRahman, +\ctsqLaguerre{\alpha}{n}@{x}{q},continuous $q$-Laguerre polynomial,EMPTY,P|F:P,$P^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre, +\ctsqLegendre{n}@@{x}{q},continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre, +\ctsqLegendreRahman{n}@@{x}{q},continuous $q$-Legendre-Rahman polynomial,continuous-q-Legendre-Rahman-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendreRahman, +\ctsqUltra{n}@{x}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, +\ctsqUltrae{n}@{e^{i\theta}}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial exponential argument,continuous-q-ultraspherical-Rogers-polynomial-exponential-argument,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqUltrae, +\curl,curl of vector-valued function,EMPTY,F|F,$\nabla\times$,http://dlmf.nist.gov/1.6#E22, +\deltaDistribution,Dirac delta distribution,Dirac delta distribution,D|F,$\delta_x$,http://dlmf.nist.gov/1.17.i, +\deriv{f}{x},derivative,EMPTY,O|F,$\deriv{}{x}}$,http://dlmf.nist.gov/1.4#E4, +\det,determinant,EMPTY,L|F,$\det$,http://dlmf.nist.gov/1.3#i, +\diag,diagonal part of a matrix,EMPTY,L|F,$\diag[\Matrix{a}]$,http://dlmf.nist.gov/21.5.E7, +\diff{x},differential,EMPTY,O|F,$\mathrm{d}^nx$,http://dlmf.nist.gov/1.4#iv, +\digamma@{z},psi (or digamma) function,digamma,F|F:P,$\psi$,http://dlmf.nist.gov/5.2#E2, +\discrqHermiteI{n}@@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P:PS,$h_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI, +\discrqHermiteII{n}@@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-h-tilde,P|F:P:PS,$\tilde{h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII, +\divergence,divergence of vector-valued function,EMPTY,F|F,$\mathrm{div}$,http://dlmf.nist.gov/1.6#E21, +\divides,divides,EMPTY,O|F,$\nabla\cdot$,http://dlmf.nist.gov/24.1, +\dualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-polynomial-R,P|F:P:PS,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, +\dualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},dual $q$-Hahn polynomial,dual-q-Hahn-R,P|F:P:PS,$R_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqHahn, +\dualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk, +\erf@@{z},error function,error-function,F|F:P:nP,$\mathrm{erf}$,http://dlmf.nist.gov/7.2#E1, +\erfc@@{z},complementary error function,repeated-integral-complementary-error-function,F|F:P:nP,$\mathrm{erfc}$,http://dlmf.nist.gov/7.2#E2, +\erfw@@{z},complementary error function $w$,error-function-w,F|F:P:nP,$w$,http://dlmf.nist.gov/7.2#E3, +\exp@@{z},exponential function,exponential,F|F:P:nP,$\mathrm{exp}$,http://dlmf.nist.gov/4.2#E19, +\expe,the base of the natural logarithm,EMPTY,F|F,$\mathrm{e}$,http://dlmf.nist.gov/4.2.E11, +\exptrace@{\Matrix{X}},exponential of trace of a matrix,exponential-trace,L|F:P,$\mathrm{etr}$,http://dlmf.nist.gov/35.1#p3.t1.r10, +\f{f}@{x},function,EMPTY,SM|F:P,${f}$,http://drmf.wmflabs.org/wiki/Definition:f, +\fDiff,forward difference operator,EMPTY,O|F,"$\,\Delta_{y}$",http://dlmf.nist.gov/3.6#SS1.p1, +\floor{x},floor,EMPTY,I|F,$\left\lfloor a\right\rfloor$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16, +\forall,for every,EMPTY,Q|F,$\forall$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r11, +\gradient,gradient of differentiable scalar function,EMPTY,F|F,$\nabla$,http://dlmf.nist.gov/1.6#E20, +"\idem@{\chi_1}{\chi_1,...,\chi_n}",$\idem$ function,idem,F|F:P,$\mathrm{idem}$,http://dlmf.nist.gov/17.1#p3, +\ifrac,semantic slash fraction,EMPTY,SM|F,$(a)/(b)$,http://dlmf.nist.gov/4.2.E8, +\imagpart{z},imaginary part,EMPTY,O|F,"$\Im {z}$",http://dlmf.nist.gov/1.9#E2, +\in,element of,EMPTY,Q|F,$\in$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r9, +\incgamma@{a}{z},incomplete gamma function $\gamma$,incomplete-gamma,F|F:P,$\gamma$,http://dlmf.nist.gov/8.2#E1, +\incgammastar@{a}{z},incomplete gamma function $\gamma^{*}$,incomplete-gamma-star,F|F:P,$\gamma^{*}$,http://dlmf.nist.gov/8.2#E6, +\inf,greatest lower bound (infimum),EMPTY,Q|F,$\mathrm{inf}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r24, +\int,integral,EMPTY,F|F,$\int$,http://dlmf.nist.gov/1.4#iv, +\inverf@@{x},inverse error function,inverse-error-function,F|F:P:nP,$\mathrm{inverf}$,http://dlmf.nist.gov/7.17#E1, +\inverfc@@{x},inverse complementary error function,inverse-complementary-error-function,F|F:P:nP,$\mathrm{inverfc}$,http://dlmf.nist.gov/7.17#E1, +\iunit,imaginary unit,EMPTY,C|F,$\mathrm{i}$,http://dlmf.nist.gov/1.9.i, +\liminf,least limit point,EMPTY,Q|F,$\mathrm{liminf}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r4, +\littleo@{x},order less than,little-o,Q|F:P,$o$,http://dlmf.nist.gov/2.1#E2, +\littleqJacobi{n}@@{x}{a}{b}{q},little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-p,P|F:P:PS,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqJacobi, +\littleqLaguerre{n}@{x}{a}{q},little $q$-Laguerre / Wall polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre, +\littleqLegendre{m}@{x}{q},little $q$-Legendre polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLegendre, +\ln@@{z},principal branch of logarithm function,natural-logarithm,F|F:P:nP,$\mathrm{ln}$,http://dlmf.nist.gov/4.2#E2, +\log@@{z},principle branch of natural logarithm,logarithm,F|F:P:nP,$\mathrm{log}$,http://dlmf.nist.gov/4.2#E2, +\logb{a}@@{z},logarithm to general base,logarithm,F|F:P:nP,$\mathrm{log}_{b}$,http://dlmf.nist.gov/4.2#EGx1, +\lrselection,bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right\}$,http://drmf.wmflabs.org/wiki/Definition:Lrselection, +\lselection,left bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right.$,http://dlmf.nist.gov/28.4.E22, +\mEulerBeta{m}@{a}{b},multivariate beta function,multivariate-Euler-Beta,F|F:P,$\mathrm{B}_{m}$,http://dlmf.nist.gov/35.3#E3, +\mEulerGamma{m}@{a},multivariate gamma function,multivariate-Euler-Gamma,F|F:P,$\Gamma_{m}$,http://dlmf.nist.gov/35.3#i, +\mod,modulo,EMPTY,Q|F,$\mod$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r10, +\monicAffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,$\widehat{K}^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk, +\monicAlSalamCarlitzI{a}{n}@@{x}{q},monic Al-Salam-Carlitz I polynomial,q-Al-Salam-Carlitz-I-polynomial-monic-p,P|F:P:PS,${\widehat U}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI, +\monicAlSalamCarlitzII{a}{n}@@{x}{q},monic Al-Salam-Carlitz II polynomial,q-Al-Salam-Carlitz-II-polynomial-monic-p,P|F:P:PS,${\widehat V}^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII, +\monicAlSalamChihara{n}@@{x}{a}{b}{q},monic Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara, +\monicAskeyWilson{n}@@{x}{a}{b}{c}{d}{q},monic Askey-Wilson polynomial,Askey-Wilson-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson, +\monicBesselPoly{n}@@{x}{a},monic Bessel polynomial,Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly, +\monicCharlier{n}@@{x}{a},monic Charlier polynomial,Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicCharlier, +\monicChebyT{n}@@{x},monic Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-monic-p,P|F:P:PS,${\widehat T}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyT, +\monicChebyU{n}@@{x},monic Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-monic-p,P|F:P:PS,${\widehat U}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyU, +\monicHahn{n}@@{x}{\alpha}{\beta}{N},monic Hahn polynomial,Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHahn, +\monicHermite{n}@@{x},monic Hermite polynomial,Hermite-polynomial-monic,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHermite, +\monicJacobi{n}@@{x},monic Jacobi polynomial,Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicJacobi, +\monicKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic Krawtchouk polynomial,Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk, +\monicLaguerre{n}@@{x},monic Laguerre polynomial,generalized-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{\alpha}_n$,http://drmf.wmflabs.org/wiki/Definition:monicLaguerre, +\monicLegendrePoly{n}@@{x},monic Legendre polynomial,Legendre-spherical-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly, +\monicMeixner{n}@@{x}{\beta}{c},monic Meixner polynomial,Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixner, +\monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi},monic Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek, +\monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta},monic Racah polynomial,Racah-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicRacah, +\monicStieltjesWigert{n}@@{x}{q},monic Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert, +\monicUltra{n}@@{x},monic ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial-monic-p,P|F:P:PS,${\widehat C}^{\mu}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicUltra, +\monicWilson{n}@@{x^2}{a}{b}{c}{d},monic Wilson polynomial,Wilson-polynomial-monic-p,P|F:P:PS,${\widehat W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicWilson, +\monicbigqJacobi{n}@@{x}{a}{b}{c}{q},monic big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi, +\monicbigqLaguerre{n}@@{x}{a}{b}{q},monic big $q$-Laguerre polynomial,big-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre, +\monicbigqLegendre{n}@@{x}{c}{q},monic big $q$-Legendre polynomial,big-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre, +\monicctsHahn{n}@@{x}{a}{b}{c}{d},monic continuous Hahn polynomial,continuous-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsHahn, +\monicctsbigqHermite{n}@@{x}{a}{q},monic continuous big $q$-Hermite polynomial,continuous-big-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite, +\monicctsdualHahn{n}@@{x^2}{a}{b}{c}{d},monic continuous dual Hahn polynomial,continuous-dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn, +\monicctsdualqHahn{n}@@{x^2}{a}{b}{c},monic continuous dual $q$-Hahn polynomial,continuous-dual-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn, +\monicctsqHahn{n}@@{x}{a}{b}{c}{d}{q},monic continuous $q$-Hahn polynomial,continuous-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn, +\monicctsqHermite{n}@@{x}{q},monic continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite, +\monicctsqJacobi{n}@@{x}{q},monic continuous $q$-Jacobi polynomial,continuous-q-Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi, +\monicctsqLaguerre{n}@@{x}{q},monic continuous $q$-Laguerre polynomial,continuous-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre, +\monicctsqLegendre{n}@@{x}{q},monic continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre, +\monicctsqUltra{n}@@{x}{\beta}{q},monic continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra, +\monicdiscrqHermiteI{n}@@{x}{q},monic discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-I-monic-p,P|F:P:PS,${\widehat h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI, +\monicdiscrqHermiteII{n}@@{x}{q},monic discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-monic-p,P|F:P:PS,${\widehat \tilde{p}_{n}}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII, +\monicdualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},monic dual Hahn polynomial,dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualHahn, +\monicdualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},monic dual $q$-Hahn polynomial,dual-q-Hahn-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn, +\monicdualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},monic dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk, +\moniclittleqJacobi{n}@@{x}{a}{b}{q},monic little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi, +\moniclittleqLaguerre{n}@@{x}{a}{q},monic little $q$-Laguerre/Wall polynomial,little-q-Laguerre-Wall-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre, +\moniclittleqLegendre{n}@@{x}{q},monic little $q$-Legendre polynomial,little-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre, +\monicpseudoJacobi{n}@@{x}{\nu}{N},monic pseudo-Jacobi polynomial,pseudo-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi, +\monicqBesselPoly{n}@@{x}{a}{q},monic $q$-Bessel polynomial,q-Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqBessel, +\monicqCharlier{n}@@{q^{-x}}{a}{q},monic $q$-Charlier polynomial,q-Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqCharlier, +\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},monic $q$-Hahn polynomial,q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqHahn, +\monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic $q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk, +\monicqLaguerre{n}@@{x}{q},monic $q$-Laguerre polynomial,q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre, +\monicqMeixner{n}@@{q^{-x}}{b}{c}{q},monic $q$-Meixner polynomial,q-Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixner, +\monicqMeixnerPollaczek{n}@@{x}{a}{q},monic $q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek, +\monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q},monic $q$-Racah polynomial,q-Racah-polynomial-monic-R,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqRacah, +\monicqinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},monic $q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-monic-p,P|F:P,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara, +\monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K^{\mathrm{qtm}}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk, +"\multinomial{n_1+n_2+\dots+n_k}{n_1,...,n_k}",multinomial coefficient,EMPTY,I|F,$\left(A;B\right)$,http://dlmf.nist.gov/26.4.E2, +\ninej@@{j_{11}}{j_{12}}{j_{13}}{j_{21}}{j_{22}}{j_{23}}{j_{31}}{j_{32}}{j_{33}},$\ninej$ symbol,EMPTY,F|F:P:nP,$$,http://dlmf.nist.gov/34.6#E1, +\normAskeyWilsonptilde{n}@@{x}{a}{b}{c}{d}{q},normalized Askey-Wilson polynomial ${\tilde p}$,Askey-Wilson-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normAskeyWilsonptilde, +\normJacobiR{\alpha}{\beta}{n}@{x},normalized Jacobi polynomial,Jacobi-polynomial-R,P|F:P,"$R^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normJacobiR, +\normWilsonWtilde{n}@@{x^2}{a}{b}{c}{d},normalized Wilson polynomial ${\tilde W}$,Wilson-polynomial-normalized-W-tilde,P|F:P:PS,${\tilde W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde, +\normctsHahnptilde{n}@@{x}{a}{b}{c}{d},normalized continuous Hahn polynomial ${\tilde p}$,continuous-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde, +\normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}{d},normalized continuous dual Hahn polynomial ${\tilde S}$,continuous-dual-Hahn-polynomial-normalized-S-tilde,P|P:PS,${\tilde S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde, +\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q},normalized continuous dual $q$-Hahn polynomial ${\tilde p}$,continuous-dual-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde, +\normctsqHahnptilde{n}@@{x}{a}{b}{c}{d}{q},normalized continuous $q$-Hahn polynomial ${\tilde p}$,continuous-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde, +\normctsqJacobiPtilde{n}@@{x}{q},normalized continuous $q$-Jacobi polynomial ${\tilde P}$,continuous-q-Jacobi-polynomial-P-tilde,P|F:P:PS,"${\tilde P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normctsqJacobiPtilde, +\notin,not an element of,EMPTY,Q|F,$\notin$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r10, +\opminus,negative unity to an integer power,EMPTY,I|F,$(-1)$,http://dlmf.nist.gov/5.7.E7, +\pderiv{f}{x},partial derivative,EMPTY,O|F,$\frac{\partial f}{\partial x}$,http://dlmf.nist.gov/1.5#E3, +\pdiff{x},power of a partial differential,EMPTY,O|F,"$\partial^nx$",http://dlmf.nist.gov/1.5#E3, +\pgcd,greatest common divisor,EMPTY,I|F,"$\left(m,n\right)$",http://dlmf.nist.gov/27.1, +\ph@@{z},phase,phase,O|F:P:nP,$\mathrm{ph}$,http://dlmf.nist.gov/1.9#E7, +\pochhammer{a}{n},Pochhammer symbol,EMPTY,F|F,$(a)_n$,http://dlmf.nist.gov/5.2#iii, +\poly{p}{n}@{x},polynomial,EMPTY,SM|F:P,${p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:poly, +\polygamma{n}@{z},polygamma functions,polygamma,F|F:P,$\psi^{(n)}$,http://dlmf.nist.gov/5.15, +\power,power function,EMPTY,F|F,$x^y$,http://dlmf.nist.gov/36.12.E9, +\prod,product,EMPTY,SM|F,$\Pi$,http://drmf.wmflabs.org/wiki/Definition:prod, +\pseudoJacobi{n}@{x}{\nu}{N},pseudo Jacobi polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi, +\psfactorial{a}{\kappa},partitional shifted factorial,EMPTY,F|F,${\left[a\right]_{\kappa}}$,http://dlmf.nist.gov/35.4#E1, +\pvint,Cauchy principal value,EMPTY,O|F,$\pvint_a^b$,http://dlmf.nist.gov/1.4#E24, +\qAppelli@{a}{b}{b'}{c}{q}{x}{y},first $q$-Appell function,q-Appell-Phi-1,F|F:P,$\Phi^{(1)}$,http://dlmf.nist.gov/17.4.E5, +\qAppellii@{a}{b}{b'}{c}{c'}{q}{x}{y},second $q$-Appell function,q-Appell-Phi-2,F|F:P,$\Phi^{(2)}$,http://dlmf.nist.gov/17.4.E6, +\qAppelliii@{a}{a'}{b}{b'}{c}{q}{x}{y},third $q$-Appell function,q-Appell-Phi-3,F|F:P,$\Phi^{(3)}$,http://dlmf.nist.gov/17.4.E7, +\qAppelliv@{a}{b}{c}{c'}{q}{x}{y},fourth $q$-Appell function,q-Appell-Phi-4,F|F:P,$\Phi^{(4)}$,http://dlmf.nist.gov/17.4.E8, +\qBernoulli{n}@{x}{q},$q$-Bernoulli polynomial,q-Bernoulli-polynomial,P|F:P,$\beta_{q}$,http://dlmf.nist.gov/17.3#E7, +\qBesselPoly{n}@{x}{b}{q},$q$-Bessel polynomial,EMPTY,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:qBessel, +\qBeta{q}@{a}{b},$q$-beta function,q-Beta,F|F:P,$\mathrm{B}_{q}$,http://dlmf.nist.gov/5.18#E11, +\qBinomial{n}{m}{q},$q$-binomial coefficient (or Gaussian polynomial),EMPTY,F|F,$\left[n \atop m\right]_{q}$,http://dlmf.nist.gov/17.2#E27,http://dlmf.nist.gov/26.9#SS2.p1 +\qCharlier{n}@{x}{c}{q},$q$-Charlier polynomial,EMPTY,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:qCharlier, +\qCos{q}@@{x},$q$-analogue of the $\cos$ function: ${\rm Cos}_q$,q-Cos,F|F:nP:P,$\mathrm{Cos}_{q}$,http://dlmf.nist.gov/17.3#E6, +\qCosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\mathrm{Cos}_{q}$,q-Cos-KLS,P|F:nP:P,$\mathrm{Cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qCosKLS, +\qDigamma{q}@{z},$q$-digamma function,q-digamma,F|F:P,$\psi_{q}$,http://drmf.wmflabs.org/wiki/Definition:qDigamma, +\qEuler{m}{s}@{q},$q$-Euler number,q-Euler-number,F|F:P,"$A_{m,n}$",http://dlmf.nist.gov/17.3#E8, +\qExp{q}@@{x},$q$-analogue of the $\exp$ function: $E_q$,q-Exp,F|F:nP:P,$E_{q}$,http://dlmf.nist.gov/17.3#E2, +\qExpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{E}_{q}$,q-Exp-KLS,F|F:nP:P,$\mathrm{E}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qExpKLS, +\qFactorial{n}{q},$q$-factorial,q-factorial,F|F,$n!_q$,http://dlmf.nist.gov/5.18#E2, +\qGamma{q}@{z},$q$-gamma function,q-gamma,F|F:P,$\Gamma_{q}$,http://dlmf.nist.gov/5.18#E4, +\qHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:qHahn, +\qHahnQ{n}@{x}{\alpha}{\beta}{N}{q},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.27#E3, +\qHermiteH{n}@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.28#E16, +\qHermitehI{n}@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P,$h_{n}$,http://dlmf.nist.gov/18.27#E21, +\qHermitehII{n}@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-h-II,P|F:P,$\tilde{h}_{n}$,http://dlmf.nist.gov/18.27#E23, +"\qHyperrWs{r}{r+1}@@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}",very-well-poised basic hypergeometric (or $q$-hypergeometric) function,very-well-poised-q-hypergeometric-rWs,F|F:fo1:fo2:fo3,${{}_{r+1}W_{r}}$,http://drmf.wmflabs.org/wiki/Definition:qHyperrWs, +"\qHyperrphis{r}{s}@@@{a_1,...a_r}{b_1,...,b_s}{q}{z}",basic hypergeometric (or $q$-hypergeometric) function,q-hypergeometric-rphis,F|F:fo1:fo2:fo3,${{}_{r}\phi_{s}}$,http://dlmf.nist.gov/17.4#E1, +"\qHyperrpsis{r}{s}@@@{a_1,...,a_r}{b_1,...,b_s}{q}{z}",bilateral basic hypergeometric (or bilateral $q$-hypergeometric) function,q-hypergeometric-rpsis,F|F:fo1:fo2:fo3,${{}_{r}\psi_{s}}$,http://dlmf.nist.gov/17.4#E3, +\qJacobiP{n}@{x}{a}{b}{c}{q},"big $q$-Jacobi polynomial $P_n(x;a,b,c;q)$",q-Jacobi-polynomial-P,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.27#E5, +\qJacobiPP{\alpha}{\beta}{n}@{x}{c}{d}{q},"big $q$-Jacobi polynomial $P_n^{(\alpha,\beta)}(x;c,d;q)$",big-q-Jacobi-polynomial-P-type-2,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.27#E6, +\qJacobip{n}@{x}{a}{b}{q},little $q$-Jacobi polynomial,q-Jacobi-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.27#E13, +\qKrawtchouk{n}@@{q^{-x}}{p}{N}{q},$q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk, +\qLaguerre[\alpha]{n}@@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:nPnO:F:P:PS,$L_n^{(\alpha)}$,http://drmf.wmflabs.org/wiki/Definition:qLaguerre, +\qLaguerreL[\alpha]{n}@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.27#E15, +\qLegendre{n}@{x}{q},continuous $q$-Legendre polynomial,EMPTY,P|F:P,$\qLegendre{n}$,http://drmf.wmflabs.org/wiki/Definition:qLegendre, +\qMeixner{n}@{x}{b}{c}{q},$q$-Meixner polynomial,q-Meixner-polynomial-M,P|F:P,$M_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixner, +\qMeixnerPollaczek{n}@{x}{a}{q},$q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-M,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek, +"\qMultiPochhammer{a_1,\ldots,a_n}{q}{n}",$q$-multi-Pochhammer symbol,q-multi-Pochhammer,F|F,"$\(a_1,\ldots,a_k;q)_n$",http://dlmf.nist.gov/17.2.E5, +"\qMultinomial{a_1+\ldots+a_n}{a_1,\ldots,a_n}{q}",$q$-multinomial,q-multinomial,F|F,"$\left[a_1+\ldots+a_n \atop a_1,\ldots,a_n\right]_{q}$",http://dlmf.nist.gov/26.16.E1, +\qPochhammer{a}{q}{n},$q$-Pochhammer symbol,EMPTY,F|F,$(a;q)_n$,http://dlmf.nist.gov/5.18#i,http://dlmf.nist.gov/17.2#SS1.p1 +\qPolygamma{n}{q}@{z},$q$-polygamma function,q-polygamma,F|F:P,$\psi_{q}^{(n)}$,http://drmf.wmflabs.org/wiki/Definition:qPolygamma, +\qRacah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, +\qRacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, +\qSin{q}@@{x},$q$-analogue of the $\sin$ function: ${\rm Sin}_q$,q-Sin,F|F:nP:P,$\mathrm{Sin}_{q}$,http://dlmf.nist.gov/17.3#E4, +\qSinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\mathrm{Sin}_q$,q-Sin-KLS,F|F:nP:P,$\mathrm{Sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qSinKLS, +\qStirling{m}{s}@{q},$q$-Stirling number,q-Stirling-number,F|F:P,"$a_{m,s}$",http://dlmf.nist.gov/17.3#E9, +\qUltraspherical{n}@{x}{\beta}{q},continuous $q$-ultraspherical polynomial,q-ultraspherical-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, +\qcos{q}@@{x},$q$-analogue of the $\cos$ function: $\cos_q$,q-cos,F|F:nP:P,$\mathrm{cos}_{q}$,http://dlmf.nist.gov/17.3#E5, +\qcosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\cos_q$,q-cos-KLS,P|F:nP:P,$\mathrm{cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qcosKLS, +\qderiv[n]{q}@{z},$q$-derivative,q-derivative,O|FO:PO:FnO:PnO,$\mathcal{D}_q^n$,http://drmf.wmflabs.org/wiki/Definition:qderiv, +\qdiff{q}{x},$q$-differential,EMPTY,O|F,"${\mathrm d}^n_qx$",http://dlmf.nist.gov/17.2#SS5.p1, +\qexp{q}@@{x},$q$-analogue of the $\exp$ function: $e_q$,q-exp,F|F:nP:P,$e_{q}$,http://dlmf.nist.gov/17.3#E1, +\qexpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{e}_{q}$,q-exp-KLS,F|F:nP:P,$\mathrm{e}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qexpKLS, +\qinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},$q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/23.1, +\qinvHermiteh{n}@{x}{q},continuous $q$-inverse Hermite polynomial,continuous-q-inverse-Hermite-polynomial-h,P|F:P,$h_{n}$,http://dlmf.nist.gov/23.1, +\qsin{q}@@{x},$q$-analogue of the $\sin$ function: $\sin_q$,q-sin,F|F:nP:P,$\mathrm{sin}_{q}$,http://dlmf.nist.gov/17.3#E3, +\qsinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\sin_q$,q-sin-KLS,F|F:nP:P,$\mathrm{sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qsinKLS, +\qtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{qtm}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk, +\realpart{z},real part,EMPTY,O|F,"$\Re {z}$",http://dlmf.nist.gov/1.9#E2, +\terminant{p}@{z},terminant function,terminant-function,F|F:P,$F_{p}$,http://dlmf.nist.gov/2.11#E11, +\rescaledTerminant{p}@{z},rescaled terminant functions,rescaled-terminant-function,F|F:P,$G_{p}$,http://dlmf.nist.gov/9.7#SS5.p1, +\rselection,right bracketed generalization of $\pm$,EMPTY,SM|F,$\left.\begin{matrix}x\end{matrix}\right\$,http://dlmf.nist.gov/28.4.E22, +\sec@@{z},secant function,secant,F|F:P:nP,$\mathrm{sec}$,http://dlmf.nist.gov/4.14#E6, +\sech@@{z},hyperbolic secant function,hyperbolic-secant,F|F:P:nP,$\mathrm{sech}$,http://dlmf.nist.gov/4.28#E6, +\selection,generalization of $\pm$,EMPTY,SM|F,$\;\begin{matrix}x\end{matrix}\;$,http://dlmf.nist.gov/10.23.E7, +\setminus,set subtraction,EMPTY,Q|F,$\setminus$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r19, +\setmod,$S_1 \setmod S_2$: set of all elements of $S_1$ modulo elements of $S_2$,EMPTY,SN|F,$/$,http://dlmf.nist.gov/21.1#p2.t1.r17, +\sign@@{x},sign function,sign,F|F:P:nP,$\mathrm{sign}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r18, +\sim,asymptotic equality,EMPTY,Q|F,$\tilde$,http://dlmf.nist.gov/2.1#E1, +\sin@@{z},sine function,sin,F|F:P:nP,$\mathrm{sin}$,http://dlmf.nist.gov/4.14#E1, +\sinInt@{z},sine integral ${\rm si}$,shifted-sine-integral,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/6.2#E10, +\sinh@@{z},hyperbolic sine function,hyperbolic-sine,F|F:P:nP,$\mathrm{sinh}$,http://dlmf.nist.gov/4.28#E1, +\sinintg@{a}{z},generalized sine integral ${\rm si}$,generalized-sine-integral-si,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/8.21#E1, +\sixj@@{j_{1}}{j_{2}}{j_{3}}{l_{1}}{l_{2}}{l_{3}},$\sixj$ symbol,EMPTY,F|F:P:nP,$\left\{\begin{array}{ccc}j_1 & j_2 & j_3\\l_1 & l_2 & l_3\end{array}\right\}$,http://dlmf.nist.gov/23.1, +\subset,is contained in,EMPTY,Q|F,$\subset$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r2, +\subseteq,is in or is contained in,EMPTY,Q|F,$\subseteq$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r3, +\sum,sum,EMPTY,SM|F,$\Sigma$,http://drmf.wmflabs.org/wiki/Definition:sum, +\sup,least upper bound (supremum),EMPTY,Q|F,$\mathrm{sup}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r25, +\tan@@{z},tangent function,tangent,F|F:P:nP,$\mathrm{tan}$,http://dlmf.nist.gov/4.14#E4, +\tanh@@{z},hyperbolic tangent function,hyperbolic-tangent,F|F:P:nP,$\mathrm{tanh}$,http://dlmf.nist.gov/4.28#E4, +\threej@@{j_1}{j_2}{j_3}{m_1}{m_2}{m_3},$\threej$ symbol,EMPTY,F|F:P:nP,$\left(\begin{array}{ccc}j_1 & j_2 & j_3\\m_1 & m_2 & m_3\end{array}\right)$,http://dlmf.nist.gov/34.2#E4, +\trace,trace of matrix,trace,L|F,$\mathrm{etr}$,http://dlmf.nist.gov/23.1, +\transpose,transpose of a matrix,EMPTY,L|F,$A^{\mathrm{T}}$,http://dlmf.nist.gov/1.3.E5, +\weight{w}@{x},weight function,EMPTY,SM|F:P,${w}$,http://drmf.wmflabs.org/wiki/Definition:weight, +\wigner{j_1}{m_1}{j_2}{m_2}{j_3}{-m_3},Clebsch-Gordan coefficient,EMPTY,F|F,"$\left(j_{1}\;m_{1}\;j_{2}\;m_{2} | j_{1}\;j_{2}\; j_{3}\,\,-m_{3}\right)$",http://dlmf.nist.gov/34.1#p4, +\BesselPolyIIparam{n}@{x}{a}{b},Bessel polynomial with two parameters $y_n$,Bessel-polynomial-two-parameters-y,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam, +\BesselPolyTheta{n}@{x}{a}{b},Bessel polynomial with two parameters $\theta_n$,Bessel-polynomial-two-parameters-theta,P|F:P,$\theta_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta, +\FourierTrans@{f}{s},Fourier transform,Fourier-transform,O|F:P,$\mathscr{F}$,http://dlmf.nist.gov/1.14#E1, +\Continuous@{A},space of continuous functions on a set $A$,set-of-continuous-functions,S|F,$C(A)$,http://dlmf.nist.gov/1.4#ii, +\SpaceTestFunTempered@{A},space of test functions for tempered distributions,space-of-test-functions-for-tempered-distributions-T,S|F,${\mathcal T}(\Real)$,http://dlmf.nist.gov/1.16#v, diff --git a/Pipeline/src/pipeline.py b/Pipeline/src/pipeline.py new file mode 100644 index 0000000..37c5cc7 --- /dev/null +++ b/Pipeline/src/pipeline.py @@ -0,0 +1,31 @@ +import glob +import sys + +sys.path.append('../../AlexDanoff/src') +from utilities import readin as readin +from utilities import writeout +from remove_excess import remove_excess as step1 +from replace_special import remove_special as step2 +from prepare_annotations import prepare_annotations as step3 + +sys.path.append('../../Azeem/src') +from tex2Wiki import readin as step4 +from tex2Wiki import writeout as step5 + + +# step1 = imp.load_source('remove_excess','../../AlexDanoff/src/remove_excess.py') + +def main(): + if len(sys.argv) != 2: + pattern = "../../data/[0-9]*ZE.tex" # [A-Z][A-Z] + else: + pattern = sys.argv[1] + for fname in glob.glob(pattern): + print "Processing " + fname + writeout(fname + "-processed.tex", step3(step2(step1(readin(fname))))) + step4(fname + "-processed.tex") + step5(fname + "-dump.xml") + + +if __name__ == "__main__": + main() From 213c341d3197b0aa711a4ee072f787690ceb7f0d Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Wed, 2 Mar 2016 16:37:55 +0100 Subject: [PATCH 046/402] Use Formula namespace for formulae --- Azeem/src/tex2Wiki.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 9003bfe..5578db1 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -203,6 +203,7 @@ def modLabel(line): start_label = line.find("\\label{") + 7 end_label = line.find("}", start_label) label = line[start_label:end_label] + label = label.replace('eq:', 'Formula:') isNumer = False newlabel = "" num = "" From 553f46a73d69759e6ed6ea1bc0418ea3ea9d063a Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Wed, 2 Mar 2016 17:57:41 +0100 Subject: [PATCH 047/402] Don't replace formula prefix * the formula prefix is needed by the wiki to create links to the formula homepages --- Azeem/src/tex2Wiki.py | 99 ++----------------------------------------- 1 file changed, 3 insertions(+), 96 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 5578db1..f4d2b46 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -87,7 +87,7 @@ def getEq(line): # Gets all data within constraints,substitutions elif count > 0 and per == 0: # not special character stringWrite += c # write the character - return (stringWrite.rstrip().lstrip()) + return stringWrite.rstrip().lstrip() def getEqP(line, Flag): # Gets all data within proofs @@ -133,7 +133,7 @@ def getEqP(line, Flag): # Gets all data within proofs elif count > 0 and per == 0: stringWrite += c - return (stringWrite.lstrip()) + return stringWrite.lstrip() def getSym(line): # Gets all symbols on a line for symbols list @@ -197,7 +197,6 @@ def secLabel(label): def modLabel(line): - # label.replace("Formula:KLS:","KLS;") start_label = line.find("\\formula{") + 9 if start_label == 8: start_label = line.find("\\label{") + 7 @@ -211,12 +210,10 @@ def modLabel(line): if isNumer and not isnumber(label[i]): if len(num) > 1: newlabel += num - isNumer = False num = "" else: newlabel += "0" + str(num) num = "" - isNumer = False if isnumber(label[i]): isNumer = True num += str(label[i]) @@ -279,13 +276,7 @@ def readin(ofname): mainText = main.read() mainPrepend = "" mainWrite = open("OrthogonalPolynomials.mmd.new", "w") - tester = open("testData.txt", 'w') - # glossary=open('Glossary', 'r') glossary = open('new.Glossary.csv', 'rb') - gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') - # lLinks=open('BruceLabelLinks', 'r') - lGlos = glossary.readlines() - # lLink=lLinks.readlines() math = False constraint = False substitution = False @@ -298,7 +289,6 @@ def readin(ofname): refEqs = [] parse = False head = False - # chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] refLabels = [] '''for c in chapRef: refLines=refLines+(c[1].readlines()) @@ -321,7 +311,6 @@ def readin(ofname): if "\\begin{document}" in line: parse = True elif "\\end{document}" in line and parse: - # append_text("
\n") mainPrepend += "
\n" mainText = mainPrepend + mainText mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") @@ -339,8 +328,6 @@ def readin(ofname): stringWrite += getString(line) + "\'\'\'\n" labels.append("Orthogonal Polynomials") sections.append(["Orthogonal Polynomials", 0]) - # append_text(stringWrite) - # mainPrepend+=stringWrite chapter = getString(line) mainPrepend += ( "\n== Sections in " + chapter + " ==\n\n
\n") @@ -387,7 +374,6 @@ def readin(ofname): head = True elif "\\begin{equation}" in line and parse: - # symLine="" if head: append_text("\n") head = False @@ -395,8 +381,7 @@ def readin(ofname): eqCounter += 1 labels.append(label) eqs.append("") - # append_text("\n\n") - append_text("") + append_text("") math = True elif "\\begin{equation}" in line and not parse: label = modLabel(line) @@ -414,7 +399,6 @@ def readin(ofname): substitution = True math = False subLine = "" - # append_text("
Substitution(s): "+getEq(line)+"

\n") elif "\\proof" in line and parse: math = False elif "\\drmfn" in line and parse: @@ -474,16 +458,6 @@ def readin(ofname): eqCounter = 0 endNum = len(labels) - 1 - '''for n in range(1,len(labels)): - if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": - labels[n]=""+labels[n] - endNum=n - elif labels[n][0]=="*": - labels[n]=""+labels[n][1:] - else: - labels[n]=""+labels[n]''' - '''for n in range(0,len(refLabels)): - refLabels[n]=""+refLabels[n]''' parse = False constraint = False substitution = False @@ -657,8 +631,6 @@ def readin(ofname): symbol = symbolPar[0:symbolPar.find("{")] else: symbol = symbolPar - numArg = parCx - numPar = ArgCx gFlag = False checkFlag = False get = False @@ -723,31 +695,11 @@ def readin(ofname): ap = "" else: ap += Q[o] - '''websiteU=g[g.find("http://"):].strip("\n") - k=0 - websites=[] - for r in range(0,len(websiteU)): - if websiteU[r]==",": - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - k=r - - - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - websiteF="" - for d in websites: - websiteF=websiteF+" ["+d+" "+d+"]"''' - # websiteF=G[4].strip("\n") websiteF = "" web1 = G[5] for t in range(5, len(G)): if G[t] != "": websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - - # p1=Q - # if Q.find("@")!=-1: - # p1=Q[:Q.find("@")] p1 = G[4].strip("$") p1 = "" + p1 + "" # if checkFlag: @@ -755,25 +707,6 @@ def readin(ofname): new2 = "" pause = False mathF = True - '''for k in range(0,len(p1)): - if p1[k]=="$": - if mathF: - new1+="" - else: - new1+="" - mathF=not mathF - - elif p1[k]=="#" and p1[k+1].isdigit(): - pause=True - elif pause: - num=int(p1[k]) - #letter=chr(num+96) - letter=listArgs[num-1] - new1+=letter - pause=False - - else: - new1+=p1[k]''' p2 = G[1] for k in range(0, len(p2)): if p2[k] == "$": @@ -788,30 +721,10 @@ def readin(ofname): p2 = new2 finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) break - # gFlag=True - # if not symF: - # symF=True - # append_text("[") - # else: - # append_text("
\n") - # append_text("[") - # append_text(g[g.find("http://"):].strip("\n")) - # append_text(" ") - # append_text(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - # append_text("] : ") - # append_text(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - # append_text(" : [") - # append_text(g[g.find("http://"):].strip("\n")) - # append_text(" ") - # append_text(g[g.find("http://"):].strip("\n")) - # append_text("] ")''' - - # preG=S if not gFlag: del newSym[s] gFlag = True - # finSym.reverse() if ampFlag: append_text("& : logical and") gFlag = False @@ -886,14 +799,12 @@ def readin(ofname): constraint = True math = False conLine = "" - # append_text("
"+getEq(line)+"

\n") elif "\\substitution" in line and parse: # symbols=symbols+getSym(line) symLine = line.strip("\n") if hSub: comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" hSub = False - # append_text("
"+getEq(line)+"

\n") substitution = True math = False subLine = "" @@ -962,14 +873,11 @@ def readin(ofname): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - # symLine+=line.strip("\n") append_text(comToWrite + getEqP(proofLine, False) + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" - # append_text(line) - elif proof: symLine += line.strip("\n") pauseP = False @@ -1011,7 +919,6 @@ def readin(ofname): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - # symLine+=line.strip("\n") append_text(comToWrite + getEqP(proofLine, False).rstrip("\n") + "\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) From 9632a53f5495c18deb500cb90cff1d930d482980 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 3 Mar 2016 17:27:58 -0500 Subject: [PATCH 048/402] fixed newcommands placement problems --- KLSadd_insertion/updateChapters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index a3d6ac1..09cab89 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -81,7 +81,7 @@ def insertCommands(kls, chap, cms): #find index of begin document in KLSadd index = 0 - for w in kls: + for word in kls: index+=1 if("begin{document}" in word): beginIndex += index From db24ced8b483f955777b8554058609cabddcd66e Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 5 Mar 2016 19:02:56 +0100 Subject: [PATCH 049/402] Don't replace formula prefix * the formula prefix is needed by the wiki to create links to the formula homepages --- Azeem/src/tex2Wiki.py | 50 +++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index f4d2b46..27c941f 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -23,7 +23,7 @@ def getString(line): # Gets all data within curly braces on a line # ---------------------------- for c in line: if c == "{" or c == "}": # if there is a curly brace in the line - getStr = not (getStr) # toggle the getStr flag + getStr = not getStr # toggle the getStr flag if c == "}": # no more info needed break elif getStr: # if within curly braces @@ -33,7 +33,7 @@ def getString(line): # Gets all data within curly braces on a line else: # replace $ with '' stringWrite += "\'\'" # add double ' pW = c # change last character for finding double dashes - return (stringWrite.rstrip('\n').lstrip()) # return the data without newlines and without leading spaces + return stringWrite.rstrip('\n').lstrip() # return the data without newlines and without leading spaces def getG(line): # gets equation for symbols list @@ -48,7 +48,7 @@ def getG(line): # gets equation for symbols list start = True else: final += c - return (final) + return final def getEq(line): # Gets all data within constraints,substitutions @@ -72,7 +72,7 @@ def getEq(line): # Gets all data within constraints,substitutions if count > 0: stringWrite += c elif c == "$" and per == 0: # either begin or end equation - fEq = not (fEq) # toggle fEq flag to know if begin or end equation + fEq = not fEq # toggle fEq flag to know if begin or end equation if fEq: # if begin stringWrite += "" else: # if end @@ -92,9 +92,9 @@ def getEq(line): # Gets all data within constraints,substitutions def getEqP(line, Flag): # Gets all data within proofs if Flag: - a = 1 + pass else: - a = 0 + pass per = 1 stringWrite = "" fEq = False @@ -117,7 +117,7 @@ def getEqP(line, Flag): # Gets all data within proofs if count > 0: stringWrite += c elif c == "$" and per == 0: - fEq = not (fEq) + fEq = not fEq if fEq: stringWrite += " " else: @@ -183,17 +183,17 @@ def getSym(line): # Gets all symbols on a line for symbols list # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: symList.append(symbol) symList += getSym(symbol) - return (symList) + return symList def unmodLabel(label): label = label.replace(".0", ".") label = label.replace(":0", ":") - return (label) + return label def secLabel(label): - return (label.replace("\'\'", "")) + return label.replace("\'\'", "") def modLabel(line): @@ -276,7 +276,6 @@ def readin(ofname): mainText = main.read() mainPrepend = "" mainWrite = open("OrthogonalPolynomials.mmd.new", "w") - glossary = open('new.Glossary.csv', 'rb') math = False constraint = False substitution = False @@ -381,7 +380,7 @@ def readin(ofname): eqCounter += 1 labels.append(label) eqs.append("") - append_text("") + append_text("") math = True elif "\\begin{equation}" in line and not parse: label = modLabel(line) @@ -422,7 +421,7 @@ def readin(ofname): u] or "\\end{document}" in lines[u]: flagM = False flagM2 = True - if not (flagM2): + if not flagM2: append_text(line.rstrip("\n")) append_text("\n
\n") @@ -443,14 +442,14 @@ def readin(ofname): i + 1] or "\\drmfn" in lines[i + 1]: math = False if substitution and parse: - subLine = subLine + line.replace("&", "&
") + subLine += line.replace("&", "&
") if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: substitution = False append_text("
Substitution(s): " + getEq(subLine) + "

\n") if constraint and parse: - conLine = conLine + line.replace("&", "&
") + conLine += line.replace("&", "&
") if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: constraint = False @@ -597,7 +596,6 @@ def readin(ofname): if flagA: newSym.append(x) newSym.reverse() - symF = False ampFlag = False finSym = [] for s in range(len(newSym) - 1, -1, -1): @@ -644,9 +642,6 @@ def readin(ofname): parCx = 0 parFlag = False cC = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 for z in G[0]: if z == "@": parFlag = True @@ -673,11 +668,9 @@ def readin(ofname): get = True checkFlag = False - if (get): + if get: if get: G = preG - get = False - checkFlag = False if True: if symbolPar.find("@") != -1: Q = symbolPar[:symbolPar.find("@")] @@ -688,9 +681,8 @@ def readin(ofname): ap = "" for o in range(len(symbol), len(Q)): if Q[o] == "{" or z == "[": - argFlag = True + pass elif Q[o] == "}" or z == "]": - argFlag = False listArgs.append(ap) ap = "" else: @@ -703,7 +695,6 @@ def readin(ofname): p1 = G[4].strip("$") p1 = "" + p1 + "" # if checkFlag: - new1 = "" new2 = "" pause = False mathF = True @@ -717,7 +708,6 @@ def readin(ofname): mathF = not mathF else: new2 += p2[k] - # p1=new1 p2 = new2 finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) break @@ -744,10 +734,6 @@ def readin(ofname): q = r.find("KLS:") + 4 p = r.find(":", q) section = r[q:p] - equation = r[p + 1:] - if equation.find(":") != -1: - equation = equation[0:equation.find(":")] - append_text( "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") @@ -784,7 +770,7 @@ def readin(ofname): append_text("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ 8:] + "|formula in " + labels[0] + "]]
\n") - append_text("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ + append_text("
[[" + labels[0 % endNum].replace(" ", "_") + "|" + labels[ 0 % endNum] + "]]
\n") append_text("
\n") @@ -835,7 +821,6 @@ def readin(ofname): if line[ind:ind + 7] == "\\eqref{": pause = True eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) '''for l in lLink: if rLab==l[0:l.find("=")-1]: rlabel=l[l.find("=>")+3:l.find("\\n")] @@ -886,7 +871,6 @@ def readin(ofname): if line[ind:ind + 7] == "\\eqref{": pause = True eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) '''for l in lLink: if rLab==l[0:l.find("=")-1]: rlabel=l[l.find("=>")+3:l.find("\\n")] From 414a61337a4483eecf39d001cd22ad2c0eedb5ec Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 5 Mar 2016 19:03:52 +0100 Subject: [PATCH 050/402] Update with changes from chapter 15 --- AlexDanoff/src/remove_excess.py | 42 ++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/AlexDanoff/src/remove_excess.py b/AlexDanoff/src/remove_excess.py index 183712c..f3b84e9 100644 --- a/AlexDanoff/src/remove_excess.py +++ b/AlexDanoff/src/remove_excess.py @@ -34,6 +34,15 @@ def main(): writeout(ofname, remove_excess(readin(fname))) +def remove_group(name, content, skip_lines): + """Removes the group bounded by the group name and then curly braces.""" + + str_pat = name + STD_REGEX + pattern = re.compile(str_pat, re.DOTALL) + + return pattern.sub(r'', content) + + def remove_section(start, end, content): """Removes the section or part bounded by start and end. :param start: @@ -59,6 +68,12 @@ def remove_begin_end(name, content): return pattern.sub(r'', content) +def remove_comments(content): + oldest = content + updated = _get_preamble() + old = content + + def remove_excess(content): """Removes the excess pieces from the given content and returns the updated version as a string. :param content: @@ -72,8 +87,23 @@ def remove_excess(content): # edit single lines content = re.sub(r'\\bibliography{\.\./bib/DLMF}', r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) - content = re.sub(r'\\author\[.*?\]{(.*?)}', r'\\author{\1}', content) - content = re.sub(r'\{math\}', r'{equation}', content) + content = re.sub(r'\\acknowledgements{.*?}{.*?}', r' ', content) + content = re.sub(r'{math}', r'{equation}', content) + content = re.sub(r'\\galleryitem{.*?}{.*?}', r' ', content) + content = re.sub(r'\\origref{.*?}{.*?}', r' ', content) + content = re.sub(r'\\onlyelectronic{.*?{.*?}.*?}', r' ', content) + content = re.sub(r'\\onlyelectronic{.*?}', r' ', content) + content = re.sub(r'\\printonly{.*?}', r' ', content) + pattern = re.compile(r'\\onlyprint{.*?}', re.DOTALL) + content = re.sub(pattern, r' ', content) + pattern = re.compile(r'\\origref\[.*?\]{.*?}', re.DOTALL) + content = re.sub(pattern, r' ', content) + content = re.sub(r'\\begin{electroniconly}', r' ', content) + content = re.sub(r'\\end{electroniconly}', r' ', content) + content = re.sub(r'\\end{printonly}', r' ', content) + content = re.sub(r'\\begin{printonly}', r' ', content) + content = re.sub(r'\\DLMF\[.*?\]', r' ', content) + content = re.sub(r'\\author\[.*?\]{.*?}', r' ', content) # modify labels, etc content = re.sub(r'\\begin\{equation\}\[.*?\]+', r'\\begin{equation}', content, re.DOTALL) @@ -117,7 +147,12 @@ def remove_excess(content): content = remove_begin_end("comment", content) content = remove_begin_end("figure", content) content = remove_begin_end("errata", content) + content = remove_begin_end("table", content) + content = remove_begin_end("table", content) + + content = remove_begin_end("%", content) + content = remove_begin_end("sidebar", content) content = parentheses.remove(content, curly=True) to_remove = [ @@ -286,7 +321,8 @@ def remove_excess(content): # returns the preamble as a list of it's lines def _get_preamble(): - preamble = ['\\documentclass{article}', '\\usepackage{amsmath}', '\\usepackage{amsfonts}', '\\usepackage{breqn}', + preamble = ['\\documentclass{article}', '\\usepackage{amsmath}', '\\usepackage{amsfonts}', + '\\usepackage{DLMFbreqn}', '\\usepackage{DLMFmath}', '\\usepackage{DRMFfcns}', '', '\\oddsidemargin -0.7cm', '\\textwidth 18.3cm', '\\textheight 26.0cm', '\\topmargin -2.0cm', '', '% \constraint{', '% \substitution{', '% \drmfnote{', '% \drmfname{', ''] From c0db7a5a24f837ba5b2eb162557e138b54da7746 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 5 Mar 2016 19:51:24 +0100 Subject: [PATCH 051/402] Include changes from chapter 16 --- AlexDanoff/src/remove_excess.py | 15 ++++++++++----- AlexDanoff/src/replace_special.py | 5 ++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/AlexDanoff/src/remove_excess.py b/AlexDanoff/src/remove_excess.py index f3b84e9..3d7b3a6 100644 --- a/AlexDanoff/src/remove_excess.py +++ b/AlexDanoff/src/remove_excess.py @@ -72,7 +72,9 @@ def remove_comments(content): oldest = content updated = _get_preamble() old = content - +def remove_macro(name, content): + pattern = re.compile(name+"{(.*?)}") + return pattern.sub(r'\1', content) def remove_excess(content): """Removes the excess pieces from the given content and returns the updated version as a string. @@ -83,11 +85,14 @@ def remove_excess(content): updated = _get_preamble() old = content - + content = remove_macro(r"\\lxID", content) # edit single lines - content = re.sub(r'\\bibliography{\.\./bib/DLMF}', - r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) - content = re.sub(r'\\acknowledgements{.*?}{.*?}', r' ', content) + #removed unecessary information that caused an error with pdflatex + pattern = re.compile(r'\\acknowledgements{.*?}\n\n', re.DOTALL) + content = re.sub(pattern, r'', content) + content = re.sub(r'\\maketitle', r' ', content) + content = re.sub(r'\\bibliography{\.\./bib/DLMF}', r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) + content = re.sub(r'\\acknowledgements{.*?}', r' ', content) content = re.sub(r'{math}', r'{equation}', content) content = re.sub(r'\\galleryitem{.*?}{.*?}', r' ', content) content = re.sub(r'\\origref{.*?}{.*?}', r' ', content) diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index 54ee6ae..f8a7e4f 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -86,7 +86,7 @@ def remove_special(content): # if this line is an index start storing it, or write it if we're done with the indexes if IND_START in line: in_ind = True - ind_str += line + "\n" + ind_str += line continue elif in_ind: @@ -95,6 +95,9 @@ def remove_special(content): # add a preceding newline if one is not already present if previous.strip() != "": + print ("first if: {0}".format(ind_str)) + if ("}" in ind_str): + ind_str+= "\n" ind_str = "\n" + ind_str fullsplit = ind_str.split("\n") From 57c45a255e5cbca3e4e5ccb5ec2b85a59ebd9845 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 5 Mar 2016 19:56:30 +0100 Subject: [PATCH 052/402] Include changes from chapter 17 --- AlexDanoff/src/replace_special.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index f8a7e4f..54ee6ae 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -86,7 +86,7 @@ def remove_special(content): # if this line is an index start storing it, or write it if we're done with the indexes if IND_START in line: in_ind = True - ind_str += line + ind_str += line + "\n" continue elif in_ind: @@ -95,9 +95,6 @@ def remove_special(content): # add a preceding newline if one is not already present if previous.strip() != "": - print ("first if: {0}".format(ind_str)) - if ("}" in ind_str): - ind_str+= "\n" ind_str = "\n" + ind_str fullsplit = ind_str.split("\n") From f20c9502e4d68412afe3f6777b4ffb666af7c1b1 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sat, 5 Mar 2016 20:02:49 +0100 Subject: [PATCH 053/402] Fix IDE warnings --- AlexDanoff/src/remove_excess.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/AlexDanoff/src/remove_excess.py b/AlexDanoff/src/remove_excess.py index 3d7b3a6..d4ef51a 100644 --- a/AlexDanoff/src/remove_excess.py +++ b/AlexDanoff/src/remove_excess.py @@ -34,8 +34,11 @@ def main(): writeout(ofname, remove_excess(readin(fname))) -def remove_group(name, content, skip_lines): - """Removes the group bounded by the group name and then curly braces.""" +def remove_group(name, content): + """Removes the group bounded by the group name and then curly braces. + :param content: + :param name: + """ str_pat = name + STD_REGEX pattern = re.compile(str_pat, re.DOTALL) @@ -68,13 +71,10 @@ def remove_begin_end(name, content): return pattern.sub(r'', content) -def remove_comments(content): - oldest = content - updated = _get_preamble() - old = content def remove_macro(name, content): - pattern = re.compile(name+"{(.*?)}") - return pattern.sub(r'\1', content) + pattern = re.compile(name + "{(.*?)}") + return pattern.sub(r'\1', content) + def remove_excess(content): """Removes the excess pieces from the given content and returns the updated version as a string. @@ -87,13 +87,14 @@ def remove_excess(content): old = content content = remove_macro(r"\\lxID", content) # edit single lines - #removed unecessary information that caused an error with pdflatex - pattern = re.compile(r'\\acknowledgements{.*?}\n\n', re.DOTALL) + # removed unecessary information that caused an error with pdflatex + pattern = re.compile(r'\\acknowledgements{.*?}\n\n', re.DOTALL) content = re.sub(pattern, r'', content) content = re.sub(r'\\maketitle', r' ', content) - content = re.sub(r'\\bibliography{\.\./bib/DLMF}', r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) + content = re.sub(r'\\bibliography{\.\./bib/DLMF}', + r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) content = re.sub(r'\\acknowledgements{.*?}', r' ', content) - content = re.sub(r'{math}', r'{equation}', content) + content = re.sub(r'\{math}', r'{equation}', content) content = re.sub(r'\\galleryitem{.*?}{.*?}', r' ', content) content = re.sub(r'\\origref{.*?}{.*?}', r' ', content) content = re.sub(r'\\onlyelectronic{.*?{.*?}.*?}', r' ', content) @@ -103,10 +104,10 @@ def remove_excess(content): content = re.sub(pattern, r' ', content) pattern = re.compile(r'\\origref\[.*?\]{.*?}', re.DOTALL) content = re.sub(pattern, r' ', content) - content = re.sub(r'\\begin{electroniconly}', r' ', content) - content = re.sub(r'\\end{electroniconly}', r' ', content) - content = re.sub(r'\\end{printonly}', r' ', content) - content = re.sub(r'\\begin{printonly}', r' ', content) + content = re.sub(r'\\begin\{electroniconly}', r' ', content) + content = re.sub(r'\\end\{electroniconly}', r' ', content) + content = re.sub(r'\\end\{printonly}', r' ', content) + content = re.sub(r'\\begin\{printonly}', r' ', content) content = re.sub(r'\\DLMF\[.*?\]', r' ', content) content = re.sub(r'\\author\[.*?\]{.*?}', r' ', content) From 0904f1ac3b0c9c64539a1aad1cfca941eefeba95 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sun, 6 Mar 2016 13:38:19 +0100 Subject: [PATCH 054/402] Add hack to prevent infinit loop in i-replacements --- AlexDanoff/src/replace_special.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index 54ee6ae..39631b4 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -250,11 +250,14 @@ def _replace_i(words): else: # neither of the characters surrounding the "i" are alphabetic, replace replacement = r'\iunit' - - # print("Surrounding: {0} - replacement made: {1}".format(surrounding, replacement != "i")) - words = words[:iloc] + replacement + words[iloc + 1:] - + # do not search in the replaced part + ilocOld=iloc iloc = words.find("i", iloc + len(replacement)) + # print("Surrounding: {0} - replacement made: {1}".format(surrounding, replacement != "i")) + wl=len(words) + words = words[:ilocOld] + replacement + words[ilocOld + 1:] + if ilocOld == -1: + break return words From ebb06845a7e38d9f43e900752ab33aa42c14de8e Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sun, 6 Mar 2016 13:59:06 +0100 Subject: [PATCH 055/402] Fix problem with i detection --- .gitignore | 1 + AlexDanoff/src/replace_special.py | 3 +-- AlexDanoff/test/test__replace_i.py | 9 +++++++++ AlexDanoff/test/test_remove_excess.py | 20 ++++++++++---------- 4 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 AlexDanoff/test/test__replace_i.py diff --git a/.gitignore b/.gitignore index e9b040a..1376649 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/Azeem/src/BruceLabelLinks /data Macro-Replacement/sources/ KLSadd_insertion/chapterFilesIgnore diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index 39631b4..c81f5ab 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -254,10 +254,9 @@ def _replace_i(words): ilocOld=iloc iloc = words.find("i", iloc + len(replacement)) # print("Surrounding: {0} - replacement made: {1}".format(surrounding, replacement != "i")) - wl=len(words) - words = words[:ilocOld] + replacement + words[ilocOld + 1:] if ilocOld == -1: break + words = words[:ilocOld] + replacement + words[ilocOld + 1:] return words diff --git a/AlexDanoff/test/test__replace_i.py b/AlexDanoff/test/test__replace_i.py new file mode 100644 index 0000000..d4ad80a --- /dev/null +++ b/AlexDanoff/test/test__replace_i.py @@ -0,0 +1,9 @@ +from unittest import TestCase +from replace_special import _replace_i as replace_i + + +class Test_replace_i(TestCase): + def test__replace_i(self): + tex = 'z^a = \\underbrace{z \\cdot z \\cdots z}_{n \\text{ times}} = 1 / z^{-a}.' + result = replace_i(tex) + self.assertEqual(tex, result) diff --git a/AlexDanoff/test/test_remove_excess.py b/AlexDanoff/test/test_remove_excess.py index a070edd..cfefa95 100644 --- a/AlexDanoff/test/test_remove_excess.py +++ b/AlexDanoff/test/test_remove_excess.py @@ -1,10 +1,10 @@ -from unittest import TestCase -from remove_excess import remove_section - - -class TestRemoveExcess(TestCase): - def test_remove_section(self): - content = 'AA{Begin} This should be removed {End}DDBB' - result = remove_section(r'{Begin}', r'{End}', content) - self.assertEqual('AA{End}DDBB', result) - +from unittest import TestCase +from remove_excess import remove_section + + +class TestRemoveExcess(TestCase): + def test_remove_section(self): + content = 'AA{Begin} This should be removed {End}DDBB' + result = remove_section(r'{Begin}', r'{End}', content) + self.assertEqual('AA{End}DDBB', result) + From d1341164eb81ea7f490fd8181a7eb75d18cd0235 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sun, 6 Mar 2016 17:47:50 +0100 Subject: [PATCH 056/402] Add test for formula numbering --- Azeem/src/tex2Wiki.py | 15 ++++++++++++--- Azeem/test/test_modlabel.py | 10 ++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 Azeem/test/test_modlabel.py diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 27c941f..4d5ec65 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -7,6 +7,7 @@ import datetime wiki = '' +next_formula_number = 0 ET.register_namespace('', 'http://www.mediawiki.org/xml/export-0.10/') root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') @@ -197,9 +198,17 @@ def secLabel(label): def modLabel(line): - start_label = line.find("\\formula{") + 9 - if start_label == 8: - start_label = line.find("\\label{") + 7 + start_label = line.find("\\formula{") + if start_label > 0: + start_label += len("\\formula{") + else: + start_label = line.find("\\label{") + if start_label > 0: + start_label += len("\\label{") + else: + global next_formula_number + next_formula_number += 1 + return 'auto-number-' + str(next_formula_number) end_label = line.find("}", start_label) label = line[start_label:end_label] label = label.replace('eq:', 'Formula:') diff --git a/Azeem/test/test_modlabel.py b/Azeem/test/test_modlabel.py new file mode 100644 index 0000000..3439e28 --- /dev/null +++ b/Azeem/test/test_modlabel.py @@ -0,0 +1,10 @@ +from unittest import TestCase +from tex2Wiki import modLabel + + +class TestModLabel(TestCase): + def test_modLabel(self): + self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\label{eq:EF.EX.TM}')) + self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) + self.assertEqual('auto-number-1', modLabel('\\begin{equation}')) + self.assertEqual('auto-number-2', modLabel('\\begin{equation}')) From bef4dba95b2efbd449549d2a7c731a4e8c1e97b9 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Sun, 6 Mar 2016 22:34:19 +0100 Subject: [PATCH 057/402] Add support for lookup tables for formula names --- Azeem/src/tex2Wiki.py | 24 +++++++++++++++++++----- Azeem/test/llinks | 1 + Azeem/test/test_modlabel.py | 6 ++++++ 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 Azeem/test/llinks diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 4d5ec65..02dae61 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -8,6 +8,7 @@ wiki = '' next_formula_number = 0 +lLink = '' ET.register_namespace('', 'http://www.mediawiki.org/xml/export-0.10/') root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') @@ -92,10 +93,6 @@ def getEq(line): # Gets all data within constraints,substitutions def getEqP(line, Flag): # Gets all data within proofs - if Flag: - pass - else: - pass per = 1 stringWrite = "" fEq = False @@ -198,6 +195,7 @@ def secLabel(label): def modLabel(line): + global lLink start_label = line.find("\\formula{") if start_label > 0: start_label += len("\\formula{") @@ -211,6 +209,14 @@ def modLabel(line): return 'auto-number-' + str(next_formula_number) end_label = line.find("}", start_label) label = line[start_label:end_label] + rlabel = label + for l in lLink: + if l.find(label) != -1 and l[len(label) + 1] == "=": + rlabel = l[l.find("=>") + 3:l.find("\\n")] + rlabel = rlabel.replace("/", "") + rlabel = rlabel.replace("#", ":") + break + label = rlabel label = label.replace('eq:', 'Formula:') isNumer = False newlabel = "" @@ -262,20 +268,28 @@ def writeout(ofname): def main(): - if len(sys.argv) != 3: + if len(sys.argv) != 4: fname = "../../data/ZE.3.tex" ofname = "../../data/ZE.4.xml" + lname = "../../data/BruceLabelLinks" else: fname = sys.argv[1] ofname = sys.argv[2] + lname = sys.argv[3] + setup_label_links(lname) readin(fname) writeout(ofname) +def setup_label_links(ofname): + global lLink + lLink = open(ofname, "r").readlines() + + def readin(ofname): # try: for jsahlfkjsd in range(0, 1): diff --git a/Azeem/test/llinks b/Azeem/test/llinks new file mode 100644 index 0000000..72ed132 --- /dev/null +++ b/Azeem/test/llinks @@ -0,0 +1 @@ +eq:EF.EX.TM => DLMF:/4.9#E4 \ No newline at end of file diff --git a/Azeem/test/test_modlabel.py b/Azeem/test/test_modlabel.py index 3439e28..d209ef5 100644 --- a/Azeem/test/test_modlabel.py +++ b/Azeem/test/test_modlabel.py @@ -1,5 +1,6 @@ from unittest import TestCase from tex2Wiki import modLabel +from tex2Wiki import setup_label_links class TestModLabel(TestCase): @@ -8,3 +9,8 @@ def test_modLabel(self): self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) self.assertEqual('auto-number-1', modLabel('\\begin{equation}')) self.assertEqual('auto-number-2', modLabel('\\begin{equation}')) + + def test_modLabelsWithList(self): + setup_label_links('llinks') + self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\label{eq:EF.EX.TM}')) + self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) From 389df984d7e3ed52da86fbd69a46e84d58ef8d97 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Mon, 7 Mar 2016 09:28:30 +0100 Subject: [PATCH 058/402] Fix tests --- Azeem/test/test_modlabel.py | 6 +++--- testdata/llinks | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 testdata/llinks diff --git a/Azeem/test/test_modlabel.py b/Azeem/test/test_modlabel.py index d209ef5..dfb21e4 100644 --- a/Azeem/test/test_modlabel.py +++ b/Azeem/test/test_modlabel.py @@ -11,6 +11,6 @@ def test_modLabel(self): self.assertEqual('auto-number-2', modLabel('\\begin{equation}')) def test_modLabelsWithList(self): - setup_label_links('llinks') - self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\label{eq:EF.EX.TM}')) - self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) + setup_label_links('testdata/llinks') + self.assertEqual('DLMF:04.09:E', modLabel('\\begin{equation}\label{eq:EF.EX.TM}')) + self.assertEqual('DLMF:04.09:E', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) diff --git a/testdata/llinks b/testdata/llinks new file mode 100644 index 0000000..72ed132 --- /dev/null +++ b/testdata/llinks @@ -0,0 +1 @@ +eq:EF.EX.TM => DLMF:/4.9#E4 \ No newline at end of file From 8f9ddcd86adb225783f747f9f89d3f224eb1d126 Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Fri, 25 Mar 2016 12:21:37 -0400 Subject: [PATCH 059/402] Create Documentation.md --- wikidata/Documentation.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 wikidata/Documentation.md diff --git a/wikidata/Documentation.md b/wikidata/Documentation.md new file mode 100644 index 0000000..4baabd2 --- /dev/null +++ b/wikidata/Documentation.md @@ -0,0 +1,2 @@ +The relevant pages to manually create, and list semantic properties are availible from +http://wikidata-drmf2016.wmflabs.org/wiki/Special:SpecialPages#Wikibase From 887d3c518e468957d9715581e0c16bc00ae0197e Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Fri, 25 Mar 2016 14:53:09 -0400 Subject: [PATCH 060/402] Thoroughly explains updateChapters.py --- KLSadd_insertion/updateChaptersRoadMap.txt | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 KLSadd_insertion/updateChaptersRoadMap.txt diff --git a/KLSadd_insertion/updateChaptersRoadMap.txt b/KLSadd_insertion/updateChaptersRoadMap.txt new file mode 100644 index 0000000..e89b864 --- /dev/null +++ b/KLSadd_insertion/updateChaptersRoadMap.txt @@ -0,0 +1,97 @@ +This is a roadmap of updateChapters.py. It will help explain every piece of code and exactly how everything works in relation to each other. + + +_______________________________________________________________________________ + + +First: the files + +>KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be *inserted* into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf + +>chap09.tex and chap14.tex: these are chapter files. These are LATEX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections + +>updateChapters.py: this is our code. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. + +>linetest.py: this abomination of code is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. + +>newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what the output to updateChapters.py should be like!!!!!!! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Next: the specifications + +Toward the end of every section in the chapter file, there is a subsection called "References". It basically just contains a bunch of references to sources and other papers. Every paragraph in every subsection in KLSadd.tex must be put *before* the "References" subsection in the corresponding section in the chapter file. For example: +**These aren't real sections, obviously, just an example** + +in chap09.tex: +>\section{Dogs}\index{Dog polynomials} +>\subsection*{Hypergeometric dogs} +>blah blah blah +>\subsection*{References} +>\cite{Dogs101} + +in KLSadd.tex: +>\subsection*{9.15 Dogs} +>\paragraph{Beagles} +>The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric +>in $a,b,c,d$. + +So in the chapter 9 file, section 15 "Dogs", before the References subsection, we need to add in the Beagles paragraph. HOWEVER, there are some changes that need to be made before we insert. The easiest change is adding a comment that tells us something was inserted. We just append something like "%RS insertion begin" and "%RS insertion complete" before and after, respectively, the Beagles paragraph when we insert. Another change is adding \large\bf before the paragraph name. This changes the size and format so it looks prettier. So the heading in this example would be: + +>\paragraph{\large\bf Beagles} + +**It is important to note that these changes are currently (3/25/16) unimplemented in updateChapters.py and only exist in linetest.py, if you want to see how the output to updateChapters.py should look, look at newtempchap09.tex** + +So after updateChapters.py is called, the chapter 9 file should look like this: + +>\section{Dogs}\index{Dog polynomials} +>\subsection*{Hypergeometric dogs} +>blah blah blah +>%RS insertion begin +>\paragraph{\large\bf Beagles} +>The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric +>in $a,b,c,d$. +>%RS insertion complete +>\subsection*{References} +>\cite{Dogs101} + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The variables: + +These are the variables in the beginning + +-chapNums: chapNums is a list, denoted by the [], that holds the chapter number (in this case it's either a 9 or a 14) that corresponds to where a section in KLSadd should go + +-paras: holds all of the text in the paragraphs of KLSadd.tex. This is the list that gets read when its time to insert paragraphs into the chapter file. Every element is a loooong string + +-mathPeople: this holds the *name* of every section in KLSadd. It stores names like Wilson, Racah, Dual Hahn, etc. In our example with the Dogs above, it would hold "Dogs". This is useful to finding where to insert the correct paragraph + +-newCommands: this is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LATEX files into PDF files and they need to be copied over into both chapter files + +-comms: holds the actual strings of the commands found from the line numbers stored in newCommands + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The methods: + +-prepareForPDF(chap): this method inserts some packages needed by LATEX files to be turned into pdf files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. + +-getCommands(kls): takes the KLSadd.tex as a string as a parameter and stores the special commands in the comms variable mentioned earlier + +-insertCommands(kls, chap, cms): kls is KLSadd.tex, chap is a chapter file string, cms is a list of commands, it is the comms variable. This method returns the chap with the special commands inserted in place + +-findReferences(str): takes a string representation of a chapter file. Returns a list of the line numbers of the "References" subsections. This references variable is used as an index as to where the paragraphs in paras should be inserted + +-fixChapter(chap, references, p, kls): takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +At this point, the code is like 90% comments. The big chunk at the bottom under the "with open..." can be explained through the comments. + +As a quick rundown: + +The chapters and KLSadd are turned into Strings and passed through the fixChapter methods. + +Then the strings are written into seperate updated chapter files. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +However, its broken. Inserted text comes in random places between paragraphs and sometimes stuff isn't added. This shouldn't be that hard to fix but it will require combing through the code a lot of times and changing little things here and there until everything works. As a last ditch effort, we can always resort to using linetext.py and adding stuff in from there. From 06d781cc0ed1c553e2b670ec043f6869e5813b3d Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 25 Mar 2016 15:13:19 -0400 Subject: [PATCH 061/402] Commented out some lines and changed /myciteKLS to /mycite as Dr. cohl asked --- KLSadd_insertion/updateChapters.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 09cab89..520a6b9 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -126,6 +126,30 @@ def fixChapter(chap, references, p, kls): chap = prepareForPDF(chap) cms = getCommands(kls) chap = insertCommands(kls,chap, cms) + commentticker = 0 + for word in chap: + if ("\\newcommand\\half{\\frac12}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + commentticker += 1 + # Hopefully this works + ticker1 = 0 + while ticker1 < len(chap): + if ('\\myciteKLS' in chap[ticker1]): + chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') + ticker1 += 1 #probably won't work because I don't know how anything works return chap @@ -160,12 +184,12 @@ def fixChapter(chap, references, p, kls): #parse both files 9 and 14 as strings #chapter 9 - with open("tempchap9.tex", "r") as ch9: + with open("chap09.tex", "r") as ch9: entire9 = ch9.readlines() #reads in as a list of strings ch9.close() #chapter 14 - with open("tempchap14.tex", "r") as ch14: + with open("chap14.tex", "r") as ch14: entire14 = ch14.readlines() ch14.close() #call the findReferences method to find the index of the References paragraph in the two file strings From c2828d2939532129c7ba9b9a234b29ee4fbcef50 Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Tue, 29 Mar 2016 10:42:00 -0400 Subject: [PATCH 062/402] Add new code quality metric buttons to the readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ef118d7..01cdcef 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![Build Status](https://travis-ci.org/DRMF/DRMF-Seeding-Project.svg?branch=master)](https://travis-ci.org/DRMF/DRMF-Seeding-Project) [![Coverage Status](https://coveralls.io/repos/github/DRMF/DRMF-Seeding-Project/badge.svg?branch=master)](https://coveralls.io/github/DRMF/DRMF-Seeding-Project?branch=master) +[![Code Issues](https://www.quantifiedcode.com/api/v1/project/b097e91550e147b2b02e345ffb1c5162/badge.svg)](https://www.quantifiedcode.com/app/project/b097e91550e147b2b02e345ffb1c5162) +[![Code Health](https://landscape.io/github/DRMF/DRMF-Seeding-Project/master/landscape.svg?style=flat)](https://landscape.io/github/DRMF/DRMF-Seeding-Project/master) This project is meant to convert different designated source formats to semantic LaTeX for the DRMF project. One major aspect of this conversion is the inclusion, insertion, and replacement From ca4911ba6f3ace8298f9bdca4f4ccbb7a1f66cec Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Tue, 29 Mar 2016 14:24:21 -0400 Subject: [PATCH 063/402] Attempt to fix linebreaks --- KLSadd_insertion/updateChapters.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 520a6b9..23ed89b 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -86,7 +86,6 @@ def insertCommands(kls, chap, cms): if("begin{document}" in word): beginIndex += index tempIndex = 0 - #D'OH FOUND THE PROBLEM newCommands stores just the integer value of the indexes of the commands. we need to get the actual commands. easy fix, do next time for i in cms: chap.insert(beginIndex+tempIndex,i) tempIndex +=1 @@ -114,15 +113,15 @@ def findReferences(str): def fixChapter(chap, references, p, kls): #chap is the file string(actually a list), references is the specific references for the file, #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list - #TODO: OPTIMIZE(?) count = 0 #count is used to represent the values in count for i in references: - #add the paragraphs before the Reference paragraphs start - chap[i-3] += p[count] + #Place before References paragraph + chap[i-2] += "%KLS insert begin" + chap[i-2] += p[count] + chap[i-2] += "%KLS insert end" count+=1 chap[i-1] += p[count] - #I actually don't remember why I had to do this but I think you need it ^^^^^^^^^^^^^^^^^^^ chap = prepareForPDF(chap) cms = getCommands(kls) chap = insertCommands(kls,chap, cms) @@ -175,7 +174,6 @@ def fixChapter(chap, references, p, kls): for i in range(len(indexes)-1): str = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(str) - #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable #we can use the section names to place the relevant paragraphs in the right place @@ -197,8 +195,6 @@ def fixChapter(chap, references, p, kls): references9 = findReferences(entire9) references14 = findReferences(entire14) - #ERROR! entire9 sometimes contains lists, must only contain strings. Should be fixed by next week. Check the - #getCommands method, I suspect that is the problem #call the fixChapter method to get a list with the addendum paragraphs added in str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) From d025894dda42ec8b134dd145e071b8710e07f70c Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Tue, 29 Mar 2016 15:34:28 -0400 Subject: [PATCH 064/402] Fixed line breaks --- KLSadd_insertion/updateChapters.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 23ed89b..773e97b 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -63,11 +63,7 @@ def getCommands(kls): newCommands.append(index-1) if("mybibitem[1]" in word): newCommands.append(index) - #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs - if("paragraph{" in word): - #not sure if this works, needs testing! - temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] - + #pretty sure I had to do something here but I forgot, so pass? #duh, obviously I need to store the commands somewhere! comms = kls[newCommands[0]:newCommands[1]] @@ -154,6 +150,7 @@ def fixChapter(chap, references, p, kls): #open the KLSadd file to do things with with open("KLSadd.tex", "r") as add: + #store the file as a string addendum = add.readlines() index = 0 @@ -199,6 +196,8 @@ def fixChapter(chap, references, p, kls): str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) + print(len(references9) + len(references14)) + print(len(paras)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part From adc7d77e1b013188675f1aae6a3050255c2d2516 Mon Sep 17 00:00:00 2001 From: Rahul Shah Date: Tue, 29 Mar 2016 15:43:03 -0400 Subject: [PATCH 065/402] fixed something i can't remember... --- KLSadd_insertion/updateChapters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 773e97b..5df705d 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -99,7 +99,7 @@ def findReferences(str): w = word[word.find("{")+1: word.find("}")] if(w not in mathPeople): canAdd = True - if("\\subsection*{References}" in word and canAdd == True): + if(("\\subsection*{References}" in word or "subsubsection*{References" in word )and canAdd == True): references.append(index) canAdd = False return references From 9b77a4e84b75b4994190c749165c1c3ee8a2f019 Mon Sep 17 00:00:00 2001 From: edward-bian Date: Tue, 29 Mar 2016 15:44:41 -0400 Subject: [PATCH 066/402] Fixed Spacing, also added very ugly headings Pdf loads normally now and there are now very ugly headings to distinguish KLSadd sections from the original pdf. updateChapters.py still loads weirdly --- KLSadd_insertion/updateChapters.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 23ed89b..f3c709e 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -64,10 +64,6 @@ def getCommands(kls): if("mybibitem[1]" in word): newCommands.append(index) #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs - if("paragraph{" in word): - #not sure if this works, needs testing! - temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] - #pretty sure I had to do something here but I forgot, so pass? #duh, obviously I need to store the commands somewhere! comms = kls[newCommands[0]:newCommands[1]] @@ -116,9 +112,9 @@ def fixChapter(chap, references, p, kls): count = 0 #count is used to represent the values in count for i in references: #Place before References paragraph - chap[i-2] += "%KLS insert begin" + chap[i-2] += "\\large\\bf KLSadd additions: " chap[i-2] += p[count] - chap[i-2] += "%KLS insert end" + chap[i-2] += "\\large\\bf End of KLSadd additions" count+=1 chap[i-1] += p[count] From eb0c2e399a7e0eccb369250862146f569a1de15f Mon Sep 17 00:00:00 2001 From: Howard Cohl Date: Wed, 30 Mar 2016 11:22:50 -0400 Subject: [PATCH 067/402] Add .sty .cls files to .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 1376649..5c0f18c 100644 --- a/.gitignore +++ b/.gitignore @@ -116,6 +116,8 @@ crashlytics-build.properties ### TeX template ## Core latex/pdflatex auxiliary files: +*.sty +*.cls *.aux *.lof *.lot From 061a93a65617522b51823ad869b5c554814b8546 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 31 Mar 2016 15:26:38 -0400 Subject: [PATCH 068/402] Fixed formatting and made it look like linetest.py --- KLSadd_insertion/updateChapters.py | 300 ++++++++++++++--------------- 1 file changed, 149 insertions(+), 151 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index f3c709e..ff57ebd 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -1,27 +1,21 @@ """ Rahul Shah -self-taught python don't kill me I know its bad -2/5/16 +self-taught python don't kill me I know its bad +2/5/16 Re-write of linetest.py so people other than me can read it - This project was/is being written to streamline the update process of the book used for the online repository, updated via the KLSadd addendum file which only affects chapters 9 and 14 - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOTE! AS OF 2/26/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED - Additional goals (already addressed in linetest.py): -insert correct usepackages -insert correct commands found in KLSadd.tex to chapter files -insert editor's initials into sections (ie %RS: begin addition, %RS: end addition) - Additional goals (not already addressed in linetest.py): -rewrite for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) - Current update status: incomplete - Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter """ @@ -35,165 +29,169 @@ chapNums = [] paras = [] mathPeople = [] -newCommands = [] #used to hold the indexes of the commands -comms = "" #holds the ACTUAL STRINGS of the commands +newCommands = [] #used to hold the indexes of the commands +comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf def prepareForPDF(chap): - footmiscIndex = 0 - index = 0 - for word in chap: - index+=1 - if("footmisc" in word): - footmiscIndex+= index - #edits the chapter string sent to include hyperref, xparse, and cite packages - #str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" - chap.insert(footmiscIndex, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") + footmiscIndex = 0 + index = 0 + for word in chap: + index+=1 + if("footmisc" in word): + footmiscIndex+= index + #edits the chapter string sent to include hyperref, xparse, and cite packages + #str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + chap.insert(footmiscIndex, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") - return chap + return chap -#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds +#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds def getCommands(kls): - index = 0 - for word in kls: - index+=1 - if("smallskipamount" in word): - newCommands.append(index-1) - if("mybibitem[1]" in word): - newCommands.append(index) - #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs - #pretty sure I had to do something here but I forgot, so pass? - #duh, obviously I need to store the commands somewhere! - comms = kls[newCommands[0]:newCommands[1]] - return comms + index = 0 + for word in kls: + index+=1 + if("smallskipamount" in word): + newCommands.append(index-1) + if("mybibitem[1]" in word): + newCommands.append(index) + #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs + #pretty sure I had to do something here but I forgot, so pass? + #duh, obviously I need to store the commands somewhere! + comms = kls[newCommands[0]:newCommands[1]] + return comms #2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 def insertCommands(kls, chap, cms): - #reads in the newCommands[] and puts them in chap - beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. - - #find index of begin document in KLSadd - index = 0 - for word in kls: - index+=1 - if("begin{document}" in word): - beginIndex += index - tempIndex = 0 - for i in cms: - chap.insert(beginIndex+tempIndex,i) - tempIndex +=1 - return chap + #reads in the newCommands[] and puts them in chap + beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. + + #find index of begin document in KLSadd + index = 0 + for word in kls: + index+=1 + if("begin{document}" in word): + beginIndex += index + tempIndex = 0 + for i in cms: + chap.insert(beginIndex+tempIndex,i) + tempIndex +=1 + return chap #method to find the indices of the reference paragraphs def findReferences(str): - references = [] - index = -1 - canAdd = False - for word in str: - index+=1 - #check sections and subsections - if("section{" in word or "subsection*{" in word): - w = word[word.find("{")+1: word.find("}")] - if(w not in mathPeople): - canAdd = True - if("\\subsection*{References}" in word and canAdd == True): - references.append(index) - canAdd = False - return references + references = [] + index = -1 + canAdd = False + for word in str: + index+=1 + #check sections and subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1: word.find("}")] + if(w not in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references.append(index) + canAdd = False + return references #method to change file string(actually a list right now), returns string to be written to file #If you write a method that changes something, it is preffered that you call the method in here def fixChapter(chap, references, p, kls): - #chap is the file string(actually a list), references is the specific references for the file, - #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list - count = 0 #count is used to represent the values in count - for i in references: - #Place before References paragraph - chap[i-2] += "\\large\\bf KLSadd additions: " - chap[i-2] += p[count] - chap[i-2] += "\\large\\bf End of KLSadd additions" - count+=1 - chap[i-1] += p[count] - - chap = prepareForPDF(chap) - cms = getCommands(kls) - chap = insertCommands(kls,chap, cms) - commentticker = 0 - for word in chap: - if ("\\newcommand\\half{\\frac12}" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - commentticker += 1 - # Hopefully this works - ticker1 = 0 - while ticker1 < len(chap): - if ('\\myciteKLS' in chap[ticker1]): - chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') - ticker1 += 1 - #probably won't work because I don't know how anything works - return chap - -#open the KLSadd file to do things with + #chap is the file string(actually a list), references is the specific references for the file, + #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list + count = 0 #count is used to represent the values in count + for i in references: + #Place before References paragraph + chap[i-2] += "%KLSadd additions:" + chap[i-2] += p[count] + chap[i-2] += "%End of KLSadd additions" + count+=1 + chap[i-1] += p[count] + + chap = prepareForPDF(chap) + cms = getCommands(kls) + chap = insertCommands(kls,chap, cms) + commentticker = 0 + for word in chap: + if ("\\newcommand\\half{\\frac12}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + commentticker += 1 + # Hopefully this works + ticker1 = 0 + while ticker1 < len(chap): + if ('\\myciteKLS' in chap[ticker1]): + chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') + ticker1 += 1 + #probably won't work because I don't know how anything works + return chap + +#open the KLSadd file to do things with with open("KLSadd.tex", "r") as add: - #store the file as a string - addendum = add.readlines() - index = 0 - indexes = [] - for word in addendum: - index+=1 - if("." in word and "\\subsection*{" in word): - name = word[word.find(" "): word.find("}")] - mathPeople.append(name) - if("9." in word): - chapNums.append(9) - if("14." in word): - chapNums.append(9) - #get the index - indexes.append(index-1) - #now indexes holds all of the places there is a section - #using these indexes, get all of the words in between and add that to the paras[] - for i in range(len(indexes)-1): - str = ''.join(addendum[indexes[i]: indexes[i+1]-1]) - paras.append(str) - #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate - #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable - #we can use the section names to place the relevant paragraphs in the right place - - #as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section - #parse both files 9 and 14 as strings - - #chapter 9 - with open("chap09.tex", "r") as ch9: - entire9 = ch9.readlines() #reads in as a list of strings - ch9.close() - - #chapter 14 - with open("chap14.tex", "r") as ch14: - entire14 = ch14.readlines() - ch14.close() - #call the findReferences method to find the index of the References paragraph in the two file strings - #two variables for the references lists one for chapter 9 one for chapter 14 - references9 = findReferences(entire9) - references14 = findReferences(entire14) - - #call the fixChapter method to get a list with the addendum paragraphs added in - str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) - str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) + #store the file as a string + addendum = add.readlines() + for word in addendum: + if ("paragraph{" in word): + temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: word.find("}") + 1] + addendum[addendum.index(word): addendum.index(word) + 1] = temp + index = 0 + indexes = [] + for word in addendum: + index+=1 + if("." in word and "\\subsection*{" in word): + name = word[word.find(" "): word.find("}")] + mathPeople.append(name) + if("9." in word): + chapNums.append(9) + if("14." in word): + chapNums.append(9) + #get the index + indexes.append(index-1) + #now indexes holds all of the places there is a section + #using these indexes, get all of the words in between and add that to the paras[] + for i in range(len(indexes)-1): + str = ''.join(addendum[indexes[i]: indexes[i+1]-1]) + paras.append(str) + #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate + #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable + #we can use the section names to place the relevant paragraphs in the right place + + #as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section + #parse both files 9 and 14 as strings + + #chapter 9 + with open("chap09.tex", "r") as ch9: + entire9 = ch9.readlines() #reads in as a list of strings + ch9.close() + + #chapter 14 + with open("chap14.tex", "r") as ch14: + entire14 = ch14.readlines() + ch14.close() + #call the findReferences method to find the index of the References paragraph in the two file strings + #two variables for the references lists one for chapter 9 one for chapter 14 + references9 = findReferences(entire9) + references14 = findReferences(entire14) + + #call the fixChapter method to get a list with the addendum paragraphs added in + str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) + str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -203,10 +201,10 @@ def fixChapter(chap, references, p, kls): """ -#write to files +#write to files #new output files for safety with open("updated9.tex","w") as temp9: - temp9.write(str9) - + temp9.write(str9) + with open("updated14.tex", "w") as temp14: - temp14.write(str9) + temp14.write(str9) \ No newline at end of file From c80a03062b690637a6f9f2f9b5271c08ad579aea Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 1 Apr 2016 13:03:48 -0400 Subject: [PATCH 069/402] Fixed very minor errors --- KLSadd_insertion/updateChapters.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index ff57ebd..7ca4275 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -52,10 +52,10 @@ def prepareForPDF(chap): def getCommands(kls): index = 0 for word in kls: - index+=1 - if("smallskipamount" in word): + index+=1 + if("smallskipamount" in word): newCommands.append(index-1) - if("mybibitem[1]" in word): + if("mybibitem[1]" in word): newCommands.append(index) #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs #pretty sure I had to do something here but I forgot, so pass? @@ -110,7 +110,6 @@ def fixChapter(chap, references, p, kls): chap[i-2] += p[count] chap[i-2] += "%End of KLSadd additions" count+=1 - chap[i-1] += p[count] chap = prepareForPDF(chap) cms = getCommands(kls) @@ -166,8 +165,8 @@ def fixChapter(chap, references, p, kls): #now indexes holds all of the places there is a section #using these indexes, get all of the words in between and add that to the paras[] for i in range(len(indexes)-1): - str = ''.join(addendum[indexes[i]: indexes[i+1]-1]) - paras.append(str) + box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) + paras.append(box) #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable #we can use the section names to place the relevant paragraphs in the right place From 801f37a52ebcb17a80e93ccc96dfe17df6f55536 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 1 Apr 2016 13:09:57 -0400 Subject: [PATCH 070/402] Fixed 1 more very minor error --- KLSadd_insertion/updateChapters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 7ca4275..6350090 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -82,11 +82,11 @@ def insertCommands(kls, chap, cms): return chap #method to find the indices of the reference paragraphs -def findReferences(str): +def findReferences(chapter): references = [] index = -1 canAdd = False - for word in str: + for word in chapter: index+=1 #check sections and subsections if("section{" in word or "subsection*{" in word): From aaacd6dd86019d975b349924bce08b8bbcd33c5a Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 1 Apr 2016 14:56:09 -0400 Subject: [PATCH 071/402] Fix reference errors --- KLSadd_insertion/updateChapters.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 6350090..944ae1e 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -91,9 +91,11 @@ def findReferences(chapter): #check sections and subsections if("section{" in word or "subsection*{" in word): w = word[word.find("{")+1: word.find("}")] - if(w not in mathPeople): - canAdd = True - if("\\subsection*{References}" in word and canAdd == True): + for unit in mathPeople: + if (w in unit): + canAdd = True + + if("\\subsection*{References}" in word) and (canAdd == True): references.append(index) canAdd = False return references @@ -106,7 +108,7 @@ def fixChapter(chap, references, p, kls): count = 0 #count is used to represent the values in count for i in references: #Place before References paragraph - chap[i-2] += "%KLSadd additions:" + chap[i-2] += "%Begin KLSadd additions" chap[i-2] += p[count] chap[i-2] += "%End of KLSadd additions" count+=1 @@ -159,7 +161,7 @@ def fixChapter(chap, references, p, kls): if("9." in word): chapNums.append(9) if("14." in word): - chapNums.append(9) + chapNums.append(14) #get the index indexes.append(index-1) #now indexes holds all of the places there is a section @@ -206,4 +208,4 @@ def fixChapter(chap, references, p, kls): temp9.write(str9) with open("updated14.tex", "w") as temp14: - temp14.write(str9) \ No newline at end of file + temp14.write(str14) \ No newline at end of file From 0eda041c8df86bbb017d42db2725e4247b9c49f8 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 5 Apr 2016 12:02:03 -0400 Subject: [PATCH 072/402] Making tex2Wiki more readable * I went through the tex2Wiki code and tried to make it a little bit more readable --- Azeem/src/tex2Wiki.py | 170 ++++++++++++++++-------------------------- 1 file changed, 66 insertions(+), 104 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 02dae61..bcbe712 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -92,7 +92,7 @@ def getEq(line): # Gets all data within constraints,substitutions return stringWrite.rstrip().lstrip() -def getEqP(line, Flag): # Gets all data within proofs +def getEqP(line): # Gets all data within proofs per = 1 stringWrite = "" fEq = False @@ -295,8 +295,8 @@ def readin(ofname): for jsahlfkjsd in range(0, 1): global wiki tex = open(ofname, 'r') - main = open("OrthogonalPolynomials.mmd", "r") - mainText = main.read() + main_file = open("OrthogonalPolynomials.mmd", "r") + mainText = main_file.read() mainPrepend = "" mainWrite = open("OrthogonalPolynomials.mmd.new", "w") math = False @@ -312,9 +312,7 @@ def readin(ofname): parse = False head = False refLabels = [] - '''for c in chapRef: - refLines=refLines+(c[1].readlines()) - c[1].close()''' + chapter = '' for i in range(0, len(refLines)): line = refLines[i] if "\\begin{equation}" in line: @@ -342,7 +340,7 @@ def readin(ofname): mainText = "{{#set:Section=0}}\n" + mainText mainWrite.write(mainText) mainWrite.close() - main.close() + main_file.close() copyfile('OrthogonalPolynomials.mmd', 'OrthogonalPolynomials.mmd.new') parse = False elif "\\title" in line and parse: @@ -367,6 +365,8 @@ def readin(ofname): secCounter = 0 eqCounter = 0 + subLine = '' + conLine = '' for i in range(0, len(lines)): line = lines[i] if "\\section" in line: @@ -431,17 +431,16 @@ def readin(ofname): flagM = True eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in \ - lines[ - i + 3] and not "\\part" in lines[i + 3]: + if "\\end{equation}" in lines[i + 1] and "\\subsection" not in lines[i + 3] and "\\section" not in \ + lines[i + 3] and "\\part" not in lines[i + 3]: u = i flagM2 = False while flagM: u += 1 if "\\begin{equation}" in lines[u] in lines[u]: flagM = False - if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ - u] or "\\end{document}" in lines[u]: + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[u] \ + or "\\end{document}" in lines[u]: flagM = False flagM2 = True if not flagM2: @@ -492,6 +491,11 @@ def readin(ofname): comToWrite = "" secCount = -1 newSec = False + symLine = '' + eqS = '' + noteLine = '' + proofLine = '' + pause = False for i in range(0, len(lines)): line = lines[i] @@ -521,17 +525,14 @@ def readin(ofname): if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS append_text("
\n") if newSec: - append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") + append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + + "|" + secLabel(sections[secCount][0]) + "]]
\n") else: - append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") + append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", "_") + + "|" + secLabel(labels[eqCounter - 1]) + "]]
\n") + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", "_") + + "#" + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + + secLabel(sections[secCount + 1][0]) + "]]
\n") if eqS == sections[secCount][1]: append_text( "
[[" + secLabel( @@ -539,26 +540,22 @@ def readin(ofname): " ", "_") + "|" + secLabel( sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") else: - append_text( - "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", - "_") + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + append_text("
[[" + + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + + "|" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") append_text("
\n\n") elif eqCounter == endNum: append_text("
\n") if newSec: newSec = False - append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") + append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + + "|" + secLabel(sections[secCount][0]) + "]]
\n") else: - append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") + append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", "_") + + "|" + secLabel(labels[eqCounter - 1]) + "]]
\n") + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", "_") + + "#" + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + + secLabel(sections[secCount + 1][0]) + "]]
\n") append_text("
[[" + secLabel( labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") @@ -571,9 +568,8 @@ def readin(ofname): parse = False math = False if hProof: - append_text( - "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - + append_text("\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or" + " further clarification on the proof(s) in this space.\n") append_text("\n== Symbols List ==\n\n") newSym = [] # if "09.07:04" in label: @@ -627,6 +623,7 @@ def readin(ofname): parCx = 0 parFlag = False cC = 0 + cN = 0 for z in symbolPar: if z == "@": parFlag = True @@ -680,17 +677,13 @@ def readin(ofname): parCx += 1 else: ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][len(symbol)].isalpha()): checkFlag = True get = True preG = S - - elif checkFlag: get = True checkFlag = False - if get: if get: G = preG @@ -757,53 +750,45 @@ def readin(ofname): q = r.find("KLS:") + 4 p = r.find(":", q) section = r[q:p] - append_text( - "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? + # Where should it link to? + append_text("[http://homepage.tudelft.nl/11r49/askey/contents.html " + "Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") if eqCounter < endNum: append_text("
\n") if newSec: newSec = False - append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") + append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + + "|" + secLabel(sections[secCount][0]) + "]]
\n") else: - append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") + append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", "_") + + "|" + secLabel(labels[eqCounter - 1]) + "]]
\n") + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", "_") + + "#" + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + + secLabel(sections[secCount + 1][0]) + "]]
\n") if eqS == sections[secCount][1]: - append_text( - "
[[" + sections[(secCount + 1) % len(sections)][0].replace(" ", - "_") + "|" + - sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") + append_text("
[[" + + sections[(secCount + 1) % len(sections)][0].replace(" ", "_") + "|" + + sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") else: - append_text( - "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", - "_") + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + append_text("
[[" + + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + "|" + + secLabel(labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") append_text("
\n") else: # FOR EXTRA EQUATIONS append_text("
\n") append_text("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ endNum - 1] + "]]
\n") - append_text("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ - 8:] + "|formula in " + - labels[0] + "]]
\n") + append_text("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][8:] + + "|formula in " + labels[0] + "]]
\n") append_text("
[[" + labels[0 % endNum].replace(" ", "_") + "|" + labels[ 0 % endNum] + "]]
\n") append_text("
\n") - - - elif "\\constraint" in line and parse: # symbols=symbols+getSym(line) symLine = line.strip("\n") if hCon: - comToWrite = comToWrite + "\n== Constraint(s) ==\n\n" + comToWrite += "\n== Constraint(s) ==\n\n" hCon = False constraint = True math = False @@ -812,7 +797,7 @@ def readin(ofname): # symbols=symbols+getSym(line) symLine = line.strip("\n") if hSub: - comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" + comToWrite += "\n== Substitution(s) ==\n\n" hSub = False substitution = True math = False @@ -824,7 +809,7 @@ def readin(ofname): elif "\\drmfnote" in line and parse: symbols = symbols + getSym(line) if hNote: - comToWrite = comToWrite + "\n== Note(s) ==\n\n" + comToWrite += "\n== Note(s) ==\n\n" hNote = False note = True math = False @@ -835,7 +820,9 @@ def readin(ofname): symLine = line.strip("\n") if hProof: hProof = False - comToWrite = comToWrite + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" + comToWrite += "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or " \ + "further clarification on the proof(s) in this space. \n

\n" \ + "
" proof = True proofLine = "" pause = False @@ -843,15 +830,6 @@ def readin(ofname): for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": pause = True - eqR = line[ind:line.find("}", ind) + 1] - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - eInd = refLabels.index("" + label) z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": @@ -867,8 +845,6 @@ def readin(ofname): proofLine += ( "
\n \n" + refEqs[ eInd] + "
\n") - - else: if pause: if line[ind] == "}": @@ -881,7 +857,7 @@ def readin(ofname): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - append_text(comToWrite + getEqP(proofLine, False) + "
\n
\n") + append_text(comToWrite + getEqP(proofLine) + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" @@ -889,19 +865,9 @@ def readin(ofname): elif proof: symLine += line.strip("\n") pauseP = False - # symbols=symbols+getSym(line) for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": pause = True - eqR = line[ind:line.find("}", ind) + 1] - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - eInd = refLabels.index("" + label) z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": @@ -926,7 +892,7 @@ def readin(ofname): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - append_text(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") + append_text(comToWrite + getEqP(proofLine).rstrip("\n") + "\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" @@ -945,7 +911,7 @@ def readin(ofname): symLine += line.strip("\n") append_text(line) if note and parse: - noteLine = noteLine + line + noteLine += line symbols = symbols + getSym(line) if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: @@ -953,7 +919,7 @@ def readin(ofname): comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" if constraint and parse: - conLine = conLine + line.replace("&", "&
") + conLine += line.replace("&", "&
") symLine += line.strip("\n") # symbols=symbols+getSym(line) @@ -965,7 +931,7 @@ def readin(ofname): append_text(comToWrite + "
" + getEq(conLine) + "

\n") comToWrite = "" if substitution and parse: - subLine = subLine + line.replace("&", "&
") + subLine += line.replace("&", "&
") symLine += line.strip("\n") # symbols=symbols+getSym(line) @@ -976,10 +942,6 @@ def readin(ofname): symLine = "" append_text(comToWrite + "
" + getEq(subLine) + "

\n") comToWrite = "" - # except Exception as detail: #If exception occured - # print("Exception",detail) #print details of error - # except: #If anythin else occured... - # print ("ERROR",sys.exc_info()[0])#ERROR with basic info if __name__ == "__main__": From da682f19af1c27c51e470d581c0cee921a03a2f8 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 5 Apr 2016 12:56:25 -0400 Subject: [PATCH 073/402] Add tests for parentheses file Demonstrate how unit tests can help to test the functionality of a module. --- AlexDanoff/src/parentheses.py | 51 +++++++++++++++-------------- AlexDanoff/test/test_parentheses.py | 49 +++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 AlexDanoff/test/test_parentheses.py diff --git a/AlexDanoff/src/parentheses.py b/AlexDanoff/src/parentheses.py index 6f995d1..63ad2bd 100644 --- a/AlexDanoff/src/parentheses.py +++ b/AlexDanoff/src/parentheses.py @@ -1,42 +1,42 @@ -"""Goes through input file, numbers every opening and corresponding closing parenthesis and writes result to output file.""" +"""Goes through input file, + numbers every opening and corresponding closing parenthesis and writes result to output file.""" -import sys import re _last_val = 0 -def remove(input, curly=False, cached=False): + +def remove(text, curly=False, cached=False): """Goes through input and replaces any opening and closing parentheses with numbered markers.""" - + global _last_val counter = 0 - #resume from previous count + # resume from previous count if cached: counter = _last_val updated = "" - open = "(" - close = ")" + open_delimiter = "(" + close_delimiter = ")" - #if client wants to replace curly braces, adjust accordingly + # if client wants to replace curly braces, adjust accordingly if curly: - open = "{" - close = "}" - - #go through input and replace parentheses with labels - for character in input: + open_delimiter = "{" + close_delimiter = "}" - #found an opening parenthesis, replace it with its label - if character == open: + # go through input and replace parentheses with labels + for character in text: + # found an opening parenthesis, replace it with its label + if character == open_delimiter: character = "###open_{0}###".format(counter) counter += 1 - #found a closing parenthesis, replace it with its label - if character == close: + # found a closing parenthesis, replace it with its label + if character == close_delimiter: counter -= 1 if counter < 0: @@ -46,17 +46,18 @@ def remove(input, curly=False, cached=False): updated += character - _last_val = counter #store our spot + _last_val = counter # store our spot return updated -def insert(input, curly=False): + +def insert(text, curly=False): """Goes through input and replaces any numbered markers with opening and closing parentheses.""" o_rep = "(" - c_rep = ")" - - #adjust for curly braces + c_rep = ")" + + # adjust for curly braces if curly: o_rep = "{" c_rep = "}" @@ -64,7 +65,7 @@ def insert(input, curly=False): open_pattern = r'###open_\d###' close_pattern = r'###close_\d###' - input = re.sub(open_pattern, o_rep, input) - input = re.sub(close_pattern, c_rep, input) + text = re.sub(open_pattern, o_rep, text) + text = re.sub(close_pattern, c_rep, text) - return input + return text diff --git a/AlexDanoff/test/test_parentheses.py b/AlexDanoff/test/test_parentheses.py new file mode 100644 index 0000000..d74fb21 --- /dev/null +++ b/AlexDanoff/test/test_parentheses.py @@ -0,0 +1,49 @@ +from unittest import TestCase +from parentheses import insert, remove + +testCases = [{ + 'normal': '\\sin(x)', + 'replaced': '\\sin###open_0###x###close_0###', +}, { + 'normal': '\\sin{x}', + 'replaced': '\\sin{x}', +}, + { + 'normal': '\\sin{x}', + 'replaced': '\\sin###open_0###x###close_0###', + 'curly': True + } +] + +roundTripTests = [{ + 'normal': '\\sin(\\arcsin(x))', +}, { + 'normal': '\\sin{\\arcsin(x)}', +}, { + 'normal': '\\sin{\\arcsin(x)}', + 'curly': True +}, { + 'normal': '\\sin{\\arcsin{x}}', + 'curly': True +}, +] + + +class TestInsert(TestCase): + def test_insert(self): + for case in testCases: + self.assertEqual(case['normal'], insert(case['replaced'], case.get('curly', False))) + + def test_remove(self): + for case in testCases: + self.assertEqual(case['replaced'], remove(case['normal'], case.get('curly', False))) + + def test_round_trip(self): + for case in testCases: + output = insert(remove(case['normal'], case.get('curly', False)), case.get('curly', False)) + self.assertEqual(case['normal'], output) + + def test_extended_round_trip(self): + for case in roundTripTests: + output = insert(remove(case['normal'], case.get('curly', False)), case.get('curly', False)) + self.assertEqual(case['normal'], output) From ed0ca6ca831653964cd6e9880b02d26bf7e32f3c Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Tue, 5 Apr 2016 13:15:15 -0400 Subject: [PATCH 074/402] Fix warnings from QuantifiedCode --- AlexDanoff/test/test_parentheses.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/AlexDanoff/test/test_parentheses.py b/AlexDanoff/test/test_parentheses.py index d74fb21..a502ab3 100644 --- a/AlexDanoff/test/test_parentheses.py +++ b/AlexDanoff/test/test_parentheses.py @@ -1,7 +1,7 @@ from unittest import TestCase from parentheses import insert, remove -testCases = [{ +test_cases = [{ 'normal': '\\sin(x)', 'replaced': '\\sin###open_0###x###close_0###', }, { @@ -15,7 +15,7 @@ } ] -roundTripTests = [{ +round_trip_tests = [{ 'normal': '\\sin(\\arcsin(x))', }, { 'normal': '\\sin{\\arcsin(x)}', @@ -31,19 +31,19 @@ class TestInsert(TestCase): def test_insert(self): - for case in testCases: + for case in test_cases: self.assertEqual(case['normal'], insert(case['replaced'], case.get('curly', False))) def test_remove(self): - for case in testCases: + for case in test_cases: self.assertEqual(case['replaced'], remove(case['normal'], case.get('curly', False))) def test_round_trip(self): - for case in testCases: + for case in test_cases: output = insert(remove(case['normal'], case.get('curly', False)), case.get('curly', False)) self.assertEqual(case['normal'], output) def test_extended_round_trip(self): - for case in roundTripTests: + for case in round_trip_tests: output = insert(remove(case['normal'], case.get('curly', False)), case.get('curly', False)) self.assertEqual(case['normal'], output) From 9b3664d1b05d83ca2842c5a0d5d3a80c67c442d2 Mon Sep 17 00:00:00 2001 From: Philip Wang Date: Wed, 6 Apr 2016 17:16:43 -0400 Subject: [PATCH 075/402] Update tex2Wiki.py --- Azeem/src/OrthogonalPolynomials.mmd | 81 --- Azeem/src/new.Glossary.csv | 691 ------------------------- Azeem/src/tex2Wiki.py | 19 +- Pipeline/src/OrthogonalPolynomials.mmd | 81 --- Pipeline/src/new.Glossary.csv | 691 ------------------------- 5 files changed, 10 insertions(+), 1553 deletions(-) delete mode 100644 Azeem/src/OrthogonalPolynomials.mmd delete mode 100644 Azeem/src/new.Glossary.csv delete mode 100644 Pipeline/src/OrthogonalPolynomials.mmd delete mode 100644 Pipeline/src/new.Glossary.csv diff --git a/Azeem/src/OrthogonalPolynomials.mmd b/Azeem/src/OrthogonalPolynomials.mmd deleted file mode 100644 index c841fb5..0000000 --- a/Azeem/src/OrthogonalPolynomials.mmd +++ /dev/null @@ -1,81 +0,0 @@ -drmf_bof -'''Orthogonal Polynomials''' -{{#set:Section=0}} -== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
-== Sections in KLS Chapter 9 == - -
-* [[Wilson|Wilson]] -* [[Racah|Racah]] -* [[Continuous dual Hahn|Continuous dual Hahn]] -* [[Continuous Hahn|Continuous Hahn]] -* [[Hahn|Hahn]] -* [[Dual Hahn|Dual Hahn]] -* [[Meixner-Pollaczek|Meixner-Pollaczek]] -* [[Jacobi|Jacobi]] -* [[Jacobi: Special cases|Jacobi: Special cases]] -* [[Pseudo Jacobi|Pseudo Jacobi]] -* [[Meixner|Meixner]] -* [[Krawtchouk|Krawtchouk]] -* [[Laguerre|Laguerre]] -* [[Bessel|Bessel]] -* [[Charlier|Charlier]] -* [[Hermite|Hermite]] -
-== Sections in KLS Chapter 14 == - -
-* [[Askey-Wilson|Askey-Wilson]] -* [[q-Racah|''q''-Racah]] -* [[Continuous dual q-Hahn|Continuous dual ''q''-Hahn]] -* [[Continuous q-Hahn|Continuous ''q''-Hahn]] -* [[Big q-Jacobi|Big ''q''-Jacobi]] -* [[Big q-Jacobi: Special case|Big ''q''-Jacobi: Special case]] -* [[q-Hahn|''q''-Hahn]] -* [[Dual q-Hahn|Dual ''q''-Hahn]] -* [[Al-Salam-Chihara|Al-Salam-Chihara]] -* [[q-Meixner-Pollaczek|''q''-Meixner-Pollaczek]] -* [[Continuous q-Jacobi|Continuous ''q''-Jacobi]] -* [[Continuous q-Jacobi: Special cases|Continuous ''q''-Jacobi: Special cases]] -* [[Big q-Laguerre|Big ''q''-Laguerre]] -* [[Little q-Jacobi|Little ''q''-Jacobi]] -* [[Little q-Jacobi: Special case|Little ''q''-Jacobi: Special case]] -* [[q-Meixner|''q''-Meixner]] -* [[Quantum q-Krawtchouk|Quantum ''q''-Krawtchouk]] -* [[q-Krawtchouk|''q''-Krawtchouk]] -* [[Affine q-Krawtchouk|Affine ''q''-Krawtchouk]] -* [[Dual q-Krawtchouk|Dual ''q''-Krawtchouk]] -* [[Continuous big q-Hermite|Continuous big ''q''-Hermite]] -* [[Continuous q-Laguerre|Continuous ''q''-Laguerre]] -* [[Little q-Laguerre / Wall|Little ''q''-Laguerre / Wall]] -* [[q-Laguerre|''q''-Laguerre]] -* [[q-Bessel|''q''-Bessel]] -* [[q-Charlier|''q''-Charlier]] -* [[Al-Salam-Carlitz I|Al-Salam-Carlitz I]] -* [[Al-Salam-Carlitz II|Al-Salam-Carlitz II]] -* [[Continuous q-Hermite|Continuous ''q''-Hermite]] -* [[Stieltjes-Wigert|Stieltjes-Wigert]] -* [[Discrete q-Hermite I|Discrete ''q''-Hermite I]] -* [[Discrete q-Hermite II|Discrete ''q''-Hermite II]] -
- -drmf_eof diff --git a/Azeem/src/new.Glossary.csv b/Azeem/src/new.Glossary.csv deleted file mode 100644 index 8875e6b..0000000 --- a/Azeem/src/new.Glossary.csv +++ /dev/null @@ -1,691 +0,0 @@ -\AGM@{a}{g},arithmetic-geometric mean,arithmetic-geometric-mean,F|F:P,$M$,http://dlmf.nist.gov/19.8#SS1.p1, -\AThetaFunction@{x},Jacobi theta function $\vartheta$,a-theta-function,F|F:P,$\vartheta$,http://dlmf.nist.gov/23.1, -\AbstractJacobi{p}{q},generic Jacobian elliptic function,generic-Jacobian-elliptic-function,F|F,$\mathrm{pq}$,http://dlmf.nist.gov/22.2#E10, -\Acos@@{z},general inverse cosine function,multivalued-inverse-cosine,F|F:P:nP,$\mathrm{Arccos}$,http://dlmf.nist.gov/4.23#E2, -\Acosh@@{z},general inverse hyperbolic cosine function,multivalued-hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{Arccosh}$,http://dlmf.nist.gov/4.37#E2, -\Acot@@{z},general inverse cotangent function,multivalued-inverse-cotangent,F|F:P:nP,$\mathrm{Arccot}$,http://dlmf.nist.gov/4.23#E6, -\Acoth@@{z},general inverse hyperbolic cotangent function,multivalued-hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{Arccoth}$,http://dlmf.nist.gov/4.37#E6, -\Acsc@@{z},general inverse cosecant function,multivalued-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsc}$,http://dlmf.nist.gov/4.23#E4, -\Acsch@@{z},general inverse hyperbolic cosecant function,multivalued-hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsch}$,http://dlmf.nist.gov/4.37#E4, -\AffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk, -\AiryAi@{z},Airy function ${\rm Ai}$,Airy-Ai,F|F:P,$\mathrm{Ai}$,http://dlmf.nist.gov/9.2#i, -\AiryBi@{z},Airy function ${\rm Bi}$,Airy-Bi,F|F:P,$\mathrm{Bi}$,http://dlmf.nist.gov/9.2#i, -\AiryModulusM@{z},Airy modulus function $M$,modulus-Airy-M,F|F:P,$M$,http://dlmf.nist.gov/9.8#i, -\AiryModulusN@{z},Airy modulus function $N$,modulus-Airy-N,F|F:P,$N$,http://dlmf.nist.gov/9.8#i, -\AiryPhasePhi@{z},Airy phase function $\phi$,phase-Airy-Phi,F|F:P,$\phi$,http://dlmf.nist.gov/9.8#i, -\AiryPhaseTheta@{z},Airy phase function $\theta$,phase-Airy-Theta,F|F:P,$\theta$,http://dlmf.nist.gov/9.8#i, -\AlSalamCarlitzI{a}{n}@{x}{q},Al-Salam-Carlitz I polynomial,EMPTY,P|F:P,$U^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI, -\AlSalamCarlitzII{a}{n}@{x}{q},Al-Salam-Carlitz II polynomial,EMPTY,P|F:P,$V^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII, -\AlSalamChihara{n}@@{x}{a}{b}{q},Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-Q,P|F:P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara, -\AlSalamChiharaQ{n}@{x}{a}{b}{q},Al-Salam-Chihara polynomial,AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.28#E7, -\AlSalamIsmail{n}@{x}{s}{q},Al-Salam Ismail polynomial,Al-Salam-Ismail-q-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail, -\AngerA{\nu}@{z},Anger-Weber function,associated-Anger-Weber-A,F|F:P,$\mathbf{A}_{\nu}$,http://dlmf.nist.gov/11.10#E4, -\AngerJ{\nu}@{z},Anger function,Anger-J,F|F:P,$\mathbf{J}_{\nu}$,http://dlmf.nist.gov/11.10#E1, -\AntiDer@{x}{f(x)},semantic antiderivative,antiderivative,SM|O,"$\int f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:AntiDer, -\AppellFi@{\alpha}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_1$,Appell-F-1,F|F:P,${F_{1}}$,http://dlmf.nist.gov/16.13#E1, -\AppellFii@{\alpha}{\beta}{\beta'}{\gamma}{\gamma'}{x}{y},Appell function $F_2$,Appell-F-2,F|F:P,${F_{2}}$,http://dlmf.nist.gov/16.13#E2, -\AppellFiii@{\alpha}{\alpha'}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_3$,Appell-F-3,F|F:P,${F_{3}}$,http://dlmf.nist.gov/16.13#E3, -\AppellFiv@{\alpha}{\beta}{\gamma}{\gamma'}{x}{y},Appell function $F_4$,Appell-F-4,F|F:P,${F_{4}}$,http://dlmf.nist.gov/16.13#E4, -\Asec@@{z},general inverse secant function,multivalued-inverse-secant,F|F:P:nP,$\mathrm{Arcsec}$,http://dlmf.nist.gov/4.23#E5, -\Asech@@{z},general inverse hyperbolic secant function,multivalued-hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{Arcsech}$,http://dlmf.nist.gov/4.37#E5, -\Asin@@{z},general inverse sine function,multivalued-inverse-sine,F|F:P:nP,$\mathrm{Arcsin}$,http://dlmf.nist.gov/4.23#E1, -\Asinh@@{z},general inverse hyperbolic sine function,multivalued-hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{Arcsinh}$,http://dlmf.nist.gov/4.37#E1, -\AskeyWilson{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, -\AskeyWilsonp{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, -\AssJacobiP{\alpha}{\beta}{n}@{x}{c},associated Jacobi polynomial,associated-Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\alpha)}_{n}$",http://dlmf.nist.gov/18.30#E4, -\AssLegendrePoly{n}@{x}{c},associated Legendre polynomial,Legendre-spherical-polynomial-P,F|F:P,$P_{n}$,http://dlmf.nist.gov/18.30#E6, -\Atan@@{z},general inverse tangent function,multivalued-inverse-tangent,F|F:P:nP,$\mathrm{Arctan}$,http://dlmf.nist.gov/4.23#E3, -\Atanh@@{z},general inverse hyperbolic tangent function,multivalued-hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{Arctanh}$,http://dlmf.nist.gov/4.37#E3, -\BarnesGamma@{z},Barnes $G$-function (or double gamma function),Barnes-Gamma,F|F:P,$G$,http://dlmf.nist.gov/5.17#E1, -\BellNumber@{n},Bell number,Bell-number,I|F:P,$B$,http://dlmf.nist.gov/26.7#i, -\BernoulliB{n}@{x},Bernoulli polynomial,Bernoulli-polynomial-B,P|F:P,$B_{n}$,http://dlmf.nist.gov/24.2#i, -\BesselA{\nu}@{\Matrix{T}},Bessel function of matrix argument of the first kind,Bessel-of-matrix-A,F|F:P,$A_{\nu}$,http://dlmf.nist.gov/35.5#i, -\BesselB{\nu}@{\Matrix{T}},Bessel function of matrix argument of the second kind,Bessel-of-matrix-B,F|F:P,$B_{\nu}$,http://dlmf.nist.gov/35.5#E3, -\BesselI{\nu}@{z},modified Bessel function of the first kind,modified-Bessel-first-kind,F|F:P,$I_{\nu}$,http://dlmf.nist.gov/23.1, -\BesselItilde{\nu}@{x},modified Bessel function of the first kind of imaginary order,modified-Bessel-first-kind-imaginary-order,F|F:P,$\widetilde{I}_{\nu}$,http://dlmf.nist.gov/23.1, -\BesselJ{\nu}@{z},Bessel function of the first kind,Bessel-J,F|F:P,$J_{\nu}$,http://dlmf.nist.gov/10.2#E2, -\BesselJtilde{\nu}@{x},Bessel function of the first kind of imaginary order,Bessel-J-imaginary-order,F|F:P,$\widetilde{J}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, -\BesselK{\nu}@{z},modified Bessel function of the second kind,modified-Bessel-second-kind,F|F:P,$K_{\nu}$,http://dlmf.nist.gov/23.1, -\BesselKtilde{\nu}@{x},modified Bessel function of the second kind of imaginary order,modified-Bessel-second-kind-imaginary-order,F|F:P,$\widetilde{K}_{\nu}$,http://dlmf.nist.gov/10.45#E2, -\BesselModulusM{\nu}@{x},modulus of Bessel functions,modulus-Bessel-M,F|F:P,$M_{\nu}$,http://dlmf.nist.gov/10.18#E1, -\BesselModulusN{\nu}@{x},modulus of derivatives of Bessel functions,modulus-Bessel-N,F|F:P,$N_{\nu}$,http://dlmf.nist.gov/10.18#E2, -\BesselPhasePhi{\nu}@{x},phase of derivatives of Bessel functions,phase-Bessel-Phi,F|F:P,$\phi_{\nu}$,http://dlmf.nist.gov/10.18#E3, -\BesselPhaseTheta{\nu}@{x},phase of Bessel functions,phase-Bessel-Theta,F|F:P,$\theta_{\nu}$,http://dlmf.nist.gov/10.18#E3, -\BesselPoly{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, -\BesselPolyy{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, -\BesselY{\nu}@{z},Bessel function of the second kind,Bessel-Y-Weber,F|F:P,$Y_{\nu}$,http://dlmf.nist.gov/10.2#E3, -\BesselYtilde{\nu}@{x},Bessel function of the second kind of imaginary order,Bessel-Y-Weber-imaginary-order,F|F:P,$\widetilde{Y}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, -\BickleyKi{\alpha}@{x},Bickley function,Bickley-Ki,F|F:P,$\mathrm{Ki}_{\alpha}$,http://dlmf.nist.gov/10.43#E11, -\BigO@{x},order not exceeding,Big-O,Q|F:P,$O$,http://dlmf.nist.gov/2.1#E3, -\CanonicInt{K}@{\Vector{x}},canonical integral $\Psi_K$,canonical-integral,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E4, -\CanonicIntU@{\Vector{x}},umbilic canonical integral $\Psi^{({\rm U})}$,canonical-umbilic-integral,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E5, -\CanonicIntE@{\Vector{x}},elliptic umbilic canonical integral $\Psi^{({\rm E})}$,elliptic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E6, -\CanonicIntH@{\Vector{x}},hyperbolic umbilic canonical integral $\Psi^{({\rm H})}$,hyperbolic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E8, -\CatalanNumber@{n},Catalan number,Catalan-number,I|F:P,$C$,http://dlmf.nist.gov/26.5#E1, -\CatalansConstant,Catalan's constant,Catalan's-constant,C|F,$G$,http://dlmf.nist.gov/25.11.E40, -\Charlier{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, -\CharlierC{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, -\ChebyC{n}@{x},dilated Chebyshev polynomial of the first kind,dilated-Chebyshev-polynomial-second-kind-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.1#E3, -\ChebyS{n}@{x},dilated Chebyshev polynomial of the second kind,dilated-Chebyshev-polynomial-first-kind-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.1#E3, -\ChebyT{n}@{x},Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-T,P|F:P,$T_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r8, -\ChebyTs{n}@{x},shifted Chebyshev polynomial of the first kind,shifted-Chebyshev-polynomial-first-kind-T-star,P|F:P,$T^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r20, -\ChebyU{n}@{x},Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-U,P|F:P,$U_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r11, -\ChebyUs{n}@{x},shifted Chebyshev polynomial of the second kind,shifted-Chebyshev-polynomial-second-kind-U-star,P|F:P,$U^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r23, -\ChebyV{n}@{x},Chebyshev polynomial of the third kind,Chebyshev-polynomial-third-kind-V,P|F:P,$V_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r14, -\ChebyW{n}@{x},Chebyshev polynomial of the fourth kind,Chebyshev-polynomial-fourth-kind-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r17, -\ChebyshevPsi@{x},Chebyshev $\ChebyshevPsi$-function,Chebyshev-psi,F|F:P,$\psi$,http://dlmf.nist.gov/25.16#E1, -\CiglerqChebyT{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $T$,Cigler-q-Chebyshev-polynomial-T,P|P:F,$T_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT, -\CiglerqChebyU{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $U$,Cigler-q-Chebyshev-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU, -\CompEllIntCE@@{k},Legendre's complementary complete elliptic integral of the second kind,complementary-complete-elliptic-integral-second-kind-E,F|F:P:nP,${E'}$,http://dlmf.nist.gov/19.2#E9, -\CompEllIntCK@@{k},Legendre's complementary complete elliptic integral of the first kind,complementary-complete-elliptic-integral-first-kind-K,F|F:P:nP,${K'}$,http://dlmf.nist.gov/19.2#E9, -\CompEllIntD@@{k},complete elliptic integral of Legendre's type,complete-elliptic-integral-D,F|F:P:nP,$D$,http://dlmf.nist.gov/19.2#E8, -\CompEllIntE@@{k},Legendre's complete elliptic integral of the second kind,complete-elliptic-integral-second-kind-E,F|F:P:nP,$E$,http://dlmf.nist.gov/19.2#E8, -\CompEllIntK@@{k},Legendre's complete elliptic integral of the first kind,complete-elliptic-integral-first-kind-K,F|F:P:nP,$K$,http://dlmf.nist.gov/19.2#E8, -\CompEllIntPi@{\alpha^2}{k},Legendre's complete elliptic integral of the third kind,complete-elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E8, -\Complex,set of complex numbers,EMPTY,SN|F,$\mathbb{C}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r1, -\ComplexZeroAiryBi{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi$,complex-zero-Airy-Bi,F|F,$\beta_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, -\ComplexZeroAiryBiPrime{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi'$,complex-zero-derivative-Airy-Bi,F|F,$\beta'_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, -\CompositionsC[m]@{n},number of compositions,number-of-compositions-C,I|F:F:P:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, -\CosInt@{z},cosine integral ${\rm Ci}$,cosine-integral,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/6.2#E11, -\CosIntCin@{z},cosine integral ${\rm Cin}$,cosine-integral-Cin,F|F:P,$\mathrm{Cin}$,http://dlmf.nist.gov/6.2#E12, -\CosIntg@{a}{z},generalized cosine integral ${\rm Ci}$,generalized-cosine-integral-Ci,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/8.21#E2, -\CoshInt@{z},hyperbolic cosine integral,hyperbolic-cosine-integral,F|F:P,$\mathrm{Chi}$,http://dlmf.nist.gov/6.2#E16, -\CoulombC{\ell}@{\eta},normalizing constant for Coulomb radial functions,Coulomb-C,F|F:P,$C_{\ell}$,http://dlmf.nist.gov/33.2#E5, -\CoulombF{\ell}@{\eta}{\rho},regular Coulomb radial function,regular-Coulomb-F,F|F:P,$F_{\ell}$,http://dlmf.nist.gov/33.2#E3, -\CoulombG{\ell}@{\eta}{\rho},irregular Coulomb radial function,irregular-Coulomb-G,F|F:P,$G_{\ell}$,http://dlmf.nist.gov/33.2#E11, -\CoulombH{\pm}{\ell}@{\eta}{\rho},irregular Coulomb radial functions,irregular-Coulomb-H,F|F:P,${H^{\pm}_{\ell}}$,http://dlmf.nist.gov/33.2#E7, -\CoulombM{\ell}@{\eta}{\rho},envelope of Coulomb functions,envelope-Coulomb-M,F|F:P,$M_{\ell}$,http://dlmf.nist.gov/33.3#E1, -\CoulombSigma{\ell}@{\eta},Coulomb phase shift,Coulomb-phase-shift,F|F:P,${\sigma_{\ell}}$,http://dlmf.nist.gov/33.2#E10, -\CoulombTheta{\ell}@{\eta}{\rho},phase of Coulomb functions,Coulomb-phase,F|F:P,${\theta_{\ell}}$,http://dlmf.nist.gov/33.2#E9, -\Coulombc@{\epsilon}{\ell}{r},irregular Coulomb function $c$,Coulomb-c,F|F:P,$c$,http://dlmf.nist.gov/23.1, -\Coulombf@{\epsilon}{\ell}{r},regular Coulomb function $f$,Coulomb-f,F|F:P,$f$,http://dlmf.nist.gov/33.14#E4, -\Coulombh@{\epsilon}{\ell}{r},irregular Coulomb function $h$,Coulomb-h,F|F:P,$h$,http://dlmf.nist.gov/33.14#E7, -\Coulombrhotp@{\eta}{\ell},outer turning point for Coulomb radial functions,Coulomb-radial-outer-turning-point,F|F:P,$\rho_{\mathrm{tp}}$,http://dlmf.nist.gov/33.2#E2, -\Coulombrtp@{\epsilon}{\ell},outer turning point for Coulomb functions,Coulomb-outer-turning-point,F|F:P,$r_{\mathrm{tp}}$,http://dlmf.nist.gov/33.14#E3, -\Coulombs@{\epsilon}{\ell}{r},regular Coulomb function $s$,Coulomb-s,F|F:P,$s$,http://dlmf.nist.gov/33.14#E9, -\CuspCat{K}@{t}{\Vector{x}},cuspoid catastrophe,cuspoid-catastrophe,F|F:P,$\Phi_{K}$,http://dlmf.nist.gov/36.2#E1, -\Cylinder{\nu}@{z},cylinder function,cylinder-function,F|F:P,$\mathscr{C}_{\nu}$,http://dlmf.nist.gov/10.2#P5.p1, -\DawsonsInt@{z},Dawson's integral,Dawsons-integral,F|F:P,$F$,http://dlmf.nist.gov/7.2#E5, -\DedekindModularEta@{\tau},Dedekind's eta function (or Dedekind modular function),Dedekind-modular-Eta,F|F:P,$\eta$,http://dlmf.nist.gov/23.15#E9,http://dlmf.nist.gov/27.14#E12 -\DiffCat{K}@{\Vector{x}}{k},diffraction catastrophe,diffraction-catastrophe,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E10, -\DiffCatE@{\Vector{x}}{k},elliptic umbilic canonical integral function,diffraction-elliptic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/23.1, -\DiffCatH@{\Vector{x}}{k},hyperbolic umbilic canonical integral function,diffraction-hyperbolic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E11, -\DiffCatU@{\Vector{x}}{k},umbilic canonical integral function,diffraction-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E11, -\Dilogarithm@{z},dilogarithm,dilogarithm,F|F:P,$\mathrm{Li}_2$,http://dlmf.nist.gov/25.12#E1, -\Diracdelta@{x-a},Dirac delta (or Dirac delta function),Dirac-delta,D|F:P,$\Diracdelta@{x-a}$,http://dlmf.nist.gov/1.17#SS1.p1, -\DirichletCharacter@@{n}{k},Dirichlet character,Dirichlet-character,I|F:P:nP,$\chi$,http://dlmf.nist.gov/27.8, -\DirichletL@{s}{\chi},Dirichlet $\DirichletL$-function,Dirichlet-L,F|F:P,$L$,http://dlmf.nist.gov/25.15#E1, -\DiscriminantDelta@{\tau},discriminant function,discriminant-delta,F|F:P,$\Delta$,http://dlmf.nist.gov/27.14#E16, -\DiskOP{\alpha}{m}{n}@{z},disk polynomial,disk-orthogonal-polynomial-R,P|F:P,"$R^{(\alpha)}_{m,n}$",http://dlmf.nist.gov/18.37#E1, -\Distribution{f}{g},distribution,EMPTY,D|F,"$\left\langle f,g\right\rangle$",http://dlmf.nist.gov/1.16#SS1.p5, -\DivisorFunctionD[k]@{n},divisor function,divisor-function-D,F|F:P,$d_{k}$,http://dlmf.nist.gov/27.2#E9, -\DivisorSigma{\alpha}@{n},sum of powers of divisors,divisor-sigma,I|F:P,$\sigma_{\alpha}$,http://dlmf.nist.gov/27.2#E10, -\EllIntD@{\phi}{k},incomplete elliptic integral of Legendre's type,elliptic-integral-third-kind-D,F|F:P,$D$,http://dlmf.nist.gov/19.2#E6, -\EllIntE@{\phi}{k},Legendre's incomplete elliptic integral of the second kind,elliptic-integral-second-kind-E,F|F:P,$E$,http://dlmf.nist.gov/19.2#E5, -\EllIntF@{\phi}{k},Legendre's incomplete elliptic integral of the first kind,elliptic-integral-first-kind-F,F|F:P,$F$,http://dlmf.nist.gov/19.2#E4, -\EllIntPi@{\phi}{\alpha^2}{k},Legendre's incomplete elliptic integral of the third kind,elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E7, -\EllIntR{-a}@{\Vector{b}}{\Vector{z}},Carlson integral $R_{-a}$,Carlson-integral-R,F|F:P,$R_{-a}$,http://dlmf.nist.gov/19.16#E9, -\EllIntRC@@{x}{y},Carlson's elliptic integral $R_C$,Carlson-integral-RC,F|F:P:nP,$R_C$,http://dlmf.nist.gov/19.2#E17, -\EllIntRD@@{x}{y}{z},Carlson's elliptic integral $R_D$,Carlson-integral-RD,F|F:P:nP,$R_D$,http://dlmf.nist.gov/19.16#E5, -\EllIntRF@@{x}{y}{z},Carlson's symmetric elliptic integral of first kind,Carlson-integral-RF,F|F:P:nP,$R_F$,http://dlmf.nist.gov/19.16#E1, -\EllIntRG@@{x}{y}{z},Carlson's symmetric elliptic integral of second kind,Carlson-integral-RG,F|F:P:nP,$R_G$,http://dlmf.nist.gov/19.16#E3, -\EllIntRJ@@{x}{y}{z}{p},Carlson's symmetric elliptic integral of third kind,Carlson-integral-RJ,F|F:P:nP,$R_J$,http://dlmf.nist.gov/19.16#E2, -\EllIntcel@{k_c}{p}{a}{b},Bulirsch's complete elliptic integral,Bulirsch-integral-cel,F|F:P,$\mathrm{cel}$,http://dlmf.nist.gov/19.2#E11, -\EllIntelone@{x}{k_c},Bulirsch's incomplete elliptic integral of the first kind,Bulirsch-integral-el-1,F|F:P,$\mathrm{el1}$,http://dlmf.nist.gov/19.2#E15, -\EllIntelthree@{x}{k_c}{p},Bulirsch's incomplete elliptic integral of the third kind,Bulirsch-integral-el-3,F|F:P,$\mathrm{el3}$,http://dlmf.nist.gov/19.2#E16, -\EllInteltwo@{x}{k_c}{a}{b},Bulirsch's incomplete elliptic integral of the second kind,Bulirsch-integral-el-2,F|F:P,$\mathrm{el2}$,http://dlmf.nist.gov/19.2#E12, -\EulerBeta@{a}{b},beta function,Euler-Beta,F|F:P,$\mathrm{B}$,http://dlmf.nist.gov/5.12#E1, -\EulerConstant,Euler's (Euler-Mascheroni) constant,EMPTY,C|F,$\gamma$,http://dlmf.nist.gov/5.2#E3, -\EulerE{n}@{x},Euler polynomial,Euler-polynomial-E,P|F:P,$E_{n}$,http://dlmf.nist.gov/24.2#ii, -\EulerGamma@{z},Euler's gamma function,Euler-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/5.2#E1, -\EulerPhi@{x},Euler's reciprocal function,Euler-phi,F|F:P,$\mathit{f}$,http://dlmf.nist.gov/27.14#E2, -\EulerSumH@{s},Euler sums,Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p1, -\EulerTotientPhi[k]@{n},Euler's totient $\phi_k(n)$,Euler-totient-phi,I|F:P,$\phi_{k}$,http://dlmf.nist.gov/27.2#E6, -\EulerianNumber{n}{k},Eulerian number,Eulerian-number,I|F,$\left\langle n\atop k\right\rangle$,http://dlmf.nist.gov/26.14#SS1.p3, -\ExpInt@{z},exponential integral $E_1$,exponential-integral,F|F:P,$E_1$,http://dlmf.nist.gov/6.2#E1, -\ExpIntEin@{z},complementary exponential integral ${\rm Ein}$,complementary-exponential-integral,F|F:P,$\mathrm{Ein}$,http://dlmf.nist.gov/6.2#E3, -\ExpInti@{x},exponential integral ${\rm Ei}$,exponential-integral-Ei,F|F:P,$\mathrm{Ei}$,http://dlmf.nist.gov/6.2#E1, -\ExpIntn{p}@{z},generalized exponential integral,exponential-integral-En,F|F:P,$E_{p}$,http://dlmf.nist.gov/8.19#E1, -\FerrersHatQ[-\mu]{-\frac{1}{2}+i\tau}@{x},conical function $\widehat{\mathsf{Q}}_\nu^\mu$,Ferrers-conical-legendre-Q-hat,F|FO:PO:FnO:PnO,$\widehat{\mathsf{Q}}_\nu^\mu$,http://dlmf.nist.gov/14.20#E2, -\FerrersP[\mu]{\nu}@{x},Ferrers function of the first kind,Ferrers-Legendre-P-first-kind,F|FO:PO:FnO:PnO,$\mathsf{P}_\nu^\mu$,http://dlmf.nist.gov/14.3#E1, -\FerrersQ[\mu]{\nu}@{x},Ferrers function of the second kind,Ferrers-Legendre-Q-first-kind,F|FO:PO:FnO:PnO,$\mathsf{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E2, -\FishersHh{n}@{z},probability function,Fishers-Hh,F|F:P,$\mathit{Hh}_{n}$,http://dlmf.nist.gov/7.18#E12, -\FresnelCos@{z},Fresnel integral $C$,Fresnel-cosine-integral,F|F:P,$C$,http://dlmf.nist.gov/7.2#E7, -\FresnelF@{z},Fresnel integral ${\mathcal F}$,Fresnel-integral,F|F:P,$\mathcal{F}$,http://dlmf.nist.gov/7.2#E6, -\FresnelSin@{z},Fresnel integral $S$,Fresnel-sine-integral,F|F:P,$S$,http://dlmf.nist.gov/7.2#E8, -\Fresnelf@{z},auxiliary function for Fresnel integrals ${\rm f}$,Fresnel-auxilliary-function-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/7.2#E10, -\Fresnelg@{z},auxiliary function for Fresnel integrals ${\rm g}$,Fresnel-auxilliary-function-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/7.2#E11, -\GammaP@{a}{z},normalized incomplete gamma function $P$,incomplete-gamma-P,F|F:P,$P$,http://dlmf.nist.gov/8.2#E4, -\GammaQ@{a}{z},normalized incomplete gamma function $Q$,incomplete-gamma-Q,F|F:P,$Q$,http://dlmf.nist.gov/8.2#E4, -\GaussSum@{n}{\DirichletCharacter},Gauss sum,Gauss-sum,F|F:P,$G$,http://dlmf.nist.gov/27.10#E9, -\GenBernoulliB{\ell}{n}@{x},generalized Bernoulli polynomial,generalized-Bernoulli-polynomial-B,P|F:P,$B^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, -\GenBesselFun@{\rho}{\beta}{z},generalized Bessel function,generalized-Bessel-function,F|F:P,$\phi$,http://dlmf.nist.gov/10.46#E1, -\GenEulerE{\ell}{n}@{x},generalized Euler polynomial,generalized-Euler-polynomial-E,P|F:P,$E^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, -\GenEulerSumH@{s}{z},generalized Euler sums,generalized-Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p7, -\GenGegenbauer{\alpha}{\beta}{n}@{x},Generalized Gegenbauer polynomial,generalized-Gegenbauer-polynomial-S,P|F:P,"$S^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer, -\GenHermite[\alpha]{n}@{x},generalized Hermite polynomial,generalized-Hermite-polynomial-H,P|FO:PO:FnO:PnO,$H_n^{\mu}$,http://drmf.wmflabs.org/wiki/Definition:GenHermite, -\GoodStat@{z},Goodwin-Staton integral,Goodwin-Staton-integral,F|F:P,$G$,http://dlmf.nist.gov/7.2#E12, -\GottliebLaguerre{n}@{x},Gottlieb-Laguerre polynomial,Gottlieb-Laguerre-polynomial-l,P|F:P,$l_{n}$,http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre, -\Gudermannian@@{x},Gudermannian function,inverse-Gudermannian,F|F:P:nP,$\mathrm{gd}$,http://dlmf.nist.gov/4.23#E39, -\Hahn{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, -\HahnQ{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, -\HahnR{n}@{x}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, -\HahnS{n}@{x}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, -\Hahnp{n}@{x}{a}{b}{\conj{a}}{\conj{b}},continuous Hahn polynomial,continuous-Hahn-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, -\HankelHi{\nu}@{z},Hankel function of the first kind,Hankel-H-1-Bessel-third-kind,F|F:P,${H^{(1)}_{\nu}}$,http://dlmf.nist.gov/10.2#E5, -\HankelHii{\nu}@{z},Hankel function of the second kind,Hankel-H-2-Bessel-third-kind,F|F:P,${H^{(2)}_{\nu}}$,http://dlmf.nist.gov/10.2#E6, -\HarmonicNumber{n},Harmonic number,Harmonic-number,I|F,$H_{n}$,http://dlmf.nist.gov/25.11#E33, -\HeavisideH@{x},Heaviside step function,Heaviside-H,F|F:P,$H$,http://dlmf.nist.gov/1.16#E13, -\Hermite{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, -\HermiteH{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, -\HermiteHe{n}@{x},Hermite polynomial $He_n$,Hermite-polynomial-He,P|F:P,$\mathit{He}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r29, -\HeunFunction{m}{a}{b}@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $(a;b)Hf_m^\nu$,Heun-function,F|FO:PO:nPO:FnO:PnO:nPnO,"$(s_1,s_2)\mathit{Hf}_{m}^\nu$",http://dlmf.nist.gov/31.4#p1, -\HeunLocal@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $Hl$,Heun-local,F|F:P:nP,$\mathit{H\!\ell}$,http://dlmf.nist.gov/31.3#E1, -\HeunPolynom{n}{m}@@{a}{q}{-n}{\beta}{\gamma}{\delta}{z},Heun polynomial,Heun-polynomial-m,P|F:P:nP,"$\mathit{Hp}_{n,m}$",http://dlmf.nist.gov/31.5#E2, -\HilbertTrans@{f}{x},Hilbert transform,Hilbert-transform,O|F:P,$\mathcal{H}$,http://dlmf.nist.gov/1.14#SS5.p1, -\HurwitzZeta@{s}{a},Hurwitz zeta function,Hurwitz-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.11#E1, -\HyperPsi@{a}{b}{\Matrix{T}},confluent hypergeometric function of matrix argument of the second kind,confluent-hypergeometric-of-matrix-Psi,F|F:P,$\Psi$,http://dlmf.nist.gov/35.6#E2, -\HyperboldpFq{p}{q}@@@{\Vector{a}}{\Vector{b}}{z},scaled (or Olver's) generalized hypergeometric function,hypergeometric-bold-pFq,F|F:fo1:fo2:fo3,${{}_{p}{\mathbf{F}}_{q}}$,http://dlmf.nist.gov/16.2#E5, -\HypergeoF@@@{a}{b}{c}{z},hypergeometric function,Gauss-hypergeometric-F,F|F:fo1:fo2:fo3,$F$,http://dlmf.nist.gov/15.2#E1, -\HypergeoboldF@@@{a}{b}{c}{z},Olver's hypergeometric function,scaled-hypergeometric-bold-F,F|F:fo1:fo2:fo3,$\mathbf{F}$,http://dlmf.nist.gov/15.2#E2, -"\HyperpFq{p}{q}@@@{a_1,...,a_p}{b_1,...,b_q}{z}",generalized hypergeometric function,Gauss-hypergeometric-pFq,F|F:fo1:fo2:fo3,${{}_{p}F_{q}}$,http://dlmf.nist.gov/16.2#E1, -"\HyperpHq{p}{q}@@@{{a_1,...,a_p}{b_1,...,b_q}{z}",bilateral hypergeometric function,hypergeometric-pHq,F|F:fo1:fo2:fo3,${{}_{p}H_{q}}$,http://dlmf.nist.gov/16.4#E16, -\IncBeta{x}@{a}{b},incomplete beta function,incomplete-Beta,F|F:P,$\mathrm{B}_{x}$,http://dlmf.nist.gov/8.17#E1, -\IncGamma@{a}{z},incomplete gamma function $\Gamma$,incomplete-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/8.2#E2, -\IncI{x}@{a}{b},regularized incomplete beta function,IncI,F|F:P,$I_{x}$,http://dlmf.nist.gov/8.17#E2, -\Int{a}{b}@{x}{f(x)},semantic definite integral,semantic-definite-integral,SM|O,"$\int_{a}^{b}f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:Int, -\Integer,set of integers,EMPTY,SN|F,$\mathbb{Z}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r20, -\IntgenAiryA{k}@{z}{p},generalized Airy function from integral representation $A_k$,Integral-generalized-Airy-A,F|F:P,$A_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, -\IntgenAiryB{k}@{z}{p},generalized Airy function from integral representation $B_k$,Integral-generalized-Airy-B,F|F:P,$B_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, -\JacksonqBesselI{\nu}@{z}{q},Jackson $q$-Bessel function 1,EMPTY,F|F:P,$J^{(1)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI, -\JacksonqBesselII{\nu}@{z}{q},Jackson $q$-Bessel function 2,EMPTY,F|F:P,$J^{(2)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII, -\JacksonqBesselIII{\nu}@{z}{q},Jackson/Hahn-Exton $q$-Bessel function 3,EMPTY,F|F:P,$J^{(3)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII, -\Jacobi{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, -\JacobiEpsilon@{x}{k},Jacobi's epsilon function,Jacobi-Epsilon,F|F:P,$\mathcal{E}$,http://dlmf.nist.gov/22.16#E14, -\JacobiG{n}@{p}{q}{x},shifted Jacobi polynomial,shifted-Jacobi-polynomial-G,P|F:P,$G_{n}$,http://dlmf.nist.gov/18.1#E2, -\JacobiP{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, -\JacobiSymbol{n}{P},Jacobi symbol,Jacobi-symbol,I|F,$(n|P)$,http://dlmf.nist.gov/27.9#p3, -\JacobiTheta{j}@{z}{q},Jacobi theta function,Jacobi-theta,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, -\JacobiThetaCombined{n}{m}@{z}{q},combined theta function,Jacobi-theta-combined,F|F:P,"$\varphi_{m,n}$",http://dlmf.nist.gov/20.11#SS5.p2, -\JacobiThetaTau{j}@{z}{\tau},Jacobi theta $\tau$ function $\theta_j$,Jacobi-theta-tau,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, -\JacobiZeta@{x}{k},Jacobi's zeta function,Jacobi-Zeta,F|F:P,$\mathrm{Z}$,http://dlmf.nist.gov/22.16#E32, -\Jacobiam@@{x}{k},Jacobi's amplitude function ${\rm am}$,Jacobi-elliptic-amplitude,F|F:P:nP,$\mathrm{am}$,http://dlmf.nist.gov/23.1, -\Jacobicd@@{z}{k},Jacobian elliptic function ${\rm cd}$,Jacobi-elliptic-cd,F|F:P:nP,$\mathrm{cd}$,http://dlmf.nist.gov/22.2#E8, -\Jacobicn@@{z}{k},Jacobian elliptic function ${\rm cn}$,Jacobi-elliptic-cn,F|F:P:nP,$\mathrm{cn}$,http://dlmf.nist.gov/22.2#E5, -\Jacobics@@{z}{k},Jacobian elliptic function ${\rm cs}$,Jacobi-elliptic-cs,F|F:P:nP,$\mathrm{cs}$,http://dlmf.nist.gov/23.1, -\Jacobidc@@{z}{k},Jacobian elliptic function ${\rm dc}$,Jacobi-elliptic-dc,F|F:P:nP,$\mathrm{dc}$,http://dlmf.nist.gov/23.1, -\Jacobidn@@{z}{k},Jacobian elliptic function ${\rm dn}$,Jacobi-elliptic-dn,F|F:P:nP,$\mathrm{dn}$,http://dlmf.nist.gov/22.2#E6, -\Jacobids@@{z}{k},Jacobian elliptic function ${\rm ds}$,Jacobi-elliptic-ds,F|F:P:nP,$\mathrm{ds}$,http://dlmf.nist.gov/23.1, -\Jacobinc@@{z}{k},Jacobian elliptic function ${\rm nc}$,Jacobi-elliptic-nc,F|F:P:nP,$\mathrm{nc}$,http://dlmf.nist.gov/23.1, -\Jacobind@@{z}{k},Jacobian elliptic function ${\rm nd}$,Jacobi-elliptic-nd,F|F:P:nP,$\mathrm{nd}$,http://dlmf.nist.gov/23.1, -\Jacobins@@{z}{k},Jacobian elliptic function ${\rm ns}$,Jacobi-elliptic-ns,F|F:P:nP,$\mathrm{ns}$,http://dlmf.nist.gov/23.1, -\Jacobiphi{\alpha}{\beta}{\lambda}@{t},Jacobi function,Jacobi-hypergeometric-phi,F|F:P,"$\phi^{(\alpha,\beta)}_{\lambda}$",http://dlmf.nist.gov/15.9#E11, -\Jacobisc@@{z}{k},Jacobian elliptic function ${\rm sc}$,Jacobi-elliptic-sc,F|F:P:nP,$\mathrm{sc}$,http://dlmf.nist.gov/22.2#E9, -\Jacobisd@@{z}{k},Jacobian elliptic function ${\rm sd}$,Jacobi-elliptic-sd,F|F:P:nP,$\mathrm{sd}$,http://dlmf.nist.gov/22.2#E7, -\Jacobisn@@{z}{k},Jacobian elliptic function ${\rm sn}$,Jacobi-elliptic-sn,F|F:P:nP,$\mathrm{sn}$,http://dlmf.nist.gov/22.2#E4, -\JonquierePhi@{z}{s}=\Polylogarithm{s}@{z},Jonquiére's function,Jonquiere-phi,F|F:P,$\phi$,http://dlmf.nist.gov/23.1, -\JordanJ{k}@{n},Jordan's function,Jordan-J,F|F:P,$J_{k}$,http://dlmf.nist.gov/27.2#E11, -\Kelvinbei{\nu}@@{x},Kelvin function ${\rm bei}_\nu$,Kelvin-bei,F|F:P:nP,$\mathrm{bei}_{\nu}$,http://dlmf.nist.gov/10.61#E1, -\Kelvinber{\nu}@@{x},Kelvin function ${\rm ber}_\nu$,Kelvin-ber,F|F:P:nP,$\mathrm{ber}_{\nu}$,http://dlmf.nist.gov/10.61#E1, -\Kelvinkei{\nu}@@{x},Kelvin function ${\rm kei}_\nu$,Kelvin-kei,F|F:P:nP,$\mathrm{kei}_{\nu}$,http://dlmf.nist.gov/10.61#E2, -\Kelvinker{\nu}@@{x},Kelvin function ${\rm ker}_\nu$,Kelvin-ker,F|F:P:nP,$\mathrm{ker}_{\nu}$,http://dlmf.nist.gov/10.61#E2, -\Krawtchouk{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, -\KrawtchoukK{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, -\Kronecker{j}{k},Kronecker delta,EMPTY,I|F,"$\delta_{m,n}$",http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4, -\KummerM@{a}{b}{z},Kummer confluent hypergeometric function $M$,Kummer-confluent-hypergeometric-M,F|F:P,$M$,http://dlmf.nist.gov/13.2#E2, -\KummerU@{a}{b}{z},Kummer confluent hypergeometric function $U$,Kummer-confluent-hypergeometric-U,F|F:P,$U$,http://dlmf.nist.gov/13.2#E6, -\KummerboldM@{a}{b}{z},Olver's confluent hypergeometric function,Kummer-confluent-hypergeometric-bold-M,F|F:P,${\mathbf{M}}$,http://dlmf.nist.gov/13.2#E3, -\Laguerre[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, -\LaguerreL[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, -\LambertW@{x},Lambert $\LambertW$-function,Lambert-W,F|F:P,$W$,http://dlmf.nist.gov/23.1, -\LambertWm@{x},non-principal branch of Lambert $\LambertW$-function,Lambert-Wm,F|F:P,$\mathrm{Wm}$,http://dlmf.nist.gov/4.13#p2, -\LambertWp@{x},principal branch of Lambert $\LambertW$-function,Lambert-Wp,F|F:P,$\mathrm{Wp}$,http://dlmf.nist.gov/23.1, -\LameEc{m}{\nu}@{z}{k^2},Lamé function $Ec_\nu^m$,Lame-Ec,F|F:P,$\mathit{Ec}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\LameEs{m}{\nu}@{z}{k^2},Lamé function $Es_\nu^m$,Lame-Es,F|F:P,$\mathit{Es}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\Lamea{n}{\nu}@{k^2},eigenvalues of Lamé's equation $a_\nu^m$,Lame-eigenvalue-a,F|F:P,$a^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, -\Lameb{n}{\nu}@{k^2},eigenvalues of Lamé's equation $b_\nu^m$,Lame-eigenvalue-b,F|F:P,$b^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, -\LamecE{m}{2n+1}@{z}{k^2},Lamé polynomial $cE_{2n+1}^m$,Lame-polynomial-cE,P|F:P,$\mathit{cE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\LamecdE{m}{2n+2}@{z}{k^2},Lamé polynomial $cdE_{2n+2}^m$,Lame-polynomial-cdE,P|F:P,$\mathit{cdE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\LamedE{m}{2n+1}@{z}{k^2},Lamé polynomial $dE_{2n+1}^m$,Lame-polynomial-dE,P|F:P,$\mathit{dE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E4, -\LamesE{m}{2n+1}@{z}{k^2},Lamé polynomial $sE_{2n+1}^m$,Lame-polynomial-sE,P|F:P,$\mathit{sE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E2, -\LamescE{m}{2n+2}@{z}{k^2},Lamé polynomial $scE_{2n+2}^m$,Lame-polynomial-scE,P|F:P,$\mathit{scE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E5, -\LamescdE{m}{2n+3}@{z}{k^2},Lamé polynomial $scdE_{2n+3}^m$,Lame-polynomial-scdE,P|F:P,$\mathit{scdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E8, -\LamesdE{m}{2n+2}@{z}{k^2},Lamé polynomial $sdE_{2n+2}^m$,Lame-polynomial-sdE,P|F:P,$\mathit{sdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E6, -\LameuE{m}{2n}@{z}{k^2},Lamé polynomial $uE_{2n}^m$,Lame-polynomial-uE,P|F:P,$\mathit{uE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E1, -\LaplaceTrans@{f}{s},Laplace transform,Laplace-transform,O|F:P,$\mathscr{L}$,http://dlmf.nist.gov/1.14#E17, -\Lattice{L},lattice in $\Complex$,EMPTY,SN|F,$\mathbb{L}$,http://dlmf.nist.gov/23.2#i, -"\LauricellaFD@{a}{b_1,...,b_n}{c}{z_1,...,z_n}",Lauricella's multivariate hypergeometric function,Lauricella-FD,F|F:P,$F_D$,http://dlmf.nist.gov/19.15#p1, -\LegendreBlackQ[\mu]{\nu}@{z},Olver's associated Legendre function,associated-Legendre-black-Q,F|FO:PO:FnO:PnO,$\boldsymbol{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E10, -\LegendreP[\mu]{\nu}@{z},associated Legendre function of the first kind,Legendre-P-first-kind,F|FO:PO:FnO:PnO,$P_\nu^\mu$,http://dlmf.nist.gov/14.3#E6, -\LegendrePoly{n}@{x},Legendre polynomial,Legendre-spherical-polynomial,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r25, -\LegendrePolys{n}@{x},shifted Legendre polynomial,shifted-spherical-Legendre-polynomial-s,P|F:P,$P^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r26, -\LegendreQ[\mu]{\nu}@{z},associated Legendre function of the second kind,Legendre-Q-second-kind,F|FO:PO:FnO:PnO,$Q_\nu^\mu$,http://dlmf.nist.gov/14.3#E7, -\LegendreSymbol{n}{p},Legendre symbol,Legendre-symbol,I|F,$(n|p)$,http://dlmf.nist.gov/27.9, -\LerchPhi@{z}{s}{a},Lerch's transcendent,Lerch-Phi,F|F:P,$\Phi$,http://dlmf.nist.gov/25.14#E1, -\LeviCivita{j}{k}{\ell},Levi-Civita symbol,EMPTY,I|F,$\epsilon_{jkl}$,http://dlmf.nist.gov/1.6#E14, -\LinBrF@{a}{u},line-broadening function,line-broadening-function,F|F:P,$H$,http://dlmf.nist.gov/7.19#E4, -\LiouvilleLambda@{n},Liouville's function,Liouville-lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/27.2#E13, -\Ln@@{z},general logarithm function,multivalued-natural-logarithm,F|F:P:nP,$\mathrm{Ln}$,http://dlmf.nist.gov/4.2#E1, -\LogInt@{x},logarithmic integral,logarithmic-integral,F|F:P,$\mathrm{li}$,http://dlmf.nist.gov/6.2#E8, -\LommelS{\mu}{\nu}@{z},"Lommel function $S$",Lommel-S,F|F:P,"$S_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E5, -\Lommels{\mu}{\nu}@{z},"Lommel function $s$",Lommel-s,F|F:P,"$s_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E3, -\Longleftrightarrow,is equivalent to,equivalent-to,SM|F,$\Longleftrightarrow $,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r13, -\Longrightarrow,implies,EMPTY,SM|F,$\Longrightarrow$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r12, -\MangoldtLambda@{n},Mangoldt's function,Mangoldt-Lambda,F|F:P,$\Lambda$,http://dlmf.nist.gov/27.2#E14, -\MathieuCe{\nu}@@{z}{q},modified Mathieu function ${\rm Ce}_\nu$,modified-Mathieu-Ce,F|F:P:nP,$\mathrm{Ce}_{n}$,http://dlmf.nist.gov/28.20#E3, -\MathieuD{j}@{\nu}{\mu}{z},cross-products of modified Mathieu functions and their derivatives ${\rm D}_{j}$,Mathieu-D,F|F:P,$\mathrm{D}_{j}$,http://dlmf.nist.gov/28.28#E24, -\MathieuDc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dc}_j$,Mathieu-Dc,F|F:P,$\mathrm{Dc}_{j}$,http://dlmf.nist.gov/28.28#E39, -\MathieuDs{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Ds}_j$,Mathieu-Ds,F|F:P,$\mathrm{Ds}_{j}$,http://dlmf.nist.gov/28.28#E35, -\MathieuDsc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dsc}_j$,Mathieu-Dsc,F|F:P,$\mathrm{Dsc}_{j}$,http://dlmf.nist.gov/28.28#E40, -\MathieuEigenvaluea{n}@@{q},eigenvalues of Mathieu equation $a_n(q)$,Mathieu-eigenvalue-a,F|F:P:nP,$a_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, -\MathieuEigenvalueb{n}@@{q},eigenvalues of Mathieu equation $b_n(q)$,Mathieu-eigenvalue-b,F|F:P:nP,$b_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, -\MathieuEigenvaluelambda{\nu+2n}@@{q},eigenvalues of Mathieu equation $\lambda_\nu(q)$,Mathieu-eigenvalue-lambda,F|F:P:nP,$\lambda_{\nu}$,http://dlmf.nist.gov/28.12#SS1.p2, -\MathieuFc{m}@{z}{h},Mathieu function ${\rm Fc}_m$,Mathieu-Fc,F|F:P,$\mathrm{Fc}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuFe{n}@@{z}{q},modified Mathieu function ${\rm Fe}_n$,modified-Mathieu-Fe,F|F:P:nP,$\mathrm{Fe}_{n}$,http://dlmf.nist.gov/28.20#E6, -\MathieuFs{m}@{z}{h},Mathieu function ${\rm Fs}_m$,Mathieu-Fs,F|F:P,$\mathrm{Fs}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuGc{m}@{z}{h},Mathieu function ${\rm Gc}_m$,Mathieu-Gc,F|F:P,$\mathrm{Gc}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuGe{n}@@{z}{q},modified Mathieu function ${\rm Ge}_n$,modified-Mathieu-Ge,F|F:P:nP,$\mathrm{Ge}_{n}$,http://dlmf.nist.gov/28.20#E7, -\MathieuGs{m}@{z}{h},Mathieu function ${\rm Gs}_m$,Mathieu-Gs,F|F:P,$\mathrm{Gs}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuIe{n}@@{z}{h},modified Mathieu function ${\rm Ie}_n$,modified-Mathieu-Ie,F|F:P:nP,$\mathrm{Ie}_{n}$,http://dlmf.nist.gov/28.20#E17, -\MathieuIo{n}@@{z}{h},modified Mathieu function ${\rm Io}_n$,modified-Mathieu-Io,F|F:P:nP,$\mathrm{Io}_{n}$,http://dlmf.nist.gov/28.20#E18, -\MathieuKe{n}@@{z}{h},modified Mathieu function ${\rm Ke}_n$,modified-Mathieu-Ke,F|F:P:nP,$\mathrm{Ke}_{n}$,http://dlmf.nist.gov/28.20#E19, -\MathieuKo{n}@@{z}{h},modified Mathieu function ${\rm Ko}_n$,modified-Mathieu-Ko,F|F:P:nP,$\mathrm{Ko}_{n}$,http://dlmf.nist.gov/28.20#E20, -\MathieuM{j}{\nu}@@{z}{h},modified Mathieu function ${\rm M}_\nu^{(j)}$,modified-Mathieu-M,F|F:P:nP,${\mathrm{M}^{(j)}_{\nu}}$,http://dlmf.nist.gov/23.1, -\MathieuMc{j}{n}@@{z}{h},radial Mathieu function ${\rm Mc}_n^{(j)}$,modified-Mathieu-Mc,F|F:P:nP,${\mathrm{Mc}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E15, -\MathieuMe{\nu}@@{z}{q},modified Mathieu function ${\rm Me}_\nu$,modified-Mathieu-Me,F|F:P:nP,$\mathrm{Me}_{n}$,http://dlmf.nist.gov/28.20#E5, -\MathieuMs{j}{n}@@{z}{h},radial Mathieu function ${\rm Ms}_n^{(j)}$,modified-Mathieu-Ms,F|F:P:nP,${\mathrm{Ms}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E16, -\MathieuSe{\nu}@@{z}{q},modified Mathieu function ${\rm Se}_\nu$,modified-Mathieu-Se,F|F:P:nP,$\mathrm{Se}_{n}$,http://dlmf.nist.gov/28.20#E4, -\Mathieuce{n}@@{z}{q},Mathieu function ${\rm ce}_\nu$,Mathieu-ce,F|F:P:nP,$\mathrm{ce}_{n}$,http://dlmf.nist.gov/23.1, -\Mathieufe{n}@@{z}{q},second solution of Mathieu's equation ${\rm fe}_n$,Mathieu-fe,F|F:P:nP,$\mathrm{fe}_{n}$,http://dlmf.nist.gov/28.5#E1, -\Mathieuge{n}@@{z}{q},second solution of Mathieu's equation ${\rm ge}_n$,Mathieu-ge,F|F:P:nP,$\mathrm{ge}_{n}$,http://dlmf.nist.gov/28.5#E2, -\Mathieume{n}@@{z}{q},Mathieu function ${\rm me}_\nu$,Mathieu-me,F|F:P:nP,$\mathrm{me}_{\nu}$,http://dlmf.nist.gov/23.1, -\Mathieuse{n}@@{z}{q},Mathieu function ${\rm se}_\nu$,Mathieu-se,F|F:P:nP,$\mathrm{se}_{\nu}$,http://dlmf.nist.gov/23.1, -\Matrix{I},Bessel function of matrix argument (first kind),EMPTY,F|F,$\Matrix{T}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r9, -\MeijerG{m}{n}{p}{q}@@@{z}{\Vector{a}}{\Vector{b}},Meijer $G$-function,Meijer-G,F|F:fo1:fo2:fo3,"${G^{m,n}_{p,q}}$",http://dlmf.nist.gov/16.17#E1, -\Meixner{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, -\MeixnerM{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, -\MeixnerPollaczek{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, -\MeixnerPollaczekP{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, -\MellinTrans@{f}{s},Mellin transform,Mellin-transform,O|F:P,$\mathscr{M}$,http://dlmf.nist.gov/1.14#E32, -\Mills@{x},Mills ratio ${\sf M}$,Mills-ratio,F|F:P,$\mathsf{M}$,http://dlmf.nist.gov/7.8#E1, -\MittagLeffler{a}{b}@{z},Mittag-Leffler function,Mittag-Leffler-function,F|F:P,"$E_{a,b}$",http://dlmf.nist.gov/10.46#E3, -\ModCylinder{\nu}@{z},modified cylinder function,modified-cylinder-function,F|F:P,$\mathscr{Z}_{\nu}$,http://dlmf.nist.gov/10.25#P2.p1, -\ModularJ@{\tau},Klein's complete invariant,Kleins-invariant-modular-J,F|F:P,$J$,http://dlmf.nist.gov/23.15#E7, -\ModularLambda@{\tau},elliptic modular function,modular-Lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/23.15#E6, -\MoebiusMu@{n},Möbius function,Moebius-mu,F|F:P,$\mu$,http://dlmf.nist.gov/27.2#E12, -\NatNumber,set of positive integers,EMPTY,SN|F,$\mathbb{N}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r11, -\NeumannFactor{n},Neumann factor,Neumann-factor,I|F,$\epsilon_{m}$,http://drmf.wmflabs.org/wiki/Definition:NeumannFactor, -\NeumannPoly{n}@{x},Neumann's polynomial,Neumann-polynomial,P|F:P,$O_{k}$,http://dlmf.nist.gov/10.23#E12, -\NumPrimeDivNu@{n},$\nu(n)$ : number of distinct primes dividing $n$,number-of-primes-dividing-nu,I|F:P,$\nu$,http://dlmf.nist.gov/27.2#SS1.p1, -\NumPrimesLessPi@{x},number of primes not exceeding $x$,number-of-primes-less-pi,I|F:P,$\pi$,http://dlmf.nist.gov/27.2#E2, -\NumSquaresR{k}@{n},number of squares,number-of-squares-R,I|F:P,$r_{k}$,http://dlmf.nist.gov/27.13#SS4.p1, -\ODEgenAiryA{n}@{z},generalized Airy function from differential equation $A_n$,ODE-generalized-Airy-A,F|F:P,$A_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, -\ODEgenAiryB{n}@{z},generalized Airy function from differential equation $B_n$,ODE-generalized-Airy-B,F|F:P,$B_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, -\Pade{p}{q}{f},Padé approximant,Pade-approximant,O|F,${[p/q]_{f}}$,http://dlmf.nist.gov/3.11#SS4.p1, -\ParabolicU@{a}{z},parabolic cylinder function $U$,parabolic-U,F|F:P,$U$,http://dlmf.nist.gov/12.4.E1, -\ParabolicUbar@{a}{x},parabolic cylinder function $\overline{U}$,parabolic-U-bar,F|F:P,$\overline{U}$,http://dlmf.nist.gov/12.2.21, -\ParabolicV@{a}{z},parabolic cylinder function $V$,parabolic-V,F|F:P,$V$,http://dlmf.nist.gov/12.4.E2, -\ParabolicW@{a}{x},parabolic cylinder function $W$,parabolic-W,F|F:P,$W$,http://dlmf.nist.gov/12.14.i, -\PartitionsP[k]@{n},total number of partitions,partition-function,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.2#P4.p2, -\PeriodicBernoulliB{n}@{x},periodic Bernoulli functions,periodic-Bernoulli-polynomial-B,F|F:P,$\widetilde{B}_{n}$,http://dlmf.nist.gov/24.2#iii, -\PeriodicEulerE{n}@{x},periodic Euler functions,periodic-Euler-polynomial-E,F|F:P,$\widetilde{E}_{n}$,http://dlmf.nist.gov/24.2#iii, -\PeriodicZeta@{x}{s},periodic zeta function,periodic-zeta,F|F:P,$F$,http://dlmf.nist.gov/25.13#E1, -\Permutations{n},"set of permutations of ${\bf n}$",set-of-permutations,SN|F,$\mathfrak{S}_{n}$,http://dlmf.nist.gov/23.1, -\PlanePartitionsPP@{n},number of plane partitions of $n$,plane-partitions-PP,I|F:P,$\mathit{pp}$,http://dlmf.nist.gov/26.12#SS1.p4, -\PollaczekP{\lambda}{n}@{x}{a}{b},Pollaczek polynomial,Pollaczek-polynomial-P,P|F:P,$P^{(\lambda)}_{n}$,http://dlmf.nist.gov/18.35#E4, -\Polylogarithm{s}@{z},polylogarithm,polylogarithm,F|F:P,$\mathrm{Li}_{s}$,http://dlmf.nist.gov/25.12#E10, -\Prod{n}{k1}{k2}@{f(n)},semantic product,EMPTY,SM|O:O,$\prod_{n=\alpha}^{\beta}$,http://drmf.wmflabs.org/wiki/Definition:Prod, -\Racah{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, -\RacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, -\RamanujanSum{k}@{n},Ramanujan's sum,Ramanujan-sum,F|F:P,$c_{k}$,http://dlmf.nist.gov/27.10#E4, -\RamanujanTau@{n},Ramanujan's tau function,Ramanujan-tau,F|F:P,$\tau$,http://dlmf.nist.gov/27.14#E18, -\Rational,set of rational numbers,EMPTY,SN|F,$\mathbb{Q}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r13, -\RayleighFun{n}@{\nu},Rayleigh function,Rayleigh-function,F|F:P,$\sigma_{n}$,http://dlmf.nist.gov/10.21#E55, -\Real,set of real numbers,EMPTY,SN|F,$\mathbb{R}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r14, -\RepInterfc{n}@{z},repeated integrals of the complementary error function,repeated-integral-complementary-error-function,F|F:P,$\mathrm{i}^{n}\mathrm{erfc}$,http://dlmf.nist.gov/7.18#E2, -\Residue,residue,EMPTY,O|F,$\mathrm{res}$,http://dlmf.nist.gov/1.10#SS3.p5, -\RestrictedCompositionsC@{\mathrm{condition}}{n},restricted number of compositions,restricted-number-of-compositions-C,I|F:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, -\RestrictedPartitionsP[k]@{\mathrm{condition}}{n},restricted number of partitions,restricted-partitions-P,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.10#i, -\RiemannP@{\begin{Bmatrix} \alpha & \beta &\gamma & \\ a_1 & b_1 & c_1 & z \\ a_2 & b_2 & c_2 & \end{Bmatrix}},Riemann-Papperitz $\RiemannP$-symbol for solutions of the generalized hypergeometric differential equation,Riemann-P-symbol,Q|F:P,$P$,http://dlmf.nist.gov/15.11#E3, -\RiemannTheta@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function,Riemann-theta,F|F:P,$\theta$,http://dlmf.nist.gov/21.2#E1, -\RiemannThetaChar{\Vector{\alpha}}{\Vector{\beta}}@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function with characteristics,Riemann-theta-characterstics,F|F:P,$\theta\left[\Vector{\alpha} \atop \Vector{\beta} \right]$,http://dlmf.nist.gov/21.2#E5, -\RiemannThetaHat@{\Vector{z}}{\Matrix{\Omega}},scaled Riemann theta function,Riemann-theta-hat,F|F:P,$\hat{\theta}$,http://dlmf.nist.gov/21.2#E2, -\RiemannXi@{s},Riemann's $\RiemannXi$-function,Riemann-xi,F|F:P,$\xi$,http://dlmf.nist.gov/25.4#E4, -\RiemannZeta@{s},Riemann zeta function,Riemann-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.2#E1, -\Schwarzian{z}{\zeta},Schwarzian derivative,EMPTY,O|F,"$\left\{f,g\right\}$",http://dlmf.nist.gov/1.13#E20, -\ScorerGi@{z},Scorer function (inhomogeneous Airy function) ${\rm Gi}$,Scorer-Gi,F|F:P,$\mathrm{Gi}$,http://dlmf.nist.gov/9.12#i, -\ScorerHi@{z},Scorer function (inhomogeneous Airy function) ${\rm Hi}$,Scorer-Hi,F|F:P,$\mathrm{Hi}$,http://dlmf.nist.gov/9.12#i, -\SinCosIntf@{z},auxiliary function for sine and cosine integrals ${\rm f}$,sine-cosine-integral-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/6.2#E17, -\SinCosIntg@{z},auxiliary function for sine and cosine integrals ${\rm g}$,sine-cosine-integral-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/6.2#E18, -\SinInt@{z},sine integral ${\rm Si}$,sine-integral,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/6.2#E9, -\SinIntg@{a}{z},generalized sine integral ${\rm Si}$,generalized-sine-integral-Si,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/8.21#E2, -\SinhInt@{z},hyperbolic sine integral,hyperbolic-sine-integral,F|F:P,$\mathrm{Shi}$,http://dlmf.nist.gov/6.2#E15, -\SphBesselIi{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(1)}$,spherical-Bessel-I-1,F|F:P,${\mathsf{i}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E7, -\SphBesselIii{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(2)}$,spherical-Bessel-I-2,F|F:P,${\mathsf{i}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E8, -\SphBesselJ{n}@{z},spherical Bessel function of the first kind ${\sf j}_n$,spherical-Bessel-J,F|F:P,$\mathsf{j}_{n}$,http://dlmf.nist.gov/10.47#E3, -\SphBesselK{n}@{z},modified spherical Bessel function of the second kind ${\sf k}_n$,spherical-Bessel-K,F|F:P,$\mathsf{k}_{n}$,http://dlmf.nist.gov/10.47#E9, -\SphBesselY{n}@{z},spherical Bessel function of the second kind ${\sf y}_n$,spherical-Bessel-Y,F|F:P,$\mathsf{y}_{n}$,http://dlmf.nist.gov/10.47#E4, -\SphHankelHi{n}@{z},spherical Hankel function of the first kind ${\sf h}_n^{(1)}$,spherical-Hankel-H-1-Bessel-third-kind,F|F:P,${\mathsf{h}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E5, -\SphHankelHii{n}@{z},spherical Hankel function of the second kind ${\sf h}_n^{(2)}$,spherical-Hankel-H-2-Bessel-third-kind,F|F:P,${\mathsf{h}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E6, -\SphericalHarmonicY{l}{m}@{\theta}{\phi},spherical harmonic,spherical-harmonic-Y,F|F:P,"$Y_{{\ell},{m}}$",http://dlmf.nist.gov/14.30#E1, -\SpheroidalEigenvalueLambda{m}{n}@{\gamma^2},eigenvalues of the spheroidal differential equation,spheroidal-eigenvalue-lambda,O|F:P,$\lambda^{m}_{n}$,http://dlmf.nist.gov/30.3#SS1.p1, -\SpheroidalOnCutPs{m}{n}@{x}{\gamma^2},spheroidal wave function of the first kind ${\sf Ps}_n^m$,spheroidal-wave-on-cut-Ps,F|F:P,$\mathsf{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.4#i, -\SpheroidalOnCutQs{m}{n}@{x}{\gamma^2},spheroidal wave function of the second kind ${\sf Qs}_n^m$,spheroidal-wave-on-cut-Qs,F|F:P,$\mathsf{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.5, -\SpheroidalPs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Ps_n^m$,spheroidal-wave-Ps,F|F:P,$\mathit{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, -\SpheroidalQs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Qs_n^m$,spheroidal-wave-Qs,F|F:P,$\mathit{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, -\SpheroidalRadialS{m}{j}{n}@{z}{\gamma},radial spheroidal wave function,radial-spheroidal-wave-S,F|F:P,$S^{m(j)}_{n}$,http://dlmf.nist.gov/30.11#E3, -\StieltjesConstants{n},Stieltjes constants,Stieltjes-constants,C|F,$\gamma_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants, -\StieltjesTrans@{f}{s},Stieltjes transform,Stieltjes-transform,O|F:P,$\mathcal{S}$,http://dlmf.nist.gov/1.14#E47, -\StieltjesWigert{n}@@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P:PS,$S_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert, -\StieltjesWigertS{n}@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.27#E18, -\StirlingS@{n}{k},Stirling number of the first kind,Stirling-number-first-kind-S,I|F:P,$s$,http://dlmf.nist.gov/26.8#SS1.p1, -\StirlingSS@{n}{k},Stirling number of the second kind,Stirling-number-second-kind-S,I|F:P,$S$,http://dlmf.nist.gov/26.8#SS1.p3, -\StruveH{\nu}@{z},Struve function ${\bf H}_{\nu}$,Struve-H,F|F:P,$\mathbf{H}_{\nu}$,http://dlmf.nist.gov/11.2#E1, -\StruveK{\nu}@{z},Struve function ${\bf K}_{\nu}$,associated-Struve-K,F|F:P,$\mathbf{K}_{\nu}$,http://dlmf.nist.gov/11.2#E5, -\StruveL{\nu}@{z},modified Struve function ${\bf L}_{\nu}$,modified-Struve-L,F|F:P,$\mathbf{L}_{\nu}$,http://dlmf.nist.gov/11.2#E2, -\StruveM{\nu}@{z},modified Struve function ${\bf M}_{\nu}$,associated-Struve-M,F|F:P,$\mathbf{M}_{\nu}$,http://dlmf.nist.gov/11.2#E6, -\Sum{n}{0}{k}@{f(n)},semantic sum,EMPTY,SM|F:P,$\sum_{n=k}^{N}$,http://drmf.wmflabs.org/wiki/Definition:Sum, -\SurfaceHarmonicY{l}{m}@{\theta}{\phi},surface harmonic of the first kind,surface-harmonic-Y,F|F:P,$Y_{l}^{m}$,http://dlmf.nist.gov/14.30#E2, -\TriangleOP{\alpha}{\beta}{\gamma}{m}{n}@{x}{y},triangle polynomial,triangle-orthogonal-polynomial-P,P|F:P,"$P^{\alpha,\beta,\gamma}_{m,n}$",http://dlmf.nist.gov/18.37#E7, -\Ultra{\lambda}{n}@{x},ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{\mu}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, -\Ultraspherical{\lambda}{n}@{x},ultraspherical (or Gegenbauer) polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{(\mu)}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, -\UmbilicCatE@{s}{t}{\Vector{x}},elliptic umbilic catastrophe,elliptic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E2, -\UmbilicCatH@{s}{t}{\Vector{x}},hyperbolic umbilic catastrophe,hyperbolic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E3, -\VariationalOp[a;b]@{f},total variation,variational-operator,F|FO:PO:FnO:PnO,"$\mathcal{V}_{a,b}$",http://dlmf.nist.gov/1.4#E33, -\VoigtU@{x}{t},Voigt function ${\sf U}$,Voigt-U,F|F:P,$\mathsf{U}$,http://dlmf.nist.gov/7.19#E1, -\VoigtV@{x}{t},Voigt function ${\sf V}$,Voigt-V,F|F:P,$\mathsf{V}$,http://dlmf.nist.gov/7.19#E2, -\WaringG@{k},Waring's function $G$,Waring-G,F|F:P,$G$,http://dlmf.nist.gov/27.13#SS3.p1, -\Waringg@{k},Waring's function $g$,Waring-g,F|F:P,$g$,http://dlmf.nist.gov/27.13#SS3.p1, -\WeberE{\nu}@{z},Weber function,Weber-E,F|F:P,$\mathbf{E}_{\nu}$,http://dlmf.nist.gov/11.10#E2, -\WeierPInv@@{z}{g_2}{g_3},Weierstrass $\WeierPInv$-function on invariants $\WeierPInv@{z}{g_2}{g_3}$,Weierstrass-P-on-invariants,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, -\WeierPLat@@{z}{\Lattice{L}},Weierstrass $\WeierPLat$-function on lattice $\WeierPLat@{z}{\Lattice{L}}$,Weierstrass-P-on-lattice,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, -\WeiersigmaInv@@{z}{g_2}{g_3},Weierstrass sigma function on invariants,Weierstrass-sigma-on-invariants,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, -\WeiersigmaLat@@{z}{\Lattice{L}},Weierstrass sigma function on lattice,Weierstrass-sigma-on-lattice,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, -\WeierzetaInv@@{z}{g_2}{g_3},Weierstrass zeta function on invariants,Weierstrass-zeta-on-invariants,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, -\WeierzetaLat@@{z}{\Lattice{L}},Weierstrass zeta function on lattice,Weierstrass-zeta-on-lattice,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, -\WhitD{\nu}@{z},parabolic cylinder function,Whittaker-D,F|F:P,$D_{n}$,http://dlmf.nist.gov/23.1, -\WhitM{\kappa}{\mu}@{z},Whittaker function $M_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-M,F|F:P,"$M_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E2, -\WhitW{\kappa}{\mu}@{z},Whittaker function $W_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-W,F|F:P,"$W_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E3, -\Wilson{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, -\WilsonW{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, -\Wronskian@{w_1(z);w_2(z)},Wronskian,Wronskian,F|F:P,$\mathscr{W}$,http://dlmf.nist.gov/1.13#E4, -\ZeroAiryAi{k},$k$\textsuperscript{th} zero of Airy $\AiryAi$,zero-Airy-Ai,F|F,$a_{k}$,http://dlmf.nist.gov/23.1, -\ZeroAiryAiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryAi'$,zero-derivative-Airy-Ai,F|F,$a'_{k}$,http://dlmf.nist.gov/23.1, -\ZeroAiryBi{k},$k$\textsuperscript{th} zero of Airy $\AiryBi$,zero-Airy-Bi,F|F,$b_{k}$,http://dlmf.nist.gov/23.1, -\ZeroAiryBiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryBi'$,zero-derivative-Airy-Bi,F|F,$b'_{k}$,http://dlmf.nist.gov/23.1, -\ZeroBesselJ{\nu}{m},zeros of the Bessel function $\BesselJ{\nu}@{x}$,zero-Bessel-J,F|F,"$j_{\nu,m}$",http://dlmf.nist.gov/23.1, -\ZeroBesselJPrime{\nu}{m},zeros of the Bessel function derivative $\BesselJ{\nu}'@{x}$,zero-derivative-Bessel-J,F|F,"${j'_{\nu,m}}$",http://dlmf.nist.gov/23.1, -\ZeroBesselY{\nu}{m},zeros of the Bessel function $\BesselY{\nu}@{x}$,zero-Bessel-Y-Weber,F|F,"$y_{\nu,m}$",http://dlmf.nist.gov/23.1, -\ZeroBesselYPrime{\nu}{m},zeros of the Bessel function derivative $\BesselY{\nu}'@{x}$,zero-derivative-Bessel-Y-Weber,F|F,"${y'_{\nu,m}}$",http://dlmf.nist.gov/23.1, -\ZonalPoly{\kappa}@{\Matrix{T}},zonal polynomial,zonal-polynomial,P|F:P,$Z_{\kappa}$,http://dlmf.nist.gov/35.4#SS1.p3, -\acos@@{z},inverse cosine function,inverse-cosine,F|F:P:nP,$\mathrm{arccos}$,http://dlmf.nist.gov/4.23#SS2.p1, -\acosh@@{z},inverse hyperbolic cosine function,hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{arccosh}$,http://dlmf.nist.gov/4.37#SS2.p1, -\acot@@{z},inverse cotangent function,inverse-cotangent,F|F:P:nP,$\mathrm{arccot}$,http://dlmf.nist.gov/4.23#E9, -\acoth@@{z},inverse hyperbolic cotangent function,hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{arccoth}$,http://dlmf.nist.gov/4.37#E9, -\acsc@@{z},inverse cosecant function,inverse-cosecant,F|F:P:nP,$\mathrm{arccsc}$,http://dlmf.nist.gov/4.23#E7, -\acsch@@{z},inverse hyperbolic cosecant function,hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{arccsch}$,http://dlmf.nist.gov/4.37#E7, -\arcGudermannian@@{x},inverse Gudermannian function,inverse-Gudermannian,F|F:P:nP,${\mathrm{gd}^{-1}}$,http://dlmf.nist.gov/4.23#E41, -\arcJacobicd@{x}{k},inverse Jacobian elliptic function ${\rm arccd}$,inverse-Jacobi-elliptic-cd,F|F:P,$\mathrm{arccd}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobicn@{x}{k},inverse Jacobian elliptic function ${\rm arccn}$,inverse-Jacobi-elliptic-cn,F|F:P,$\mathrm{arccn}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobics@{x}{k},inverse Jacobian elliptic function ${\rm arccs}$,inverse-Jacobi-elliptic-cs,F|F:P,$\mathrm{arccs}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobidc@{x}{k},inverse Jacobian elliptic function ${\rm arcdc}$,inverse-Jacobi-elliptic-dc,F|F:P,$\mathrm{arcdc}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobidn@{x}{k},inverse Jacobian elliptic function ${\rm arcdn}$,inverse-Jacobi-elliptic-dn,F|F:P,$\mathrm{arcdn}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobids@{x}{k},inverse Jacobian elliptic function ${\rm arcds}$,inverse-Jacobi-elliptic-ds,F|F:P,$\mathrm{arcds}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobinc@{x}{k},inverse Jacobian elliptic function ${\rm arcnc}$,inverse-Jacobi-elliptic-nc,F|F:P,$\mathrm{arcnc}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobind@{x}{k},inverse Jacobian elliptic function ${\rm arcnd}$,inverse-Jacobi-elliptic-nd,F|F:P,$\mathrm{arcnd}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobins@{x}{k},inverse Jacobian elliptic function ${\rm arcns}$,inverse-Jacobi-elliptic-ns,F|F:P,$\mathrm{arcns}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobisc@{x}{k},inverse Jacobian elliptic function ${\rm arcsc}$,inverse-Jacobi-elliptic-sc,F|F:P,$\mathrm{arcsc}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobisd@{x}{k},inverse Jacobian elliptic function ${\rm arcsd}$,inverse-Jacobi-elliptic-sd,F|F:P,$\mathrm{arcsd}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobisn@{x}{k},inverse Jacobian elliptic function ${\rm arcsn}$,inverse-Jacobi-elliptic-sn,F|F:P,$\mathrm{arcsn}$,http://dlmf.nist.gov/22.15#SS1.p1, -\asec@@{z},inverse secant function,inverse-secant,F|F:P:nP,$\mathrm{arcsec}$,http://dlmf.nist.gov/4.23#E8, -\asech@@{z},inverse hyperbolic secant function,hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{arcsech}$,http://dlmf.nist.gov/4.37#E8, -\asin@@{z},inverse sine function,inverse-sine,F|F:P:nP,$\mathrm{arcsin}$,http://dlmf.nist.gov/4.23#SS2.p1, -\asinh@@{z},inverse hyperbolic sine function,hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{arcsinh}$,http://dlmf.nist.gov/4.37#SS2.p1, -\atan@@{z},inverse tangent function,inverse-tangent,F|F:P:nP,$\mathrm{arctan}$,http://dlmf.nist.gov/4.23#SS2.p1, -\atanh@@{z},inverse hyperbolic tangent function,hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{arctanh}$,http://dlmf.nist.gov/4.37#SS2.p1, -\bDiff[x],backward difference,EMPTY,O|F,"$\,\nabla_{x}$",http://dlmf.nist.gov/18.1#EGx2, -\bigqJacobi{n}@@{x}{a}{b}{c}{q},big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobi, -\bigqJacobiIVparam{n}@@{x}{a}{b}{c}{d}{q},big $q$-Jacobi polynomial with four parameters,big-q-Jacobi-polynomial-four-parameters-P,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam, -\bigqLaguerre{n}@{x}{a}{b}{q},big $q$-Laguerre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre, -\bigqLegendre{n}@{x}{c}{q},big $q$-Legendre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLegendre, -\binom{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 -\binomial{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 -\cDiff[x],central difference,EMPTY,O|F,"$\,\delta_{x}$",http://dlmf.nist.gov/18.1#EGx3, -\card,number of elements of a finite set,EMPTY,SN|F,$\left|A\right|$,http://dlmf.nist.gov/26.1, -\cartprod,$G\cartprod H$: Cartesian product of groups $G$ and $H$,EMPTY,O|F,$\times$,http://dlmf.nist.gov/23.1, -\ceiling{x},ceiling,EMPTY,I|F,$\left\lceil a\right\rceil$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r17, -\conj{z},complex conjugate,EMPTY,O|F,$\overline{a}$,http://dlmf.nist.gov/1.9#E11, -\cos@@{z},cosine function,cos,F|F:P:nP,$\mathrm{cos}$,http://dlmf.nist.gov/4.14#E2, -\cosh@@{z},hyperbolic cosine function,hyperbolic-cosine,F|F:P:nP,$\mathrm{cosh}$,http://dlmf.nist.gov/4.28#E2, -\cosintg@{a}{z},generalized cosine integral ${\rm ci}$,generalized-cosine-integral-ci,F|F:P,$\mathrm{ci}$,http://dlmf.nist.gov/8.21#E1, -\cot@@{z},cotangent function,cotangent,F|F:P:nP,$\mathrm{cot}$,http://dlmf.nist.gov/4.14#E7, -\coth@@{z},hyperbolic cotangent function,hyperbolic-cotangent,F|F:P:nP,$\mathrm{coth}$,http://dlmf.nist.gov/4.28#E7, -\cpi,ratio of a circle's circumference to its diameter,ratio-of-a-circle's-circumference-to-its-diameter,C|F,$\pi$,http://dlmf.nist.gov/5.19.E4, -\csc@@{z},cosecant function,cosecant,F|F:P:nP,$\mathrm{csc}$,http://dlmf.nist.gov/4.14#E5, -\csch@@{z},hyperbolic cosecant function,hyperbolic-cosecant,F|F:P:nP,$\mathrm{csch}$,http://dlmf.nist.gov/4.28#E5, -\ctsHahn{n}@@{x}{a}{b}{c}{d},continuous Hahn polynomial,continuous-Hahn-polynomial,P|F:P:PS,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, -\ctsbigqHermite{n}@{x}{a}{q},continuous big $q$-Hermite polynomial,EMPTY,P|F:P,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite, -\ctsdualHahn{n}@@{x^2}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-normalized-S,P|F:P:PS,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, -\ctsdualqHahn{n}@{x}{a}{b}{c}{q},continuous dual $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn, -\ctsqHahn{n}@{x}{a}{b}{c}{d}{q},continuous $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHahn, -\ctsqHermite{n}@@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P:PS,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHermite, -\ctsqJacobi{\alpha}{\beta}{m}@{x}{q},continuous $q$-Jacobi polynomial,EMPTY,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi, -\ctsqJacobiRahman{n}@@{x}{q},continuous $q$-Jacobi-Rahman-polynomial,continuous-q-Jacobi-Rahman-polynomial-P,P|F:P:PS,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobiRahman, -\ctsqLaguerre{\alpha}{n}@{x}{q},continuous $q$-Laguerre polynomial,EMPTY,P|F:P,$P^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre, -\ctsqLegendre{n}@@{x}{q},continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre, -\ctsqLegendreRahman{n}@@{x}{q},continuous $q$-Legendre-Rahman polynomial,continuous-q-Legendre-Rahman-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendreRahman, -\ctsqUltra{n}@{x}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, -\ctsqUltrae{n}@{e^{i\theta}}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial exponential argument,continuous-q-ultraspherical-Rogers-polynomial-exponential-argument,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqUltrae, -\curl,curl of vector-valued function,EMPTY,F|F,$\nabla\times$,http://dlmf.nist.gov/1.6#E22, -\deltaDistribution,Dirac delta distribution,Dirac delta distribution,D|F,$\delta_x$,http://dlmf.nist.gov/1.17.i, -\deriv{f}{x},derivative,EMPTY,O|F,$\deriv{}{x}}$,http://dlmf.nist.gov/1.4#E4, -\det,determinant,EMPTY,L|F,$\det$,http://dlmf.nist.gov/1.3#i, -\diag,diagonal part of a matrix,EMPTY,L|F,$\diag[\Matrix{a}]$,http://dlmf.nist.gov/21.5.E7, -\diff{x},differential,EMPTY,O|F,$\mathrm{d}^nx$,http://dlmf.nist.gov/1.4#iv, -\digamma@{z},psi (or digamma) function,digamma,F|F:P,$\psi$,http://dlmf.nist.gov/5.2#E2, -\discrqHermiteI{n}@@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P:PS,$h_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI, -\discrqHermiteII{n}@@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-h-tilde,P|F:P:PS,$\tilde{h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII, -\divergence,divergence of vector-valued function,EMPTY,F|F,$\mathrm{div}$,http://dlmf.nist.gov/1.6#E21, -\divides,divides,EMPTY,O|F,$\nabla\cdot$,http://dlmf.nist.gov/24.1, -\dualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-polynomial-R,P|F:P:PS,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, -\dualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},dual $q$-Hahn polynomial,dual-q-Hahn-R,P|F:P:PS,$R_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqHahn, -\dualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk, -\erf@@{z},error function,error-function,F|F:P:nP,$\mathrm{erf}$,http://dlmf.nist.gov/7.2#E1, -\erfc@@{z},complementary error function,repeated-integral-complementary-error-function,F|F:P:nP,$\mathrm{erfc}$,http://dlmf.nist.gov/7.2#E2, -\erfw@@{z},complementary error function $w$,error-function-w,F|F:P:nP,$w$,http://dlmf.nist.gov/7.2#E3, -\exp@@{z},exponential function,exponential,F|F:P:nP,$\mathrm{exp}$,http://dlmf.nist.gov/4.2#E19, -\expe,the base of the natural logarithm,EMPTY,F|F,$\mathrm{e}$,http://dlmf.nist.gov/4.2.E11, -\exptrace@{\Matrix{X}},exponential of trace of a matrix,exponential-trace,L|F:P,$\mathrm{etr}$,http://dlmf.nist.gov/35.1#p3.t1.r10, -\f{f}@{x},function,EMPTY,SM|F:P,${f}$,http://drmf.wmflabs.org/wiki/Definition:f, -\fDiff,forward difference operator,EMPTY,O|F,"$\,\Delta_{y}$",http://dlmf.nist.gov/3.6#SS1.p1, -\floor{x},floor,EMPTY,I|F,$\left\lfloor a\right\rfloor$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16, -\forall,for every,EMPTY,Q|F,$\forall$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r11, -\gradient,gradient of differentiable scalar function,EMPTY,F|F,$\nabla$,http://dlmf.nist.gov/1.6#E20, -"\idem@{\chi_1}{\chi_1,...,\chi_n}",$\idem$ function,idem,F|F:P,$\mathrm{idem}$,http://dlmf.nist.gov/17.1#p3, -\ifrac,semantic slash fraction,EMPTY,SM|F,$(a)/(b)$,http://dlmf.nist.gov/4.2.E8, -\imagpart{z},imaginary part,EMPTY,O|F,"$\Im {z}$",http://dlmf.nist.gov/1.9#E2, -\in,element of,EMPTY,Q|F,$\in$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r9, -\incgamma@{a}{z},incomplete gamma function $\gamma$,incomplete-gamma,F|F:P,$\gamma$,http://dlmf.nist.gov/8.2#E1, -\incgammastar@{a}{z},incomplete gamma function $\gamma^{*}$,incomplete-gamma-star,F|F:P,$\gamma^{*}$,http://dlmf.nist.gov/8.2#E6, -\inf,greatest lower bound (infimum),EMPTY,Q|F,$\mathrm{inf}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r24, -\int,integral,EMPTY,F|F,$\int$,http://dlmf.nist.gov/1.4#iv, -\inverf@@{x},inverse error function,inverse-error-function,F|F:P:nP,$\mathrm{inverf}$,http://dlmf.nist.gov/7.17#E1, -\inverfc@@{x},inverse complementary error function,inverse-complementary-error-function,F|F:P:nP,$\mathrm{inverfc}$,http://dlmf.nist.gov/7.17#E1, -\iunit,imaginary unit,EMPTY,C|F,$\mathrm{i}$,http://dlmf.nist.gov/1.9.i, -\liminf,least limit point,EMPTY,Q|F,$\mathrm{liminf}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r4, -\littleo@{x},order less than,little-o,Q|F:P,$o$,http://dlmf.nist.gov/2.1#E2, -\littleqJacobi{n}@@{x}{a}{b}{q},little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-p,P|F:P:PS,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqJacobi, -\littleqLaguerre{n}@{x}{a}{q},little $q$-Laguerre / Wall polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre, -\littleqLegendre{m}@{x}{q},little $q$-Legendre polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLegendre, -\ln@@{z},principal branch of logarithm function,natural-logarithm,F|F:P:nP,$\mathrm{ln}$,http://dlmf.nist.gov/4.2#E2, -\log@@{z},principle branch of natural logarithm,logarithm,F|F:P:nP,$\mathrm{log}$,http://dlmf.nist.gov/4.2#E2, -\logb{a}@@{z},logarithm to general base,logarithm,F|F:P:nP,$\mathrm{log}_{b}$,http://dlmf.nist.gov/4.2#EGx1, -\lrselection,bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right\}$,http://drmf.wmflabs.org/wiki/Definition:Lrselection, -\lselection,left bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right.$,http://dlmf.nist.gov/28.4.E22, -\mEulerBeta{m}@{a}{b},multivariate beta function,multivariate-Euler-Beta,F|F:P,$\mathrm{B}_{m}$,http://dlmf.nist.gov/35.3#E3, -\mEulerGamma{m}@{a},multivariate gamma function,multivariate-Euler-Gamma,F|F:P,$\Gamma_{m}$,http://dlmf.nist.gov/35.3#i, -\mod,modulo,EMPTY,Q|F,$\mod$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r10, -\monicAffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,$\widehat{K}^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk, -\monicAlSalamCarlitzI{a}{n}@@{x}{q},monic Al-Salam-Carlitz I polynomial,q-Al-Salam-Carlitz-I-polynomial-monic-p,P|F:P:PS,${\widehat U}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI, -\monicAlSalamCarlitzII{a}{n}@@{x}{q},monic Al-Salam-Carlitz II polynomial,q-Al-Salam-Carlitz-II-polynomial-monic-p,P|F:P:PS,${\widehat V}^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII, -\monicAlSalamChihara{n}@@{x}{a}{b}{q},monic Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara, -\monicAskeyWilson{n}@@{x}{a}{b}{c}{d}{q},monic Askey-Wilson polynomial,Askey-Wilson-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson, -\monicBesselPoly{n}@@{x}{a},monic Bessel polynomial,Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly, -\monicCharlier{n}@@{x}{a},monic Charlier polynomial,Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicCharlier, -\monicChebyT{n}@@{x},monic Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-monic-p,P|F:P:PS,${\widehat T}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyT, -\monicChebyU{n}@@{x},monic Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-monic-p,P|F:P:PS,${\widehat U}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyU, -\monicHahn{n}@@{x}{\alpha}{\beta}{N},monic Hahn polynomial,Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHahn, -\monicHermite{n}@@{x},monic Hermite polynomial,Hermite-polynomial-monic,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHermite, -\monicJacobi{n}@@{x},monic Jacobi polynomial,Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicJacobi, -\monicKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic Krawtchouk polynomial,Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk, -\monicLaguerre{n}@@{x},monic Laguerre polynomial,generalized-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{\alpha}_n$,http://drmf.wmflabs.org/wiki/Definition:monicLaguerre, -\monicLegendrePoly{n}@@{x},monic Legendre polynomial,Legendre-spherical-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly, -\monicMeixner{n}@@{x}{\beta}{c},monic Meixner polynomial,Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixner, -\monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi},monic Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek, -\monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta},monic Racah polynomial,Racah-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicRacah, -\monicStieltjesWigert{n}@@{x}{q},monic Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert, -\monicUltra{n}@@{x},monic ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial-monic-p,P|F:P:PS,${\widehat C}^{\mu}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicUltra, -\monicWilson{n}@@{x^2}{a}{b}{c}{d},monic Wilson polynomial,Wilson-polynomial-monic-p,P|F:P:PS,${\widehat W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicWilson, -\monicbigqJacobi{n}@@{x}{a}{b}{c}{q},monic big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi, -\monicbigqLaguerre{n}@@{x}{a}{b}{q},monic big $q$-Laguerre polynomial,big-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre, -\monicbigqLegendre{n}@@{x}{c}{q},monic big $q$-Legendre polynomial,big-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre, -\monicctsHahn{n}@@{x}{a}{b}{c}{d},monic continuous Hahn polynomial,continuous-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsHahn, -\monicctsbigqHermite{n}@@{x}{a}{q},monic continuous big $q$-Hermite polynomial,continuous-big-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite, -\monicctsdualHahn{n}@@{x^2}{a}{b}{c}{d},monic continuous dual Hahn polynomial,continuous-dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn, -\monicctsdualqHahn{n}@@{x^2}{a}{b}{c},monic continuous dual $q$-Hahn polynomial,continuous-dual-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn, -\monicctsqHahn{n}@@{x}{a}{b}{c}{d}{q},monic continuous $q$-Hahn polynomial,continuous-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn, -\monicctsqHermite{n}@@{x}{q},monic continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite, -\monicctsqJacobi{n}@@{x}{q},monic continuous $q$-Jacobi polynomial,continuous-q-Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi, -\monicctsqLaguerre{n}@@{x}{q},monic continuous $q$-Laguerre polynomial,continuous-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre, -\monicctsqLegendre{n}@@{x}{q},monic continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre, -\monicctsqUltra{n}@@{x}{\beta}{q},monic continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra, -\monicdiscrqHermiteI{n}@@{x}{q},monic discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-I-monic-p,P|F:P:PS,${\widehat h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI, -\monicdiscrqHermiteII{n}@@{x}{q},monic discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-monic-p,P|F:P:PS,${\widehat \tilde{p}_{n}}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII, -\monicdualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},monic dual Hahn polynomial,dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualHahn, -\monicdualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},monic dual $q$-Hahn polynomial,dual-q-Hahn-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn, -\monicdualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},monic dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk, -\moniclittleqJacobi{n}@@{x}{a}{b}{q},monic little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi, -\moniclittleqLaguerre{n}@@{x}{a}{q},monic little $q$-Laguerre/Wall polynomial,little-q-Laguerre-Wall-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre, -\moniclittleqLegendre{n}@@{x}{q},monic little $q$-Legendre polynomial,little-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre, -\monicpseudoJacobi{n}@@{x}{\nu}{N},monic pseudo-Jacobi polynomial,pseudo-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi, -\monicqBesselPoly{n}@@{x}{a}{q},monic $q$-Bessel polynomial,q-Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqBessel, -\monicqCharlier{n}@@{q^{-x}}{a}{q},monic $q$-Charlier polynomial,q-Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqCharlier, -\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},monic $q$-Hahn polynomial,q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqHahn, -\monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic $q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk, -\monicqLaguerre{n}@@{x}{q},monic $q$-Laguerre polynomial,q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre, -\monicqMeixner{n}@@{q^{-x}}{b}{c}{q},monic $q$-Meixner polynomial,q-Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixner, -\monicqMeixnerPollaczek{n}@@{x}{a}{q},monic $q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek, -\monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q},monic $q$-Racah polynomial,q-Racah-polynomial-monic-R,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqRacah, -\monicqinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},monic $q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-monic-p,P|F:P,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara, -\monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K^{\mathrm{qtm}}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk, -"\multinomial{n_1+n_2+\dots+n_k}{n_1,...,n_k}",multinomial coefficient,EMPTY,I|F,$\left(A;B\right)$,http://dlmf.nist.gov/26.4.E2, -\ninej@@{j_{11}}{j_{12}}{j_{13}}{j_{21}}{j_{22}}{j_{23}}{j_{31}}{j_{32}}{j_{33}},$\ninej$ symbol,EMPTY,F|F:P:nP,$$,http://dlmf.nist.gov/34.6#E1, -\normAskeyWilsonptilde{n}@@{x}{a}{b}{c}{d}{q},normalized Askey-Wilson polynomial ${\tilde p}$,Askey-Wilson-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normAskeyWilsonptilde, -\normJacobiR{\alpha}{\beta}{n}@{x},normalized Jacobi polynomial,Jacobi-polynomial-R,P|F:P,"$R^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normJacobiR, -\normWilsonWtilde{n}@@{x^2}{a}{b}{c}{d},normalized Wilson polynomial ${\tilde W}$,Wilson-polynomial-normalized-W-tilde,P|F:P:PS,${\tilde W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde, -\normctsHahnptilde{n}@@{x}{a}{b}{c}{d},normalized continuous Hahn polynomial ${\tilde p}$,continuous-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde, -\normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}{d},normalized continuous dual Hahn polynomial ${\tilde S}$,continuous-dual-Hahn-polynomial-normalized-S-tilde,P|P:PS,${\tilde S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde, -\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q},normalized continuous dual $q$-Hahn polynomial ${\tilde p}$,continuous-dual-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde, -\normctsqHahnptilde{n}@@{x}{a}{b}{c}{d}{q},normalized continuous $q$-Hahn polynomial ${\tilde p}$,continuous-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde, -\normctsqJacobiPtilde{n}@@{x}{q},normalized continuous $q$-Jacobi polynomial ${\tilde P}$,continuous-q-Jacobi-polynomial-P-tilde,P|F:P:PS,"${\tilde P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normctsqJacobiPtilde, -\notin,not an element of,EMPTY,Q|F,$\notin$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r10, -\opminus,negative unity to an integer power,EMPTY,I|F,$(-1)$,http://dlmf.nist.gov/5.7.E7, -\pderiv{f}{x},partial derivative,EMPTY,O|F,$\frac{\partial f}{\partial x}$,http://dlmf.nist.gov/1.5#E3, -\pdiff{x},power of a partial differential,EMPTY,O|F,"$\partial^nx$",http://dlmf.nist.gov/1.5#E3, -\pgcd,greatest common divisor,EMPTY,I|F,"$\left(m,n\right)$",http://dlmf.nist.gov/27.1, -\ph@@{z},phase,phase,O|F:P:nP,$\mathrm{ph}$,http://dlmf.nist.gov/1.9#E7, -\pochhammer{a}{n},Pochhammer symbol,EMPTY,F|F,$(a)_n$,http://dlmf.nist.gov/5.2#iii, -\poly{p}{n}@{x},polynomial,EMPTY,SM|F:P,${p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:poly, -\polygamma{n}@{z},polygamma functions,polygamma,F|F:P,$\psi^{(n)}$,http://dlmf.nist.gov/5.15, -\power,power function,EMPTY,F|F,$x^y$,http://dlmf.nist.gov/36.12.E9, -\prod,product,EMPTY,SM|F,$\Pi$,http://drmf.wmflabs.org/wiki/Definition:prod, -\pseudoJacobi{n}@{x}{\nu}{N},pseudo Jacobi polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi, -\psfactorial{a}{\kappa},partitional shifted factorial,EMPTY,F|F,${\left[a\right]_{\kappa}}$,http://dlmf.nist.gov/35.4#E1, -\pvint,Cauchy principal value,EMPTY,O|F,$\pvint_a^b$,http://dlmf.nist.gov/1.4#E24, -\qAppelli@{a}{b}{b'}{c}{q}{x}{y},first $q$-Appell function,q-Appell-Phi-1,F|F:P,$\Phi^{(1)}$,http://dlmf.nist.gov/17.4.E5, -\qAppellii@{a}{b}{b'}{c}{c'}{q}{x}{y},second $q$-Appell function,q-Appell-Phi-2,F|F:P,$\Phi^{(2)}$,http://dlmf.nist.gov/17.4.E6, -\qAppelliii@{a}{a'}{b}{b'}{c}{q}{x}{y},third $q$-Appell function,q-Appell-Phi-3,F|F:P,$\Phi^{(3)}$,http://dlmf.nist.gov/17.4.E7, -\qAppelliv@{a}{b}{c}{c'}{q}{x}{y},fourth $q$-Appell function,q-Appell-Phi-4,F|F:P,$\Phi^{(4)}$,http://dlmf.nist.gov/17.4.E8, -\qBernoulli{n}@{x}{q},$q$-Bernoulli polynomial,q-Bernoulli-polynomial,P|F:P,$\beta_{q}$,http://dlmf.nist.gov/17.3#E7, -\qBesselPoly{n}@{x}{b}{q},$q$-Bessel polynomial,EMPTY,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:qBessel, -\qBeta{q}@{a}{b},$q$-beta function,q-Beta,F|F:P,$\mathrm{B}_{q}$,http://dlmf.nist.gov/5.18#E11, -\qBinomial{n}{m}{q},$q$-binomial coefficient (or Gaussian polynomial),EMPTY,F|F,$\left[n \atop m\right]_{q}$,http://dlmf.nist.gov/17.2#E27,http://dlmf.nist.gov/26.9#SS2.p1 -\qCharlier{n}@{x}{c}{q},$q$-Charlier polynomial,EMPTY,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:qCharlier, -\qCos{q}@@{x},$q$-analogue of the $\cos$ function: ${\rm Cos}_q$,q-Cos,F|F:nP:P,$\mathrm{Cos}_{q}$,http://dlmf.nist.gov/17.3#E6, -\qCosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\mathrm{Cos}_{q}$,q-Cos-KLS,P|F:nP:P,$\mathrm{Cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qCosKLS, -\qDigamma{q}@{z},$q$-digamma function,q-digamma,F|F:P,$\psi_{q}$,http://drmf.wmflabs.org/wiki/Definition:qDigamma, -\qEuler{m}{s}@{q},$q$-Euler number,q-Euler-number,F|F:P,"$A_{m,n}$",http://dlmf.nist.gov/17.3#E8, -\qExp{q}@@{x},$q$-analogue of the $\exp$ function: $E_q$,q-Exp,F|F:nP:P,$E_{q}$,http://dlmf.nist.gov/17.3#E2, -\qExpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{E}_{q}$,q-Exp-KLS,F|F:nP:P,$\mathrm{E}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qExpKLS, -\qFactorial{n}{q},$q$-factorial,q-factorial,F|F,$n!_q$,http://dlmf.nist.gov/5.18#E2, -\qGamma{q}@{z},$q$-gamma function,q-gamma,F|F:P,$\Gamma_{q}$,http://dlmf.nist.gov/5.18#E4, -\qHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:qHahn, -\qHahnQ{n}@{x}{\alpha}{\beta}{N}{q},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.27#E3, -\qHermiteH{n}@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.28#E16, -\qHermitehI{n}@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P,$h_{n}$,http://dlmf.nist.gov/18.27#E21, -\qHermitehII{n}@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-h-II,P|F:P,$\tilde{h}_{n}$,http://dlmf.nist.gov/18.27#E23, -"\qHyperrWs{r}{r+1}@@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}",very-well-poised basic hypergeometric (or $q$-hypergeometric) function,very-well-poised-q-hypergeometric-rWs,F|F:fo1:fo2:fo3,${{}_{r+1}W_{r}}$,http://drmf.wmflabs.org/wiki/Definition:qHyperrWs, -"\qHyperrphis{r}{s}@@@{a_1,...a_r}{b_1,...,b_s}{q}{z}",basic hypergeometric (or $q$-hypergeometric) function,q-hypergeometric-rphis,F|F:fo1:fo2:fo3,${{}_{r}\phi_{s}}$,http://dlmf.nist.gov/17.4#E1, -"\qHyperrpsis{r}{s}@@@{a_1,...,a_r}{b_1,...,b_s}{q}{z}",bilateral basic hypergeometric (or bilateral $q$-hypergeometric) function,q-hypergeometric-rpsis,F|F:fo1:fo2:fo3,${{}_{r}\psi_{s}}$,http://dlmf.nist.gov/17.4#E3, -\qJacobiP{n}@{x}{a}{b}{c}{q},"big $q$-Jacobi polynomial $P_n(x;a,b,c;q)$",q-Jacobi-polynomial-P,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.27#E5, -\qJacobiPP{\alpha}{\beta}{n}@{x}{c}{d}{q},"big $q$-Jacobi polynomial $P_n^{(\alpha,\beta)}(x;c,d;q)$",big-q-Jacobi-polynomial-P-type-2,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.27#E6, -\qJacobip{n}@{x}{a}{b}{q},little $q$-Jacobi polynomial,q-Jacobi-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.27#E13, -\qKrawtchouk{n}@@{q^{-x}}{p}{N}{q},$q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk, -\qLaguerre[\alpha]{n}@@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:nPnO:F:P:PS,$L_n^{(\alpha)}$,http://drmf.wmflabs.org/wiki/Definition:qLaguerre, -\qLaguerreL[\alpha]{n}@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.27#E15, -\qLegendre{n}@{x}{q},continuous $q$-Legendre polynomial,EMPTY,P|F:P,$\qLegendre{n}$,http://drmf.wmflabs.org/wiki/Definition:qLegendre, -\qMeixner{n}@{x}{b}{c}{q},$q$-Meixner polynomial,q-Meixner-polynomial-M,P|F:P,$M_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixner, -\qMeixnerPollaczek{n}@{x}{a}{q},$q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-M,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek, -"\qMultiPochhammer{a_1,\ldots,a_n}{q}{n}",$q$-multi-Pochhammer symbol,q-multi-Pochhammer,F|F,"$\(a_1,\ldots,a_k;q)_n$",http://dlmf.nist.gov/17.2.E5, -"\qMultinomial{a_1+\ldots+a_n}{a_1,\ldots,a_n}{q}",$q$-multinomial,q-multinomial,F|F,"$\left[a_1+\ldots+a_n \atop a_1,\ldots,a_n\right]_{q}$",http://dlmf.nist.gov/26.16.E1, -\qPochhammer{a}{q}{n},$q$-Pochhammer symbol,EMPTY,F|F,$(a;q)_n$,http://dlmf.nist.gov/5.18#i,http://dlmf.nist.gov/17.2#SS1.p1 -\qPolygamma{n}{q}@{z},$q$-polygamma function,q-polygamma,F|F:P,$\psi_{q}^{(n)}$,http://drmf.wmflabs.org/wiki/Definition:qPolygamma, -\qRacah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, -\qRacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, -\qSin{q}@@{x},$q$-analogue of the $\sin$ function: ${\rm Sin}_q$,q-Sin,F|F:nP:P,$\mathrm{Sin}_{q}$,http://dlmf.nist.gov/17.3#E4, -\qSinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\mathrm{Sin}_q$,q-Sin-KLS,F|F:nP:P,$\mathrm{Sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qSinKLS, -\qStirling{m}{s}@{q},$q$-Stirling number,q-Stirling-number,F|F:P,"$a_{m,s}$",http://dlmf.nist.gov/17.3#E9, -\qUltraspherical{n}@{x}{\beta}{q},continuous $q$-ultraspherical polynomial,q-ultraspherical-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, -\qcos{q}@@{x},$q$-analogue of the $\cos$ function: $\cos_q$,q-cos,F|F:nP:P,$\mathrm{cos}_{q}$,http://dlmf.nist.gov/17.3#E5, -\qcosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\cos_q$,q-cos-KLS,P|F:nP:P,$\mathrm{cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qcosKLS, -\qderiv[n]{q}@{z},$q$-derivative,q-derivative,O|FO:PO:FnO:PnO,$\mathcal{D}_q^n$,http://drmf.wmflabs.org/wiki/Definition:qderiv, -\qdiff{q}{x},$q$-differential,EMPTY,O|F,"${\mathrm d}^n_qx$",http://dlmf.nist.gov/17.2#SS5.p1, -\qexp{q}@@{x},$q$-analogue of the $\exp$ function: $e_q$,q-exp,F|F:nP:P,$e_{q}$,http://dlmf.nist.gov/17.3#E1, -\qexpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{e}_{q}$,q-exp-KLS,F|F:nP:P,$\mathrm{e}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qexpKLS, -\qinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},$q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/23.1, -\qinvHermiteh{n}@{x}{q},continuous $q$-inverse Hermite polynomial,continuous-q-inverse-Hermite-polynomial-h,P|F:P,$h_{n}$,http://dlmf.nist.gov/23.1, -\qsin{q}@@{x},$q$-analogue of the $\sin$ function: $\sin_q$,q-sin,F|F:nP:P,$\mathrm{sin}_{q}$,http://dlmf.nist.gov/17.3#E3, -\qsinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\sin_q$,q-sin-KLS,F|F:nP:P,$\mathrm{sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qsinKLS, -\qtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{qtm}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk, -\realpart{z},real part,EMPTY,O|F,"$\Re {z}$",http://dlmf.nist.gov/1.9#E2, -\terminant{p}@{z},terminant function,terminant-function,F|F:P,$F_{p}$,http://dlmf.nist.gov/2.11#E11, -\rescaledTerminant{p}@{z},rescaled terminant functions,rescaled-terminant-function,F|F:P,$G_{p}$,http://dlmf.nist.gov/9.7#SS5.p1, -\rselection,right bracketed generalization of $\pm$,EMPTY,SM|F,$\left.\begin{matrix}x\end{matrix}\right\$,http://dlmf.nist.gov/28.4.E22, -\sec@@{z},secant function,secant,F|F:P:nP,$\mathrm{sec}$,http://dlmf.nist.gov/4.14#E6, -\sech@@{z},hyperbolic secant function,hyperbolic-secant,F|F:P:nP,$\mathrm{sech}$,http://dlmf.nist.gov/4.28#E6, -\selection,generalization of $\pm$,EMPTY,SM|F,$\;\begin{matrix}x\end{matrix}\;$,http://dlmf.nist.gov/10.23.E7, -\setminus,set subtraction,EMPTY,Q|F,$\setminus$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r19, -\setmod,$S_1 \setmod S_2$: set of all elements of $S_1$ modulo elements of $S_2$,EMPTY,SN|F,$/$,http://dlmf.nist.gov/21.1#p2.t1.r17, -\sign@@{x},sign function,sign,F|F:P:nP,$\mathrm{sign}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r18, -\sim,asymptotic equality,EMPTY,Q|F,$\tilde$,http://dlmf.nist.gov/2.1#E1, -\sin@@{z},sine function,sin,F|F:P:nP,$\mathrm{sin}$,http://dlmf.nist.gov/4.14#E1, -\sinInt@{z},sine integral ${\rm si}$,shifted-sine-integral,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/6.2#E10, -\sinh@@{z},hyperbolic sine function,hyperbolic-sine,F|F:P:nP,$\mathrm{sinh}$,http://dlmf.nist.gov/4.28#E1, -\sinintg@{a}{z},generalized sine integral ${\rm si}$,generalized-sine-integral-si,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/8.21#E1, -\sixj@@{j_{1}}{j_{2}}{j_{3}}{l_{1}}{l_{2}}{l_{3}},$\sixj$ symbol,EMPTY,F|F:P:nP,$\left\{\begin{array}{ccc}j_1 & j_2 & j_3\\l_1 & l_2 & l_3\end{array}\right\}$,http://dlmf.nist.gov/23.1, -\subset,is contained in,EMPTY,Q|F,$\subset$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r2, -\subseteq,is in or is contained in,EMPTY,Q|F,$\subseteq$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r3, -\sum,sum,EMPTY,SM|F,$\Sigma$,http://drmf.wmflabs.org/wiki/Definition:sum, -\sup,least upper bound (supremum),EMPTY,Q|F,$\mathrm{sup}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r25, -\tan@@{z},tangent function,tangent,F|F:P:nP,$\mathrm{tan}$,http://dlmf.nist.gov/4.14#E4, -\tanh@@{z},hyperbolic tangent function,hyperbolic-tangent,F|F:P:nP,$\mathrm{tanh}$,http://dlmf.nist.gov/4.28#E4, -\threej@@{j_1}{j_2}{j_3}{m_1}{m_2}{m_3},$\threej$ symbol,EMPTY,F|F:P:nP,$\left(\begin{array}{ccc}j_1 & j_2 & j_3\\m_1 & m_2 & m_3\end{array}\right)$,http://dlmf.nist.gov/34.2#E4, -\trace,trace of matrix,trace,L|F,$\mathrm{etr}$,http://dlmf.nist.gov/23.1, -\transpose,transpose of a matrix,EMPTY,L|F,$A^{\mathrm{T}}$,http://dlmf.nist.gov/1.3.E5, -\weight{w}@{x},weight function,EMPTY,SM|F:P,${w}$,http://drmf.wmflabs.org/wiki/Definition:weight, -\wigner{j_1}{m_1}{j_2}{m_2}{j_3}{-m_3},Clebsch-Gordan coefficient,EMPTY,F|F,"$\left(j_{1}\;m_{1}\;j_{2}\;m_{2} | j_{1}\;j_{2}\; j_{3}\,\,-m_{3}\right)$",http://dlmf.nist.gov/34.1#p4, -\BesselPolyIIparam{n}@{x}{a}{b},Bessel polynomial with two parameters $y_n$,Bessel-polynomial-two-parameters-y,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam, -\BesselPolyTheta{n}@{x}{a}{b},Bessel polynomial with two parameters $\theta_n$,Bessel-polynomial-two-parameters-theta,P|F:P,$\theta_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta, -\FourierTrans@{f}{s},Fourier transform,Fourier-transform,O|F:P,$\mathscr{F}$,http://dlmf.nist.gov/1.14#E1, -\Continuous@{A},space of continuous functions on a set $A$,set-of-continuous-functions,S|F,$C(A)$,http://dlmf.nist.gov/1.4#ii, -\SpaceTestFunTempered@{A},space of test functions for tempered distributions,space-of-test-functions-for-tempered-distributions-T,S|F,${\mathcal T}(\Real)$,http://dlmf.nist.gov/1.16#v, diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index bcbe712..a89ab01 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -268,20 +268,21 @@ def writeout(ofname): def main(): - if len(sys.argv) != 4: - + if len(sys.argv) != 6: fname = "../../data/ZE.3.tex" ofname = "../../data/ZE.4.xml" lname = "../../data/BruceLabelLinks" + glossary = "../../data/new.Glossary.csv" + mmd = "../../data/OrthogonalPolynomials.mmd" else: - fname = sys.argv[1] ofname = sys.argv[2] lname = sys.argv[3] - + glossary = sys.argv[4] + mmd = sys.argv[5] setup_label_links(lname) - readin(fname) + readin(fname,glossary,mmd) writeout(ofname) @@ -290,12 +291,12 @@ def setup_label_links(ofname): lLink = open(ofname, "r").readlines() -def readin(ofname): +def readin(ofname,glossary,mmd): # try: for jsahlfkjsd in range(0, 1): global wiki tex = open(ofname, 'r') - main_file = open("OrthogonalPolynomials.mmd", "r") + main_file = open(mmd, "r") mainText = main_file.read() mainPrepend = "" mainWrite = open("OrthogonalPolynomials.mmd.new", "w") @@ -341,7 +342,7 @@ def readin(ofname): mainWrite.write(mainText) mainWrite.close() main_file.close() - copyfile('OrthogonalPolynomials.mmd', 'OrthogonalPolynomials.mmd.new') + copyfile(mmd, 'OrthogonalPolynomials.mmd.new') parse = False elif "\\title" in line and parse: stringWrite = "\'\'\'" @@ -652,7 +653,7 @@ def readin(ofname): gFlag = False checkFlag = False get = False - gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + gCSV = csv.reader(open(glossary, 'rb'), delimiter=',', quotechar='\"') preG = "" if symbol == "\\&": ampFlag = True diff --git a/Pipeline/src/OrthogonalPolynomials.mmd b/Pipeline/src/OrthogonalPolynomials.mmd deleted file mode 100644 index c841fb5..0000000 --- a/Pipeline/src/OrthogonalPolynomials.mmd +++ /dev/null @@ -1,81 +0,0 @@ -drmf_bof -'''Orthogonal Polynomials''' -{{#set:Section=0}} -== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
-== Sections in KLS Chapter 9 == - -
-* [[Wilson|Wilson]] -* [[Racah|Racah]] -* [[Continuous dual Hahn|Continuous dual Hahn]] -* [[Continuous Hahn|Continuous Hahn]] -* [[Hahn|Hahn]] -* [[Dual Hahn|Dual Hahn]] -* [[Meixner-Pollaczek|Meixner-Pollaczek]] -* [[Jacobi|Jacobi]] -* [[Jacobi: Special cases|Jacobi: Special cases]] -* [[Pseudo Jacobi|Pseudo Jacobi]] -* [[Meixner|Meixner]] -* [[Krawtchouk|Krawtchouk]] -* [[Laguerre|Laguerre]] -* [[Bessel|Bessel]] -* [[Charlier|Charlier]] -* [[Hermite|Hermite]] -
-== Sections in KLS Chapter 14 == - -
-* [[Askey-Wilson|Askey-Wilson]] -* [[q-Racah|''q''-Racah]] -* [[Continuous dual q-Hahn|Continuous dual ''q''-Hahn]] -* [[Continuous q-Hahn|Continuous ''q''-Hahn]] -* [[Big q-Jacobi|Big ''q''-Jacobi]] -* [[Big q-Jacobi: Special case|Big ''q''-Jacobi: Special case]] -* [[q-Hahn|''q''-Hahn]] -* [[Dual q-Hahn|Dual ''q''-Hahn]] -* [[Al-Salam-Chihara|Al-Salam-Chihara]] -* [[q-Meixner-Pollaczek|''q''-Meixner-Pollaczek]] -* [[Continuous q-Jacobi|Continuous ''q''-Jacobi]] -* [[Continuous q-Jacobi: Special cases|Continuous ''q''-Jacobi: Special cases]] -* [[Big q-Laguerre|Big ''q''-Laguerre]] -* [[Little q-Jacobi|Little ''q''-Jacobi]] -* [[Little q-Jacobi: Special case|Little ''q''-Jacobi: Special case]] -* [[q-Meixner|''q''-Meixner]] -* [[Quantum q-Krawtchouk|Quantum ''q''-Krawtchouk]] -* [[q-Krawtchouk|''q''-Krawtchouk]] -* [[Affine q-Krawtchouk|Affine ''q''-Krawtchouk]] -* [[Dual q-Krawtchouk|Dual ''q''-Krawtchouk]] -* [[Continuous big q-Hermite|Continuous big ''q''-Hermite]] -* [[Continuous q-Laguerre|Continuous ''q''-Laguerre]] -* [[Little q-Laguerre / Wall|Little ''q''-Laguerre / Wall]] -* [[q-Laguerre|''q''-Laguerre]] -* [[q-Bessel|''q''-Bessel]] -* [[q-Charlier|''q''-Charlier]] -* [[Al-Salam-Carlitz I|Al-Salam-Carlitz I]] -* [[Al-Salam-Carlitz II|Al-Salam-Carlitz II]] -* [[Continuous q-Hermite|Continuous ''q''-Hermite]] -* [[Stieltjes-Wigert|Stieltjes-Wigert]] -* [[Discrete q-Hermite I|Discrete ''q''-Hermite I]] -* [[Discrete q-Hermite II|Discrete ''q''-Hermite II]] -
- -drmf_eof diff --git a/Pipeline/src/new.Glossary.csv b/Pipeline/src/new.Glossary.csv deleted file mode 100644 index 8875e6b..0000000 --- a/Pipeline/src/new.Glossary.csv +++ /dev/null @@ -1,691 +0,0 @@ -\AGM@{a}{g},arithmetic-geometric mean,arithmetic-geometric-mean,F|F:P,$M$,http://dlmf.nist.gov/19.8#SS1.p1, -\AThetaFunction@{x},Jacobi theta function $\vartheta$,a-theta-function,F|F:P,$\vartheta$,http://dlmf.nist.gov/23.1, -\AbstractJacobi{p}{q},generic Jacobian elliptic function,generic-Jacobian-elliptic-function,F|F,$\mathrm{pq}$,http://dlmf.nist.gov/22.2#E10, -\Acos@@{z},general inverse cosine function,multivalued-inverse-cosine,F|F:P:nP,$\mathrm{Arccos}$,http://dlmf.nist.gov/4.23#E2, -\Acosh@@{z},general inverse hyperbolic cosine function,multivalued-hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{Arccosh}$,http://dlmf.nist.gov/4.37#E2, -\Acot@@{z},general inverse cotangent function,multivalued-inverse-cotangent,F|F:P:nP,$\mathrm{Arccot}$,http://dlmf.nist.gov/4.23#E6, -\Acoth@@{z},general inverse hyperbolic cotangent function,multivalued-hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{Arccoth}$,http://dlmf.nist.gov/4.37#E6, -\Acsc@@{z},general inverse cosecant function,multivalued-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsc}$,http://dlmf.nist.gov/4.23#E4, -\Acsch@@{z},general inverse hyperbolic cosecant function,multivalued-hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{Arccsch}$,http://dlmf.nist.gov/4.37#E4, -\AffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk, -\AiryAi@{z},Airy function ${\rm Ai}$,Airy-Ai,F|F:P,$\mathrm{Ai}$,http://dlmf.nist.gov/9.2#i, -\AiryBi@{z},Airy function ${\rm Bi}$,Airy-Bi,F|F:P,$\mathrm{Bi}$,http://dlmf.nist.gov/9.2#i, -\AiryModulusM@{z},Airy modulus function $M$,modulus-Airy-M,F|F:P,$M$,http://dlmf.nist.gov/9.8#i, -\AiryModulusN@{z},Airy modulus function $N$,modulus-Airy-N,F|F:P,$N$,http://dlmf.nist.gov/9.8#i, -\AiryPhasePhi@{z},Airy phase function $\phi$,phase-Airy-Phi,F|F:P,$\phi$,http://dlmf.nist.gov/9.8#i, -\AiryPhaseTheta@{z},Airy phase function $\theta$,phase-Airy-Theta,F|F:P,$\theta$,http://dlmf.nist.gov/9.8#i, -\AlSalamCarlitzI{a}{n}@{x}{q},Al-Salam-Carlitz I polynomial,EMPTY,P|F:P,$U^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI, -\AlSalamCarlitzII{a}{n}@{x}{q},Al-Salam-Carlitz II polynomial,EMPTY,P|F:P,$V^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII, -\AlSalamChihara{n}@@{x}{a}{b}{q},Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-Q,P|F:P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara, -\AlSalamChiharaQ{n}@{x}{a}{b}{q},Al-Salam-Chihara polynomial,AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.28#E7, -\AlSalamIsmail{n}@{x}{s}{q},Al-Salam Ismail polynomial,Al-Salam-Ismail-q-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail, -\AngerA{\nu}@{z},Anger-Weber function,associated-Anger-Weber-A,F|F:P,$\mathbf{A}_{\nu}$,http://dlmf.nist.gov/11.10#E4, -\AngerJ{\nu}@{z},Anger function,Anger-J,F|F:P,$\mathbf{J}_{\nu}$,http://dlmf.nist.gov/11.10#E1, -\AntiDer@{x}{f(x)},semantic antiderivative,antiderivative,SM|O,"$\int f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:AntiDer, -\AppellFi@{\alpha}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_1$,Appell-F-1,F|F:P,${F_{1}}$,http://dlmf.nist.gov/16.13#E1, -\AppellFii@{\alpha}{\beta}{\beta'}{\gamma}{\gamma'}{x}{y},Appell function $F_2$,Appell-F-2,F|F:P,${F_{2}}$,http://dlmf.nist.gov/16.13#E2, -\AppellFiii@{\alpha}{\alpha'}{\beta}{\beta'}{\gamma}{x}{y},Appell function $F_3$,Appell-F-3,F|F:P,${F_{3}}$,http://dlmf.nist.gov/16.13#E3, -\AppellFiv@{\alpha}{\beta}{\gamma}{\gamma'}{x}{y},Appell function $F_4$,Appell-F-4,F|F:P,${F_{4}}$,http://dlmf.nist.gov/16.13#E4, -\Asec@@{z},general inverse secant function,multivalued-inverse-secant,F|F:P:nP,$\mathrm{Arcsec}$,http://dlmf.nist.gov/4.23#E5, -\Asech@@{z},general inverse hyperbolic secant function,multivalued-hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{Arcsech}$,http://dlmf.nist.gov/4.37#E5, -\Asin@@{z},general inverse sine function,multivalued-inverse-sine,F|F:P:nP,$\mathrm{Arcsin}$,http://dlmf.nist.gov/4.23#E1, -\Asinh@@{z},general inverse hyperbolic sine function,multivalued-hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{Arcsinh}$,http://dlmf.nist.gov/4.37#E1, -\AskeyWilson{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, -\AskeyWilsonp{n}@{x}{a}{b}{c}{d}{q},Askey-Wilson polynomial,Askey-Wilson-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.28#E1, -\AssJacobiP{\alpha}{\beta}{n}@{x}{c},associated Jacobi polynomial,associated-Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\alpha)}_{n}$",http://dlmf.nist.gov/18.30#E4, -\AssLegendrePoly{n}@{x}{c},associated Legendre polynomial,Legendre-spherical-polynomial-P,F|F:P,$P_{n}$,http://dlmf.nist.gov/18.30#E6, -\Atan@@{z},general inverse tangent function,multivalued-inverse-tangent,F|F:P:nP,$\mathrm{Arctan}$,http://dlmf.nist.gov/4.23#E3, -\Atanh@@{z},general inverse hyperbolic tangent function,multivalued-hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{Arctanh}$,http://dlmf.nist.gov/4.37#E3, -\BarnesGamma@{z},Barnes $G$-function (or double gamma function),Barnes-Gamma,F|F:P,$G$,http://dlmf.nist.gov/5.17#E1, -\BellNumber@{n},Bell number,Bell-number,I|F:P,$B$,http://dlmf.nist.gov/26.7#i, -\BernoulliB{n}@{x},Bernoulli polynomial,Bernoulli-polynomial-B,P|F:P,$B_{n}$,http://dlmf.nist.gov/24.2#i, -\BesselA{\nu}@{\Matrix{T}},Bessel function of matrix argument of the first kind,Bessel-of-matrix-A,F|F:P,$A_{\nu}$,http://dlmf.nist.gov/35.5#i, -\BesselB{\nu}@{\Matrix{T}},Bessel function of matrix argument of the second kind,Bessel-of-matrix-B,F|F:P,$B_{\nu}$,http://dlmf.nist.gov/35.5#E3, -\BesselI{\nu}@{z},modified Bessel function of the first kind,modified-Bessel-first-kind,F|F:P,$I_{\nu}$,http://dlmf.nist.gov/23.1, -\BesselItilde{\nu}@{x},modified Bessel function of the first kind of imaginary order,modified-Bessel-first-kind-imaginary-order,F|F:P,$\widetilde{I}_{\nu}$,http://dlmf.nist.gov/23.1, -\BesselJ{\nu}@{z},Bessel function of the first kind,Bessel-J,F|F:P,$J_{\nu}$,http://dlmf.nist.gov/10.2#E2, -\BesselJtilde{\nu}@{x},Bessel function of the first kind of imaginary order,Bessel-J-imaginary-order,F|F:P,$\widetilde{J}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, -\BesselK{\nu}@{z},modified Bessel function of the second kind,modified-Bessel-second-kind,F|F:P,$K_{\nu}$,http://dlmf.nist.gov/23.1, -\BesselKtilde{\nu}@{x},modified Bessel function of the second kind of imaginary order,modified-Bessel-second-kind-imaginary-order,F|F:P,$\widetilde{K}_{\nu}$,http://dlmf.nist.gov/10.45#E2, -\BesselModulusM{\nu}@{x},modulus of Bessel functions,modulus-Bessel-M,F|F:P,$M_{\nu}$,http://dlmf.nist.gov/10.18#E1, -\BesselModulusN{\nu}@{x},modulus of derivatives of Bessel functions,modulus-Bessel-N,F|F:P,$N_{\nu}$,http://dlmf.nist.gov/10.18#E2, -\BesselPhasePhi{\nu}@{x},phase of derivatives of Bessel functions,phase-Bessel-Phi,F|F:P,$\phi_{\nu}$,http://dlmf.nist.gov/10.18#E3, -\BesselPhaseTheta{\nu}@{x},phase of Bessel functions,phase-Bessel-Theta,F|F:P,$\theta_{\nu}$,http://dlmf.nist.gov/10.18#E3, -\BesselPoly{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, -\BesselPolyy{n}@{x}{a},Bessel polynomial,Bessel-polynomial-y,P|F:P,$y_{n}$,http://dlmf.nist.gov/18.34#E1, -\BesselY{\nu}@{z},Bessel function of the second kind,Bessel-Y-Weber,F|F:P,$Y_{\nu}$,http://dlmf.nist.gov/10.2#E3, -\BesselYtilde{\nu}@{x},Bessel function of the second kind of imaginary order,Bessel-Y-Weber-imaginary-order,F|F:P,$\widetilde{Y}_{\nu}$,http://dlmf.nist.gov/10.24#Ex1, -\BickleyKi{\alpha}@{x},Bickley function,Bickley-Ki,F|F:P,$\mathrm{Ki}_{\alpha}$,http://dlmf.nist.gov/10.43#E11, -\BigO@{x},order not exceeding,Big-O,Q|F:P,$O$,http://dlmf.nist.gov/2.1#E3, -\CanonicInt{K}@{\Vector{x}},canonical integral $\Psi_K$,canonical-integral,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E4, -\CanonicIntU@{\Vector{x}},umbilic canonical integral $\Psi^{({\rm U})}$,canonical-umbilic-integral,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E5, -\CanonicIntE@{\Vector{x}},elliptic umbilic canonical integral $\Psi^{({\rm E})}$,elliptic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E6, -\CanonicIntH@{\Vector{x}},hyperbolic umbilic canonical integral $\Psi^{({\rm H})}$,hyperbolic-umbilic-canonical-integral,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E8, -\CatalanNumber@{n},Catalan number,Catalan-number,I|F:P,$C$,http://dlmf.nist.gov/26.5#E1, -\CatalansConstant,Catalan's constant,Catalan's-constant,C|F,$G$,http://dlmf.nist.gov/25.11.E40, -\Charlier{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, -\CharlierC{n}@{x}{a},Charlier polynomial,Charlier-polynomial-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r11, -\ChebyC{n}@{x},dilated Chebyshev polynomial of the first kind,dilated-Chebyshev-polynomial-second-kind-C,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.1#E3, -\ChebyS{n}@{x},dilated Chebyshev polynomial of the second kind,dilated-Chebyshev-polynomial-first-kind-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.1#E3, -\ChebyT{n}@{x},Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-T,P|F:P,$T_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r8, -\ChebyTs{n}@{x},shifted Chebyshev polynomial of the first kind,shifted-Chebyshev-polynomial-first-kind-T-star,P|F:P,$T^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r20, -\ChebyU{n}@{x},Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-U,P|F:P,$U_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r11, -\ChebyUs{n}@{x},shifted Chebyshev polynomial of the second kind,shifted-Chebyshev-polynomial-second-kind-U-star,P|F:P,$U^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r23, -\ChebyV{n}@{x},Chebyshev polynomial of the third kind,Chebyshev-polynomial-third-kind-V,P|F:P,$V_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r14, -\ChebyW{n}@{x},Chebyshev polynomial of the fourth kind,Chebyshev-polynomial-fourth-kind-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r17, -\ChebyshevPsi@{x},Chebyshev $\ChebyshevPsi$-function,Chebyshev-psi,F|F:P,$\psi$,http://dlmf.nist.gov/25.16#E1, -\CiglerqChebyT{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $T$,Cigler-q-Chebyshev-polynomial-T,P|P:F,$T_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT, -\CiglerqChebyU{n}@{x}{s}{q},Cigler $q$-Chebyshev polynomial $U$,Cigler-q-Chebyshev-polynomial-U,P|P:F,$U_{n}$,http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU, -\CompEllIntCE@@{k},Legendre's complementary complete elliptic integral of the second kind,complementary-complete-elliptic-integral-second-kind-E,F|F:P:nP,${E'}$,http://dlmf.nist.gov/19.2#E9, -\CompEllIntCK@@{k},Legendre's complementary complete elliptic integral of the first kind,complementary-complete-elliptic-integral-first-kind-K,F|F:P:nP,${K'}$,http://dlmf.nist.gov/19.2#E9, -\CompEllIntD@@{k},complete elliptic integral of Legendre's type,complete-elliptic-integral-D,F|F:P:nP,$D$,http://dlmf.nist.gov/19.2#E8, -\CompEllIntE@@{k},Legendre's complete elliptic integral of the second kind,complete-elliptic-integral-second-kind-E,F|F:P:nP,$E$,http://dlmf.nist.gov/19.2#E8, -\CompEllIntK@@{k},Legendre's complete elliptic integral of the first kind,complete-elliptic-integral-first-kind-K,F|F:P:nP,$K$,http://dlmf.nist.gov/19.2#E8, -\CompEllIntPi@{\alpha^2}{k},Legendre's complete elliptic integral of the third kind,complete-elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E8, -\Complex,set of complex numbers,EMPTY,SN|F,$\mathbb{C}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r1, -\ComplexZeroAiryBi{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi$,complex-zero-Airy-Bi,F|F,$\beta_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, -\ComplexZeroAiryBiPrime{k},$k$\textsuperscript{th} complex zero of Airy $\AiryBi'$,complex-zero-derivative-Airy-Bi,F|F,$\beta'_{k}$,http://dlmf.nist.gov/9.9#SS1.p2, -\CompositionsC[m]@{n},number of compositions,number-of-compositions-C,I|F:F:P:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, -\CosInt@{z},cosine integral ${\rm Ci}$,cosine-integral,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/6.2#E11, -\CosIntCin@{z},cosine integral ${\rm Cin}$,cosine-integral-Cin,F|F:P,$\mathrm{Cin}$,http://dlmf.nist.gov/6.2#E12, -\CosIntg@{a}{z},generalized cosine integral ${\rm Ci}$,generalized-cosine-integral-Ci,F|F:P,$\mathrm{Ci}$,http://dlmf.nist.gov/8.21#E2, -\CoshInt@{z},hyperbolic cosine integral,hyperbolic-cosine-integral,F|F:P,$\mathrm{Chi}$,http://dlmf.nist.gov/6.2#E16, -\CoulombC{\ell}@{\eta},normalizing constant for Coulomb radial functions,Coulomb-C,F|F:P,$C_{\ell}$,http://dlmf.nist.gov/33.2#E5, -\CoulombF{\ell}@{\eta}{\rho},regular Coulomb radial function,regular-Coulomb-F,F|F:P,$F_{\ell}$,http://dlmf.nist.gov/33.2#E3, -\CoulombG{\ell}@{\eta}{\rho},irregular Coulomb radial function,irregular-Coulomb-G,F|F:P,$G_{\ell}$,http://dlmf.nist.gov/33.2#E11, -\CoulombH{\pm}{\ell}@{\eta}{\rho},irregular Coulomb radial functions,irregular-Coulomb-H,F|F:P,${H^{\pm}_{\ell}}$,http://dlmf.nist.gov/33.2#E7, -\CoulombM{\ell}@{\eta}{\rho},envelope of Coulomb functions,envelope-Coulomb-M,F|F:P,$M_{\ell}$,http://dlmf.nist.gov/33.3#E1, -\CoulombSigma{\ell}@{\eta},Coulomb phase shift,Coulomb-phase-shift,F|F:P,${\sigma_{\ell}}$,http://dlmf.nist.gov/33.2#E10, -\CoulombTheta{\ell}@{\eta}{\rho},phase of Coulomb functions,Coulomb-phase,F|F:P,${\theta_{\ell}}$,http://dlmf.nist.gov/33.2#E9, -\Coulombc@{\epsilon}{\ell}{r},irregular Coulomb function $c$,Coulomb-c,F|F:P,$c$,http://dlmf.nist.gov/23.1, -\Coulombf@{\epsilon}{\ell}{r},regular Coulomb function $f$,Coulomb-f,F|F:P,$f$,http://dlmf.nist.gov/33.14#E4, -\Coulombh@{\epsilon}{\ell}{r},irregular Coulomb function $h$,Coulomb-h,F|F:P,$h$,http://dlmf.nist.gov/33.14#E7, -\Coulombrhotp@{\eta}{\ell},outer turning point for Coulomb radial functions,Coulomb-radial-outer-turning-point,F|F:P,$\rho_{\mathrm{tp}}$,http://dlmf.nist.gov/33.2#E2, -\Coulombrtp@{\epsilon}{\ell},outer turning point for Coulomb functions,Coulomb-outer-turning-point,F|F:P,$r_{\mathrm{tp}}$,http://dlmf.nist.gov/33.14#E3, -\Coulombs@{\epsilon}{\ell}{r},regular Coulomb function $s$,Coulomb-s,F|F:P,$s$,http://dlmf.nist.gov/33.14#E9, -\CuspCat{K}@{t}{\Vector{x}},cuspoid catastrophe,cuspoid-catastrophe,F|F:P,$\Phi_{K}$,http://dlmf.nist.gov/36.2#E1, -\Cylinder{\nu}@{z},cylinder function,cylinder-function,F|F:P,$\mathscr{C}_{\nu}$,http://dlmf.nist.gov/10.2#P5.p1, -\DawsonsInt@{z},Dawson's integral,Dawsons-integral,F|F:P,$F$,http://dlmf.nist.gov/7.2#E5, -\DedekindModularEta@{\tau},Dedekind's eta function (or Dedekind modular function),Dedekind-modular-Eta,F|F:P,$\eta$,http://dlmf.nist.gov/23.15#E9,http://dlmf.nist.gov/27.14#E12 -\DiffCat{K}@{\Vector{x}}{k},diffraction catastrophe,diffraction-catastrophe,F|F:P,$\Psi_{K}$,http://dlmf.nist.gov/36.2#E10, -\DiffCatE@{\Vector{x}}{k},elliptic umbilic canonical integral function,diffraction-elliptic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{E})}$,http://dlmf.nist.gov/23.1, -\DiffCatH@{\Vector{x}}{k},hyperbolic umbilic canonical integral function,diffraction-hyperbolic-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E11, -\DiffCatU@{\Vector{x}}{k},umbilic canonical integral function,diffraction-umbilic-catastrophe,F|F:P,$\Psi^{(\mathrm{U})}$,http://dlmf.nist.gov/36.2#E11, -\Dilogarithm@{z},dilogarithm,dilogarithm,F|F:P,$\mathrm{Li}_2$,http://dlmf.nist.gov/25.12#E1, -\Diracdelta@{x-a},Dirac delta (or Dirac delta function),Dirac-delta,D|F:P,$\Diracdelta@{x-a}$,http://dlmf.nist.gov/1.17#SS1.p1, -\DirichletCharacter@@{n}{k},Dirichlet character,Dirichlet-character,I|F:P:nP,$\chi$,http://dlmf.nist.gov/27.8, -\DirichletL@{s}{\chi},Dirichlet $\DirichletL$-function,Dirichlet-L,F|F:P,$L$,http://dlmf.nist.gov/25.15#E1, -\DiscriminantDelta@{\tau},discriminant function,discriminant-delta,F|F:P,$\Delta$,http://dlmf.nist.gov/27.14#E16, -\DiskOP{\alpha}{m}{n}@{z},disk polynomial,disk-orthogonal-polynomial-R,P|F:P,"$R^{(\alpha)}_{m,n}$",http://dlmf.nist.gov/18.37#E1, -\Distribution{f}{g},distribution,EMPTY,D|F,"$\left\langle f,g\right\rangle$",http://dlmf.nist.gov/1.16#SS1.p5, -\DivisorFunctionD[k]@{n},divisor function,divisor-function-D,F|F:P,$d_{k}$,http://dlmf.nist.gov/27.2#E9, -\DivisorSigma{\alpha}@{n},sum of powers of divisors,divisor-sigma,I|F:P,$\sigma_{\alpha}$,http://dlmf.nist.gov/27.2#E10, -\EllIntD@{\phi}{k},incomplete elliptic integral of Legendre's type,elliptic-integral-third-kind-D,F|F:P,$D$,http://dlmf.nist.gov/19.2#E6, -\EllIntE@{\phi}{k},Legendre's incomplete elliptic integral of the second kind,elliptic-integral-second-kind-E,F|F:P,$E$,http://dlmf.nist.gov/19.2#E5, -\EllIntF@{\phi}{k},Legendre's incomplete elliptic integral of the first kind,elliptic-integral-first-kind-F,F|F:P,$F$,http://dlmf.nist.gov/19.2#E4, -\EllIntPi@{\phi}{\alpha^2}{k},Legendre's incomplete elliptic integral of the third kind,elliptic-integral-third-kind-Pi,F|F:P,$\Pi$,http://dlmf.nist.gov/19.2#E7, -\EllIntR{-a}@{\Vector{b}}{\Vector{z}},Carlson integral $R_{-a}$,Carlson-integral-R,F|F:P,$R_{-a}$,http://dlmf.nist.gov/19.16#E9, -\EllIntRC@@{x}{y},Carlson's elliptic integral $R_C$,Carlson-integral-RC,F|F:P:nP,$R_C$,http://dlmf.nist.gov/19.2#E17, -\EllIntRD@@{x}{y}{z},Carlson's elliptic integral $R_D$,Carlson-integral-RD,F|F:P:nP,$R_D$,http://dlmf.nist.gov/19.16#E5, -\EllIntRF@@{x}{y}{z},Carlson's symmetric elliptic integral of first kind,Carlson-integral-RF,F|F:P:nP,$R_F$,http://dlmf.nist.gov/19.16#E1, -\EllIntRG@@{x}{y}{z},Carlson's symmetric elliptic integral of second kind,Carlson-integral-RG,F|F:P:nP,$R_G$,http://dlmf.nist.gov/19.16#E3, -\EllIntRJ@@{x}{y}{z}{p},Carlson's symmetric elliptic integral of third kind,Carlson-integral-RJ,F|F:P:nP,$R_J$,http://dlmf.nist.gov/19.16#E2, -\EllIntcel@{k_c}{p}{a}{b},Bulirsch's complete elliptic integral,Bulirsch-integral-cel,F|F:P,$\mathrm{cel}$,http://dlmf.nist.gov/19.2#E11, -\EllIntelone@{x}{k_c},Bulirsch's incomplete elliptic integral of the first kind,Bulirsch-integral-el-1,F|F:P,$\mathrm{el1}$,http://dlmf.nist.gov/19.2#E15, -\EllIntelthree@{x}{k_c}{p},Bulirsch's incomplete elliptic integral of the third kind,Bulirsch-integral-el-3,F|F:P,$\mathrm{el3}$,http://dlmf.nist.gov/19.2#E16, -\EllInteltwo@{x}{k_c}{a}{b},Bulirsch's incomplete elliptic integral of the second kind,Bulirsch-integral-el-2,F|F:P,$\mathrm{el2}$,http://dlmf.nist.gov/19.2#E12, -\EulerBeta@{a}{b},beta function,Euler-Beta,F|F:P,$\mathrm{B}$,http://dlmf.nist.gov/5.12#E1, -\EulerConstant,Euler's (Euler-Mascheroni) constant,EMPTY,C|F,$\gamma$,http://dlmf.nist.gov/5.2#E3, -\EulerE{n}@{x},Euler polynomial,Euler-polynomial-E,P|F:P,$E_{n}$,http://dlmf.nist.gov/24.2#ii, -\EulerGamma@{z},Euler's gamma function,Euler-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/5.2#E1, -\EulerPhi@{x},Euler's reciprocal function,Euler-phi,F|F:P,$\mathit{f}$,http://dlmf.nist.gov/27.14#E2, -\EulerSumH@{s},Euler sums,Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p1, -\EulerTotientPhi[k]@{n},Euler's totient $\phi_k(n)$,Euler-totient-phi,I|F:P,$\phi_{k}$,http://dlmf.nist.gov/27.2#E6, -\EulerianNumber{n}{k},Eulerian number,Eulerian-number,I|F,$\left\langle n\atop k\right\rangle$,http://dlmf.nist.gov/26.14#SS1.p3, -\ExpInt@{z},exponential integral $E_1$,exponential-integral,F|F:P,$E_1$,http://dlmf.nist.gov/6.2#E1, -\ExpIntEin@{z},complementary exponential integral ${\rm Ein}$,complementary-exponential-integral,F|F:P,$\mathrm{Ein}$,http://dlmf.nist.gov/6.2#E3, -\ExpInti@{x},exponential integral ${\rm Ei}$,exponential-integral-Ei,F|F:P,$\mathrm{Ei}$,http://dlmf.nist.gov/6.2#E1, -\ExpIntn{p}@{z},generalized exponential integral,exponential-integral-En,F|F:P,$E_{p}$,http://dlmf.nist.gov/8.19#E1, -\FerrersHatQ[-\mu]{-\frac{1}{2}+i\tau}@{x},conical function $\widehat{\mathsf{Q}}_\nu^\mu$,Ferrers-conical-legendre-Q-hat,F|FO:PO:FnO:PnO,$\widehat{\mathsf{Q}}_\nu^\mu$,http://dlmf.nist.gov/14.20#E2, -\FerrersP[\mu]{\nu}@{x},Ferrers function of the first kind,Ferrers-Legendre-P-first-kind,F|FO:PO:FnO:PnO,$\mathsf{P}_\nu^\mu$,http://dlmf.nist.gov/14.3#E1, -\FerrersQ[\mu]{\nu}@{x},Ferrers function of the second kind,Ferrers-Legendre-Q-first-kind,F|FO:PO:FnO:PnO,$\mathsf{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E2, -\FishersHh{n}@{z},probability function,Fishers-Hh,F|F:P,$\mathit{Hh}_{n}$,http://dlmf.nist.gov/7.18#E12, -\FresnelCos@{z},Fresnel integral $C$,Fresnel-cosine-integral,F|F:P,$C$,http://dlmf.nist.gov/7.2#E7, -\FresnelF@{z},Fresnel integral ${\mathcal F}$,Fresnel-integral,F|F:P,$\mathcal{F}$,http://dlmf.nist.gov/7.2#E6, -\FresnelSin@{z},Fresnel integral $S$,Fresnel-sine-integral,F|F:P,$S$,http://dlmf.nist.gov/7.2#E8, -\Fresnelf@{z},auxiliary function for Fresnel integrals ${\rm f}$,Fresnel-auxilliary-function-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/7.2#E10, -\Fresnelg@{z},auxiliary function for Fresnel integrals ${\rm g}$,Fresnel-auxilliary-function-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/7.2#E11, -\GammaP@{a}{z},normalized incomplete gamma function $P$,incomplete-gamma-P,F|F:P,$P$,http://dlmf.nist.gov/8.2#E4, -\GammaQ@{a}{z},normalized incomplete gamma function $Q$,incomplete-gamma-Q,F|F:P,$Q$,http://dlmf.nist.gov/8.2#E4, -\GaussSum@{n}{\DirichletCharacter},Gauss sum,Gauss-sum,F|F:P,$G$,http://dlmf.nist.gov/27.10#E9, -\GenBernoulliB{\ell}{n}@{x},generalized Bernoulli polynomial,generalized-Bernoulli-polynomial-B,P|F:P,$B^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, -\GenBesselFun@{\rho}{\beta}{z},generalized Bessel function,generalized-Bessel-function,F|F:P,$\phi$,http://dlmf.nist.gov/10.46#E1, -\GenEulerE{\ell}{n}@{x},generalized Euler polynomial,generalized-Euler-polynomial-E,P|F:P,$E^{(\ell)}_{n}$,http://dlmf.nist.gov/24.16#P1.p1, -\GenEulerSumH@{s}{z},generalized Euler sums,generalized-Euler-sum-H,F|F:P,$H$,http://dlmf.nist.gov/25.16#SS2.p7, -\GenGegenbauer{\alpha}{\beta}{n}@{x},Generalized Gegenbauer polynomial,generalized-Gegenbauer-polynomial-S,P|F:P,"$S^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer, -\GenHermite[\alpha]{n}@{x},generalized Hermite polynomial,generalized-Hermite-polynomial-H,P|FO:PO:FnO:PnO,$H_n^{\mu}$,http://drmf.wmflabs.org/wiki/Definition:GenHermite, -\GoodStat@{z},Goodwin-Staton integral,Goodwin-Staton-integral,F|F:P,$G$,http://dlmf.nist.gov/7.2#E12, -\GottliebLaguerre{n}@{x},Gottlieb-Laguerre polynomial,Gottlieb-Laguerre-polynomial-l,P|F:P,$l_{n}$,http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre, -\Gudermannian@@{x},Gudermannian function,inverse-Gudermannian,F|F:P:nP,$\mathrm{gd}$,http://dlmf.nist.gov/4.23#E39, -\Hahn{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, -\HahnQ{n}@{x}{\alpha}{\beta}{N},Hahn polynomial,Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r3, -\HahnR{n}@{x}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, -\HahnS{n}@{x}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, -\Hahnp{n}@{x}{a}{b}{\conj{a}}{\conj{b}},continuous Hahn polynomial,continuous-Hahn-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, -\HankelHi{\nu}@{z},Hankel function of the first kind,Hankel-H-1-Bessel-third-kind,F|F:P,${H^{(1)}_{\nu}}$,http://dlmf.nist.gov/10.2#E5, -\HankelHii{\nu}@{z},Hankel function of the second kind,Hankel-H-2-Bessel-third-kind,F|F:P,${H^{(2)}_{\nu}}$,http://dlmf.nist.gov/10.2#E6, -\HarmonicNumber{n},Harmonic number,Harmonic-number,I|F,$H_{n}$,http://dlmf.nist.gov/25.11#E33, -\HeavisideH@{x},Heaviside step function,Heaviside-H,F|F:P,$H$,http://dlmf.nist.gov/1.16#E13, -\Hermite{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, -\HermiteH{n}@{x},Hermite polynomial $H_n$,Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r28, -\HermiteHe{n}@{x},Hermite polynomial $He_n$,Hermite-polynomial-He,P|F:P,$\mathit{He}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r29, -\HeunFunction{m}{a}{b}@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $(a;b)Hf_m^\nu$,Heun-function,F|FO:PO:nPO:FnO:PnO:nPnO,"$(s_1,s_2)\mathit{Hf}_{m}^\nu$",http://dlmf.nist.gov/31.4#p1, -\HeunLocal@@{a}{q}{\alpha}{\beta}{\gamma}{\delta}{z},Heun functions $Hl$,Heun-local,F|F:P:nP,$\mathit{H\!\ell}$,http://dlmf.nist.gov/31.3#E1, -\HeunPolynom{n}{m}@@{a}{q}{-n}{\beta}{\gamma}{\delta}{z},Heun polynomial,Heun-polynomial-m,P|F:P:nP,"$\mathit{Hp}_{n,m}$",http://dlmf.nist.gov/31.5#E2, -\HilbertTrans@{f}{x},Hilbert transform,Hilbert-transform,O|F:P,$\mathcal{H}$,http://dlmf.nist.gov/1.14#SS5.p1, -\HurwitzZeta@{s}{a},Hurwitz zeta function,Hurwitz-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.11#E1, -\HyperPsi@{a}{b}{\Matrix{T}},confluent hypergeometric function of matrix argument of the second kind,confluent-hypergeometric-of-matrix-Psi,F|F:P,$\Psi$,http://dlmf.nist.gov/35.6#E2, -\HyperboldpFq{p}{q}@@@{\Vector{a}}{\Vector{b}}{z},scaled (or Olver's) generalized hypergeometric function,hypergeometric-bold-pFq,F|F:fo1:fo2:fo3,${{}_{p}{\mathbf{F}}_{q}}$,http://dlmf.nist.gov/16.2#E5, -\HypergeoF@@@{a}{b}{c}{z},hypergeometric function,Gauss-hypergeometric-F,F|F:fo1:fo2:fo3,$F$,http://dlmf.nist.gov/15.2#E1, -\HypergeoboldF@@@{a}{b}{c}{z},Olver's hypergeometric function,scaled-hypergeometric-bold-F,F|F:fo1:fo2:fo3,$\mathbf{F}$,http://dlmf.nist.gov/15.2#E2, -"\HyperpFq{p}{q}@@@{a_1,...,a_p}{b_1,...,b_q}{z}",generalized hypergeometric function,Gauss-hypergeometric-pFq,F|F:fo1:fo2:fo3,${{}_{p}F_{q}}$,http://dlmf.nist.gov/16.2#E1, -"\HyperpHq{p}{q}@@@{{a_1,...,a_p}{b_1,...,b_q}{z}",bilateral hypergeometric function,hypergeometric-pHq,F|F:fo1:fo2:fo3,${{}_{p}H_{q}}$,http://dlmf.nist.gov/16.4#E16, -\IncBeta{x}@{a}{b},incomplete beta function,incomplete-Beta,F|F:P,$\mathrm{B}_{x}$,http://dlmf.nist.gov/8.17#E1, -\IncGamma@{a}{z},incomplete gamma function $\Gamma$,incomplete-Gamma,F|F:P,$\Gamma$,http://dlmf.nist.gov/8.2#E2, -\IncI{x}@{a}{b},regularized incomplete beta function,IncI,F|F:P,$I_{x}$,http://dlmf.nist.gov/8.17#E2, -\Int{a}{b}@{x}{f(x)},semantic definite integral,semantic-definite-integral,SM|O,"$\int_{a}^{b}f(x){\mathrm d}\!x$",http://drmf.wmflabs.org/wiki/Definition:Int, -\Integer,set of integers,EMPTY,SN|F,$\mathbb{Z}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r20, -\IntgenAiryA{k}@{z}{p},generalized Airy function from integral representation $A_k$,Integral-generalized-Airy-A,F|F:P,$A_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, -\IntgenAiryB{k}@{z}{p},generalized Airy function from integral representation $B_k$,Integral-generalized-Airy-B,F|F:P,$B_{k}$,http://dlmf.nist.gov/9.13#SS2.p1, -\JacksonqBesselI{\nu}@{z}{q},Jackson $q$-Bessel function 1,EMPTY,F|F:P,$J^{(1)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI, -\JacksonqBesselII{\nu}@{z}{q},Jackson $q$-Bessel function 2,EMPTY,F|F:P,$J^{(2)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII, -\JacksonqBesselIII{\nu}@{z}{q},Jackson/Hahn-Exton $q$-Bessel function 3,EMPTY,F|F:P,$J^{(3)}_{q}$,http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII, -\Jacobi{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, -\JacobiEpsilon@{x}{k},Jacobi's epsilon function,Jacobi-Epsilon,F|F:P,$\mathcal{E}$,http://dlmf.nist.gov/22.16#E14, -\JacobiG{n}@{p}{q}{x},shifted Jacobi polynomial,shifted-Jacobi-polynomial-G,P|F:P,$G_{n}$,http://dlmf.nist.gov/18.1#E2, -\JacobiP{\alpha}{\beta}{n}@{x},Jacobi polynomial,Jacobi-polynomial-P,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.3#T1.t1.r3, -\JacobiSymbol{n}{P},Jacobi symbol,Jacobi-symbol,I|F,$(n|P)$,http://dlmf.nist.gov/27.9#p3, -\JacobiTheta{j}@{z}{q},Jacobi theta function,Jacobi-theta,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, -\JacobiThetaCombined{n}{m}@{z}{q},combined theta function,Jacobi-theta-combined,F|F:P,"$\varphi_{m,n}$",http://dlmf.nist.gov/20.11#SS5.p2, -\JacobiThetaTau{j}@{z}{\tau},Jacobi theta $\tau$ function $\theta_j$,Jacobi-theta-tau,F|F:P,$\theta_{p}$,http://dlmf.nist.gov/20.2#i, -\JacobiZeta@{x}{k},Jacobi's zeta function,Jacobi-Zeta,F|F:P,$\mathrm{Z}$,http://dlmf.nist.gov/22.16#E32, -\Jacobiam@@{x}{k},Jacobi's amplitude function ${\rm am}$,Jacobi-elliptic-amplitude,F|F:P:nP,$\mathrm{am}$,http://dlmf.nist.gov/23.1, -\Jacobicd@@{z}{k},Jacobian elliptic function ${\rm cd}$,Jacobi-elliptic-cd,F|F:P:nP,$\mathrm{cd}$,http://dlmf.nist.gov/22.2#E8, -\Jacobicn@@{z}{k},Jacobian elliptic function ${\rm cn}$,Jacobi-elliptic-cn,F|F:P:nP,$\mathrm{cn}$,http://dlmf.nist.gov/22.2#E5, -\Jacobics@@{z}{k},Jacobian elliptic function ${\rm cs}$,Jacobi-elliptic-cs,F|F:P:nP,$\mathrm{cs}$,http://dlmf.nist.gov/23.1, -\Jacobidc@@{z}{k},Jacobian elliptic function ${\rm dc}$,Jacobi-elliptic-dc,F|F:P:nP,$\mathrm{dc}$,http://dlmf.nist.gov/23.1, -\Jacobidn@@{z}{k},Jacobian elliptic function ${\rm dn}$,Jacobi-elliptic-dn,F|F:P:nP,$\mathrm{dn}$,http://dlmf.nist.gov/22.2#E6, -\Jacobids@@{z}{k},Jacobian elliptic function ${\rm ds}$,Jacobi-elliptic-ds,F|F:P:nP,$\mathrm{ds}$,http://dlmf.nist.gov/23.1, -\Jacobinc@@{z}{k},Jacobian elliptic function ${\rm nc}$,Jacobi-elliptic-nc,F|F:P:nP,$\mathrm{nc}$,http://dlmf.nist.gov/23.1, -\Jacobind@@{z}{k},Jacobian elliptic function ${\rm nd}$,Jacobi-elliptic-nd,F|F:P:nP,$\mathrm{nd}$,http://dlmf.nist.gov/23.1, -\Jacobins@@{z}{k},Jacobian elliptic function ${\rm ns}$,Jacobi-elliptic-ns,F|F:P:nP,$\mathrm{ns}$,http://dlmf.nist.gov/23.1, -\Jacobiphi{\alpha}{\beta}{\lambda}@{t},Jacobi function,Jacobi-hypergeometric-phi,F|F:P,"$\phi^{(\alpha,\beta)}_{\lambda}$",http://dlmf.nist.gov/15.9#E11, -\Jacobisc@@{z}{k},Jacobian elliptic function ${\rm sc}$,Jacobi-elliptic-sc,F|F:P:nP,$\mathrm{sc}$,http://dlmf.nist.gov/22.2#E9, -\Jacobisd@@{z}{k},Jacobian elliptic function ${\rm sd}$,Jacobi-elliptic-sd,F|F:P:nP,$\mathrm{sd}$,http://dlmf.nist.gov/22.2#E7, -\Jacobisn@@{z}{k},Jacobian elliptic function ${\rm sn}$,Jacobi-elliptic-sn,F|F:P:nP,$\mathrm{sn}$,http://dlmf.nist.gov/22.2#E4, -\JonquierePhi@{z}{s}=\Polylogarithm{s}@{z},Jonquiére's function,Jonquiere-phi,F|F:P,$\phi$,http://dlmf.nist.gov/23.1, -\JordanJ{k}@{n},Jordan's function,Jordan-J,F|F:P,$J_{k}$,http://dlmf.nist.gov/27.2#E11, -\Kelvinbei{\nu}@@{x},Kelvin function ${\rm bei}_\nu$,Kelvin-bei,F|F:P:nP,$\mathrm{bei}_{\nu}$,http://dlmf.nist.gov/10.61#E1, -\Kelvinber{\nu}@@{x},Kelvin function ${\rm ber}_\nu$,Kelvin-ber,F|F:P:nP,$\mathrm{ber}_{\nu}$,http://dlmf.nist.gov/10.61#E1, -\Kelvinkei{\nu}@@{x},Kelvin function ${\rm kei}_\nu$,Kelvin-kei,F|F:P:nP,$\mathrm{kei}_{\nu}$,http://dlmf.nist.gov/10.61#E2, -\Kelvinker{\nu}@@{x},Kelvin function ${\rm ker}_\nu$,Kelvin-ker,F|F:P:nP,$\mathrm{ker}_{\nu}$,http://dlmf.nist.gov/10.61#E2, -\Krawtchouk{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, -\KrawtchoukK{n}@{x}{p}{N},Krawtchouk polynomial,Krawtchouk-polynomial-K,P|F:P,$K_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r6, -\Kronecker{j}{k},Kronecker delta,EMPTY,I|F,"$\delta_{m,n}$",http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4, -\KummerM@{a}{b}{z},Kummer confluent hypergeometric function $M$,Kummer-confluent-hypergeometric-M,F|F:P,$M$,http://dlmf.nist.gov/13.2#E2, -\KummerU@{a}{b}{z},Kummer confluent hypergeometric function $U$,Kummer-confluent-hypergeometric-U,F|F:P,$U$,http://dlmf.nist.gov/13.2#E6, -\KummerboldM@{a}{b}{z},Olver's confluent hypergeometric function,Kummer-confluent-hypergeometric-bold-M,F|F:P,${\mathbf{M}}$,http://dlmf.nist.gov/13.2#E3, -\Laguerre[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, -\LaguerreL[\alpha]{n}@{x},Laguerre (or generalized Laguerre) polynomial,generalized-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.3#T1.t1.r27, -\LambertW@{x},Lambert $\LambertW$-function,Lambert-W,F|F:P,$W$,http://dlmf.nist.gov/23.1, -\LambertWm@{x},non-principal branch of Lambert $\LambertW$-function,Lambert-Wm,F|F:P,$\mathrm{Wm}$,http://dlmf.nist.gov/4.13#p2, -\LambertWp@{x},principal branch of Lambert $\LambertW$-function,Lambert-Wp,F|F:P,$\mathrm{Wp}$,http://dlmf.nist.gov/23.1, -\LameEc{m}{\nu}@{z}{k^2},Lamé function $Ec_\nu^m$,Lame-Ec,F|F:P,$\mathit{Ec}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\LameEs{m}{\nu}@{z}{k^2},Lamé function $Es_\nu^m$,Lame-Es,F|F:P,$\mathit{Es}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\Lamea{n}{\nu}@{k^2},eigenvalues of Lamé's equation $a_\nu^m$,Lame-eigenvalue-a,F|F:P,$a^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, -\Lameb{n}{\nu}@{k^2},eigenvalues of Lamé's equation $b_\nu^m$,Lame-eigenvalue-b,F|F:P,$b^{n}_{\nu}$,http://dlmf.nist.gov/29.3#SS1.p1, -\LamecE{m}{2n+1}@{z}{k^2},Lamé polynomial $cE_{2n+1}^m$,Lame-polynomial-cE,P|F:P,$\mathit{cE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\LamecdE{m}{2n+2}@{z}{k^2},Lamé polynomial $cdE_{2n+2}^m$,Lame-polynomial-cdE,P|F:P,$\mathit{cdE}^{m}_{\nu}$,http://dlmf.nist.gov/23.1, -\LamedE{m}{2n+1}@{z}{k^2},Lamé polynomial $dE_{2n+1}^m$,Lame-polynomial-dE,P|F:P,$\mathit{dE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E4, -\LamesE{m}{2n+1}@{z}{k^2},Lamé polynomial $sE_{2n+1}^m$,Lame-polynomial-sE,P|F:P,$\mathit{sE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E2, -\LamescE{m}{2n+2}@{z}{k^2},Lamé polynomial $scE_{2n+2}^m$,Lame-polynomial-scE,P|F:P,$\mathit{scE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E5, -\LamescdE{m}{2n+3}@{z}{k^2},Lamé polynomial $scdE_{2n+3}^m$,Lame-polynomial-scdE,P|F:P,$\mathit{scdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E8, -\LamesdE{m}{2n+2}@{z}{k^2},Lamé polynomial $sdE_{2n+2}^m$,Lame-polynomial-sdE,P|F:P,$\mathit{sdE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E6, -\LameuE{m}{2n}@{z}{k^2},Lamé polynomial $uE_{2n}^m$,Lame-polynomial-uE,P|F:P,$\mathit{uE}^{m}_{\nu}$,http://dlmf.nist.gov/29.12#E1, -\LaplaceTrans@{f}{s},Laplace transform,Laplace-transform,O|F:P,$\mathscr{L}$,http://dlmf.nist.gov/1.14#E17, -\Lattice{L},lattice in $\Complex$,EMPTY,SN|F,$\mathbb{L}$,http://dlmf.nist.gov/23.2#i, -"\LauricellaFD@{a}{b_1,...,b_n}{c}{z_1,...,z_n}",Lauricella's multivariate hypergeometric function,Lauricella-FD,F|F:P,$F_D$,http://dlmf.nist.gov/19.15#p1, -\LegendreBlackQ[\mu]{\nu}@{z},Olver's associated Legendre function,associated-Legendre-black-Q,F|FO:PO:FnO:PnO,$\boldsymbol{Q}_\nu^\mu$,http://dlmf.nist.gov/14.3#E10, -\LegendreP[\mu]{\nu}@{z},associated Legendre function of the first kind,Legendre-P-first-kind,F|FO:PO:FnO:PnO,$P_\nu^\mu$,http://dlmf.nist.gov/14.3#E6, -\LegendrePoly{n}@{x},Legendre polynomial,Legendre-spherical-polynomial,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r25, -\LegendrePolys{n}@{x},shifted Legendre polynomial,shifted-spherical-Legendre-polynomial-s,P|F:P,$P^{*}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r26, -\LegendreQ[\mu]{\nu}@{z},associated Legendre function of the second kind,Legendre-Q-second-kind,F|FO:PO:FnO:PnO,$Q_\nu^\mu$,http://dlmf.nist.gov/14.3#E7, -\LegendreSymbol{n}{p},Legendre symbol,Legendre-symbol,I|F,$(n|p)$,http://dlmf.nist.gov/27.9, -\LerchPhi@{z}{s}{a},Lerch's transcendent,Lerch-Phi,F|F:P,$\Phi$,http://dlmf.nist.gov/25.14#E1, -\LeviCivita{j}{k}{\ell},Levi-Civita symbol,EMPTY,I|F,$\epsilon_{jkl}$,http://dlmf.nist.gov/1.6#E14, -\LinBrF@{a}{u},line-broadening function,line-broadening-function,F|F:P,$H$,http://dlmf.nist.gov/7.19#E4, -\LiouvilleLambda@{n},Liouville's function,Liouville-lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/27.2#E13, -\Ln@@{z},general logarithm function,multivalued-natural-logarithm,F|F:P:nP,$\mathrm{Ln}$,http://dlmf.nist.gov/4.2#E1, -\LogInt@{x},logarithmic integral,logarithmic-integral,F|F:P,$\mathrm{li}$,http://dlmf.nist.gov/6.2#E8, -\LommelS{\mu}{\nu}@{z},"Lommel function $S$",Lommel-S,F|F:P,"$S_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E5, -\Lommels{\mu}{\nu}@{z},"Lommel function $s$",Lommel-s,F|F:P,"$s_{{\mu},{\nu}}$",http://dlmf.nist.gov/11.9#E3, -\Longleftrightarrow,is equivalent to,equivalent-to,SM|F,$\Longleftrightarrow $,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r13, -\Longrightarrow,implies,EMPTY,SM|F,$\Longrightarrow$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r12, -\MangoldtLambda@{n},Mangoldt's function,Mangoldt-Lambda,F|F:P,$\Lambda$,http://dlmf.nist.gov/27.2#E14, -\MathieuCe{\nu}@@{z}{q},modified Mathieu function ${\rm Ce}_\nu$,modified-Mathieu-Ce,F|F:P:nP,$\mathrm{Ce}_{n}$,http://dlmf.nist.gov/28.20#E3, -\MathieuD{j}@{\nu}{\mu}{z},cross-products of modified Mathieu functions and their derivatives ${\rm D}_{j}$,Mathieu-D,F|F:P,$\mathrm{D}_{j}$,http://dlmf.nist.gov/28.28#E24, -\MathieuDc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dc}_j$,Mathieu-Dc,F|F:P,$\mathrm{Dc}_{j}$,http://dlmf.nist.gov/28.28#E39, -\MathieuDs{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Ds}_j$,Mathieu-Ds,F|F:P,$\mathrm{Ds}_{j}$,http://dlmf.nist.gov/28.28#E35, -\MathieuDsc{j}@{n}{m}{z},cross-products of radial Mathieu functions and their derivatives ${\rm Dsc}_j$,Mathieu-Dsc,F|F:P,$\mathrm{Dsc}_{j}$,http://dlmf.nist.gov/28.28#E40, -\MathieuEigenvaluea{n}@@{q},eigenvalues of Mathieu equation $a_n(q)$,Mathieu-eigenvalue-a,F|F:P:nP,$a_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, -\MathieuEigenvalueb{n}@@{q},eigenvalues of Mathieu equation $b_n(q)$,Mathieu-eigenvalue-b,F|F:P:nP,$b_{n}$,http://dlmf.nist.gov/28.2#SS5.p1, -\MathieuEigenvaluelambda{\nu+2n}@@{q},eigenvalues of Mathieu equation $\lambda_\nu(q)$,Mathieu-eigenvalue-lambda,F|F:P:nP,$\lambda_{\nu}$,http://dlmf.nist.gov/28.12#SS1.p2, -\MathieuFc{m}@{z}{h},Mathieu function ${\rm Fc}_m$,Mathieu-Fc,F|F:P,$\mathrm{Fc}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuFe{n}@@{z}{q},modified Mathieu function ${\rm Fe}_n$,modified-Mathieu-Fe,F|F:P:nP,$\mathrm{Fe}_{n}$,http://dlmf.nist.gov/28.20#E6, -\MathieuFs{m}@{z}{h},Mathieu function ${\rm Fs}_m$,Mathieu-Fs,F|F:P,$\mathrm{Fs}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuGc{m}@{z}{h},Mathieu function ${\rm Gc}_m$,Mathieu-Gc,F|F:P,$\mathrm{Gc}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuGe{n}@@{z}{q},modified Mathieu function ${\rm Ge}_n$,modified-Mathieu-Ge,F|F:P:nP,$\mathrm{Ge}_{n}$,http://dlmf.nist.gov/28.20#E7, -\MathieuGs{m}@{z}{h},Mathieu function ${\rm Gs}_m$,Mathieu-Gs,F|F:P,$\mathrm{Gs}_{m}$,http://dlmf.nist.gov/23.1, -\MathieuIe{n}@@{z}{h},modified Mathieu function ${\rm Ie}_n$,modified-Mathieu-Ie,F|F:P:nP,$\mathrm{Ie}_{n}$,http://dlmf.nist.gov/28.20#E17, -\MathieuIo{n}@@{z}{h},modified Mathieu function ${\rm Io}_n$,modified-Mathieu-Io,F|F:P:nP,$\mathrm{Io}_{n}$,http://dlmf.nist.gov/28.20#E18, -\MathieuKe{n}@@{z}{h},modified Mathieu function ${\rm Ke}_n$,modified-Mathieu-Ke,F|F:P:nP,$\mathrm{Ke}_{n}$,http://dlmf.nist.gov/28.20#E19, -\MathieuKo{n}@@{z}{h},modified Mathieu function ${\rm Ko}_n$,modified-Mathieu-Ko,F|F:P:nP,$\mathrm{Ko}_{n}$,http://dlmf.nist.gov/28.20#E20, -\MathieuM{j}{\nu}@@{z}{h},modified Mathieu function ${\rm M}_\nu^{(j)}$,modified-Mathieu-M,F|F:P:nP,${\mathrm{M}^{(j)}_{\nu}}$,http://dlmf.nist.gov/23.1, -\MathieuMc{j}{n}@@{z}{h},radial Mathieu function ${\rm Mc}_n^{(j)}$,modified-Mathieu-Mc,F|F:P:nP,${\mathrm{Mc}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E15, -\MathieuMe{\nu}@@{z}{q},modified Mathieu function ${\rm Me}_\nu$,modified-Mathieu-Me,F|F:P:nP,$\mathrm{Me}_{n}$,http://dlmf.nist.gov/28.20#E5, -\MathieuMs{j}{n}@@{z}{h},radial Mathieu function ${\rm Ms}_n^{(j)}$,modified-Mathieu-Ms,F|F:P:nP,${\mathrm{Ms}^{(j)}_{\nu}}$,http://dlmf.nist.gov/28.20#E16, -\MathieuSe{\nu}@@{z}{q},modified Mathieu function ${\rm Se}_\nu$,modified-Mathieu-Se,F|F:P:nP,$\mathrm{Se}_{n}$,http://dlmf.nist.gov/28.20#E4, -\Mathieuce{n}@@{z}{q},Mathieu function ${\rm ce}_\nu$,Mathieu-ce,F|F:P:nP,$\mathrm{ce}_{n}$,http://dlmf.nist.gov/23.1, -\Mathieufe{n}@@{z}{q},second solution of Mathieu's equation ${\rm fe}_n$,Mathieu-fe,F|F:P:nP,$\mathrm{fe}_{n}$,http://dlmf.nist.gov/28.5#E1, -\Mathieuge{n}@@{z}{q},second solution of Mathieu's equation ${\rm ge}_n$,Mathieu-ge,F|F:P:nP,$\mathrm{ge}_{n}$,http://dlmf.nist.gov/28.5#E2, -\Mathieume{n}@@{z}{q},Mathieu function ${\rm me}_\nu$,Mathieu-me,F|F:P:nP,$\mathrm{me}_{\nu}$,http://dlmf.nist.gov/23.1, -\Mathieuse{n}@@{z}{q},Mathieu function ${\rm se}_\nu$,Mathieu-se,F|F:P:nP,$\mathrm{se}_{\nu}$,http://dlmf.nist.gov/23.1, -\Matrix{I},Bessel function of matrix argument (first kind),EMPTY,F|F,$\Matrix{T}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r9, -\MeijerG{m}{n}{p}{q}@@@{z}{\Vector{a}}{\Vector{b}},Meijer $G$-function,Meijer-G,F|F:fo1:fo2:fo3,"${G^{m,n}_{p,q}}$",http://dlmf.nist.gov/16.17#E1, -\Meixner{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, -\MeixnerM{n}@{x}{\beta}{c},Meixner polynomial,Meixner-polynomial-M,P|F:P,$M_{n}$,http://dlmf.nist.gov/18.19#T1.t1.r9, -\MeixnerPollaczek{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, -\MeixnerPollaczekP{\lambda}{n}@{x}{\phi},Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-P,P|F:P,$P^{(\alpha)}_{n}$,http://dlmf.nist.gov/18.19#P3.p1, -\MellinTrans@{f}{s},Mellin transform,Mellin-transform,O|F:P,$\mathscr{M}$,http://dlmf.nist.gov/1.14#E32, -\Mills@{x},Mills ratio ${\sf M}$,Mills-ratio,F|F:P,$\mathsf{M}$,http://dlmf.nist.gov/7.8#E1, -\MittagLeffler{a}{b}@{z},Mittag-Leffler function,Mittag-Leffler-function,F|F:P,"$E_{a,b}$",http://dlmf.nist.gov/10.46#E3, -\ModCylinder{\nu}@{z},modified cylinder function,modified-cylinder-function,F|F:P,$\mathscr{Z}_{\nu}$,http://dlmf.nist.gov/10.25#P2.p1, -\ModularJ@{\tau},Klein's complete invariant,Kleins-invariant-modular-J,F|F:P,$J$,http://dlmf.nist.gov/23.15#E7, -\ModularLambda@{\tau},elliptic modular function,modular-Lambda,F|F:P,$\lambda$,http://dlmf.nist.gov/23.15#E6, -\MoebiusMu@{n},Möbius function,Moebius-mu,F|F:P,$\mu$,http://dlmf.nist.gov/27.2#E12, -\NatNumber,set of positive integers,EMPTY,SN|F,$\mathbb{N}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r11, -\NeumannFactor{n},Neumann factor,Neumann-factor,I|F,$\epsilon_{m}$,http://drmf.wmflabs.org/wiki/Definition:NeumannFactor, -\NeumannPoly{n}@{x},Neumann's polynomial,Neumann-polynomial,P|F:P,$O_{k}$,http://dlmf.nist.gov/10.23#E12, -\NumPrimeDivNu@{n},$\nu(n)$ : number of distinct primes dividing $n$,number-of-primes-dividing-nu,I|F:P,$\nu$,http://dlmf.nist.gov/27.2#SS1.p1, -\NumPrimesLessPi@{x},number of primes not exceeding $x$,number-of-primes-less-pi,I|F:P,$\pi$,http://dlmf.nist.gov/27.2#E2, -\NumSquaresR{k}@{n},number of squares,number-of-squares-R,I|F:P,$r_{k}$,http://dlmf.nist.gov/27.13#SS4.p1, -\ODEgenAiryA{n}@{z},generalized Airy function from differential equation $A_n$,ODE-generalized-Airy-A,F|F:P,$A_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, -\ODEgenAiryB{n}@{z},generalized Airy function from differential equation $B_n$,ODE-generalized-Airy-B,F|F:P,$B_{n}$,http://dlmf.nist.gov/9.13#SS1.p2, -\Pade{p}{q}{f},Padé approximant,Pade-approximant,O|F,${[p/q]_{f}}$,http://dlmf.nist.gov/3.11#SS4.p1, -\ParabolicU@{a}{z},parabolic cylinder function $U$,parabolic-U,F|F:P,$U$,http://dlmf.nist.gov/12.4.E1, -\ParabolicUbar@{a}{x},parabolic cylinder function $\overline{U}$,parabolic-U-bar,F|F:P,$\overline{U}$,http://dlmf.nist.gov/12.2.21, -\ParabolicV@{a}{z},parabolic cylinder function $V$,parabolic-V,F|F:P,$V$,http://dlmf.nist.gov/12.4.E2, -\ParabolicW@{a}{x},parabolic cylinder function $W$,parabolic-W,F|F:P,$W$,http://dlmf.nist.gov/12.14.i, -\PartitionsP[k]@{n},total number of partitions,partition-function,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.2#P4.p2, -\PeriodicBernoulliB{n}@{x},periodic Bernoulli functions,periodic-Bernoulli-polynomial-B,F|F:P,$\widetilde{B}_{n}$,http://dlmf.nist.gov/24.2#iii, -\PeriodicEulerE{n}@{x},periodic Euler functions,periodic-Euler-polynomial-E,F|F:P,$\widetilde{E}_{n}$,http://dlmf.nist.gov/24.2#iii, -\PeriodicZeta@{x}{s},periodic zeta function,periodic-zeta,F|F:P,$F$,http://dlmf.nist.gov/25.13#E1, -\Permutations{n},"set of permutations of ${\bf n}$",set-of-permutations,SN|F,$\mathfrak{S}_{n}$,http://dlmf.nist.gov/23.1, -\PlanePartitionsPP@{n},number of plane partitions of $n$,plane-partitions-PP,I|F:P,$\mathit{pp}$,http://dlmf.nist.gov/26.12#SS1.p4, -\PollaczekP{\lambda}{n}@{x}{a}{b},Pollaczek polynomial,Pollaczek-polynomial-P,P|F:P,$P^{(\lambda)}_{n}$,http://dlmf.nist.gov/18.35#E4, -\Polylogarithm{s}@{z},polylogarithm,polylogarithm,F|F:P,$\mathrm{Li}_{s}$,http://dlmf.nist.gov/25.12#E10, -\Prod{n}{k1}{k2}@{f(n)},semantic product,EMPTY,SM|O:O,$\prod_{n=\alpha}^{\beta}$,http://drmf.wmflabs.org/wiki/Definition:Prod, -\Racah{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, -\RacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta},Racah polynomial,Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r4, -\RamanujanSum{k}@{n},Ramanujan's sum,Ramanujan-sum,F|F:P,$c_{k}$,http://dlmf.nist.gov/27.10#E4, -\RamanujanTau@{n},Ramanujan's tau function,Ramanujan-tau,F|F:P,$\tau$,http://dlmf.nist.gov/27.14#E18, -\Rational,set of rational numbers,EMPTY,SN|F,$\mathbb{Q}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r13, -\RayleighFun{n}@{\nu},Rayleigh function,Rayleigh-function,F|F:P,$\sigma_{n}$,http://dlmf.nist.gov/10.21#E55, -\Real,set of real numbers,EMPTY,SN|F,$\mathbb{R}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r14, -\RepInterfc{n}@{z},repeated integrals of the complementary error function,repeated-integral-complementary-error-function,F|F:P,$\mathrm{i}^{n}\mathrm{erfc}$,http://dlmf.nist.gov/7.18#E2, -\Residue,residue,EMPTY,O|F,$\mathrm{res}$,http://dlmf.nist.gov/1.10#SS3.p5, -\RestrictedCompositionsC@{\mathrm{condition}}{n},restricted number of compositions,restricted-number-of-compositions-C,I|F:P,$c_{m}$,http://dlmf.nist.gov/26.11#p1, -\RestrictedPartitionsP[k]@{\mathrm{condition}}{n},restricted number of partitions,restricted-partitions-P,I|F:F:P:P,$p_{k}$,http://dlmf.nist.gov/26.10#i, -\RiemannP@{\begin{Bmatrix} \alpha & \beta &\gamma & \\ a_1 & b_1 & c_1 & z \\ a_2 & b_2 & c_2 & \end{Bmatrix}},Riemann-Papperitz $\RiemannP$-symbol for solutions of the generalized hypergeometric differential equation,Riemann-P-symbol,Q|F:P,$P$,http://dlmf.nist.gov/15.11#E3, -\RiemannTheta@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function,Riemann-theta,F|F:P,$\theta$,http://dlmf.nist.gov/21.2#E1, -\RiemannThetaChar{\Vector{\alpha}}{\Vector{\beta}}@{\Vector{z}}{\Matrix{\Omega}},Riemann theta function with characteristics,Riemann-theta-characterstics,F|F:P,$\theta\left[\Vector{\alpha} \atop \Vector{\beta} \right]$,http://dlmf.nist.gov/21.2#E5, -\RiemannThetaHat@{\Vector{z}}{\Matrix{\Omega}},scaled Riemann theta function,Riemann-theta-hat,F|F:P,$\hat{\theta}$,http://dlmf.nist.gov/21.2#E2, -\RiemannXi@{s},Riemann's $\RiemannXi$-function,Riemann-xi,F|F:P,$\xi$,http://dlmf.nist.gov/25.4#E4, -\RiemannZeta@{s},Riemann zeta function,Riemann-zeta,F|F:P,$\zeta$,http://dlmf.nist.gov/25.2#E1, -\Schwarzian{z}{\zeta},Schwarzian derivative,EMPTY,O|F,"$\left\{f,g\right\}$",http://dlmf.nist.gov/1.13#E20, -\ScorerGi@{z},Scorer function (inhomogeneous Airy function) ${\rm Gi}$,Scorer-Gi,F|F:P,$\mathrm{Gi}$,http://dlmf.nist.gov/9.12#i, -\ScorerHi@{z},Scorer function (inhomogeneous Airy function) ${\rm Hi}$,Scorer-Hi,F|F:P,$\mathrm{Hi}$,http://dlmf.nist.gov/9.12#i, -\SinCosIntf@{z},auxiliary function for sine and cosine integrals ${\rm f}$,sine-cosine-integral-f,F|F:P,$\mathrm{f}$,http://dlmf.nist.gov/6.2#E17, -\SinCosIntg@{z},auxiliary function for sine and cosine integrals ${\rm g}$,sine-cosine-integral-g,F|F:P,$\mathrm{g}$,http://dlmf.nist.gov/6.2#E18, -\SinInt@{z},sine integral ${\rm Si}$,sine-integral,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/6.2#E9, -\SinIntg@{a}{z},generalized sine integral ${\rm Si}$,generalized-sine-integral-Si,F|F:P,$\mathrm{Si}$,http://dlmf.nist.gov/8.21#E2, -\SinhInt@{z},hyperbolic sine integral,hyperbolic-sine-integral,F|F:P,$\mathrm{Shi}$,http://dlmf.nist.gov/6.2#E15, -\SphBesselIi{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(1)}$,spherical-Bessel-I-1,F|F:P,${\mathsf{i}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E7, -\SphBesselIii{n}@{z},modified spherical Bessel function of the first kind ${\sf i}_n^{(2)}$,spherical-Bessel-I-2,F|F:P,${\mathsf{i}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E8, -\SphBesselJ{n}@{z},spherical Bessel function of the first kind ${\sf j}_n$,spherical-Bessel-J,F|F:P,$\mathsf{j}_{n}$,http://dlmf.nist.gov/10.47#E3, -\SphBesselK{n}@{z},modified spherical Bessel function of the second kind ${\sf k}_n$,spherical-Bessel-K,F|F:P,$\mathsf{k}_{n}$,http://dlmf.nist.gov/10.47#E9, -\SphBesselY{n}@{z},spherical Bessel function of the second kind ${\sf y}_n$,spherical-Bessel-Y,F|F:P,$\mathsf{y}_{n}$,http://dlmf.nist.gov/10.47#E4, -\SphHankelHi{n}@{z},spherical Hankel function of the first kind ${\sf h}_n^{(1)}$,spherical-Hankel-H-1-Bessel-third-kind,F|F:P,${\mathsf{h}^{(1)}_{n}}$,http://dlmf.nist.gov/10.47#E5, -\SphHankelHii{n}@{z},spherical Hankel function of the second kind ${\sf h}_n^{(2)}$,spherical-Hankel-H-2-Bessel-third-kind,F|F:P,${\mathsf{h}^{(2)}_{n}}$,http://dlmf.nist.gov/10.47#E6, -\SphericalHarmonicY{l}{m}@{\theta}{\phi},spherical harmonic,spherical-harmonic-Y,F|F:P,"$Y_{{\ell},{m}}$",http://dlmf.nist.gov/14.30#E1, -\SpheroidalEigenvalueLambda{m}{n}@{\gamma^2},eigenvalues of the spheroidal differential equation,spheroidal-eigenvalue-lambda,O|F:P,$\lambda^{m}_{n}$,http://dlmf.nist.gov/30.3#SS1.p1, -\SpheroidalOnCutPs{m}{n}@{x}{\gamma^2},spheroidal wave function of the first kind ${\sf Ps}_n^m$,spheroidal-wave-on-cut-Ps,F|F:P,$\mathsf{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.4#i, -\SpheroidalOnCutQs{m}{n}@{x}{\gamma^2},spheroidal wave function of the second kind ${\sf Qs}_n^m$,spheroidal-wave-on-cut-Qs,F|F:P,$\mathsf{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.5, -\SpheroidalPs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Ps_n^m$,spheroidal-wave-Ps,F|F:P,$\mathit{Ps}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, -\SpheroidalQs{m}{n}@{z}{\gamma^2},spheroidal wave function of complex argument $Qs_n^m$,spheroidal-wave-Qs,F|F:P,$\mathit{Qs}^{m}_{n}$,http://dlmf.nist.gov/30.6#p1, -\SpheroidalRadialS{m}{j}{n}@{z}{\gamma},radial spheroidal wave function,radial-spheroidal-wave-S,F|F:P,$S^{m(j)}_{n}$,http://dlmf.nist.gov/30.11#E3, -\StieltjesConstants{n},Stieltjes constants,Stieltjes-constants,C|F,$\gamma_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants, -\StieltjesTrans@{f}{s},Stieltjes transform,Stieltjes-transform,O|F:P,$\mathcal{S}$,http://dlmf.nist.gov/1.14#E47, -\StieltjesWigert{n}@@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P:PS,$S_{n}$,http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert, -\StieltjesWigertS{n}@{x}{q},Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-S,P|F:P,$S_{n}$,http://dlmf.nist.gov/18.27#E18, -\StirlingS@{n}{k},Stirling number of the first kind,Stirling-number-first-kind-S,I|F:P,$s$,http://dlmf.nist.gov/26.8#SS1.p1, -\StirlingSS@{n}{k},Stirling number of the second kind,Stirling-number-second-kind-S,I|F:P,$S$,http://dlmf.nist.gov/26.8#SS1.p3, -\StruveH{\nu}@{z},Struve function ${\bf H}_{\nu}$,Struve-H,F|F:P,$\mathbf{H}_{\nu}$,http://dlmf.nist.gov/11.2#E1, -\StruveK{\nu}@{z},Struve function ${\bf K}_{\nu}$,associated-Struve-K,F|F:P,$\mathbf{K}_{\nu}$,http://dlmf.nist.gov/11.2#E5, -\StruveL{\nu}@{z},modified Struve function ${\bf L}_{\nu}$,modified-Struve-L,F|F:P,$\mathbf{L}_{\nu}$,http://dlmf.nist.gov/11.2#E2, -\StruveM{\nu}@{z},modified Struve function ${\bf M}_{\nu}$,associated-Struve-M,F|F:P,$\mathbf{M}_{\nu}$,http://dlmf.nist.gov/11.2#E6, -\Sum{n}{0}{k}@{f(n)},semantic sum,EMPTY,SM|F:P,$\sum_{n=k}^{N}$,http://drmf.wmflabs.org/wiki/Definition:Sum, -\SurfaceHarmonicY{l}{m}@{\theta}{\phi},surface harmonic of the first kind,surface-harmonic-Y,F|F:P,$Y_{l}^{m}$,http://dlmf.nist.gov/14.30#E2, -\TriangleOP{\alpha}{\beta}{\gamma}{m}{n}@{x}{y},triangle polynomial,triangle-orthogonal-polynomial-P,P|F:P,"$P^{\alpha,\beta,\gamma}_{m,n}$",http://dlmf.nist.gov/18.37#E7, -\Ultra{\lambda}{n}@{x},ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{\mu}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, -\Ultraspherical{\lambda}{n}@{x},ultraspherical (or Gegenbauer) polynomial,ultraspherical-Gegenbauer-polynomial,P|F:P,$C^{(\mu)}_{n}$,http://dlmf.nist.gov/18.3#T1.t1.r5, -\UmbilicCatE@{s}{t}{\Vector{x}},elliptic umbilic catastrophe,elliptic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{E})}$,http://dlmf.nist.gov/36.2#E2, -\UmbilicCatH@{s}{t}{\Vector{x}},hyperbolic umbilic catastrophe,hyperbolic-umbilic-catastrophe,F|F:P,$\Phi^{(\mathrm{H})}$,http://dlmf.nist.gov/36.2#E3, -\VariationalOp[a;b]@{f},total variation,variational-operator,F|FO:PO:FnO:PnO,"$\mathcal{V}_{a,b}$",http://dlmf.nist.gov/1.4#E33, -\VoigtU@{x}{t},Voigt function ${\sf U}$,Voigt-U,F|F:P,$\mathsf{U}$,http://dlmf.nist.gov/7.19#E1, -\VoigtV@{x}{t},Voigt function ${\sf V}$,Voigt-V,F|F:P,$\mathsf{V}$,http://dlmf.nist.gov/7.19#E2, -\WaringG@{k},Waring's function $G$,Waring-G,F|F:P,$G$,http://dlmf.nist.gov/27.13#SS3.p1, -\Waringg@{k},Waring's function $g$,Waring-g,F|F:P,$g$,http://dlmf.nist.gov/27.13#SS3.p1, -\WeberE{\nu}@{z},Weber function,Weber-E,F|F:P,$\mathbf{E}_{\nu}$,http://dlmf.nist.gov/11.10#E2, -\WeierPInv@@{z}{g_2}{g_3},Weierstrass $\WeierPInv$-function on invariants $\WeierPInv@{z}{g_2}{g_3}$,Weierstrass-P-on-invariants,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, -\WeierPLat@@{z}{\Lattice{L}},Weierstrass $\WeierPLat$-function on lattice $\WeierPLat@{z}{\Lattice{L}}$,Weierstrass-P-on-lattice,F|F:P:nP,$\wp$,http://dlmf.nist.gov/23.1, -\WeiersigmaInv@@{z}{g_2}{g_3},Weierstrass sigma function on invariants,Weierstrass-sigma-on-invariants,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, -\WeiersigmaLat@@{z}{\Lattice{L}},Weierstrass sigma function on lattice,Weierstrass-sigma-on-lattice,F|F:P:nP,$\sigma$,http://dlmf.nist.gov/23.2#E6, -\WeierzetaInv@@{z}{g_2}{g_3},Weierstrass zeta function on invariants,Weierstrass-zeta-on-invariants,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, -\WeierzetaLat@@{z}{\Lattice{L}},Weierstrass zeta function on lattice,Weierstrass-zeta-on-lattice,F|F:P:nP,$\zeta$,http://dlmf.nist.gov/23.2#E5, -\WhitD{\nu}@{z},parabolic cylinder function,Whittaker-D,F|F:P,$D_{n}$,http://dlmf.nist.gov/23.1, -\WhitM{\kappa}{\mu}@{z},Whittaker function $M_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-M,F|F:P,"$M_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E2, -\WhitW{\kappa}{\mu}@{z},Whittaker function $W_{\kappa;\mu}$,Whittaker-confluent-hypergeometric-W,F|F:P,"$W_{\kappa,\mu}$",http://dlmf.nist.gov/13.14#E3, -\Wilson{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, -\WilsonW{n}@{x}{a}{b}{c}{d},Wilson polynomial,Wilson-polynomial-W,P|F:P,$W_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r2, -\Wronskian@{w_1(z);w_2(z)},Wronskian,Wronskian,F|F:P,$\mathscr{W}$,http://dlmf.nist.gov/1.13#E4, -\ZeroAiryAi{k},$k$\textsuperscript{th} zero of Airy $\AiryAi$,zero-Airy-Ai,F|F,$a_{k}$,http://dlmf.nist.gov/23.1, -\ZeroAiryAiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryAi'$,zero-derivative-Airy-Ai,F|F,$a'_{k}$,http://dlmf.nist.gov/23.1, -\ZeroAiryBi{k},$k$\textsuperscript{th} zero of Airy $\AiryBi$,zero-Airy-Bi,F|F,$b_{k}$,http://dlmf.nist.gov/23.1, -\ZeroAiryBiPrime{k},$k$\textsuperscript{th} zero of Airy $\AiryBi'$,zero-derivative-Airy-Bi,F|F,$b'_{k}$,http://dlmf.nist.gov/23.1, -\ZeroBesselJ{\nu}{m},zeros of the Bessel function $\BesselJ{\nu}@{x}$,zero-Bessel-J,F|F,"$j_{\nu,m}$",http://dlmf.nist.gov/23.1, -\ZeroBesselJPrime{\nu}{m},zeros of the Bessel function derivative $\BesselJ{\nu}'@{x}$,zero-derivative-Bessel-J,F|F,"${j'_{\nu,m}}$",http://dlmf.nist.gov/23.1, -\ZeroBesselY{\nu}{m},zeros of the Bessel function $\BesselY{\nu}@{x}$,zero-Bessel-Y-Weber,F|F,"$y_{\nu,m}$",http://dlmf.nist.gov/23.1, -\ZeroBesselYPrime{\nu}{m},zeros of the Bessel function derivative $\BesselY{\nu}'@{x}$,zero-derivative-Bessel-Y-Weber,F|F,"${y'_{\nu,m}}$",http://dlmf.nist.gov/23.1, -\ZonalPoly{\kappa}@{\Matrix{T}},zonal polynomial,zonal-polynomial,P|F:P,$Z_{\kappa}$,http://dlmf.nist.gov/35.4#SS1.p3, -\acos@@{z},inverse cosine function,inverse-cosine,F|F:P:nP,$\mathrm{arccos}$,http://dlmf.nist.gov/4.23#SS2.p1, -\acosh@@{z},inverse hyperbolic cosine function,hyperbolic-inverse-cosine,F|F:P:nP,$\mathrm{arccosh}$,http://dlmf.nist.gov/4.37#SS2.p1, -\acot@@{z},inverse cotangent function,inverse-cotangent,F|F:P:nP,$\mathrm{arccot}$,http://dlmf.nist.gov/4.23#E9, -\acoth@@{z},inverse hyperbolic cotangent function,hyperbolic-inverse-cotangent,F|F:P:nP,$\mathrm{arccoth}$,http://dlmf.nist.gov/4.37#E9, -\acsc@@{z},inverse cosecant function,inverse-cosecant,F|F:P:nP,$\mathrm{arccsc}$,http://dlmf.nist.gov/4.23#E7, -\acsch@@{z},inverse hyperbolic cosecant function,hyperbolic-inverse-cosecant,F|F:P:nP,$\mathrm{arccsch}$,http://dlmf.nist.gov/4.37#E7, -\arcGudermannian@@{x},inverse Gudermannian function,inverse-Gudermannian,F|F:P:nP,${\mathrm{gd}^{-1}}$,http://dlmf.nist.gov/4.23#E41, -\arcJacobicd@{x}{k},inverse Jacobian elliptic function ${\rm arccd}$,inverse-Jacobi-elliptic-cd,F|F:P,$\mathrm{arccd}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobicn@{x}{k},inverse Jacobian elliptic function ${\rm arccn}$,inverse-Jacobi-elliptic-cn,F|F:P,$\mathrm{arccn}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobics@{x}{k},inverse Jacobian elliptic function ${\rm arccs}$,inverse-Jacobi-elliptic-cs,F|F:P,$\mathrm{arccs}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobidc@{x}{k},inverse Jacobian elliptic function ${\rm arcdc}$,inverse-Jacobi-elliptic-dc,F|F:P,$\mathrm{arcdc}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobidn@{x}{k},inverse Jacobian elliptic function ${\rm arcdn}$,inverse-Jacobi-elliptic-dn,F|F:P,$\mathrm{arcdn}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobids@{x}{k},inverse Jacobian elliptic function ${\rm arcds}$,inverse-Jacobi-elliptic-ds,F|F:P,$\mathrm{arcds}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobinc@{x}{k},inverse Jacobian elliptic function ${\rm arcnc}$,inverse-Jacobi-elliptic-nc,F|F:P,$\mathrm{arcnc}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobind@{x}{k},inverse Jacobian elliptic function ${\rm arcnd}$,inverse-Jacobi-elliptic-nd,F|F:P,$\mathrm{arcnd}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobins@{x}{k},inverse Jacobian elliptic function ${\rm arcns}$,inverse-Jacobi-elliptic-ns,F|F:P,$\mathrm{arcns}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobisc@{x}{k},inverse Jacobian elliptic function ${\rm arcsc}$,inverse-Jacobi-elliptic-sc,F|F:P,$\mathrm{arcsc}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobisd@{x}{k},inverse Jacobian elliptic function ${\rm arcsd}$,inverse-Jacobi-elliptic-sd,F|F:P,$\mathrm{arcsd}$,http://dlmf.nist.gov/22.15#SS1.p1, -\arcJacobisn@{x}{k},inverse Jacobian elliptic function ${\rm arcsn}$,inverse-Jacobi-elliptic-sn,F|F:P,$\mathrm{arcsn}$,http://dlmf.nist.gov/22.15#SS1.p1, -\asec@@{z},inverse secant function,inverse-secant,F|F:P:nP,$\mathrm{arcsec}$,http://dlmf.nist.gov/4.23#E8, -\asech@@{z},inverse hyperbolic secant function,hyperbolic-inverse-secant,F|F:P:nP,$\mathrm{arcsech}$,http://dlmf.nist.gov/4.37#E8, -\asin@@{z},inverse sine function,inverse-sine,F|F:P:nP,$\mathrm{arcsin}$,http://dlmf.nist.gov/4.23#SS2.p1, -\asinh@@{z},inverse hyperbolic sine function,hyperbolic-inverse-sine,F|F:P:nP,$\mathrm{arcsinh}$,http://dlmf.nist.gov/4.37#SS2.p1, -\atan@@{z},inverse tangent function,inverse-tangent,F|F:P:nP,$\mathrm{arctan}$,http://dlmf.nist.gov/4.23#SS2.p1, -\atanh@@{z},inverse hyperbolic tangent function,hyperbolic-inverse-tangent,F|F:P:nP,$\mathrm{arctanh}$,http://dlmf.nist.gov/4.37#SS2.p1, -\bDiff[x],backward difference,EMPTY,O|F,"$\,\nabla_{x}$",http://dlmf.nist.gov/18.1#EGx2, -\bigqJacobi{n}@@{x}{a}{b}{c}{q},big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobi, -\bigqJacobiIVparam{n}@@{x}{a}{b}{c}{d}{q},big $q$-Jacobi polynomial with four parameters,big-q-Jacobi-polynomial-four-parameters-P,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam, -\bigqLaguerre{n}@{x}{a}{b}{q},big $q$-Laguerre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre, -\bigqLegendre{n}@{x}{c}{q},big $q$-Legendre polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:bigqLegendre, -\binom{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 -\binomial{n}{k},binomial coefficient,EMPTY,I|F,$\binom{n}{k}$,http://dlmf.nist.gov/1.2#E1,http://dlmf.nist.gov/26.3#SS1.p1 -\cDiff[x],central difference,EMPTY,O|F,"$\,\delta_{x}$",http://dlmf.nist.gov/18.1#EGx3, -\card,number of elements of a finite set,EMPTY,SN|F,$\left|A\right|$,http://dlmf.nist.gov/26.1, -\cartprod,$G\cartprod H$: Cartesian product of groups $G$ and $H$,EMPTY,O|F,$\times$,http://dlmf.nist.gov/23.1, -\ceiling{x},ceiling,EMPTY,I|F,$\left\lceil a\right\rceil$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r17, -\conj{z},complex conjugate,EMPTY,O|F,$\overline{a}$,http://dlmf.nist.gov/1.9#E11, -\cos@@{z},cosine function,cos,F|F:P:nP,$\mathrm{cos}$,http://dlmf.nist.gov/4.14#E2, -\cosh@@{z},hyperbolic cosine function,hyperbolic-cosine,F|F:P:nP,$\mathrm{cosh}$,http://dlmf.nist.gov/4.28#E2, -\cosintg@{a}{z},generalized cosine integral ${\rm ci}$,generalized-cosine-integral-ci,F|F:P,$\mathrm{ci}$,http://dlmf.nist.gov/8.21#E1, -\cot@@{z},cotangent function,cotangent,F|F:P:nP,$\mathrm{cot}$,http://dlmf.nist.gov/4.14#E7, -\coth@@{z},hyperbolic cotangent function,hyperbolic-cotangent,F|F:P:nP,$\mathrm{coth}$,http://dlmf.nist.gov/4.28#E7, -\cpi,ratio of a circle's circumference to its diameter,ratio-of-a-circle's-circumference-to-its-diameter,C|F,$\pi$,http://dlmf.nist.gov/5.19.E4, -\csc@@{z},cosecant function,cosecant,F|F:P:nP,$\mathrm{csc}$,http://dlmf.nist.gov/4.14#E5, -\csch@@{z},hyperbolic cosecant function,hyperbolic-cosecant,F|F:P:nP,$\mathrm{csch}$,http://dlmf.nist.gov/4.28#E5, -\ctsHahn{n}@@{x}{a}{b}{c}{d},continuous Hahn polynomial,continuous-Hahn-polynomial,P|F:P:PS,$p_{n}$,http://dlmf.nist.gov/18.19#P2.p1, -\ctsbigqHermite{n}@{x}{a}{q},continuous big $q$-Hermite polynomial,EMPTY,P|F:P,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite, -\ctsdualHahn{n}@@{x^2}{a}{b}{c},continuous dual Hahn polynomial,continuous-dual-Hahn-normalized-S,P|F:P:PS,$S_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r3, -\ctsdualqHahn{n}@{x}{a}{b}{c}{q},continuous dual $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn, -\ctsqHahn{n}@{x}{a}{b}{c}{d}{q},continuous $q$-Hahn polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHahn, -\ctsqHermite{n}@@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P:PS,$H_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqHermite, -\ctsqJacobi{\alpha}{\beta}{m}@{x}{q},continuous $q$-Jacobi polynomial,EMPTY,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi, -\ctsqJacobiRahman{n}@@{x}{q},continuous $q$-Jacobi-Rahman-polynomial,continuous-q-Jacobi-Rahman-polynomial-P,P|F:P:PS,"$P^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:ctsqJacobiRahman, -\ctsqLaguerre{\alpha}{n}@{x}{q},continuous $q$-Laguerre polynomial,EMPTY,P|F:P,$P^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre, -\ctsqLegendre{n}@@{x}{q},continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre, -\ctsqLegendreRahman{n}@@{x}{q},continuous $q$-Legendre-Rahman polynomial,continuous-q-Legendre-Rahman-polynomial-P,P|F:P:PS,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqLegendreRahman, -\ctsqUltra{n}@{x}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, -\ctsqUltrae{n}@{e^{i\theta}}{\beta}{q},continuous $q$-ultraspherical/Rogers polynomial exponential argument,continuous-q-ultraspherical-Rogers-polynomial-exponential-argument,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:ctsqUltrae, -\curl,curl of vector-valued function,EMPTY,F|F,$\nabla\times$,http://dlmf.nist.gov/1.6#E22, -\deltaDistribution,Dirac delta distribution,Dirac delta distribution,D|F,$\delta_x$,http://dlmf.nist.gov/1.17.i, -\deriv{f}{x},derivative,EMPTY,O|F,$\deriv{}{x}}$,http://dlmf.nist.gov/1.4#E4, -\det,determinant,EMPTY,L|F,$\det$,http://dlmf.nist.gov/1.3#i, -\diag,diagonal part of a matrix,EMPTY,L|F,$\diag[\Matrix{a}]$,http://dlmf.nist.gov/21.5.E7, -\diff{x},differential,EMPTY,O|F,$\mathrm{d}^nx$,http://dlmf.nist.gov/1.4#iv, -\digamma@{z},psi (or digamma) function,digamma,F|F:P,$\psi$,http://dlmf.nist.gov/5.2#E2, -\discrqHermiteI{n}@@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P:PS,$h_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI, -\discrqHermiteII{n}@@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-h-tilde,P|F:P:PS,$\tilde{h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII, -\divergence,divergence of vector-valued function,EMPTY,F|F,$\mathrm{div}$,http://dlmf.nist.gov/1.6#E21, -\divides,divides,EMPTY,O|F,$\nabla\cdot$,http://dlmf.nist.gov/24.1, -\dualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},dual Hahn polynomial,dual-Hahn-polynomial-R,P|F:P:PS,$R_{n}$,http://dlmf.nist.gov/18.25#T1.t1.r5, -\dualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},dual $q$-Hahn polynomial,dual-q-Hahn-R,P|F:P:PS,$R_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqHahn, -\dualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk, -\erf@@{z},error function,error-function,F|F:P:nP,$\mathrm{erf}$,http://dlmf.nist.gov/7.2#E1, -\erfc@@{z},complementary error function,repeated-integral-complementary-error-function,F|F:P:nP,$\mathrm{erfc}$,http://dlmf.nist.gov/7.2#E2, -\erfw@@{z},complementary error function $w$,error-function-w,F|F:P:nP,$w$,http://dlmf.nist.gov/7.2#E3, -\exp@@{z},exponential function,exponential,F|F:P:nP,$\mathrm{exp}$,http://dlmf.nist.gov/4.2#E19, -\expe,the base of the natural logarithm,EMPTY,F|F,$\mathrm{e}$,http://dlmf.nist.gov/4.2.E11, -\exptrace@{\Matrix{X}},exponential of trace of a matrix,exponential-trace,L|F:P,$\mathrm{etr}$,http://dlmf.nist.gov/35.1#p3.t1.r10, -\f{f}@{x},function,EMPTY,SM|F:P,${f}$,http://drmf.wmflabs.org/wiki/Definition:f, -\fDiff,forward difference operator,EMPTY,O|F,"$\,\Delta_{y}$",http://dlmf.nist.gov/3.6#SS1.p1, -\floor{x},floor,EMPTY,I|F,$\left\lfloor a\right\rfloor$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16, -\forall,for every,EMPTY,Q|F,$\forall$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r11, -\gradient,gradient of differentiable scalar function,EMPTY,F|F,$\nabla$,http://dlmf.nist.gov/1.6#E20, -"\idem@{\chi_1}{\chi_1,...,\chi_n}",$\idem$ function,idem,F|F:P,$\mathrm{idem}$,http://dlmf.nist.gov/17.1#p3, -\ifrac,semantic slash fraction,EMPTY,SM|F,$(a)/(b)$,http://dlmf.nist.gov/4.2.E8, -\imagpart{z},imaginary part,EMPTY,O|F,"$\Im {z}$",http://dlmf.nist.gov/1.9#E2, -\in,element of,EMPTY,Q|F,$\in$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r9, -\incgamma@{a}{z},incomplete gamma function $\gamma$,incomplete-gamma,F|F:P,$\gamma$,http://dlmf.nist.gov/8.2#E1, -\incgammastar@{a}{z},incomplete gamma function $\gamma^{*}$,incomplete-gamma-star,F|F:P,$\gamma^{*}$,http://dlmf.nist.gov/8.2#E6, -\inf,greatest lower bound (infimum),EMPTY,Q|F,$\mathrm{inf}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r24, -\int,integral,EMPTY,F|F,$\int$,http://dlmf.nist.gov/1.4#iv, -\inverf@@{x},inverse error function,inverse-error-function,F|F:P:nP,$\mathrm{inverf}$,http://dlmf.nist.gov/7.17#E1, -\inverfc@@{x},inverse complementary error function,inverse-complementary-error-function,F|F:P:nP,$\mathrm{inverfc}$,http://dlmf.nist.gov/7.17#E1, -\iunit,imaginary unit,EMPTY,C|F,$\mathrm{i}$,http://dlmf.nist.gov/1.9.i, -\liminf,least limit point,EMPTY,Q|F,$\mathrm{liminf}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r4, -\littleo@{x},order less than,little-o,Q|F:P,$o$,http://dlmf.nist.gov/2.1#E2, -\littleqJacobi{n}@@{x}{a}{b}{q},little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-p,P|F:P:PS,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqJacobi, -\littleqLaguerre{n}@{x}{a}{q},little $q$-Laguerre / Wall polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre, -\littleqLegendre{m}@{x}{q},little $q$-Legendre polynomial,EMPTY,P|F:P,$p_{n}$,http://drmf.wmflabs.org/wiki/Definition:littleqLegendre, -\ln@@{z},principal branch of logarithm function,natural-logarithm,F|F:P:nP,$\mathrm{ln}$,http://dlmf.nist.gov/4.2#E2, -\log@@{z},principle branch of natural logarithm,logarithm,F|F:P:nP,$\mathrm{log}$,http://dlmf.nist.gov/4.2#E2, -\logb{a}@@{z},logarithm to general base,logarithm,F|F:P:nP,$\mathrm{log}_{b}$,http://dlmf.nist.gov/4.2#EGx1, -\lrselection,bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right\}$,http://drmf.wmflabs.org/wiki/Definition:Lrselection, -\lselection,left bracketed generalization of $\pm$,EMPTY,SM|F,$\left\{\begin{matrix}x\end{matrix}\right.$,http://dlmf.nist.gov/28.4.E22, -\mEulerBeta{m}@{a}{b},multivariate beta function,multivariate-Euler-Beta,F|F:P,$\mathrm{B}_{m}$,http://dlmf.nist.gov/35.3#E3, -\mEulerGamma{m}@{a},multivariate gamma function,multivariate-Euler-Gamma,F|F:P,$\Gamma_{m}$,http://dlmf.nist.gov/35.3#i, -\mod,modulo,EMPTY,Q|F,$\mod$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r10, -\monicAffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic affine $q$-Krawtchouk polynomial,affine-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,$\widehat{K}^{\mathrm{Aff}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk, -\monicAlSalamCarlitzI{a}{n}@@{x}{q},monic Al-Salam-Carlitz I polynomial,q-Al-Salam-Carlitz-I-polynomial-monic-p,P|F:P:PS,${\widehat U}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI, -\monicAlSalamCarlitzII{a}{n}@@{x}{q},monic Al-Salam-Carlitz II polynomial,q-Al-Salam-Carlitz-II-polynomial-monic-p,P|F:P:PS,${\widehat V}^{(n)}_{\alpha}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII, -\monicAlSalamChihara{n}@@{x}{a}{b}{q},monic Al-Salam-Chihara polynomial,Al-Salam-Chihara-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara, -\monicAskeyWilson{n}@@{x}{a}{b}{c}{d}{q},monic Askey-Wilson polynomial,Askey-Wilson-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson, -\monicBesselPoly{n}@@{x}{a},monic Bessel polynomial,Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly, -\monicCharlier{n}@@{x}{a},monic Charlier polynomial,Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicCharlier, -\monicChebyT{n}@@{x},monic Chebyshev polynomial of the first kind,Chebyshev-polynomial-first-kind-monic-p,P|F:P:PS,${\widehat T}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyT, -\monicChebyU{n}@@{x},monic Chebyshev polynomial of the second kind,Chebyshev-polynomial-second-kind-monic-p,P|F:P:PS,${\widehat U}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicChebyU, -\monicHahn{n}@@{x}{\alpha}{\beta}{N},monic Hahn polynomial,Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHahn, -\monicHermite{n}@@{x},monic Hermite polynomial,Hermite-polynomial-monic,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicHermite, -\monicJacobi{n}@@{x},monic Jacobi polynomial,Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicJacobi, -\monicKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic Krawtchouk polynomial,Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk, -\monicLaguerre{n}@@{x},monic Laguerre polynomial,generalized-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{\alpha}_n$,http://drmf.wmflabs.org/wiki/Definition:monicLaguerre, -\monicLegendrePoly{n}@@{x},monic Legendre polynomial,Legendre-spherical-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly, -\monicMeixner{n}@@{x}{\beta}{c},monic Meixner polynomial,Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixner, -\monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi},monic Meixner-Pollaczek polynomial,Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek, -\monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta},monic Racah polynomial,Racah-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicRacah, -\monicStieltjesWigert{n}@@{x}{q},monic Stieltjes-Wigert polynomial,Stieltjes-Wigert-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert, -\monicUltra{n}@@{x},monic ultraspherical/Gegenbauer polynomial,ultraspherical-Gegenbauer-polynomial-monic-p,P|F:P:PS,${\widehat C}^{\mu}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicUltra, -\monicWilson{n}@@{x^2}{a}{b}{c}{d},monic Wilson polynomial,Wilson-polynomial-monic-p,P|F:P:PS,${\widehat W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicWilson, -\monicbigqJacobi{n}@@{x}{a}{b}{c}{q},monic big $q$-Jacobi polynomial,big-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi, -\monicbigqLaguerre{n}@@{x}{a}{b}{q},monic big $q$-Laguerre polynomial,big-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre, -\monicbigqLegendre{n}@@{x}{c}{q},monic big $q$-Legendre polynomial,big-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre, -\monicctsHahn{n}@@{x}{a}{b}{c}{d},monic continuous Hahn polynomial,continuous-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsHahn, -\monicctsbigqHermite{n}@@{x}{a}{q},monic continuous big $q$-Hermite polynomial,continuous-big-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite, -\monicctsdualHahn{n}@@{x^2}{a}{b}{c}{d},monic continuous dual Hahn polynomial,continuous-dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn, -\monicctsdualqHahn{n}@@{x^2}{a}{b}{c},monic continuous dual $q$-Hahn polynomial,continuous-dual-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn, -\monicctsqHahn{n}@@{x}{a}{b}{c}{d}{q},monic continuous $q$-Hahn polynomial,continuous-q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn, -\monicctsqHermite{n}@@{x}{q},monic continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-monic-p,P|F:P:PS,${\widehat H}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite, -\monicctsqJacobi{n}@@{x}{q},monic continuous $q$-Jacobi polynomial,continuous-q-Jacobi-polynomial-monic-p,P|F:P:PS,"${\widehat P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi, -\monicctsqLaguerre{n}@@{x}{q},monic continuous $q$-Laguerre polynomial,continuous-q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat P}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre, -\monicctsqLegendre{n}@@{x}{q},monic continuous $q$-Legendre polynomial,continuous-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre, -\monicctsqUltra{n}@@{x}{\beta}{q},monic continuous $q$-ultraspherical/Rogers polynomial,continuous-q-ultraspherical-Rogers-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra, -\monicdiscrqHermiteI{n}@@{x}{q},monic discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-I-monic-p,P|F:P:PS,${\widehat h}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI, -\monicdiscrqHermiteII{n}@@{x}{q},monic discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-II-monic-p,P|F:P:PS,${\widehat \tilde{p}_{n}}$,http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII, -\monicdualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N},monic dual Hahn polynomial,dual-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualHahn, -\monicdualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q},monic dual $q$-Hahn polynomial,dual-q-Hahn-monic-p,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn, -\monicdualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q},monic dual $q$-Krawtchouk polynomial,dual-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk, -\moniclittleqJacobi{n}@@{x}{a}{b}{q},monic little $q$-Jacobi polynomial,little-q-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi, -\moniclittleqLaguerre{n}@@{x}{a}{q},monic little $q$-Laguerre/Wall polynomial,little-q-Laguerre-Wall-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre, -\moniclittleqLegendre{n}@@{x}{q},monic little $q$-Legendre polynomial,little-q-Legendre-polynomial-monic-p,P|F:P:PS,${\widehat p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre, -\monicpseudoJacobi{n}@@{x}{\nu}{N},monic pseudo-Jacobi polynomial,pseudo-Jacobi-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi, -\monicqBesselPoly{n}@@{x}{a}{q},monic $q$-Bessel polynomial,q-Bessel-polynomial-monic-p,P|F:P:PS,${\widehat y}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqBessel, -\monicqCharlier{n}@@{q^{-x}}{a}{q},monic $q$-Charlier polynomial,q-Charlier-polynomial-monic-p,P|F:P:PS,${\widehat C}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqCharlier, -\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},monic $q$-Hahn polynomial,q-Hahn-polynomial-monic-p,P|F:P:PS,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqHahn, -\monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic $q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk, -\monicqLaguerre{n}@@{x}{q},monic $q$-Laguerre polynomial,q-Laguerre-polynomial-monic-p,P|F:P:PS,${\widehat L}^{(\alpha)}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre, -\monicqMeixner{n}@@{q^{-x}}{b}{c}{q},monic $q$-Meixner polynomial,q-Meixner-polynomial-monic-p,P|F:P:PS,${\widehat M}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixner, -\monicqMeixnerPollaczek{n}@@{x}{a}{q},monic $q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-monic-p,P|F:P:PS,${\widehat P}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek, -\monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q},monic $q$-Racah polynomial,q-Racah-polynomial-monic-R,P|F:P:PS,${\widehat R}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqRacah, -\monicqinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},monic $q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-monic-p,P|F:P,${\widehat Q}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara, -\monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},monic quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-monic-p,P|F:P:PS,${\widehat K^{\mathrm{qtm}}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk, -"\multinomial{n_1+n_2+\dots+n_k}{n_1,...,n_k}",multinomial coefficient,EMPTY,I|F,$\left(A;B\right)$,http://dlmf.nist.gov/26.4.E2, -\ninej@@{j_{11}}{j_{12}}{j_{13}}{j_{21}}{j_{22}}{j_{23}}{j_{31}}{j_{32}}{j_{33}},$\ninej$ symbol,EMPTY,F|F:P:nP,$$,http://dlmf.nist.gov/34.6#E1, -\normAskeyWilsonptilde{n}@@{x}{a}{b}{c}{d}{q},normalized Askey-Wilson polynomial ${\tilde p}$,Askey-Wilson-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normAskeyWilsonptilde, -\normJacobiR{\alpha}{\beta}{n}@{x},normalized Jacobi polynomial,Jacobi-polynomial-R,P|F:P,"$R^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normJacobiR, -\normWilsonWtilde{n}@@{x^2}{a}{b}{c}{d},normalized Wilson polynomial ${\tilde W}$,Wilson-polynomial-normalized-W-tilde,P|F:P:PS,${\tilde W}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde, -\normctsHahnptilde{n}@@{x}{a}{b}{c}{d},normalized continuous Hahn polynomial ${\tilde p}$,continuous-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde, -\normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}{d},normalized continuous dual Hahn polynomial ${\tilde S}$,continuous-dual-Hahn-polynomial-normalized-S-tilde,P|P:PS,${\tilde S}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde, -\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q},normalized continuous dual $q$-Hahn polynomial ${\tilde p}$,continuous-dual-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde, -\normctsqHahnptilde{n}@@{x}{a}{b}{c}{d}{q},normalized continuous $q$-Hahn polynomial ${\tilde p}$,continuous-q-Hahn-polynomial-normalized-p-tilde,P|F:P:PS,${\tilde p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde, -\normctsqJacobiPtilde{n}@@{x}{q},normalized continuous $q$-Jacobi polynomial ${\tilde P}$,continuous-q-Jacobi-polynomial-P-tilde,P|F:P:PS,"${\tilde P}^{(\alpha,\beta)}_{n}$",http://drmf.wmflabs.org/wiki/Definition:normctsqJacobiPtilde, -\notin,not an element of,EMPTY,Q|F,$\notin$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r10, -\opminus,negative unity to an integer power,EMPTY,I|F,$(-1)$,http://dlmf.nist.gov/5.7.E7, -\pderiv{f}{x},partial derivative,EMPTY,O|F,$\frac{\partial f}{\partial x}$,http://dlmf.nist.gov/1.5#E3, -\pdiff{x},power of a partial differential,EMPTY,O|F,"$\partial^nx$",http://dlmf.nist.gov/1.5#E3, -\pgcd,greatest common divisor,EMPTY,I|F,"$\left(m,n\right)$",http://dlmf.nist.gov/27.1, -\ph@@{z},phase,phase,O|F:P:nP,$\mathrm{ph}$,http://dlmf.nist.gov/1.9#E7, -\pochhammer{a}{n},Pochhammer symbol,EMPTY,F|F,$(a)_n$,http://dlmf.nist.gov/5.2#iii, -\poly{p}{n}@{x},polynomial,EMPTY,SM|F:P,${p}_{n}$,http://drmf.wmflabs.org/wiki/Definition:poly, -\polygamma{n}@{z},polygamma functions,polygamma,F|F:P,$\psi^{(n)}$,http://dlmf.nist.gov/5.15, -\power,power function,EMPTY,F|F,$x^y$,http://dlmf.nist.gov/36.12.E9, -\prod,product,EMPTY,SM|F,$\Pi$,http://drmf.wmflabs.org/wiki/Definition:prod, -\pseudoJacobi{n}@{x}{\nu}{N},pseudo Jacobi polynomial,EMPTY,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi, -\psfactorial{a}{\kappa},partitional shifted factorial,EMPTY,F|F,${\left[a\right]_{\kappa}}$,http://dlmf.nist.gov/35.4#E1, -\pvint,Cauchy principal value,EMPTY,O|F,$\pvint_a^b$,http://dlmf.nist.gov/1.4#E24, -\qAppelli@{a}{b}{b'}{c}{q}{x}{y},first $q$-Appell function,q-Appell-Phi-1,F|F:P,$\Phi^{(1)}$,http://dlmf.nist.gov/17.4.E5, -\qAppellii@{a}{b}{b'}{c}{c'}{q}{x}{y},second $q$-Appell function,q-Appell-Phi-2,F|F:P,$\Phi^{(2)}$,http://dlmf.nist.gov/17.4.E6, -\qAppelliii@{a}{a'}{b}{b'}{c}{q}{x}{y},third $q$-Appell function,q-Appell-Phi-3,F|F:P,$\Phi^{(3)}$,http://dlmf.nist.gov/17.4.E7, -\qAppelliv@{a}{b}{c}{c'}{q}{x}{y},fourth $q$-Appell function,q-Appell-Phi-4,F|F:P,$\Phi^{(4)}$,http://dlmf.nist.gov/17.4.E8, -\qBernoulli{n}@{x}{q},$q$-Bernoulli polynomial,q-Bernoulli-polynomial,P|F:P,$\beta_{q}$,http://dlmf.nist.gov/17.3#E7, -\qBesselPoly{n}@{x}{b}{q},$q$-Bessel polynomial,EMPTY,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:qBessel, -\qBeta{q}@{a}{b},$q$-beta function,q-Beta,F|F:P,$\mathrm{B}_{q}$,http://dlmf.nist.gov/5.18#E11, -\qBinomial{n}{m}{q},$q$-binomial coefficient (or Gaussian polynomial),EMPTY,F|F,$\left[n \atop m\right]_{q}$,http://dlmf.nist.gov/17.2#E27,http://dlmf.nist.gov/26.9#SS2.p1 -\qCharlier{n}@{x}{c}{q},$q$-Charlier polynomial,EMPTY,P|F:P,$C_{n}$,http://drmf.wmflabs.org/wiki/Definition:qCharlier, -\qCos{q}@@{x},$q$-analogue of the $\cos$ function: ${\rm Cos}_q$,q-Cos,F|F:nP:P,$\mathrm{Cos}_{q}$,http://dlmf.nist.gov/17.3#E6, -\qCosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\mathrm{Cos}_{q}$,q-Cos-KLS,P|F:nP:P,$\mathrm{Cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qCosKLS, -\qDigamma{q}@{z},$q$-digamma function,q-digamma,F|F:P,$\psi_{q}$,http://drmf.wmflabs.org/wiki/Definition:qDigamma, -\qEuler{m}{s}@{q},$q$-Euler number,q-Euler-number,F|F:P,"$A_{m,n}$",http://dlmf.nist.gov/17.3#E8, -\qExp{q}@@{x},$q$-analogue of the $\exp$ function: $E_q$,q-Exp,F|F:nP:P,$E_{q}$,http://dlmf.nist.gov/17.3#E2, -\qExpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{E}_{q}$,q-Exp-KLS,F|F:nP:P,$\mathrm{E}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qExpKLS, -\qFactorial{n}{q},$q$-factorial,q-factorial,F|F,$n!_q$,http://dlmf.nist.gov/5.18#E2, -\qGamma{q}@{z},$q$-gamma function,q-gamma,F|F:P,$\Gamma_{q}$,http://dlmf.nist.gov/5.18#E4, -\qHahn{n}@@{q^{-x}}{\alpha}{\beta}{N},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|P:PS,$Q_{n}$,http://drmf.wmflabs.org/wiki/Definition:qHahn, -\qHahnQ{n}@{x}{\alpha}{\beta}{N}{q},$q$-Hahn polynomial,q-Hahn-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/18.27#E3, -\qHermiteH{n}@{x}{q},continuous $q$-Hermite polynomial,continuous-q-Hermite-polynomial-H,P|F:P,$H_{n}$,http://dlmf.nist.gov/18.28#E16, -\qHermitehI{n}@{x}{q},discrete $q$-Hermite I polynomial,discrete-q-Hermite-polynomial-h-I,P|F:P,$h_{n}$,http://dlmf.nist.gov/18.27#E21, -\qHermitehII{n}@{x}{q},discrete $q$-Hermite II polynomial,discrete-q-Hermite-polynomial-h-II,P|F:P,$\tilde{h}_{n}$,http://dlmf.nist.gov/18.27#E23, -"\qHyperrWs{r}{r+1}@@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}",very-well-poised basic hypergeometric (or $q$-hypergeometric) function,very-well-poised-q-hypergeometric-rWs,F|F:fo1:fo2:fo3,${{}_{r+1}W_{r}}$,http://drmf.wmflabs.org/wiki/Definition:qHyperrWs, -"\qHyperrphis{r}{s}@@@{a_1,...a_r}{b_1,...,b_s}{q}{z}",basic hypergeometric (or $q$-hypergeometric) function,q-hypergeometric-rphis,F|F:fo1:fo2:fo3,${{}_{r}\phi_{s}}$,http://dlmf.nist.gov/17.4#E1, -"\qHyperrpsis{r}{s}@@@{a_1,...,a_r}{b_1,...,b_s}{q}{z}",bilateral basic hypergeometric (or bilateral $q$-hypergeometric) function,q-hypergeometric-rpsis,F|F:fo1:fo2:fo3,${{}_{r}\psi_{s}}$,http://dlmf.nist.gov/17.4#E3, -\qJacobiP{n}@{x}{a}{b}{c}{q},"big $q$-Jacobi polynomial $P_n(x;a,b,c;q)$",q-Jacobi-polynomial-P,P|F:P,$P_{n}$,http://dlmf.nist.gov/18.27#E5, -\qJacobiPP{\alpha}{\beta}{n}@{x}{c}{d}{q},"big $q$-Jacobi polynomial $P_n^{(\alpha,\beta)}(x;c,d;q)$",big-q-Jacobi-polynomial-P-type-2,P|F:P,"$P^{(\alpha,\beta)}_{n}$",http://dlmf.nist.gov/18.27#E6, -\qJacobip{n}@{x}{a}{b}{q},little $q$-Jacobi polynomial,q-Jacobi-polynomial-p,P|F:P,$p_{n}$,http://dlmf.nist.gov/18.27#E13, -\qKrawtchouk{n}@@{q^{-x}}{p}{N}{q},$q$-Krawtchouk polynomial,q-Krawtchouk-polynomial-K,P|F:P:PS,$K_{n}$,http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk, -\qLaguerre[\alpha]{n}@@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:nPnO:F:P:PS,$L_n^{(\alpha)}$,http://drmf.wmflabs.org/wiki/Definition:qLaguerre, -\qLaguerreL[\alpha]{n}@{x}{q},$q$-Laguerre polynomial,q-Laguerre-polynomial-L,P|FnO:PnO:FO:PO,$L_n^{(\alpha)}$,http://dlmf.nist.gov/18.27#E15, -\qLegendre{n}@{x}{q},continuous $q$-Legendre polynomial,EMPTY,P|F:P,$\qLegendre{n}$,http://drmf.wmflabs.org/wiki/Definition:qLegendre, -\qMeixner{n}@{x}{b}{c}{q},$q$-Meixner polynomial,q-Meixner-polynomial-M,P|F:P,$M_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixner, -\qMeixnerPollaczek{n}@{x}{a}{q},$q$-Meixner-Pollaczek polynomial,q-Meixner-Pollaczek-polynomial-M,P|F:P,$P_{n}$,http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek, -"\qMultiPochhammer{a_1,\ldots,a_n}{q}{n}",$q$-multi-Pochhammer symbol,q-multi-Pochhammer,F|F,"$\(a_1,\ldots,a_k;q)_n$",http://dlmf.nist.gov/17.2.E5, -"\qMultinomial{a_1+\ldots+a_n}{a_1,\ldots,a_n}{q}",$q$-multinomial,q-multinomial,F|F,"$\left[a_1+\ldots+a_n \atop a_1,\ldots,a_n\right]_{q}$",http://dlmf.nist.gov/26.16.E1, -\qPochhammer{a}{q}{n},$q$-Pochhammer symbol,EMPTY,F|F,$(a;q)_n$,http://dlmf.nist.gov/5.18#i,http://dlmf.nist.gov/17.2#SS1.p1 -\qPolygamma{n}{q}@{z},$q$-polygamma function,q-polygamma,F|F:P,$\psi_{q}^{(n)}$,http://drmf.wmflabs.org/wiki/Definition:qPolygamma, -\qRacah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, -\qRacahR{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q},$q$-Racah polynomial,q-Racah-polynomial-R,P|F:P,$R_{n}$,http://dlmf.nist.gov/18.28#E19, -\qSin{q}@@{x},$q$-analogue of the $\sin$ function: ${\rm Sin}_q$,q-Sin,F|F:nP:P,$\mathrm{Sin}_{q}$,http://dlmf.nist.gov/17.3#E4, -\qSinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\mathrm{Sin}_q$,q-Sin-KLS,F|F:nP:P,$\mathrm{Sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qSinKLS, -\qStirling{m}{s}@{q},$q$-Stirling number,q-Stirling-number,F|F:P,"$a_{m,s}$",http://dlmf.nist.gov/17.3#E9, -\qUltraspherical{n}@{x}{\beta}{q},continuous $q$-ultraspherical polynomial,q-ultraspherical-polynomial,P|F:P,$C_{n}$,http://dlmf.nist.gov/18.28#E13, -\qcos{q}@@{x},$q$-analogue of the $\cos$ function: $\cos_q$,q-cos,F|F:nP:P,$\mathrm{cos}_{q}$,http://dlmf.nist.gov/17.3#E5, -\qcosKLS{q}@@{z},$q$-analogue of the $\cos$ function used in KLS: $\cos_q$,q-cos-KLS,P|F:nP:P,$\mathrm{cos}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qcosKLS, -\qderiv[n]{q}@{z},$q$-derivative,q-derivative,O|FO:PO:FnO:PnO,$\mathcal{D}_q^n$,http://drmf.wmflabs.org/wiki/Definition:qderiv, -\qdiff{q}{x},$q$-differential,EMPTY,O|F,"${\mathrm d}^n_qx$",http://dlmf.nist.gov/17.2#SS5.p1, -\qexp{q}@@{x},$q$-analogue of the $\exp$ function: $e_q$,q-exp,F|F:nP:P,$e_{q}$,http://dlmf.nist.gov/17.3#E1, -\qexpKLS{q}@@{z},$q$-analogue of the $\exp$ function used in KLS: $\mathrm{e}_{q}$,q-exp-KLS,F|F:nP:P,$\mathrm{e}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qexpKLS, -\qinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}},$q$-inverse Al-Salam-Chihara polynomial,q-inverse-AlSalam-Chihara-polynomial-Q,P|F:P,$Q_{n}$,http://dlmf.nist.gov/23.1, -\qinvHermiteh{n}@{x}{q},continuous $q$-inverse Hermite polynomial,continuous-q-inverse-Hermite-polynomial-h,P|F:P,$h_{n}$,http://dlmf.nist.gov/23.1, -\qsin{q}@@{x},$q$-analogue of the $\sin$ function: $\sin_q$,q-sin,F|F:nP:P,$\mathrm{sin}_{q}$,http://dlmf.nist.gov/17.3#E3, -\qsinKLS{q}@@{z},$q$-analogue of the $\sin$ function used in KLS: $\sin_q$,q-sin-KLS,F|F:nP:P,$\mathrm{sin}_{q}$,http://drmf.wmflabs.org/wiki/Definition:qsinKLS, -\qtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q},quantum $q$-Krawtchouk polynomial,quantum-q-Krawtchouk-polynomial-K,P|F:P:PS,$K^{\mathrm{qtm}}_{n}$,http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk, -\realpart{z},real part,EMPTY,O|F,"$\Re {z}$",http://dlmf.nist.gov/1.9#E2, -\terminant{p}@{z},terminant function,terminant-function,F|F:P,$F_{p}$,http://dlmf.nist.gov/2.11#E11, -\rescaledTerminant{p}@{z},rescaled terminant functions,rescaled-terminant-function,F|F:P,$G_{p}$,http://dlmf.nist.gov/9.7#SS5.p1, -\rselection,right bracketed generalization of $\pm$,EMPTY,SM|F,$\left.\begin{matrix}x\end{matrix}\right\$,http://dlmf.nist.gov/28.4.E22, -\sec@@{z},secant function,secant,F|F:P:nP,$\mathrm{sec}$,http://dlmf.nist.gov/4.14#E6, -\sech@@{z},hyperbolic secant function,hyperbolic-secant,F|F:P:nP,$\mathrm{sech}$,http://dlmf.nist.gov/4.28#E6, -\selection,generalization of $\pm$,EMPTY,SM|F,$\;\begin{matrix}x\end{matrix}\;$,http://dlmf.nist.gov/10.23.E7, -\setminus,set subtraction,EMPTY,Q|F,$\setminus$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r19, -\setmod,$S_1 \setmod S_2$: set of all elements of $S_1$ modulo elements of $S_2$,EMPTY,SN|F,$/$,http://dlmf.nist.gov/21.1#p2.t1.r17, -\sign@@{x},sign function,sign,F|F:P:nP,$\mathrm{sign}$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r18, -\sim,asymptotic equality,EMPTY,Q|F,$\tilde$,http://dlmf.nist.gov/2.1#E1, -\sin@@{z},sine function,sin,F|F:P:nP,$\mathrm{sin}$,http://dlmf.nist.gov/4.14#E1, -\sinInt@{z},sine integral ${\rm si}$,shifted-sine-integral,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/6.2#E10, -\sinh@@{z},hyperbolic sine function,hyperbolic-sine,F|F:P:nP,$\mathrm{sinh}$,http://dlmf.nist.gov/4.28#E1, -\sinintg@{a}{z},generalized sine integral ${\rm si}$,generalized-sine-integral-si,F|F:P,$\mathrm{si}$,http://dlmf.nist.gov/8.21#E1, -\sixj@@{j_{1}}{j_{2}}{j_{3}}{l_{1}}{l_{2}}{l_{3}},$\sixj$ symbol,EMPTY,F|F:P:nP,$\left\{\begin{array}{ccc}j_1 & j_2 & j_3\\l_1 & l_2 & l_3\end{array}\right\}$,http://dlmf.nist.gov/23.1, -\subset,is contained in,EMPTY,Q|F,$\subset$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r2, -\subseteq,is in or is contained in,EMPTY,Q|F,$\subseteq$,http://dlmf.nist.gov/front/introduction#Sx4.p2.t1.r3, -\sum,sum,EMPTY,SM|F,$\Sigma$,http://drmf.wmflabs.org/wiki/Definition:sum, -\sup,least upper bound (supremum),EMPTY,Q|F,$\mathrm{sup}$,http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r25, -\tan@@{z},tangent function,tangent,F|F:P:nP,$\mathrm{tan}$,http://dlmf.nist.gov/4.14#E4, -\tanh@@{z},hyperbolic tangent function,hyperbolic-tangent,F|F:P:nP,$\mathrm{tanh}$,http://dlmf.nist.gov/4.28#E4, -\threej@@{j_1}{j_2}{j_3}{m_1}{m_2}{m_3},$\threej$ symbol,EMPTY,F|F:P:nP,$\left(\begin{array}{ccc}j_1 & j_2 & j_3\\m_1 & m_2 & m_3\end{array}\right)$,http://dlmf.nist.gov/34.2#E4, -\trace,trace of matrix,trace,L|F,$\mathrm{etr}$,http://dlmf.nist.gov/23.1, -\transpose,transpose of a matrix,EMPTY,L|F,$A^{\mathrm{T}}$,http://dlmf.nist.gov/1.3.E5, -\weight{w}@{x},weight function,EMPTY,SM|F:P,${w}$,http://drmf.wmflabs.org/wiki/Definition:weight, -\wigner{j_1}{m_1}{j_2}{m_2}{j_3}{-m_3},Clebsch-Gordan coefficient,EMPTY,F|F,"$\left(j_{1}\;m_{1}\;j_{2}\;m_{2} | j_{1}\;j_{2}\; j_{3}\,\,-m_{3}\right)$",http://dlmf.nist.gov/34.1#p4, -\BesselPolyIIparam{n}@{x}{a}{b},Bessel polynomial with two parameters $y_n$,Bessel-polynomial-two-parameters-y,P|F:P,$y_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam, -\BesselPolyTheta{n}@{x}{a}{b},Bessel polynomial with two parameters $\theta_n$,Bessel-polynomial-two-parameters-theta,P|F:P,$\theta_{n}$,http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta, -\FourierTrans@{f}{s},Fourier transform,Fourier-transform,O|F:P,$\mathscr{F}$,http://dlmf.nist.gov/1.14#E1, -\Continuous@{A},space of continuous functions on a set $A$,set-of-continuous-functions,S|F,$C(A)$,http://dlmf.nist.gov/1.4#ii, -\SpaceTestFunTempered@{A},space of test functions for tempered distributions,space-of-test-functions-for-tempered-distributions-T,S|F,${\mathcal T}(\Real)$,http://dlmf.nist.gov/1.16#v, From 3c1b2dad9b25954f3960da64f7b0bfe144b769d6 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 14 Apr 2016 17:53:42 -0400 Subject: [PATCH 076/402] Fixed up paragraph placement and reading --- KLSadd_insertion/updateChapters.py | 95 +++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 29 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 944ae1e..0a5b2ee 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -85,19 +85,26 @@ def insertCommands(kls, chap, cms): def findReferences(chapter): references = [] index = -1 + chaptercheck = 0 + if chapticker == 0: + chaptercheck = str(9) + elif chapticker == 1: + chaptercheck = str(14) canAdd = False for word in chapter: index+=1 #check sections and subsections - if("section{" in word or "subsection*{" in word): + if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): w = word[word.find("{")+1: word.find("}")] + ws = word[word.find("{")+1: word.find("~")] for unit in mathPeople: - if (w in unit): + subunit = unit[unit.find(" ")+1: unit.find("#")] + if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)): canAdd = True - if("\\subsection*{References}" in word) and (canAdd == True): references.append(index) canAdd = False + return references #method to change file string(actually a list right now), returns string to be written to file @@ -106,33 +113,53 @@ def fixChapter(chap, references, p, kls): #chap is the file string(actually a list), references is the specific references for the file, #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list count = 0 #count is used to represent the values in count + designator = 0 #Tells which chapter it's on + if chapticker2 == 0: + designator = "9." + elif chapticker2 == 1: + designator = "14." + designator = str(designator) for i in references: #Place before References paragraph - chap[i-2] += "%Begin KLSadd additions" - chap[i-2] += p[count] - chap[i-2] += "%End of KLSadd additions" - count+=1 - + if count > 34: + word1 = "14. Banana" + else: + word1 = str(p[count]) + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + chap[i-2] += "%Begin KLSadd additions" + chap[i-2] += p[count] + chap[i-2] += "%End of KLSadd additions" + count += 1 + else: + while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + word1 = str(p[count]) + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + chap[i - 2] += "%Begin KLSadd additions" + chap[i - 2] += p[count] + chap[i - 2] += "%End of KLSadd additions" + count += 1 + else: + + count+=1 chap = prepareForPDF(chap) cms = getCommands(kls) chap = insertCommands(kls,chap, cms) commentticker = 0 for word in chap: - if ("\\newcommand\\half{\\frac12}" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): - wordtoadd = "%" + word - chap[commentticker] = wordtoadd + word2 = chap[chap.index(word)-1] + if ("\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2): + if ("\\newcommand\\half{\\frac12}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd + elif ("\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word): + wordtoadd = "%" + word + chap[commentticker] = wordtoadd commentticker += 1 # Hopefully this works ticker1 = 0 @@ -149,19 +176,25 @@ def fixChapter(chap, references, p, kls): addendum = add.readlines() for word in addendum: if ("paragraph{" in word): - temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: word.find("}") + 1] - addendum[addendum.index(word): addendum.index(word) + 1] = temp + lenword = len(word) - 1 + temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] + addendum[addendum.index(word)] = temp + if ("subsubsection*{" in word): + lenword = len(word) - 1 + addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] index = 0 indexes = [] for word in addendum: index+=1 if("." in word and "\\subsection*{" in word): - name = word[word.find(" "): word.find("}")] - mathPeople.append(name) - if("9." in word): + if ("9." in word): chapNums.append(9) + name = word[word.find("{") + 1: word.find("}") ] + mathPeople.append(name + "#") if("14." in word): chapNums.append(14) + name = word[word.find("{") + 1: word.find("}") ] + mathPeople.append(name + "#") #get the index indexes.append(index-1) #now indexes holds all of the places there is a section @@ -169,6 +202,7 @@ def fixChapter(chap, references, p, kls): for i in range(len(indexes)-1): box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(box) + paras.append("% This is a test") #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable #we can use the section names to place the relevant paragraphs in the right place @@ -187,11 +221,14 @@ def fixChapter(chap, references, p, kls): ch14.close() #call the findReferences method to find the index of the References paragraph in the two file strings #two variables for the references lists one for chapter 9 one for chapter 14 + chapticker = 0 references9 = findReferences(entire9) + chapticker += 1 references14 = findReferences(entire14) - #call the fixChapter method to get a list with the addendum paragraphs added in + chapticker2 = 0 str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) + chapticker2 += 1 str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) """ From c4915f9e448f0fab181c4155647046af6cd40255 Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Fri, 15 Apr 2016 17:07:40 -0400 Subject: [PATCH 077/402] Create CONTRIBUTING #Closes #8 --- CONTRIBUTING | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 CONTRIBUTING diff --git a/CONTRIBUTING b/CONTRIBUTING new file mode 100644 index 0000000..93c00da --- /dev/null +++ b/CONTRIBUTING @@ -0,0 +1,2 @@ +Plese use pull request to contribute to the project. +Check out our guide at http://drmf.wmflabs.org/wiki/GitHub how to use git. From e979e36d60328c12d782757cdf6564a7787c2b93 Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Fri, 15 Apr 2016 17:09:38 -0400 Subject: [PATCH 078/402] Update CONTRIBUTING provide an example for a good pull request --- CONTRIBUTING | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CONTRIBUTING b/CONTRIBUTING index 93c00da..d834a55 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -1,2 +1,13 @@ Plese use pull request to contribute to the project. Check out our guide at http://drmf.wmflabs.org/wiki/GitHub how to use git. + +## Example +See the following pull request: + +https://github.com/DRMF/DRMF-Seeding-Project/pull/19 + +This pull request satisfies the following properties: +1. It is small (incremental) +2. It improves the readability +3. It adds more tests +4. It demonstrates how to add issues for aspects that can be fixed later From 11a777973978bd0fb004d5898968c9790acf8013 Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Fri, 15 Apr 2016 17:23:26 -0400 Subject: [PATCH 079/402] Rename CONTRIBUTING to CONTRIBUTING.md Enable the use markdown --- CONTRIBUTING => CONTRIBUTING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename CONTRIBUTING => CONTRIBUTING.md (100%) diff --git a/CONTRIBUTING b/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING rename to CONTRIBUTING.md From 09650b53ede32e061b064c6d42a08aed900951e1 Mon Sep 17 00:00:00 2001 From: pzw Date: Wed, 20 Apr 2016 17:58:42 -0400 Subject: [PATCH 080/402] Fix spelling and code convention issues This fixes the issues identified by the code analysis as described in #17. --- AlexDanoff/src/conversion_ecf.py | 24 ++--- Azeem/src/tex2Wiki.py | 1 + KLSadd_insertion/FileChangerLatex.py | 128 +++++++++++++-------------- 3 files changed, 77 insertions(+), 76 deletions(-) diff --git a/AlexDanoff/src/conversion_ecf.py b/AlexDanoff/src/conversion_ecf.py index 4ea201a..801ef49 100644 --- a/AlexDanoff/src/conversion_ecf.py +++ b/AlexDanoff/src/conversion_ecf.py @@ -327,7 +327,7 @@ def markup(file): if location==-1: location=len(equation) - newFile=newFile+"\\begin{equation} \n" + equation[1:location] + "% \\constraint{\n" + newFile=newFile+"\\begin{equation} \n" + equation[1:location] + "% \\constraints{\n" #find constraints c=findArgs(equation,"Element") @@ -340,7 +340,7 @@ def markup(file): z=element[1:location].strip() elif element.count("|") >0: for index in range(element.count("|")+1): - #if it is the first constraint then it is from beginning to the first location of the |, the loc is increased each time to get through all of the constraints + #if it is the first constraints then it is from beginning to the first location of the |, the loc is increased each time to get through all of the constraints if index==0: loc=element.find("|") constraints.append(element[1:loc]) @@ -353,23 +353,23 @@ def markup(file): print(var) for index in range(len(constraints)): - print(constraint) + print(constraints) if (var=="Complexes"): - newFile="% "+ newFile+ consraint+ "\in \Complex" + newFile="% "+ newFile+ constraints+ "\in \Complex" elif (var=="Wholes"): - newFile="% "+ newFile+ consraint+ "\in \\NonNegInteger" + newFile="% "+ newFile+ constraints+ "\in \\NonNegInteger" elif (var=="Naturals"): - newFile="% "+ newFile+ consraint+ "\in \\NatNumber" + newFile="% "+ newFile+ constraints+ "\in \\NatNumber" elif (var=="Integers"): - newFile="% "+ newFile+ consraint+ "\in \Integer" + newFile="% "+ newFile+ constraints+ "\in \Integer" elif (var=="Irrationals"): - newFile="% "+ newFile+ consraint+ "\in \Irrationals" + newFile="% "+ newFile+ constraints+ "\in \Irrationals" elif (var=="Reals"): - newFile="% "+ newFile+ consraint+ "\in \Real" + newFile="% "+ newFile+ constraints+ "\in \Real" elif (var=="Rational"): - newFile="% "+ newFile+ consraint+ "\in \Rational" + newFile="% "+ newFile+ constraints+ "\in \Rational" elif (var=="Primes"): - newFile="% "+ newFile+ consraint+ "\in \Prime" + newFile="% "+ newFile+ constraints+ "\in \Prime" return newFile def equationSetUp(s): @@ -383,7 +383,7 @@ def equationSetUp(s): constraints=[] if (s.find("Element["))>0: elements=s[s.find("Element[",end)+ len("Element["): len(s)-1] - newFile=newFile+"% \constraint{\n" + newFile=newFile+"% \constraints{\n" numCon=elements.count("|")+1 location=0 for index in range(numCon): diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index a89ab01..1180a38 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -830,6 +830,7 @@ def readin(ofname,glossary,mmd): pauseP = False for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": + rLab = getString(eqR) pause = True eInd = refLabels.index("" + label) z = line[line.find("}", ind + 7) + 1] diff --git a/KLSadd_insertion/FileChangerLatex.py b/KLSadd_insertion/FileChangerLatex.py index 1ef75ff..3ff483e 100644 --- a/KLSadd_insertion/FileChangerLatex.py +++ b/KLSadd_insertion/FileChangerLatex.py @@ -1,64 +1,64 @@ -""" -Rahul Shah -11/20/15 -FileChangerLatex.py -Reads in from KLSadd.tex, finds places to be changed and adds -to end of section -""" - -#Open the document to be read -#Figure out which chapter to read - -subsection = "" -a = -1 -chapter ="" -list = [] -with open("KLSadd.tex", "rb") as file: - for line in file: - #finds all mentions of subsections in KLSadd - #used to determine chapter number - #tests every subsection to find if it has a number - #eliminates Introduction, etc - chapter = "" - subsection = "" - toCopy = False - if("\\subsection*{" in line): - #finds the subsection and subsubsections - for word in line: - try: - chapter+= str(int(word)) - except: - a = -1 - - if(word =="."): - chapter += "." - - if(chapter is not ""): - list.append(chapter) - #END OF LOOP why can't I have nice brackets like java :( - """ - list contains all of the subsections. Begin chapter file searching - """ - words = "" - for line2 in file: - words += line2 - - print(words) - numFile = "" - fileList = [] - for s in list: - numFile = "" - if("." in s[0:2]): - numFile = s[0] - else: - numFile = s[0:2] - fileList.append(int(numFile)) - - #numFile now contains the right number of the file to access - #stored in fileList - - - - - file.close() -#end of FileChangerLatex.py +""" +Rahul Shah +11/20/15 +FileChangerLatex.py +Reads in from KLSadd.tex, finds places to be changed and adds +to end of section +""" + +#Open the document to be read +#Figure out which chapter to read + +subsection = "" +a = -1 +chapter ="" +list = [] +with open("KLSadd.tex", "rb") as file: + for line in file: + #finds all mentions of subsections in KLSadd + #used to determine chapter number + #tests every subsection to find if it has a number + #eliminates Introduction, etc + chapter = "" + subsection = "" + toCopy = False + if("\\subsection*{" in line): + #finds the subsection and subsubsections + for word in line: + try: + chapter+= str(int(word)) + except: + a = -1 + + if(word =="."): + chapter += "." + + if(chapter is not ""): + list.append(chapter) + #END OF LOOP why can't I have nice brackets like java :( + """ + list contains all of the subsections. Begin chapter file searching + """ + words = "" + for line2 in file: + words += line2 + + print(words) + numFile = "" + fileList = [] + for s in list: + numFile = "" + if("." in s[0:2]): + numFile = s[0] + else: + numFile = s[0:2] + fileList.append(int(numFile)) + + #numFile now contains the right number of the file to access + #stored in fileList + + + + + file.close() +#end of FileChangerLatex.py From 69f6727f638ad42ce40d9f2ef7b174ac607d0616 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Fri, 22 Apr 2016 17:19:23 -0400 Subject: [PATCH 081/402] Add exception handler as reported in https://www.quantifiedcode.com/app/project/gh:DRMF:DRMF-Seeding-Project/diff/265d1e606c7e3e4eafba11ca6a08ea6b40a053b2/d3b969ab2dc03c4e83fe3c074a83c3a400db3995/issues?groups=code_patterns%3A3JwOg9ad%3Af0,code_patterns%3A4m6i5Dpz --- KLSadd_insertion/FileChangerLatex.py | 90 ++++++++++++++-------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/KLSadd_insertion/FileChangerLatex.py b/KLSadd_insertion/FileChangerLatex.py index 3ff483e..9bbbb2d 100644 --- a/KLSadd_insertion/FileChangerLatex.py +++ b/KLSadd_insertion/FileChangerLatex.py @@ -6,59 +6,59 @@ to end of section """ -#Open the document to be read -#Figure out which chapter to read +# Open the document to be read +# Figure out which chapter to read subsection = "" a = -1 -chapter ="" +chapter = "" list = [] with open("KLSadd.tex", "rb") as file: - for line in file: - #finds all mentions of subsections in KLSadd - #used to determine chapter number - #tests every subsection to find if it has a number - #eliminates Introduction, etc - chapter = "" - subsection = "" - toCopy = False - if("\\subsection*{" in line): - #finds the subsection and subsubsections - for word in line: - try: - chapter+= str(int(word)) - except: - a = -1 - - if(word =="."): - chapter += "." + for line in file: + # finds all mentions of subsections in KLSadd + # used to determine chapter number + # tests every subsection to find if it has a number + # eliminates Introduction, etc + chapter = "" + subsection = "" + toCopy = False + if "\\subsection*{" in line: + # finds the subsection and subsubsections + for word in line: + try: + chapter += str(int(word)) + except ValueError: + a = -1 - if(chapter is not ""): - list.append(chapter) - #END OF LOOP why can't I have nice brackets like java :( - """ - list contains all of the subsections. Begin chapter file searching - """ - words = "" - for line2 in file: - words += line2 + if word == ".": + chapter += "." - print(words) + if chapter is not "": + list.append(chapter) + # END OF LOOP why can't I have nice brackets like java :( + """ + list contains all of the subsections. Begin chapter file searching + """ + words = "" + for line2 in file: + words += line2 + + print(words) + numFile = "" + fileList = [] + for s in list: numFile = "" - fileList = [] - for s in list: - numFile = "" - if("." in s[0:2]): - numFile = s[0] - else: - numFile = s[0:2] - fileList.append(int(numFile)) + if ("." in s[0:2]): + numFile = s[0] + else: + numFile = s[0:2] + fileList.append(int(numFile)) + + # numFile now contains the right number of the file to access + # stored in fileList + - #numFile now contains the right number of the file to access - #stored in fileList - - - file.close() -#end of FileChangerLatex.py + file.close() +# end of FileChangerLatex.py From 19104ff91de0aba6aa586f478d4d4ca5598e50f0 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Fri, 22 Apr 2016 17:45:05 -0400 Subject: [PATCH 082/402] Compare repository tex2Wiki and local tex2Wiki Add new code into tex2Wiki (local version) Fix unnecessary parentheses Get rid of unnecessary comments --- Azeem/src/tex2Wiki.py | 62 +++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 1180a38..aa6600d 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -1,4 +1,4 @@ -# Version 14: Templates +# Version 15: Minor Fixes # Convert tex to wikiText import csv # imported for using csv format import sys # imported for getting args @@ -13,7 +13,7 @@ root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') -def isnumber(char): +def isnumber(char): # Function to check if char is a number (assuming 1 character) return char[0] in "0123456789" @@ -165,7 +165,7 @@ def getSym(line): # Gets all symbols on a line for symbols list p = "" else: p = line[i + 1] - if cC == 0 and p != "{" and p != "[" and p != "@": + if cC <= 0 and p != "{" and p != "[" and p != "@": symFlag = False # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: symList.append(symbol) @@ -175,7 +175,7 @@ def getSym(line): # Gets all symbols on a line for symbols list elif c == "\\": symFlag = True - elif c == "&": + elif c == "&" and not (i > line.find("\\begin{array}") and i < line.find("\\end{array}")): symList.append("&") # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: @@ -294,12 +294,18 @@ def setup_label_links(ofname): def readin(ofname,glossary,mmd): # try: for jsahlfkjsd in range(0, 1): - global wiki tex = open(ofname, 'r') main_file = open(mmd, "r") mainText = main_file.read() mainPrepend = "" mainWrite = open("OrthogonalPolynomials.mmd.new", "w") + tester = open("testData.txt", 'w') + # glossary=open('Glossary', 'r') + glossary = open('new.Glossary.csv', 'rb') + gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') + # lLinks=open('BruceLabelLinks', 'r') + lGlos = glossary.readlines() + # lLink=lLinks.readlines() math = False constraint = False substitution = False @@ -351,7 +357,7 @@ def readin(ofname,glossary,mmd): sections.append(["Orthogonal Polynomials", 0]) chapter = getString(line) mainPrepend += ( - "\n== Sections in " + chapter + " ==\n\n
\n") + "\n== Sections in " + chapter + " ==\n\n
\n") elif "\\part" in line: if getString(line) == "BOF": parse = False @@ -468,6 +474,13 @@ def readin(ofname,glossary,mmd): subLine += line.replace("&", "&
") if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + lineR = "" + for i in range(0, len(subLine)): + if subLine[i] == "&" and not ( + i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): + lineR += "&
" + else: + lineR += subLine[i] substitution = False append_text("
Substitution(s): " + getEq(subLine) + "

\n") @@ -663,6 +676,9 @@ def readin(ofname,glossary,mmd): parCx = 0 parFlag = False cC = 0 + ind = G[0].find("@") + if ind == -1: + ind = len(G[0]) - 1 for z in G[0]: if z == "@": parFlag = True @@ -697,9 +713,7 @@ def readin(ofname,glossary,mmd): if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): ap = "" for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - pass - elif Q[o] == "}" or z == "]": + if Q[o] == "}" or z == "]": listArgs.append(ap) ap = "" else: @@ -751,7 +765,9 @@ def readin(ofname,glossary,mmd): q = r.find("KLS:") + 4 p = r.find(":", q) section = r[q:p] - # Where should it link to? + equation = r[p + 1:] + if equation.find(":") != -1: + equation = equation[0:equation.find(":")] append_text("[http://homepage.tudelft.nl/11r49/askey/contents.html " "Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") @@ -828,11 +844,13 @@ def readin(ofname,glossary,mmd): proofLine = "" pause = False pauseP = False + eqR = '' for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": - rLab = getString(eqR) + # TODO: figure out how eqR is defined + # rLab = getString(eqR) pause = True - eInd = refLabels.index("" + label) + eInd = refLabels.index("" + label) # This should be rLab z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True @@ -870,6 +888,8 @@ def readin(ofname,glossary,mmd): for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) eInd = refLabels.index("" + label) z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": @@ -918,6 +938,14 @@ def readin(ofname,glossary,mmd): if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: note = False + if "\\emph" in noteLine: + noteLine = noteLine[0:noteLine.find("\\emph{")] + "\'\'" + noteLine[noteLine.find("\\emph{") + len( + "\\emph{"):noteLine.find("}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ + noteLine.find( + "}", + noteLine.find( + "\\emph{") + len( + "\\emph{")) + 1:] comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" if constraint and parse: @@ -933,15 +961,21 @@ def readin(ofname,glossary,mmd): append_text(comToWrite + "
" + getEq(conLine) + "

\n") comToWrite = "" if substitution and parse: - subLine += line.replace("&", "&
") + subLine += line.replace("&", "&
") #TODO: Figure out if .replace is needed symLine += line.strip("\n") - # symbols=symbols+getSym(line) if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: substitution = False symbols = symbols + getSym(symLine) symLine = "" + lineR = "" + for i in range(0, len(subLine)): + if subLine[i] == "&" and not ( + i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): + lineR += "&
" + else: + lineR += subLine[i] append_text(comToWrite + "
" + getEq(subLine) + "

\n") comToWrite = "" From 0f3f89af13d41351aba2721cc2b5c26bb0233372 Mon Sep 17 00:00:00 2001 From: physikerwelt Date: Fri, 22 Apr 2016 17:51:21 -0400 Subject: [PATCH 083/402] Fix warnings from Landscape https://landscape.io/diff/332573 --- Azeem/src/tex2Wiki.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index aa6600d..3c5200d 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -299,13 +299,7 @@ def readin(ofname,glossary,mmd): mainText = main_file.read() mainPrepend = "" mainWrite = open("OrthogonalPolynomials.mmd.new", "w") - tester = open("testData.txt", 'w') - # glossary=open('Glossary', 'r') glossary = open('new.Glossary.csv', 'rb') - gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') - # lLinks=open('BruceLabelLinks', 'r') - lGlos = glossary.readlines() - # lLink=lLinks.readlines() math = False constraint = False substitution = False @@ -844,7 +838,6 @@ def readin(ofname,glossary,mmd): proofLine = "" pause = False pauseP = False - eqR = '' for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": # TODO: figure out how eqR is defined @@ -888,8 +881,9 @@ def readin(ofname,glossary,mmd): for ind in range(0, len(line)): if line[ind:ind + 7] == "\\eqref{": pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) + # TODO: Figure out how this is used + # eqR = line[ind:line.find("}", ind) + 1] + # rLab = getString(eqR) eInd = refLabels.index("" + label) z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": From 7e09a6cec3e5e1777fa01a3fe29eaba3f2427c6c Mon Sep 17 00:00:00 2001 From: svellala2001 Date: Tue, 26 Apr 2016 12:17:20 -0400 Subject: [PATCH 084/402] Correct Problem with \iunit (#4) * Correct Problem with \iunit * Create new python file to replace units using Jagan's math mode program * Don't call main when program is included * Change replace_i with replace_special * Fix code to work with unit test * Fix Quantified Code issues in replace_special.py and test__replace_i.py * Find and fix problem with reading files * Find and fix problem with math mode not recognizing \label{ * Polish code and make sure code follows Quantifed Code Standards * Found and fix error with \iunit replacement concerning surrounding characters --- AlexDanoff/src/math_mode.py | 159 +++++++++++++++++ AlexDanoff/src/replace_special.py | 275 ++++++++--------------------- AlexDanoff/test/test__replace_i.py | 8 +- 3 files changed, 235 insertions(+), 207 deletions(-) create mode 100644 AlexDanoff/src/math_mode.py diff --git a/AlexDanoff/src/math_mode.py b/AlexDanoff/src/math_mode.py new file mode 100644 index 0000000..16954f8 --- /dev/null +++ b/AlexDanoff/src/math_mode.py @@ -0,0 +1,159 @@ +math_start = {"\\[": "\\]", + "\\(": "\\)", + "$$": "$$", + "$": "$", + "\\begin{equation}": "\\end{equation}", + "\\begin{equation*}": "\\end{equation*}", + "\\begin{align}": "\\end{align}", + "\\begin{align*}": "\\end{align*}", + "\\begin{multline}": "\\end{multline}", + "\\begin{multline*}": "\\end{multline*}"} + +math_end = ["\\hbox{", + "\\mbox{", + "\\text{"] + + +def find_first(string, delim, start=0): + # type: (str, str, int) -> int + """ + Finds the first occurrence of a delimiter within a string. + :param string: The string to search within. + :param delim: The delimiter to search for. + :param start: The starting index in the string. + :return: The index of the first occurrence. + """ + i = string.find(delim, start) + if delim in ["$", "\\[", "\\("]: + if i == -1: + return -1 + elif i != 0 and string[i - 1] == "\\": + return find_first(string, delim, i + len(delim)) + return i + + +def first_delim(string, enter=True): + # type: (str, bool) -> str + """ + Finds the first math or text mode delimiter within a string. + :param string: The string to search within. + :param enter: Whether to find a math mode or a text mode delimiter. + :return: The delimiter that first appears in the string. + """ + minm = ["\\hbox{", "\\]"][enter] + for delim in [math_end, math_start][enter]: + i = find_first(string, delim) + if i != -1 and i < find_first(string, minm) or minm not in string: + minm = delim + if minm == "$" and string.find("$$") == string.find("$"): + minm = "$$" + return minm + + +def does_exit(string): + # type: (str) -> bool + """ + Returns whether a string starts with a text mode delimiter. + :param string: The string to check. + :return: Whether the string starts with a text mode delimiter. + """ + return any(string.startswith(delim) for delim in math_end) + + +def does_enter(string): + # type: (str) -> bool + """ + Returns whether a string starts with a math mode delimiter. + :param string: The string to check. + :return: Whether the string starts with a math mode delimiter. + """ + return any(string.startswith(delim) for delim in math_start) + + +def parse_math(string, start, ranges): + # type: (str) -> str, int + """ + Finds the ranges of the current math mode segment. + :param string: The string to parse. + :param start: The starting index in the original string. + :param ranges: The ranges of all math mode segments. + :return i: The length of the math mode segment. + """ + delim = first_delim(string) + i = len(delim) + begin = start + i + while i < len(string): + if string[i:].startswith("\\$"): + i += 1 + elif string[i:].startswith("\\\\]"): + i += 2 + elif string[i:].startswith("\\\\)"): + i += 2 + else: + if does_exit(string[i:]): + if begin != start + i: + ranges.append((begin, start + i)) + i += parse_non_math(string[i:], start + i, ranges) + begin = start + i + if string[i:].startswith(math_start[delim]): + if begin != start + i: + ranges.append((begin, start + i)) + return i + len(math_start[delim]) - 1 + i += 1 + return i + + +def parse_non_math(string, start, ranges): + # type: (str) -> str, int + """ + Finds occurrences of math mode within a segment of text mode. + :param string: The string to parse. + :param start: The starting index in the original string. + :param ranges: The ranges of all math mode segments. + :return i: The length of the text mode segment. + """ + delim = first_delim(string, False) + if not string.startswith(delim): + delim = "" + level = 0 + i = len(delim) + while i < len(string): + if string[i:].startswith("\\$"): + i += 1 + elif string[i:].startswith("\\\\["): + i += 2 + elif string[i:].startswith("\\\\("): + i += 2 + elif does_enter(string[i:]): + i += parse_math(string[i:], start + i, ranges) + elif string[i] == "{": + level += 1 + elif string[i] == "}": + if level == 0 and delim != "": + i += 1 + return i + else: + level -= 1 + i += 1 + return i + + +def find_math_ranges(string,drmf): + # type: (str) -> list + """ + Returns a list of tuples, each tuple denoting a range of math mode. + :param string: The string to search within. + :return: A list of tuples denoting math mode ranges. + """ + global math_end + if drmf == True: + string = string.replace("\\drmfnote","\\drmfname") + math_end.extend(["\\constraint{", + "\\substitution" + "\\drmfnote{", + "\\drmfname{", + "\\proof{", + "\\label{"]) + ranges = [] + parse_non_math(string, 0, ranges) + return ranges[:] \ No newline at end of file diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index c81f5ab..22f4799 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -1,265 +1,134 @@ """Replace i, e, and \pi with \iunit, \expe, and \cpi respectively.""" +import math_mode import re import sys + # for compatibility with Python 3 try: from itertools import izip except ImportError: izip = zip -import parentheses from utilities import writeout from utilities import readin -EQ_START = r'\begin{equation}' -EQ_END = r'\end{equation}' - -IND_START = r'\index{' - -NAME = 0 -SEEN = 1 - -CASES_START = r'\begin{cases}' -CASES_END = r'\end{cases}' - -EQMIX_START = r'\begin{equationmix}' -EQMIX_END = r'\end{equationmix}' - -STD_REGEX = r'.*?###open_(\d+)###.*?###close_\1###' - - def main(): if len(sys.argv) != 3: - fname = "../../data/ZE.1.tex" - ofname = "../../data/ZE.2.tex" - + fname = "ZE.1.tex" + ofname = "ZE.2.tex" else: fname = sys.argv[1] ofname = sys.argv[2] - writeout(ofname, remove_special(readin(fname))) - - -def remove_special(content): - """Removes the excess pieces from the given content and returns the updated version as a string.""" - - lines = content.split("\n") - - # various flags that will help us keep track of what elements we are inside of currently - inside = { - "constraint": [r'\constraint{', False], - "substitution": [r'\substitution{', False], - "drmfnote": [r'\drmfnote{', False], - "drmfname": [r'\drmfname{', False], - "proof": [r'\proof{', False] - } - - should_replace = False - in_ind = False - in_eq = False - - pi_pat = re.compile(r'(\s*)\\pi(\s*\b|[aeiou])') - expe_pat = re.compile(r'\b([^\\]?\W*)\s*e\s*\^') - - spaces_pat = re.compile(r' {2,}') - paren_pat = re.compile(r'\(\s*(.*?)\s*\)') - - dollar_pat = re.compile(r'(? Date: Wed, 4 May 2016 16:13:08 -0400 Subject: [PATCH 085/402] Added files via upload New version of replace_special, takes string of math mode as input, and only runs that string through the remove_speciall function. --- AlexDanoff/src/math_function.py | 72 ++++++++ AlexDanoff/src/replace_special.py | 291 ++++++++++++++++++++++-------- 2 files changed, 290 insertions(+), 73 deletions(-) create mode 100644 AlexDanoff/src/math_function.py diff --git a/AlexDanoff/src/math_function.py b/AlexDanoff/src/math_function.py new file mode 100644 index 0000000..9536ffc --- /dev/null +++ b/AlexDanoff/src/math_function.py @@ -0,0 +1,72 @@ +import math_mode +import string +from utilities import readin +from utilities import writeout +import re + +def math_string(file): + # Takes input file and returns list of strings when in math mode + string = open(file).read() + output = [] + ranges = math_mode.find_math_ranges(string) + for i in ranges: + new = string[i[0]:i[1]] + output.append(new) + return output + + +def change_original(o_file, changed_math_string): + # Places changed string from math mode back into place in the original function + o_string = open(o_file).read() + ranges = math_mode.find_math_ranges(o_string) + num = 0 + edited = o_string + for i in ranges: + edited = string.replace(edited, o_string[i[0]:i[1]], changed_math_string[num]) + num += 1 + return edited + + +def index_spacing(file, out_file): + used = open(file).read() + + updated = [] + IND_START = r'\index{' + ind_str = "" + in_ind = False + previous = "" + lines = used.split("\n") + + for line in lines: + # if this line is an index start storing it, or write it if we're done with the indexes + if IND_START in line: + in_ind = True + ind_str += line + "\n" + continue + + elif in_ind: + in_ind = False + + # add a preceding newline if one is not already present + if previous.strip() != "": + ind_str = "\n" + ind_str + + fullsplit = ind_str.split("\n") + updated.extend(fullsplit) + ind_str = "" + previous = line + updated.append(line) + + wrote = "\n".join(updated) + + # remove consecutive blank lines and blank lines between \index groups + spaces_pat = re.compile(r'\n{2,}[ ]?\n+') + wrote = spaces_pat.sub('\n\n', wrote) + wrote = re.sub(r'\\index{(.*?)}\n\n\\index{(.*?)}', r'\\index{\1}\n\\index{\2}', wrote) + + out = open(out_file, 'w') + out.write(wrote) + out.close() + return out +# 4/26, look at chapter 16 and prevent converting the \ApellFiii into \ApellFii\iunit + diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index 22f4799..eca08a9 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -1,134 +1,279 @@ -"""Replace i, e, and \pi with \iunit, \expe, and \cpi respectively.""" +"""Replace i, e, and \pi with \iunit, \expe, and \cpi respectively. Creates proper spacing for indexes and removes +unnecessary characters.""" -import math_mode import re import sys - # for compatibility with Python 3 try: from itertools import izip except ImportError: izip = zip +import math_function +import parentheses from utilities import writeout from utilities import readin + +EQ_START = r'\begin{equation}' +EQ_END = r'\end{equation}' + +IND_START = r'\index{' + +NAME = 0 +SEEN = 1 + +CASES_START = r'\begin{cases}' +CASES_END = r'\end{cases}' + +EQMIX_START = r'\begin{equationmix}' +EQMIX_END = r'\end{equationmix}' + +STD_REGEX = r'.*?###open_(\d+)###.*?###close_\1###' + + def main(): if len(sys.argv) != 3: - fname = "ZE.1.tex" - ofname = "ZE.2.tex" + fname = "../../data/ZE.1.tex" + ofname = "../../data/ZE.2.tex" + else: fname = sys.argv[1] ofname = sys.argv[2] - string = open(fname).read() + # Below: index_str writes to output file, math_string takes output file as input, and change_original + # writes to the output based on the previous output file + index_str = math_function.index_spacing(fname, ofname) + my_string = math_function.math_string(ofname) - writeout(ofname, replace_special(string)) + math_string = remove_special(my_string) -def string_to_list(_line, _list): + writeout(ofname, math_function.change_original(ofname, math_string)) - _output = [] - if _list != []: +def remove_special(content): + """Removes the excess pieces from the given content and returns the updated version as a string.""" + print(content) + counter = 0 + for function in content: - for i in range(0, len(_list)): - if i == 0: + lines = function.split('\n') - _output.append(_line[0:_list[i][0]]) + # various flags that will help us keep track of what elements we are inside of currently + inside = { + "constraint": [r'\constraint{', False], + "substitution": [r'\substitution{', False], + "drmfnote": [r'\drmfnote{', False], + "drmfname": [r'\drmfname{', False], + "proof": [r'\proof{', False] + } - else: + should_replace = False + in_ind = False + in_eq = True - _output.append(_line[_list[i-1][1]:_list[i][0]]) + pi_pat = re.compile(r'(\s*)\\pi(\s*\b|[aeiou])') + expe_pat = re.compile(r'\b([^\\]?\W*)\s*e\s*\^') - _output.append(_line[_list[i][0]:_list[i][1]]) + spaces_pat = re.compile(r' {2,}') + paren_pat = re.compile(r'\(\s*(.*?)\s*\)') - if len(_line) != _list[i][1] + 1: + dollar_pat = re.compile(r'(? Date: Thu, 5 May 2016 07:15:11 -0400 Subject: [PATCH 086/402] Hardcoded in a fix for the parargraph placement (#30) * Hardcoded in a fix for the parargraph placement * New indexes --- KLSadd_insertion/updateChapters.py | 121 +++++++++++++++++++++-------- 1 file changed, 87 insertions(+), 34 deletions(-) diff --git a/KLSadd_insertion/updateChapters.py b/KLSadd_insertion/updateChapters.py index 0a5b2ee..6867c00 100644 --- a/KLSadd_insertion/updateChapters.py +++ b/KLSadd_insertion/updateChapters.py @@ -17,6 +17,9 @@ -rewrite for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) Current update status: incomplete Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter + +Edward Bian +Currently under heavy modification; sections may not work and/or look inefficient/confusing """ #start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files @@ -25,11 +28,17 @@ #variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over #chapNums is needed to know which file to open (9 or 14) #mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name -#yes I like lists chapNums = [] paras = [] +klsparas = [] mathPeople = [] newCommands = [] #used to hold the indexes of the commands +ref9II = [] #Hold section search indexes +ref14II = [] +ref9III = [] #Holds all indexes +ref14III = [] +specref9 = [] +specref14 = [] comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf @@ -44,10 +53,9 @@ def prepareForPDF(chap): #edits the chapter string sent to include hyperref, xparse, and cite packages #str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" chap.insert(footmiscIndex, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") - return chap -#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list and also adds +#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list def getCommands(kls): index = 0 @@ -57,9 +65,6 @@ def getCommands(kls): newCommands.append(index-1) if("mybibitem[1]" in word): newCommands.append(index) - #add \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs - #pretty sure I had to do something here but I forgot, so pass? - #duh, obviously I need to store the commands somewhere! comms = kls[newCommands[0]:newCommands[1]] return comms @@ -68,7 +73,6 @@ def getCommands(kls): def insertCommands(kls, chap, cms): #reads in the newCommands[] and puts them in chap beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. - #find index of begin document in KLSadd index = 0 for word in kls: @@ -85,11 +89,13 @@ def insertCommands(kls, chap, cms): def findReferences(chapter): references = [] index = -1 + #chaptercheck designates which chapter is being searched for references chaptercheck = 0 if chapticker == 0: chaptercheck = str(9) elif chapticker == 1: chaptercheck = str(14) + #canAdd tells the program whether the next section is a reference canAdd = False for word in chapter: index+=1 @@ -99,52 +105,88 @@ def findReferences(chapter): ws = word[word.find("{")+1: word.find("~")] for unit in mathPeople: subunit = unit[unit.find(" ")+1: unit.find("#")] + # System of checks that verifies if section is in chapter if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)): canAdd = True + if chapticker == 0: + ref9II.append(index) + ref9III.append(index) + elif chapticker == 1: + ref14II.append(index) + ref14III.append(index) if("\\subsection*{References}" in word) and (canAdd == True): + # Appends valid locations references.append(index) + if chapticker == 0: + ref9II.append(index) + ref9III.append(index) + elif chapticker == 1: + ref14II.append(index) + ref14III.append(index) canAdd = False - + if ("subsection*{" in word and "References" not in word): + if chapticker == 0: + ref9III.append(index) + elif chapticker == 1: + ref14III.append(index) + print(ref9II) + print (ref14II) + print(ref9III) + print(ref14III) return references -#method to change file string(actually a list right now), returns string to be written to file -#If you write a method that changes something, it is preffered that you call the method in here -def fixChapter(chap, references, p, kls): - #chap is the file string(actually a list), references is the specific references for the file, - #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list - count = 0 #count is used to represent the values in count - designator = 0 #Tells which chapter it's on +def referencePlacer(chap, references, p, kls,refII,refIII,specref): + # count is used to represent the values in count + count = 0 + # Tells which chapter it's on + designator = 0 if chapticker2 == 0: designator = "9." elif chapticker2 == 1: designator = "14." - designator = str(designator) for i in references: - #Place before References paragraph - if count > 34: - word1 = "14. Banana" - else: - word1 = str(p[count]) - if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): - chap[i-2] += "%Begin KLSadd additions" - chap[i-2] += p[count] - chap[i-2] += "%End of KLSadd additions" + # Place before References paragraph + word1 = str(p[count]) + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): + chap[i - 2] += "%Begin KLSadd additions" + chap[i - 2] += p[count] + chap[i - 2] += "%End of KLSadd additions" count += 1 else: - while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): word1 = str(p[count]) - if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): chap[i - 2] += "%Begin KLSadd additions" chap[i - 2] += p[count] chap[i - 2] += "%End of KLSadd additions" count += 1 else: + count += 1 - count+=1 +def referencePlacerII(chap, references, p, kls,refII,refIII,specref): + if chapticker2 == 0: + designator = "9." + elif chapticker2 == 1: + designator = "14." + count = 0 + sectionnuma = specref[0] + sectionnumb = specref[1] + for i in specref: + pass + + + +#method to change file string(actually a list right now), returns string to be written to file +#If you write a method that changes something, it is preffered that you call the method in here +def fixChapter(chap, references, p, kls,refII,refIII,specref): + #chap is the file string(actually a list), references is the specific references for the file, + #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list + referencePlacer(chap, references, p, kls, refII,refIII,specref) chap = prepareForPDF(chap) cms = getCommands(kls) chap = insertCommands(kls,chap, cms) commentticker = 0 + # Hard coded command remover for word in chap: word2 = chap[chap.index(word)-1] if ("\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2): @@ -161,19 +203,19 @@ def fixChapter(chap, references, p, kls): wordtoadd = "%" + word chap[commentticker] = wordtoadd commentticker += 1 - # Hopefully this works ticker1 = 0 + # Formatting to make the Latex file run while ticker1 < len(chap): if ('\\myciteKLS' in chap[ticker1]): chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') ticker1 += 1 - #probably won't work because I don't know how anything works return chap #open the KLSadd file to do things with with open("KLSadd.tex", "r") as add: #store the file as a string addendum = add.readlines() + #Makes sections look like other sections for word in addendum: if ("paragraph{" in word): lenword = len(word) - 1 @@ -184,6 +226,8 @@ def fixChapter(chap, references, p, kls): addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] index = 0 indexes = [] + # Designates sections that need stuff added + # get the index for word in addendum: index+=1 if("." in word and "\\subsection*{" in word): @@ -191,18 +235,27 @@ def fixChapter(chap, references, p, kls): chapNums.append(9) name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") + specref9.append(index-1) if("14." in word): chapNums.append(14) name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") - #get the index + specref14.append(index - 1) indexes.append(index-1) + if ("paragraph{" in word) and (index > 313): + klsparas.append(index-1) + print(indexes) + print(specref9) + print(specref14) + print(klsparas) + print(mathPeople) #now indexes holds all of the places there is a section #using these indexes, get all of the words in between and add that to the paras[] for i in range(len(indexes)-1): box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(box) - paras.append("% This is a test") + box2 = ''.join(addendum[indexes[35]: 2245]) + paras.append(box2) #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable #we can use the section names to place the relevant paragraphs in the right place @@ -227,9 +280,9 @@ def fixChapter(chap, references, p, kls): references14 = findReferences(entire14) #call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) + str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9)) chapticker2 += 1 - str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) + str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 0f8533de36ba6b30ad522a90647f3aaa05c8b1e0 Mon Sep 17 00:00:00 2001 From: joonbang Date: Thu, 5 May 2016 09:01:00 -0400 Subject: [PATCH 087/402] Upload project to GitHub (#38) * Upload project to GitHub * Fix converter as per suggestions * Remove backup .zip files --- Joon/Cuytbook.pdf | Bin 0 -> 2744504 bytes Joon/Glossary.csv | 691 +++++++++++++++++++++++++++++++++++++ Joon/category_generator.py | 88 +++++ Joon/converter.py | 271 +++++++++++++++ Joon/keys/functions | 17 + Joon/keys/spacing | 11 + Joon/keys/special | 5 + Joon/keys/symbols | 35 ++ Joon/mpl/bessel.mpl | 169 +++++++++ Joon/mpl/modbessel.mpl | 156 +++++++++ Joon/mpl/test.mpl | 156 +++++++++ Joon/testing/primer | 50 +++ Joon/testing/test.pdf | Bin 0 -> 97230 bytes Joon/testing/test.tex | 142 ++++++++ Joon/todo.txt | 4 + 15 files changed, 1795 insertions(+) create mode 100644 Joon/Cuytbook.pdf create mode 100644 Joon/Glossary.csv create mode 100644 Joon/category_generator.py create mode 100644 Joon/converter.py create mode 100644 Joon/keys/functions create mode 100644 Joon/keys/spacing create mode 100644 Joon/keys/special create mode 100644 Joon/keys/symbols create mode 100644 Joon/mpl/bessel.mpl create mode 100644 Joon/mpl/modbessel.mpl create mode 100644 Joon/mpl/test.mpl create mode 100644 Joon/testing/primer create mode 100644 Joon/testing/test.pdf create mode 100644 Joon/testing/test.tex create mode 100644 Joon/todo.txt diff --git a/Joon/Cuytbook.pdf b/Joon/Cuytbook.pdf new file mode 100644 index 0000000000000000000000000000000000000000..914a06ba364ee74724703159776c03a78f5095df GIT binary patch literal 2744504 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

EsbKNUv7hKLoC=$CTu4L0Rb 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

qtXot8yMo`=@MSz=Vo!1C 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%0DnQ0haZXEUP&ll3DufC?&8 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α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

\n") + mainPrepend+="
\n" + mainText="" + mainText=mainPrepend+mainText + mainText=mainText.replace("drmf_bof\n","") + mainText=mainText.replace("drmf_eof\n","") + mainText=mainText.replace("\'\'\'Zeta and Related Functions\'\'\'\n","") + mainText=mainText.replace("{{#set:Section=0}}\n","") + mainText="drmf_bof\n\'\'\'Zeta and Related Functions\'\'\'\n{{#set:Section=0}}"+mainText+"\ndrmf_eof\n" + mainWrite.write(mainText) + mainWrite.close() + main.close() + os.system("cp -f ZetaFunctions.mmd.new ZetaFunctions.mmd") + #wiki.write("\ndrmf_eof\n") + parse=False + elif "\\title" in line and parse: + labels.append("Zeta and Related Functions") + sections.append(["Zeta and Related Functions",0]) + elif "\\part" in line: + if getString(line)=="BOF": + parse=False + elif getString(line)=="EOF": + parse=True + elif parse: + stringWrite="\'\'\'" + stringWrite+=getString(line)+"\'\'\'\n" + chapter=getString(line) + if startFlag: + mainPrepend+=("\n== Sections in "+chapter+" ==\n\n
\n") + startFlag=False + else: + mainPrepend+=("
\n\n== Sections in "+chapter+" ==\n\n
\n") + head=True + elif "\\section" in line: + mainPrepend+=("* [["+secLabel(getString(line))+"|"+getString(line)+"]]\n") + sections.append([getString(line)]) + + secCounter=0 + eqCounter=0 + for i in range(0,len(lines)): + line=lines[i] + if "\\section" in line: + parse=True + secCounter+=1 + wiki.write("drmf_bof\n") + wiki.write("\'\'\'"+secLabel(getString(line))+"\'\'\'\n") + wiki.write("{{DISPLAYTITLE:"+(sections[secCounter][0])+"}}\n") + wiki.write("
\n") + wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + wiki.write("
[[Zeta_and_Related_Functions#"+ + "Sections_in_"+chapter.replace(" ","_")+"|"+secLabel(sections[secCounter][0])+"]]
\n") + wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+ + "|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + head=True + wiki.write("== "+getString(line)+" ==\n") + elif ("\\section" in lines[(i+1)%len(lines)] or "\\end{document}" in lines[(i+1)%len(lines)]) and parse: + wiki.write("
\n") + wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + wiki.write("
[[Zeta_and_Related_Functions#"+"Sections_in_" + ""+chapter.replace(" ","_")+"|"+secLabel(sections[secCounter][0])+"]]
\n") + wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+ + "|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + wiki.write("drmf_eof\n") + sections[secCounter].append(eqCounter) + eqCounter=0 + + elif "\\subsection" in line and parse: + wiki.write("\n== "+getString(line)+" ==\n") + head=True + elif "\\paragraph" in line and parse: + wiki.write("\n=== "+getString(line)+" ===\n") + head=True + elif "\\subsubsection" in line and parse: + wiki.write("\n=== "+getString(line)+" ===\n") + head=True + + elif "\\begin{equation}" in line and parse: + # symLine="" + if head: + wiki.write("\n") + head=False + sLabel=line.find("\\label{")+7 + eLabel=line.find("}",sLabel) + label=(line[sLabel:eLabel]) + eqCounter+=1 + for l in lLink: + if label==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break + label=modLabel(rlabel) + labels.append("Formula:"+rlabel) + eqs.append("") + #wiki.write("\n\n") + wiki.write("{\displaystyle \n") + math=True + elif "\\begin{equation}" in line and not parse: + sLabel=line.find("\\label{")+7 + eLabel=line.find("}",sLabel) + label=modLabel(line[sLabel:eLabel]) + labels.append("*"+label) #special marker + eqs.append("") + math=True + elif "\\end{equation}" in line: + + math=False + elif "\\constraint" in line and parse: + constraint=True + math=False + conLine="" + elif "\\substitution" in line and parse: + substitution=True + math=False + subLine="" + #wiki.write("
Substitution(s): "+getEq(line)+"

\n") + elif "\\proof" in line and parse: + math=False + elif "\\drmfn" in line and parse: + math=False + if "\\drmfname" in line and parse: + wiki.write("
This formula has the name: "+getString(line)+"

\n") + elif math and parse: + flagM=True + eqs[len(eqs)-1]+=line + + if "\\end{equation}" in lines[i+1] and not "\\subsection" in lines[i+3] and not "\\section" in lines[i+3] and not "\\part" in lines[i+3]: + u=i + flagM2=False + while flagM: + u+=1 + if "\\begin{equation}"in lines[u] in lines[u]: + flagM=False + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: + flagM=False + flagM2=True + if not(flagM2): + + wiki.write(line.rstrip("\n")) + wiki.write("\n}
\n") + else: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\end{equation}" in lines[i+1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + else: + wiki.write(line) + elif math and not parse: + eqs[len(eqs)-1]+=line + if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: + math=False + if substitution and parse: + subLine=subLine+line.replace("&","&
") + if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1]\ + or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: + substitution=False + wiki.write("
Substitution(s): "+getEq(subLine)+"

\n") + + if constraint and parse: + conLine=conLine+line.replace("&","&
") + if "\\end{equation}" in lines[i+1] or "\\substitution" \ + in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: + constraint=False + wiki.write("
Constraint(s): "+getEq(conLine)+"

\n") + + eqCounter=n + endNum=len(labels)-1 + parse=False + constraint=False + substitution=False + note=False + hCon=True + hSub=True + hNote=True + hProof=True + proof=False + comToWrite="" + secCount=-1 + newSec=False + for i in range(0,len(lines)): + line=lines[i] + + if "\\section" in line: + secCount+=1 + newSec=True + eqS=0 + + if "\\begin{equation}" in line: + symLine=line.strip("\n") + eqS+=1 + constraint=False + substitution=False + note=False + comToWrite="" + hCon=True + hSub=True + hNote=True + hProof=True + proof=False + parse=True + symbols=[] + eqCounter+=1 + wiki.write("drmf_bof\n") + label=labels[eqCounter] + #if not "DLMF" in label:eqCounter+=1 + label=labels[eqCounter] + wiki.write("\'\'\'"+secLabel(label)+"\'\'\'\n") + wiki.write("{{DISPLAYTITLE:"+(labels[eqCounter])+"}}\n") + if eqCounter==len(labels)-1: + break + if eqCounter\n") + if newSec: + wiki.write("
" + "<< [["+secLabel(sections[secCount][0]).replace(" ","_")+"|"+secLabel(sections[secCount][0])+"]]
\n") + else: + wiki.write("
" + "<< [["+secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+secLabel(labels[eqCounter-1])+"]]
\n") + wiki.write("
[["+secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ + secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+secLabel(sections[secCount+1][0])+"]]
\n") + #if eqS==sections[secCount][1]: + if True: + wiki.write("
[["+secLabel(labels[(eqCounter+1)%(endNum+1)]).replace(" ","_")+ + "|"+secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") + wiki.write("
\n\n") + elif eqCounter==endNum: + wiki.write("
\n") + if newSec: + newSec=False + wiki.write("
<< [["+secLabel(sections[secCount][0]).replace(" ","_")+"|"+ + secLabel(sections[secCount][0])+"]]
\n") + else: + wiki.write("
" + "<< [["+secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+secLabel(labels[eqCounter-1])+"]]
\n") + wiki.write("
[["+ + secLabel(sections[secCount+1][0]).replace(" ","_")+ + "#"+secLabel(labels[eqCounter][len("Formula:"):])+ + "|formula in "+secLabel(sections[secCount+1][0])+ + "]]
\n") + wiki.write("
[["+secLabel(labels[(eqCounter+1)%(endNum+1)].replace(" ","_"))+ + "|"+secLabel(labels[(eqCounter+1)%(endNum+1)])+"]]
\n") + wiki.write("
\n\n") + + wiki.write("
{\displaystyle \n") + math=True + elif "\\end{equation}" in line: + wiki.write(comToWrite) + parse=False + math=False + if hProof: + wiki.write("\n== Proof ==\n\nWe ask users to provide proof(s), \ + reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") + + wiki.write("\n== Symbols List ==\n\n") + newSym=[] + #if "09.07:04" in label: + for x in symbols: + flagA=True + #if x not in newSym: + cN=0 + cC=0 + flag=True + ArgCx=0 + for z in x: + if z.isalpha() and flag or z=="&": + cN+=1 + else: + flag=False + if z=="{" or z=="[": + cC+=1 + if z=="}" or z=="]": + cC-=1 + if cC==0: + ArgCx+=1 + noA=x[:cN] + for y in newSym: + cN=0 + cC=0 + ArgC=0 + flag=True + for z in y: + if z.isalpha() and flag or z=="&": + cN+=1 + else: + flag=False + if z=="{" or z=="[": + cC+=1 + if z=="}" or z=="]": + cC-=1 + if cC==0: + ArgC+=1 + + + if y[:cN]==noA: #and ArgC==ArgCx: + flagA=False + break + if flagA: + newSym.append(x) + newSym.reverse() + ampFlag=False + finSym=[] + for s in range(len(newSym)-1,-1,-1): + symbolPar="\\"+newSym[s] + ArgCx=0 + parCx=0 + parFlag=False + cC=0 + for z in symbolPar: + if z=="@": + parFlag=True + elif z.isalpha() or z=="&": + cN+=1 + else: + if z=="{" or z=="[": + cC+=1 + if z=="}" or z=="]": + cC-=1 + if cC==0: + if parFlag: + parCx+=1 + else: + ArgCx+=1 + + if symbolPar.find("{")!=-1 or symbolPar.find("[")!=-1: + if symbolPar.find("[")==-1: + symbol=symbolPar[0:symbolPar.find("{")] + elif symbolPar.find("{")==-1 or symbolPar.find("[")len(symbol) and (Q[len(symbol)]=="{" or Q[len(symbol)]=="["): + ap="" + for o in range(len(symbol),len(Q)): + if Q[o]=="{" or z=="[": + pass + elif Q[o]=="}" or z=="]": + listArgs.append(ap) + ap="" + else: + ap+=Q[o] + #websiteF=G[4].strip("\n") + websiteF="" + web1=G[5] + for t in range(5,len(G)): + if G[t]!="": + websiteF=websiteF+" ["+G[t]+" "+G[t]+"]" + + #p1=Q + #if Q.find("@")!=-1: + #p1=Q[:Q.find("@")] + p1=G[4].strip("$") + p1="{\\displaystyle "+p1+"}" + #if checkFlag: + new2="" + pause=False + mathF=True + p2=G[1] + for k in range(0,len(p2)): + if p2[k]=="$": + if mathF: + new2+="{\\displaystyle " + else: + new2+="}" + mathF=not mathF + else: + new2+=p2[k] + p2=new2 + finSym.append(web1+" "+p1+"] : "+p2+" :"+websiteF) + break + + #preG=S + if not gFlag: + del newSym[s] + + gFlag=True + #finSym.reverse() + if ampFlag: + wiki.write("& : logical and") + gFlag=False + for y in finSym: + if y=="& : logical and": + pass + elif gFlag: + gFlag=False + wiki.write("["+y) + else: + wiki.write("
\n["+y) + + + wiki.write("\n
\n") + + wiki.write("\n== Bibliography==\n\n")#should there be a space between bibliography and ==? + r=unmodLabel(labels[eqCounter]) + q=r.find("DLMF:")+5 + p=r.find(":",q) + section=r[q:p] + equation=r[p+1:] + #print("Section", section, r, p, q,) + if equation.find(":")!=-1: + equation=equation[0:equation.find(":")] + if is_number(section) == False: + return eqCounter + wiki.write("[HTTP://DLMF.NIST.GOV/"+ + section+"#"+equation+" Equation ("+equation[1:]+"), " + "Section "+section+"] of [[Bibliography#DLMF|'''DLMF''']].\n\n") + wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + if eqCounter
\n") + if newSec: + newSec=False + wiki.write("
<< [["+secLabel(sections[secCount][0]).replace(" ","_")+ + "|"+secLabel(sections[secCount][0])+"]]
\n") + else: + wiki.write("
<< [["+secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+ + secLabel(labels[eqCounter-1])+"]]
\n") + wiki.write("
[["+secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ + secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+secLabel(sections[secCount+1][0])+"]]
\n") + #if eqS==sections[secCount][1]: + #else: + if True: + wiki.write("
[["+secLabel(labels[(eqCounter+1)% + (endNum+1)]).replace(" ","_")+"|"+secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") + wiki.write("
\n\ndrmf_eof\n") + else: #FOR EXTRA EQUATIONS + wiki.write("
\n") + wiki.write("
<< [["+labels[endNum-1].replace(" ","_")+"|"+labels[endNum-1]+"]]
\n") + wiki.write("
[["+labels[0].replace(" ","_")+"#"+labels[endNum][8:]+"|formula in "+labels[0]+"]]
\n") + wiki.write("
[["+labels[(0)%endNum].replace(" ","_")+"|"+labels[0%endNum]+"]]
\n") + wiki.write("
\n\ndrmf_eof\n") + + + + elif "\\constraint" in line and parse: + #symbols=symbols+getSym(line) + symLine=line.strip("\n") + if hCon: + comToWrite=comToWrite+"\n== Constraint(s) ==\n\n" + hCon=False + constraint=True + math=False + conLine="" + #wiki.write("
"+getEq(line)+"

\n") + elif "\\substitution" in line and parse: + #symbols=symbols+getSym(line) + symLine=line.strip("\n") + if hSub: + comToWrite=comToWrite+"\n== Substitution(s) ==\n\n" + hSub=False + #wiki.write("
"+getEq(line)+"

\n") + substitution=True + math=False + subLine="" + elif "\\drmfname" in line and parse: + math=False + comToWrite="\n== Name ==\n\n
"+getString(line)+"

\n"+comToWrite + + elif "\\drmfnote" in line and parse: + symbols=symbols+getSym(line) + if hNote: + comToWrite=comToWrite+"\n== Note(s) ==\n\n" + hNote=False + note=True + math=False + noteLine="" + + elif "\\proof" in line and parse: + #symbols=symbols+getSym(line) + symLine=line.strip("\n") + if hProof: + hProof=False + comToWrite=comToWrite+"\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), " \ + "or further clarification on the proof(s) in this space. \n

\n
" + proof=True + proofLine="" + pause=False + pauseP=False + for ind in range(0,len(line)): + if line[ind:ind+7]=="\\eqref{": + pause=True + eqR=line[ind:line.find("}",ind)+1] + rLab=getString(eqR) + for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break + + eInd=refLabels.index(""+rlabel) + z=line[line.find("}",ind+7)+1] + if z=="." or z==",": + pauseP=True + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") + else: + if z=="}": + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
") + else: + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") + + + else: + if pause: + if line[ind]=="}": + pause=False + elif pauseP: + pauseP=False + elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: + pass + else: + proofLine+=(line[ind]) + if "\\end{equation}" in lines[i+1]: + proof=False + #symLine+=line.strip("\n") + wiki.write(comToWrite+getEqP(proofLine)+"
\n
\n") + comToWrite="" + symbols=symbols+getSym(symLine) + symLine="" + + #wiki.write(line) + + elif proof: + symLine+=line.strip("\n") + pauseP=False + #symbols=symbols+getSym(line) + for ind in range(0,len(line)): + if line[ind:ind+7]=="\\eqref{": + pause=True + eqR=line[ind:line.find("}",ind)+1] + rLab=getString(eqR) + for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break + + eInd=refLabels.index(""+rlabel.lstrip("Formula:")) + z=line[line.find("}",ind+7)+1] + if z=="." or z==",": + pauseP=True + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") + else: + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") + + else: + if pause: + if line[ind]=="}": + pause=False + elif pauseP: + pauseP=False + elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: + pass + + else: + proofLine+=(line[ind]) + if "\\end{equation}" in lines[i+1]: + proof=False + #symLine+=line.strip("\n") + wiki.write(comToWrite+getEqP(proofLine).rstrip("\n")+"
\n
\n") + comToWrite="" + symbols=symbols+getSym(symLine) + symLine="" + + elif math: + if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] \ + or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1] or "\\drmfnote" in lines[i+1] or "\\drmfname" in lines[i+1]: + wiki.write(line.rstrip("\n")) + symLine+=line.strip("\n") + symbols=symbols+getSym(symLine) + symLine="" + wiki.write("\n}\n") + else: + symLine+=line.strip("\n") + wiki.write(line) + if note and parse: + noteLine=noteLine+line + symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] \ + or "\\constraint" in lines[i+1] \ + or "\\substitution" in lines[i+1] \ + or "\\proof" in lines[i+1]: + note=False + if "\\emph" in noteLine: + noteLine=noteLine[0:noteLine.find("\\emph{")]+"\'\'"+noteLine[noteLine.find("\\emph{")+len("\\emph{"): + noteLine.find("}",noteLine.find("\\emph{")+len("\\emph{"))]+"\'\'"+\ + noteLine[noteLine.find("}",noteLine.find("\\emph{")+len("\\emph{"))+1:] + comToWrite=comToWrite+"
"+getEq(noteLine)+"

\n" + + if constraint and parse: + conLine=conLine+line.replace("&","&
") + + symLine+=line.strip("\n") + #symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] \ + or "\\constraint" in lines[i+1]\ + or "\\substitution" in lines[i+1] \ + or "\\proof" in lines[i+1]: + constraint=False + symbols=symbols+getSym(symLine) + symLine="" + wiki.write(comToWrite+"
"+getEq(conLine)+"

\n") + comToWrite="" + if substitution and parse: + subLine=subLine+line.replace("&","&
") + + symLine+=line.strip("\n") + #symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or \ + "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\proof" in lines[i+1]: + substitution=False + symbols=symbols+getSym(symLine) + symLine="" + wiki.write(comToWrite+"
"+getEq(subLine)+"

\n") + comToWrite="" \ No newline at end of file From 0af70f22b894ad7f2dd961f7f85c80c7317a134f Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Thu, 19 May 2016 23:50:19 +0200 Subject: [PATCH 091/402] Improve DLMFtex2Wiki (#44) * Remove duplicate functions in DLMFtex2Wiki.py, import tex2Wiki from DLMFtex2Wiki * Change iterations from jsahlfkjsd in tex2Wiki * Add back modlabel to DLMFtex2Wiki * Add back modlabel to DLMFtex2Wiki.py, fix syntax error * Add back modlabel * Add back modlabel to DLMFtex2Wiki.py * Remove >>head and >>parent messages --- Azeem/src/DLMFtex2Wiki.py | 317 ++++++++++---------------------------- Azeem/src/tex2Wiki.py | 2 +- 2 files changed, 82 insertions(+), 237 deletions(-) diff --git a/Azeem/src/DLMFtex2Wiki.py b/Azeem/src/DLMFtex2Wiki.py index 26bac46..06b4d3e 100644 --- a/Azeem/src/DLMFtex2Wiki.py +++ b/Azeem/src/DLMFtex2Wiki.py @@ -3,181 +3,22 @@ import csv #imported for using csv format import sys #imported for getting args import os #imported for copying file +import tex2Wiki as KLS #Change Accordingly based on project directory. -def isnumber(char): #Function to check if char is a number (assuming 1 character) - return char[0] in "0123456789" def is_number(char): try: "".join(["0"+str(float(char)) if float(char) < 10 else float(char)]) return True except ValueError: return False -def getString(line): #Gets all data within curly braces on a line - #-------Initialization------- - stringWrite="" - getStr=False - pW="" - #---------------------------- - for c in line: - if c=="{" or c=="}": #if there is a curly brace in the line - getStr=not(getStr) #toggle the getStr flag - if c=="}": #no more info needed - break - elif getStr: #if within curly braces - if not(pW==c and c=="-"): #if there is no double dash (makes single dash) - if c!="$": #if not a $ sign - stringWrite+=c #this character is part of the data - else: #replace $ with '' - stringWrite+="\'\'" #add double ' - pW=c #change last character for finding double dashes - return (stringWrite.rstrip('\n').lstrip()) #return the data without newlines and without leading spaces -def getG(line): #gets equation for symbols list - start=True - final="" - for c in line: - if c=="$" and start: - final+="{\\displaystyle " - start=False - elif c=="$": - final+="}" - start=True - else: - final+=c - return(final) -def getEq(line): #Gets all data within constraints,substitutions - #-------Initialization------- - per=1 - stringWrite="" - fEq=False - count=0 - #---------------------------- - for c in line: #read each character - if count>=0 and per!=0: - per+=1 - if c!=" " and c!="%": - per=0 - if c=="{" and per==0: - if count>0: - stringWrite+=c - count+=1 - elif c=="}" and per==0: - count-=1 - if count>0: - stringWrite+=c - elif c=="$" and per==0: #either begin or end equation - fEq=not(fEq)#toggle fEq flag to know if begin or end equation - if fEq:#if begin - stringWrite+="{\\displaystyle " - else:#if end - stringWrite+="}" - elif c=="\n" and per==0:#if newline - stringWrite=stringWrite.strip()#remove all leading and trailing whitespace - - #should above be rstrip?<-------------------------------------------------------------------CHECK THIS - - stringWrite+=c#add the newline character - per+=1 #watch for % signs - elif count>0 and per==0: #not special character - stringWrite+=c #write the character - - return (stringWrite.rstrip().lstrip()) -def getEqP(line): #Gets all data within proofs - per=1 - stringWrite="" - fEq=False - count=0 - length=0 - for c in line: - if fEq and c!=" " and c!="$" and c!="{" and c!="}" and not c.isalpha(): - length+=1 - if count>=0 and per!=0: - per+=1 - if c!=" " and c!="%": - #if c!="%": - per=0 - if c=="{" and per==0: - if count>0: - stringWrite+=c - count+=1 - elif c=="}" and per==0: - count-=1 - if count>0: - stringWrite+=c - elif c=="$" and per==0: - fEq=not(fEq) - if fEq: - stringWrite+="{\\displaystyle " - else: - if length<10: - stringWrite+="}" - else: - stringWrite+="}"+"
" - length=0 - elif c=="\n" and per==0: - stringWrite=stringWrite.strip() - stringWrite+=c - per+=1 - elif count>0 and per==0: - stringWrite+=c - - return (stringWrite.lstrip()) -def getSym(line): #Gets all symbols on a line for symbols list - symList=[] - if line=="": - return symList - symbol="" - symFlag=False - cC=0 - for i in range(0,len(line)): - #if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - c=line[i] - if symFlag: - if c=="{" or c=="[": - cC+=1 - if c!="}" and c!="]": - if c.isalpha(): - symbol+=c - else: - symFlag=False - symList.append(symbol) - symList+=(getSym(symbol)) - symbol="" - else: - cC-=1 - symbol+=c - if i+1==len(line): - p="" - else: - p=line[i+1] - if cC<=0 and p!="{" and p!="[" and p!="@": - symFlag=False - #if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: - symList.append(symbol) - symList+=(getSym(symbol)) - symbol="" - - elif c=="\\": - symFlag=True - elif c=="&" and not (i>line.find("\\begin{array}") and i1: newlabel+=num isNumer=False @@ -186,7 +27,7 @@ def modLabel(label): newlabel+="0"+str(num) num="" isNumer=False - if isnumber(label[i]): + if is_number(label[i]): isNumer=True num+=str(label[i]) else: @@ -197,6 +38,7 @@ def modLabel(label): elif len(num)==1: newlabel+="0"+num return(newlabel) + def DLMF(n): for iterations in range(0,1): try: @@ -288,14 +130,14 @@ def DLMF(n): labels.append("Zeta and Related Functions") sections.append(["Zeta and Related Functions",0]) elif "\\part" in line: - if getString(line)=="BOF": + if KLS.getString(line)=="BOF": parse=False - elif getString(line)=="EOF": + elif KLS.getString(line)=="EOF": parse=True elif parse: stringWrite="\'\'\'" - stringWrite+=getString(line)+"\'\'\'\n" - chapter=getString(line) + stringWrite+=KLS.getString(line)+"\'\'\'\n" + chapter=KLS.getString(line) if startFlag: mainPrepend+=("\n== Sections in "+chapter+" ==\n\n
\n") startFlag=False @@ -304,8 +146,8 @@ def DLMF(n): "column-count:2;-webkit-column-count:2\">\n") head=True elif "\\section" in line: - mainPrepend+=("* [["+secLabel(getString(line))+"|"+getString(line)+"]]\n") - sections.append([getString(line)]) + mainPrepend+=("* [["+KLS.secLabel(KLS.getString(line))+"|"+KLS.getString(line)+"]]\n") + sections.append([KLS.getString(line)]) secCounter=0 eqCounter=0 @@ -315,35 +157,35 @@ def DLMF(n): parse=True secCounter+=1 wiki.write("drmf_bof\n") - wiki.write("\'\'\'"+secLabel(getString(line))+"\'\'\'\n") + wiki.write("\'\'\'"+KLS.secLabel(KLS.getString(line))+"\'\'\'\n") wiki.write("{{DISPLAYTITLE:"+(sections[secCounter][0])+"}}\n") wiki.write("
\n") - wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + wiki.write("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") wiki.write("
[[Zeta_and_Related_Functions#"+ - "Sections_in_"+chapter.replace(" ","_")+"|"+secLabel(sections[secCounter][0])+"]]
\n") - wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+ - "|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + "Sections_in_"+chapter.replace(" ","_")+"|"+KLS.secLabel(sections[secCounter][0])+"]]
\n") + wiki.write("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ + "|"+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n\n\n") head=True - wiki.write("== "+getString(line)+" ==\n") + wiki.write("== "+KLS.getString(line)+" ==\n") elif ("\\section" in lines[(i+1)%len(lines)] or "\\end{document}" in lines[(i+1)%len(lines)]) and parse: wiki.write("
\n") - wiki.write("
<< [["+secLabel(sections[secCounter-1][0])+"|"+secLabel(sections[secCounter-1][0])+"]]
\n") + wiki.write("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") wiki.write("
[[Zeta_and_Related_Functions#"+"Sections_in_" - ""+chapter.replace(" ","_")+"|"+secLabel(sections[secCounter][0])+"]]
\n") - wiki.write("
[["+secLabel(sections[(secCounter+1)%len(sections)][0])+ - "|"+secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") + ""+chapter.replace(" ","_")+"|"+KLS.secLabel(sections[secCounter][0])+"]] \n") + wiki.write("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ + "|"+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n\n\n") wiki.write("drmf_eof\n") sections[secCounter].append(eqCounter) eqCounter=0 elif "\\subsection" in line and parse: - wiki.write("\n== "+getString(line)+" ==\n") + wiki.write("\n== "+KLS.getString(line)+" ==\n") head=True elif "\\paragraph" in line and parse: - wiki.write("\n=== "+getString(line)+" ===\n") + wiki.write("\n=== "+KLS.getString(line)+" ===\n") head=True elif "\\subsubsection" in line and parse: - wiki.write("\n=== "+getString(line)+" ===\n") + wiki.write("\n=== "+KLS.getString(line)+" ===\n") head=True elif "\\begin{equation}" in line and parse: @@ -362,7 +204,7 @@ def DLMF(n): rlabel=rlabel.replace("#",":") rlabel=rlabel.replace("!",":") break - label=modLabel(rlabel) + label=KLS.modLabel(rlabel) labels.append("Formula:"+rlabel) eqs.append("") #wiki.write("\n\n") @@ -371,7 +213,7 @@ def DLMF(n): elif "\\begin{equation}" in line and not parse: sLabel=line.find("\\label{")+7 eLabel=line.find("}",sLabel) - label=modLabel(line[sLabel:eLabel]) + label=KLS.modLabel(line[sLabel:eLabel]) labels.append("*"+label) #special marker eqs.append("") math=True @@ -386,13 +228,13 @@ def DLMF(n): substitution=True math=False subLine="" - #wiki.write("
Substitution(s): "+getEq(line)+"

\n") + #wiki.write("
Substitution(s): "+KLS.getEq(line)+"

\n") elif "\\proof" in line and parse: math=False elif "\\drmfn" in line and parse: math=False if "\\drmfname" in line and parse: - wiki.write("
This formula has the name: "+getString(line)+"

\n") + wiki.write("
This formula has the name: "+KLS.getString(line)+"

\n") elif math and parse: flagM=True eqs[len(eqs)-1]+=line @@ -431,14 +273,14 @@ def DLMF(n): if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1]\ or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: substitution=False - wiki.write("
Substitution(s): "+getEq(subLine)+"

\n") + wiki.write("
Substitution(s): "+KLS.getEq(subLine)+"

\n") if constraint and parse: conLine=conLine+line.replace("&","&
") if "\\end{equation}" in lines[i+1] or "\\substitution" \ in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: constraint=False - wiki.write("
Constraint(s): "+getEq(conLine)+"

\n") + wiki.write("
Constraint(s): "+KLS.getEq(conLine)+"

\n") eqCounter=n endNum=len(labels)-1 @@ -481,7 +323,7 @@ def DLMF(n): label=labels[eqCounter] #if not "DLMF" in label:eqCounter+=1 label=labels[eqCounter] - wiki.write("\'\'\'"+secLabel(label)+"\'\'\'\n") + wiki.write("\'\'\'"+KLS.secLabel(label)+"\'\'\'\n") wiki.write("{{DISPLAYTITLE:"+(labels[eqCounter])+"}}\n") if eqCounter==len(labels)-1: break @@ -489,33 +331,33 @@ def DLMF(n): wiki.write("
\n") if newSec: wiki.write("
" - "<< [["+secLabel(sections[secCount][0]).replace(" ","_")+"|"+secLabel(sections[secCount][0])+"]]
\n") + "<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+KLS.secLabel(sections[secCount][0])+"]]
\n") else: wiki.write("
" - "<< [["+secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+secLabel(labels[eqCounter-1])+"]]
\n") - wiki.write("
[["+secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ - secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+secLabel(sections[secCount+1][0])+"]]
\n") + "<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+KLS.secLabel(labels[eqCounter-1])+"]] \n") + wiki.write("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ + KLS.secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+KLS.secLabel(sections[secCount+1][0])+"]]
\n") #if eqS==sections[secCount][1]: if True: - wiki.write("
[["+secLabel(labels[(eqCounter+1)%(endNum+1)]).replace(" ","_")+ - "|"+secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") + wiki.write("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)]).replace(" ","_")+ + "|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") wiki.write("\n\n") elif eqCounter==endNum: wiki.write("
\n") if newSec: newSec=False - wiki.write("
<< [["+secLabel(sections[secCount][0]).replace(" ","_")+"|"+ - secLabel(sections[secCount][0])+"]]
\n") + wiki.write("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+ + KLS.secLabel(sections[secCount][0])+"]]
\n") else: wiki.write("
" - "<< [["+secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+secLabel(labels[eqCounter-1])+"]]
\n") + "<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+KLS.secLabel(labels[eqCounter-1])+"]]
\n") wiki.write("
[["+ - secLabel(sections[secCount+1][0]).replace(" ","_")+ - "#"+secLabel(labels[eqCounter][len("Formula:"):])+ - "|formula in "+secLabel(sections[secCount+1][0])+ + KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+ + "#"+KLS.secLabel(labels[eqCounter][len("Formula:"):])+ + "|formula in "+KLS.secLabel(sections[secCount+1][0])+ "]]
\n") - wiki.write("
[["+secLabel(labels[(eqCounter+1)%(endNum+1)].replace(" ","_"))+ - "|"+secLabel(labels[(eqCounter+1)%(endNum+1)])+"]]
\n") + wiki.write("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)].replace(" ","_"))+ + "|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]]
\n") wiki.write("\n\n") wiki.write("
{\displaystyle \n") @@ -723,7 +565,7 @@ def DLMF(n): wiki.write("\n
\n") wiki.write("\n== Bibliography==\n\n")#should there be a space between bibliography and ==? - r=unmodLabel(labels[eqCounter]) + r=KLS.unmodlabel(labels[eqCounter]) q=r.find("DLMF:")+5 p=r.find(":",q) section=r[q:p] @@ -741,18 +583,18 @@ def DLMF(n): wiki.write("
\n") if newSec: newSec=False - wiki.write("
<< [["+secLabel(sections[secCount][0]).replace(" ","_")+ - "|"+secLabel(sections[secCount][0])+"]]
\n") + wiki.write("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+ + "|"+KLS.secLabel(sections[secCount][0])+"]]
\n") else: - wiki.write("
<< [["+secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+ - secLabel(labels[eqCounter-1])+"]]
\n") - wiki.write("
[["+secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ - secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+secLabel(sections[secCount+1][0])+"]]
\n") + wiki.write("
<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+ + KLS.secLabel(labels[eqCounter-1])+"]]
\n") + wiki.write("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ + KLS.secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+KLS.secLabel(sections[secCount+1][0])+"]]
\n") #if eqS==sections[secCount][1]: #else: if True: - wiki.write("
[["+secLabel(labels[(eqCounter+1)% - (endNum+1)]).replace(" ","_")+"|"+secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") + wiki.write("
[["+KLS.secLabel(labels[(eqCounter+1)% + (endNum+1)]).replace(" ","_")+"|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") wiki.write("
\n\ndrmf_eof\n") else: #FOR EXTRA EQUATIONS wiki.write("
\n") @@ -764,7 +606,7 @@ def DLMF(n): elif "\\constraint" in line and parse: - #symbols=symbols+getSym(line) + #symbols=symbols+KLS.getSym(line) symLine=line.strip("\n") if hCon: comToWrite=comToWrite+"\n== Constraint(s) ==\n\n" @@ -772,23 +614,23 @@ def DLMF(n): constraint=True math=False conLine="" - #wiki.write("
"+getEq(line)+"

\n") + #wiki.write("
"+KLS.getEq(line)+"

\n") elif "\\substitution" in line and parse: - #symbols=symbols+getSym(line) + #symbols=symbols+KLS.getSym(line) symLine=line.strip("\n") if hSub: comToWrite=comToWrite+"\n== Substitution(s) ==\n\n" hSub=False - #wiki.write("
"+getEq(line)+"

\n") + #wiki.write("
"+KLS.getEq(line)+"

\n") substitution=True math=False subLine="" elif "\\drmfname" in line and parse: math=False - comToWrite="\n== Name ==\n\n
"+getString(line)+"

\n"+comToWrite + comToWrite="\n== Name ==\n\n
"+KLS.getString(line)+"

\n"+comToWrite elif "\\drmfnote" in line and parse: - symbols=symbols+getSym(line) + symbols=symbols+KLS.getSym(line) if hNote: comToWrite=comToWrite+"\n== Note(s) ==\n\n" hNote=False @@ -797,7 +639,7 @@ def DLMF(n): noteLine="" elif "\\proof" in line and parse: - #symbols=symbols+getSym(line) + #symbols=symbols+KLS.getSym(line) symLine=line.strip("\n") if hProof: hProof=False @@ -811,7 +653,7 @@ def DLMF(n): if line[ind:ind+7]=="\\eqref{": pause=True eqR=line[ind:line.find("}",ind)+1] - rLab=getString(eqR) + rLab=KLS.getString(eqR) for l in lLink: if rLab==l[0:l.find("=")-1]: rlabel=l[l.find("=>")+3:l.find("\\n")] @@ -845,9 +687,9 @@ def DLMF(n): if "\\end{equation}" in lines[i+1]: proof=False #symLine+=line.strip("\n") - wiki.write(comToWrite+getEqP(proofLine)+"
\n
\n") + wiki.write(comToWrite+KLS.getEqP(proofLine)+"
\n
\n") comToWrite="" - symbols=symbols+getSym(symLine) + symbols=symbols+KLS.getSym(symLine) symLine="" #wiki.write(line) @@ -855,12 +697,12 @@ def DLMF(n): elif proof: symLine+=line.strip("\n") pauseP=False - #symbols=symbols+getSym(line) + #symbols=symbols+KLS.getSym(line) for ind in range(0,len(line)): if line[ind:ind+7]=="\\eqref{": pause=True eqR=line[ind:line.find("}",ind)+1] - rLab=getString(eqR) + rLab=KLS.getString(eqR) for l in lLink: if rLab==l[0:l.find("=")-1]: rlabel=l[l.find("=>")+3:l.find("\\n")] @@ -891,9 +733,9 @@ def DLMF(n): if "\\end{equation}" in lines[i+1]: proof=False #symLine+=line.strip("\n") - wiki.write(comToWrite+getEqP(proofLine).rstrip("\n")+"\n
\n") + wiki.write(comToWrite+KLS.getEqP(proofLine).rstrip("\n")+"\n
\n") comToWrite="" - symbols=symbols+getSym(symLine) + symbols=symbols+KLS.getSym(symLine) symLine="" elif math: @@ -901,7 +743,7 @@ def DLMF(n): or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1] or "\\drmfnote" in lines[i+1] or "\\drmfname" in lines[i+1]: wiki.write(line.rstrip("\n")) symLine+=line.strip("\n") - symbols=symbols+getSym(symLine) + symbols=symbols+KLS.getSym(symLine) symLine="" wiki.write("\n}\n") else: @@ -909,7 +751,7 @@ def DLMF(n): wiki.write(line) if note and parse: noteLine=noteLine+line - symbols=symbols+getSym(line) + symbols=symbols+KLS.getSym(line) if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] \ or "\\constraint" in lines[i+1] \ or "\\substitution" in lines[i+1] \ @@ -919,31 +761,34 @@ def DLMF(n): noteLine=noteLine[0:noteLine.find("\\emph{")]+"\'\'"+noteLine[noteLine.find("\\emph{")+len("\\emph{"): noteLine.find("}",noteLine.find("\\emph{")+len("\\emph{"))]+"\'\'"+\ noteLine[noteLine.find("}",noteLine.find("\\emph{")+len("\\emph{"))+1:] - comToWrite=comToWrite+"
"+getEq(noteLine)+"

\n" + comToWrite=comToWrite+"
"+KLS.getEq(noteLine)+"

\n" if constraint and parse: conLine=conLine+line.replace("&","&
") symLine+=line.strip("\n") - #symbols=symbols+getSym(line) + #symbols=symbols+KLS.getSym(line) if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] \ or "\\constraint" in lines[i+1]\ or "\\substitution" in lines[i+1] \ or "\\proof" in lines[i+1]: constraint=False - symbols=symbols+getSym(symLine) + symbols=symbols+KLS.getSym(symLine) symLine="" - wiki.write(comToWrite+"
"+getEq(conLine)+"

\n") + wiki.write(comToWrite+"
"+KLS.getEq(conLine)+"

\n") comToWrite="" if substitution and parse: subLine=subLine+line.replace("&","&
") symLine+=line.strip("\n") - #symbols=symbols+getSym(line) + #symbols=symbols+KLS.getSym(line) if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or \ "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\proof" in lines[i+1]: substitution=False - symbols=symbols+getSym(symLine) + symbols=symbols+KLS.getSym(symLine) symLine="" - wiki.write(comToWrite+"
"+getEq(subLine)+"

\n") - comToWrite="" \ No newline at end of file + wiki.write(comToWrite+"
"+KLS.getEq(subLine)+"

\n") + comToWrite="" + +if __name__ == "__main__": + DLMF(0); \ No newline at end of file diff --git a/Azeem/src/tex2Wiki.py b/Azeem/src/tex2Wiki.py index 3c5200d..20f5cd2 100644 --- a/Azeem/src/tex2Wiki.py +++ b/Azeem/src/tex2Wiki.py @@ -293,7 +293,7 @@ def setup_label_links(ofname): def readin(ofname,glossary,mmd): # try: - for jsahlfkjsd in range(0, 1): + for iterations in range(0, 1): tex = open(ofname, 'r') main_file = open(mmd, "r") mainText = main_file.read() From 633742482dfbb441398b8c04744ebc6d0b176c64 Mon Sep 17 00:00:00 2001 From: Philip Wang Date: Thu, 19 May 2016 18:24:23 -0400 Subject: [PATCH 092/402] change wiki.write() to append_text() in DLMFtex2Wiki.py (#45) --- Azeem/src/DLMFtex2Wiki.py | 165 +++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 82 deletions(-) diff --git a/Azeem/src/DLMFtex2Wiki.py b/Azeem/src/DLMFtex2Wiki.py index 06b4d3e..f78f42f 100644 --- a/Azeem/src/DLMFtex2Wiki.py +++ b/Azeem/src/DLMFtex2Wiki.py @@ -39,6 +39,7 @@ def modLabel(label): newlabel+="0"+num return(newlabel) + def DLMF(n): for iterations in range(0,1): try: @@ -108,10 +109,10 @@ def DLMF(n): for i in range(0,len(lines)): line=lines[i] if "\\begin{document}" in line: - #wiki.write("drmf_bof\n") + #KLS.append_text("drmf_bof\n") parse=True elif "\\end{document}" in line: - #wiki.write("\n") + #KLS.append_text("\n") mainPrepend+="\n" mainText="" mainText=mainPrepend+mainText @@ -124,7 +125,7 @@ def DLMF(n): mainWrite.close() main.close() os.system("cp -f ZetaFunctions.mmd.new ZetaFunctions.mmd") - #wiki.write("\ndrmf_eof\n") + #KLS.append_text("\ndrmf_eof\n") parse=False elif "\\title" in line and parse: labels.append("Zeta and Related Functions") @@ -156,42 +157,42 @@ def DLMF(n): if "\\section" in line: parse=True secCounter+=1 - wiki.write("drmf_bof\n") - wiki.write("\'\'\'"+KLS.secLabel(KLS.getString(line))+"\'\'\'\n") - wiki.write("{{DISPLAYTITLE:"+(sections[secCounter][0])+"}}\n") - wiki.write("
") + len(">> \n"):] + if "
" in h: + h = h[0:h.find("
")] + prev = pages[(x - 1) % len(pages)] + # print h + next = pages[(x + 1) % len(pages)] + cur = "Main Page" + header = "\n
\n" + header += "
<< [[" + prev.replace(" ", "_") + "|" + prev + "]]
\n" + header += "
[[" + cur.replace(" ", "_") + "|" + cur + "]]
\n" + header += "
[[" + next.replace(" ", "_") + "|" + next + "]] >>
\n" + header += "
" + + footer = "
\n" + footer += "
<< [[" + prev.replace(" ", "_") + "|" + prev + "]]
\n" + footer += "
[[" + cur.replace(" ", "_") + "|" + cur + "]]
\n" + footer += "
[[" + next.replace(" ", "_") + "|" + next + "]] >>
\n" + footer += "
" + main.write("drmf_bof\n" + title + header + h + footer + "\ndrmf_eof\n") + x += 1 diff --git a/KLS-main-page/list.py b/KLS-main-page/list.py new file mode 100644 index 0000000..1e33e9a --- /dev/null +++ b/KLS-main-page/list.py @@ -0,0 +1,86 @@ +import os +import time + +localtime = time.asctime(time.localtime(time.time())).replace(" ", "_") +os.system("cp main_page.mmd main_page.mmd" + str(localtime)) + + +def compString(a, b): + x = a[0:a.find("|")] + y = b[0:b.find("|")] + if len(x) > len(y): + max = len(y) + ret = False + else: + max = len(x) + ret = True + if True: + for i in range(0, max): + if ord(x[i].lower()) < ord(y[i].lower()): + return True + elif ord(x[i].lower()) > ord(y[i].lower()): + return False + return ret + + +def sumOrd(x): + sum = 0 + for s in x: + sum += ord(s) + return (sum) + + +def sort(x): + ret = [] + ret.append(x[0]) + for i in range(1, len(x)): + if compString(x[i], ret[0]): + ret = [x[i]] + ret + elif compString(ret[len(ret) - 1], x[i]): + ret.append(x[i]) + else: + for p in range(1, len(ret)): + if compString(x[i], ret[p]): + ret = ret[0:p] + [x[i]] + ret[p:] + break + return (ret) + + +'''listFile=open("list.txt","w") +files_in_dir=os.listdir(".") +toWrite=[] +for g in files_in_dir: + if ".new" in g and "Definition:" in g: + g=g[:g.find(".new")] + element="* [["+g+"|"+g[len("Definition:"):]+"]]" + toWrite.append(element) + toWrite=sort(toWrite) +text="" +for g in toWrite: + text+=(g+"\n") +listFile.close() +listFile=open("list.txt","r") +text=listFile.read()''' +main = open("main_page.mmd", "r") +mainText = main.read() +mainLines = mainText.split("\n") +main.close() +toWrite = [] +for z in mainLines: + if "\'\'\'Definition:" in z: + g = z[z.find("\'\'\'Definition:") + len("\'\'\'"):z.find("\'\'\'", z.find("\'\'\'Definition:") + 4)] + element = "* [[" + g + "|" + g[len("Definition:"):] + "]]" + toWrite.append(element) +main = open("main_page.mmd", "w") +s = mainText.find("== Definition Pages ==") +e = mainText.find("= Copyright =") +text = "" +for g in toWrite: + text += (g + "\n") +# print text +# print mainText[:s] +newText = mainText[ + :s] + "== Definition Pages ==\n\n
\n" + text + "
\n\n" + mainText[ + e:] +main.write(newText) +main.close() diff --git a/KLS-main-page/modMain.py b/KLS-main-page/modMain.py new file mode 100644 index 0000000..3ec6d8f --- /dev/null +++ b/KLS-main-page/modMain.py @@ -0,0 +1,117 @@ +file = open("main_page.mmd", "r") +import csv + +lines = file.read() +lines = lines.replace("The LaTeX DLMF macro \'\'\'\\", "The LaTeX DLMF and DRMF macro \'\'\'\\") +file.close() +file = open("main_page.mmd", "w") +flag = True +gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') +toWrite = "" +i = 0 + + +def atSort(l): + return (sorted(l, key=lambda x: x.count("@"))) + + +def remOpt(p): + parse = True + ret = "" + for x in p: + if parse: + if x == "[": + parse = False + else: + ret += x + else: + if x == "]": + parse = True + return ret + + +def findAllPos(g): + key = g[3] + orig = g[0] + r = key[:key.find("|")] + key = key[key.find("|") + 1:] + keys = key.split(":") + ret = [] + for x in keys: + if x == "F" or x == "FO" or x == "O" or x == "O1": + if orig.find("@") != -1: + ret.append(orig[0:orig.find("@")]) + if x == "O": + ret.append(orig) + else: + ret.append(orig) + if x == "FnO": # remove optional parameters + if orig.find("@") != -1: + ret.append(remOpt(orig[0:orig.find("@")])) + else: + ret.append(remOpt(orig)) + if x == "P" or x == "PO": + ret.append(orig.replace("@@", "@")) + if x == "PnO": # remove optional parameters + ret.append(remOpt(orig.replace("@@", "@"))) + if x == "nP" or x == "nPO" or x == "PS" or x == "O2": + ret.append(orig) + if x == "nPnO": # remove optional paramters + ret.append(remOpt(orig)) + if "fo" in x: + ret.append(orig.replace("@@@", "@" * int(x[2]))) + return atSort(ret), r + + +categories = open("Categories.txt", "r") +cats = categories.readlines() +categories.close() +for x in range(0, len(cats)): + cats[x] = cats[x].strip() +while flag: + n = lines.find("\'\'\'Definition:", i) + if n == -1: + flag = False + # elif lines.find("This macro can be called in the following way")1: plural =1; if count=1: plural=0 + if count == 1: plural = 0 + for t in cats: + if s + " -" in t: + category = "This macro is in the category of" + t[t.find("-") + 2:] + break + new = category + "\n\nIn math mode, this macro can be called in the following way" + "s" * plural + ":\n\n" + for q in range(0, len(listCalls)): + c = listCalls[q] + new += ":\'\'\'" + c + "\'\'\'" + " produces {\\displaystyle " + c + "}
\n" + # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + toWrite += new + "\n" + i = lines.find("These are defined by", p) +file.write(toWrite + lines[i:]) diff --git a/KLS-main-page/symbolsList2.py b/KLS-main-page/symbolsList2.py new file mode 100644 index 0000000..a79c590 --- /dev/null +++ b/KLS-main-page/symbolsList2.py @@ -0,0 +1,373 @@ +def getSym(line): # Gets all symbols on a line for symbols list + line = line.replace("\n", " ") + symList = [] + if line == "": + return symList + symbol = "" + symFlag = False + argFlag = False + cC = 0 + for i in range(0, len(line)): + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + # print symbol + c = line[i] + if symFlag: + if c == "{" or c == "[": + cC += 1 + argFlag = True + if c != "}" and c != "]": + if argFlag or c.isalpha(): + symbol += c + else: + symFlag = False + argFlag = False + symList.append(symbol) + symList += (getSym(symbol)) + symbol = "" + else: + cC -= 1 + symbol += c + if i + 1 == len(line): + p = "" + else: + p = line[i + 1] + if cC == 0 and p != "{" and p != "[" and p != "@": + symFlag = False + # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: + # print(symbol,p) + symList.append(symbol) + # if symbol=="binom{n}{k}":print line + symList += (getSym(symbol)) + argFlag = False + symbol = "" + + elif c == "\\": + symFlag = True + + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + # print symbol + symList.append(symbol) + # if "ctsbigqHermite" in line: + # print(symList) + symList += getSym(symbol) + return (symList) + + +import csv + +# files_in_dir=os.listdir(".") +mainPage = open("main_page.mmd", "r") +mainLines = mainPage.read() +mainLines = mainLines[mainLines.find("drmf_bof"):mainLines.rfind("drmf_eof") + len("drmf_eof\n")] +mainPage.close() +main = open("main_page.mmd", "w") +mainPages = mainLines.split("drmf_eof") +if mainPages[-1].strip() == "": + mainPages = mainPages[0:len(mainPages) - 1] +print len(mainPages) +glossary = open('new.Glossary.csv', 'rb') +gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') +lGlos = glossary.readlines() +wiki = "" +for g in mainPages: + if not "\'\'\'Definition:" in g: + h = g.replace("drmf_eof", "") + h = g.replace("drmf_bof", "") + toWrite = "drmf_bof" + h + "drmf_eof\n" + main.write(toWrite) + else: + h = g.replace("drmf_eof", "") + h = g.replace("drmf_bof", "") + h = h.strip("\n") + sflag1 = False + sflag2 = False + if h.find("== Symbols List ==") != -1: + toWrite = h[0:h.find("== Symbols List ==")] + h = toWrite + else: + sflag1 = True + if h.find("drmf_foot") == -1: + toWrite = h + sflag2 = True + else: + toWrite = h[0:h.find("
"):]+t[0:t.find("
")] + t = t.replace("\n", " ") + # if "Symbol" in t:print t + symbols = getSym(t) + # print symbols + # if "qsin" in g:print t,symbols + # if "Neumann" in g:print t,"\n",symbols + if True: + toWrite += ("== Symbols List ==\n\n") + newSym = [] + # if "09.07:04" in label: + # print(symbols) + for x in symbols: + flagA = True + # if x not in newSym: + cN = 0 + cC = 0 + flag = True + ArgCx = 0 + for z in x: + if z.isalpha() and flag: + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgCx += 1 + noA = x[:cN] + for y in newSym: + cN = 0 + cC = 0 + ArgC = 0 + flag = True + for z in y: + if z.isalpha() and flag: + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgC += 1 + + if y[:cN].strip() == noA.strip(): # and ArgC==ArgCx: + flagA = False + # print(x,y) + break + if flagA: + newSym.append(x) + newSym.reverse() + # print newSym + # if "14.27:02" in label: + # print newSym + symF = False + finSym = [] + for s in range(len(newSym) - 1, -1, -1): + # print(newSym[s]) + symbolPar = "\\" + newSym[s] + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + for z in symbolPar: + if z == "@": + parFlag = True + elif z.isalpha(): + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + + if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: + if symbolPar.find("[") == -1: + symbol = symbolPar[0:symbolPar.find("{")] + elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): + symbol = symbolPar[0:symbolPar.find("[")] + else: + symbol = symbolPar[0:symbolPar.find("{")] + else: + symbol = symbolPar + # if "14.27:02" in label:print symbolPar,symbol + numArg = parCx + numPar = ArgCx + gFlag = False + checkFlag = False + get = False + gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + preG = "" + symbol = symbol.strip("}").strip("]") + for S in gCSV: + G = S + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + ind = G[0].find("@") + if ind == -1: + ind = len(G[0]) - 1 + for z in G[0]: + if z == "@": + parFlag = True + elif z.isalpha(): + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ + len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + checkFlag = True + get = True + preG = S + # if "14.27:02" in label:print "ok" + symbol + + # if "9.07:04" in label:print symbol,numPar,numArg,parCx,ArgCx + + elif checkFlag: + get = True + checkFlag = False + if (get): + if get: + G = preG + # print preG + get = False + checkFlag = False + # if "14.27:02" in label:print "yes"+symbol + if True: + if symbolPar.find("@") != -1: + Q = symbolPar[:symbolPar.find("@")] + else: + Q = symbolPar + listArgs = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": + argFlag = True + elif Q[o] == "}" or z == "]": + argFlag = False + listArgs.append(ap) + ap = "" + else: + ap += Q[o] + '''websiteU=g[g.find("http://"):].strip("\n") + k=0 + websites=[] + for r in range(0,len(websiteU)): + if websiteU[r]==",": + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + k=r + + + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + websiteF="" + for d in websites: + websiteF=websiteF+" ["+d+" "+d+"]"''' + # websiteF=G[4].strip("\n") + websiteF = "" + # print("(",G,")") + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + + # p1=Q + # if Q.find("@")!=-1: + # p1=Q[:Q.find("@")] + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + # if checkFlag: + # print(p1) + new1 = "" + new2 = "" + pause = False + mathF = True + '''for k in range(0,len(p1)): + if p1[k]=="$": + if mathF: + new1+="{\\displaystyle " + else: + new1+="}" + mathF=not mathF + + elif p1[k]=="#" and p1[k+1].isdigit(): + pause=True + elif pause: + num=int(p1[k]) + #letter=chr(num+96) + letter=listArgs[num-1] + new1+=letter + pause=False + + else: + new1+=p1[k]''' + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF + else: + new2 += p2[k] + # p1=new1 + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + # gFlag=True + # if not symF: + # symF=True + # wiki.write("[") + # else: + # wiki.write("
\n") + # wiki.write("[") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + # wiki.write("] : ") + # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + # wiki.write(" : [") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write("] ")''' + + # preG=S + if not gFlag: + del newSym[s] + + gFlag = True + # finSym.reverse() + for y in finSym: + # print(finSym) + if gFlag: + gFlag = False + toWrite += ("[" + y) + else: + toWrite += ("
\n[" + y) + + toWrite += ("\n
\ndrmf_eof\n\n") + if sflag2: + toWrite += "\n" + main.write(toWrite) From 2bdb8455a232fbf6dbf5c23a6046697409f3f7ae Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 20 Jul 2016 14:58:36 -0400 Subject: [PATCH 184/402] Fix issues with Azeem's code --- main_page/main_page.mmd | 4943 +++++++++++++++++++++++++++++++++ main_page/src/KLS.py | 19 + main_page/src/__init__.py | 0 main_page/src/headers.py | 64 + main_page/src/list.py | 59 + main_page/src/main.py | 8 + main_page/src/mod_main.py | 125 + main_page/src/symbols_list.py | 285 ++ main_page/symbolsList.py~ | 278 ++ main_page/tex2Wiki.py~ | 966 +++++++ 10 files changed, 6747 insertions(+) create mode 100644 main_page/main_page.mmd create mode 100644 main_page/src/KLS.py create mode 100644 main_page/src/__init__.py create mode 100644 main_page/src/headers.py create mode 100644 main_page/src/list.py create mode 100644 main_page/src/main.py create mode 100644 main_page/src/mod_main.py create mode 100644 main_page/src/symbols_list.py create mode 100644 main_page/symbolsList.py~ create mode 100644 main_page/tex2Wiki.py~ diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd new file mode 100644 index 0000000..ff6a93c --- /dev/null +++ b/main_page/main_page.mmd @@ -0,0 +1,4943 @@ +drmf_bof +'''Main Page''' +The '''NIST Digital Repository of Mathematical Formulae''' is designed for +a mathematically literate audience and should + +# facilitate interaction among a [[community]] of mathematicians and scientists interested in [[wikipedia:compendia|compendia]] formulae data for '''orthogonal polynomials and special functions'''; +# be [[expandable]], allowing the input of new formulae from the literature; +# represent the context-free full [[semantic]] information concerning individual formulas; +# have a user friendly, consistent, and hyperlinkable viewpoint and authoring [[perspective]]; +# contain easily [[Special:MathSearch|searchable]] mathematics; and +# take advantage of modern [[MathML]] tools for easy to read, scalably rendered content driven mathematics. + +For more information see [http://link.springer.com/chapter/10.1007%2F978-3-319-08434-3_30 Digital Repository of Mathematical Formulae] or [http://arxiv.org/abs/1404.6519 arXiv:1404.6519]. + +== Sample Seeding Project Implementations == + +DLMF: [[Zeta and Related Functions]] + +KLS and KLSadd: [[Orthogonal Polynomials]] + +== Useful Pages == + +[[GitHub|How to Upload Your Project to GitHub]] + +[[Wikilabs|How to get access to Wikilabs/Wikitech]] + +[https://github.com/DRMF/DRMF/blob/master/doc/upload_and_connect.MD Upload and Connect] + +== Sample formula home pages with DLMF proofs given == + +
+* [[Formula:DLMF:25.2:E9]] +* [[Formula:DLMF:25.5:E2]] +* [[Formula:DLMF:25.5:E4]] +* [[Formula:DLMF:25.5:E6]] +* [[Formula:DLMF:25.8:E7]] +* [[Formula:DLMF:25.8:E8]] +* [[Formula:DLMF:25.11:E7]] +* [[Formula:DLMF:25.11:E10]] +* [[Formula:DLMF:25.11:E11]] +* [[Formula:DLMF:25.11:E15]] +* [[Formula:DLMF:25.11:E17]] +* [[Formula:DLMF:25.11:E24]] +* [[Formula:DLMF:25.11:E27]] +* [[Formula:DLMF:25.11:E28]] +* [[Formula:DLMF:25.11:E30]] +* [[Formula:DLMF:25.11:E31]] +* [[Formula:DLMF:25.11:E35]] +
+ += Digital Repository of Mathematical Formulae = +
+# [[Algebraic and Analytic Methods]] +# [[Asymptotic Approximations]] +# [[Numerical Methods]] +# [[Elementary Functions]] +# [[Gamma Function]] +# [[Exponential, Logarithmic, Sine, and Cosine Integrals]] +# [[Error Functions, Dawson’s and Fresnel Integrals]] +# [[Incomplete Gamma and Related Functions]] +# [[Airy and Related Functions]] +# [[Bessel Functions]] +# [[Struve and Related Functions]] +# [[Parabolic Cylinder Functions]] +# [[Confluent Hypergeometric Functions]] +# [[Legendre and Related Functions]] +# [[Hypergeometric Function]] +# [[Generalized Hypergeometric Functions and Meijer G-Function|Generalized Hypergeometric Functions and Meijer ''G''-Function]] +# [[q-Hypergeometric and Related Functions|''q''-Hypergeometric and Related Functions]] +# [[Orthogonal Polynomials]] +# [[Elliptic Integrals]] +# [[Theta Functions]] +# [[Multidimensional Theta Functions]] +# [[Jacobian Elliptic Functions]] +# [[Weierstrass Elliptic and Modular Functions]] +# [[Bernoulli and Euler Polynomials]] +# [[Zeta and Related Functions]] +# [[Combinatorial Analysis]] +# [[Functions of Number Theory]] +# [[Mathieu Functions and Hill’s Equation]] +# [[Lamé Functions]] +# [[Spheroidal Wave Functions]] +# [[Heun Functions]] +# [[Painlevé Transcendents]] +# [[Coulomb Functions]] +# [[3j,6j,9j Symbols|''3j,6j,9j'' Symbols]] +# [[Functions of Matrix Argument]] +# [[Integrals with Coalescing Saddles]] +
+ +== Definition Pages == + +
+* [[Definition:AffqKrawtchouk|AffqKrawtchouk]] +* [[Definition:AlSalamCarlitzI|AlSalamCarlitzI]] +* [[Definition:AlSalamCarlitzII|AlSalamCarlitzII]] +* [[Definition:AlSalamIsmail|AlSalamIsmail]] +* [[Definition:AntiDer|AntiDer]] +* [[Definition:BesselPolyIIparam|BesselPolyIIparam]] +* [[Definition:BesselPolyTheta|BesselPolyTheta]] +* [[Definition:bigqJacobiIVparam|bigqJacobiIVparam]] +* [[Definition:bigqLaguerre|bigqLaguerre]] +* [[Definition:bigqLegendre|bigqLegendre]] +* [[Definition:CiglerqChebyT|CiglerqChebyT]] +* [[Definition:CiglerqChebyU|CiglerqChebyU]] +* [[Definition:ctsbigqHermite|ctsbigqHermite]] +* [[Definition:ctsdualqHahn|ctsdualqHahn]] +* [[Definition:ctsqHahn|ctsqHahn]] +* [[Definition:ctsqJacobi|ctsqJacobi]] +* [[Definition:ctsqLaguerre|ctsqLaguerre]] +* [[Definition:ctsqLegendre|ctsqLegendre]] +* [[Definition:f|f]] +* [[Definition:GenHermite|GenHermite]] +* [[Definition:GottliebLaguerre|GottliebLaguerre]] +* [[Definition:Int|Int]] +* [[Definition:JacksonqBesselII|JacksonqBesselII]] +* [[Definition:JacksonqBesselIII|JacksonqBesselIII]] +* [[Definition:littleqLegendre|littleqLegendre]] +* [[Definition:lrselection|lrselection]] +* [[Definition:monicAlSalamCarlitzI|monicAlSalamCarlitzI]] +* [[Definition:monicAlSalamCarlitzII|monicAlSalamCarlitzII]] +* [[Definition:monicAlSalamChihara|monicAlSalamChihara]] +* [[Definition:monicAskeyWilson|monicAskeyWilson]] +* [[Definition:monicBesselPoly|monicBesselPoly]] +* [[Definition:monicbigqJacobi|monicbigqJacobi]] +* [[Definition:monicbigqLaguerre|monicbigqLaguerre]] +* [[Definition:monicbigqLegendre|monicbigqLegendre]] +* [[Definition:monicCharlier|monicCharlier]] +* [[Definition:monicChebyT|monicChebyT]] +* [[Definition:monicChebyU|monicChebyU]] +* [[Definition:monicctsbigqHermite|monicctsbigqHermite]] +* [[Definition:monicctsdualHahn|monicctsdualHahn]] +* [[Definition:monicctsdualqHahn|monicctsdualqHahn]] +* [[Definition:monicctsHahn|monicctsHahn]] +* [[Definition:monicctsqHahn|monicctsqHahn]] +* [[Definition:monicctsqHermite|monicctsqHermite]] +* [[Definition:monicctsqJacobi|monicctsqJacobi]] +* [[Definition:monicctsqLaguerre|monicctsqLaguerre]] +* [[Definition:monicctsqLegendre|monicctsqLegendre]] +* [[Definition:monicctsqUltra|monicctsqUltra]] +* [[Definition:monicdiscrqHermiteI|monicdiscrqHermiteI]] +* [[Definition:monicdiscrqHermiteII|monicdiscrqHermiteII]] +* [[Definition:monicdualHahn|monicdualHahn]] +* [[Definition:monicdualqHahn|monicdualqHahn]] +* [[Definition:monicdualqKrawtchouk|monicdualqKrawtchouk]] +* [[Definition:monicHahn|monicHahn]] +* [[Definition:monicHermite|monicHermite]] +* [[Definition:monicJacobi|monicJacobi]] +* [[Definition:monicKrawtchouk|monicKrawtchouk]] +* [[Definition:monicLaguerre|monicLaguerre]] +* [[Definition:monicLegendrePoly|monicLegendrePoly]] +* [[Definition:moniclittleqJacobi|moniclittleqJacobi]] +* [[Definition:moniclittleqLaguerre|moniclittleqLaguerre]] +* [[Definition:moniclittleqLegendre|moniclittleqLegendre]] +* [[Definition:monicMeixner|monicMeixner]] +* [[Definition:monicMeixnerPollaczek|monicMeixnerPollaczek]] +* [[Definition:monicpseudoJacobi|monicpseudoJacobi]] +* [[Definition:monicqBesselPoly|monicqBesselPoly]] +* [[Definition:monicqCharlier|monicqCharlier]] +* [[Definition:monicqKrawtchouk|monicqKrawtchouk]] +* [[Definition:monicqLaguerre|monicqLaguerre]] +* [[Definition:monicqMeixner|monicqMeixner]] +* [[Definition:monicqMeixnerPollaczek|monicqMeixnerPollaczek]] +* [[Definition:monicqRacah|monicqRacah]] +* [[Definition:monicqtmqKrawtchouk|monicqtmqKrawtchouk]] +* [[Definition:monicRacah|monicRacah]] +* [[Definition:monicStieltjesWigert|monicStieltjesWigert]] +* [[Definition:monicUltra|monicUltra]] +* [[Definition:monicWilson|monicWilson]] +* [[Definition:NeumannFactor|NeumannFactor]] +* [[Definition:normctsdualHahnStilde|normctsdualHahnStilde]] +* [[Definition:normctsHahnptilde|normctsHahnptilde]] +* [[Definition:normJacobiR|normJacobiR]] +* [[Definition:normWilsonWtilde|normWilsonWtilde]] +* [[Definition:poly|poly]] +* [[Definition:qBesselPoly|qBesselPoly]] +* [[Definition:qCharlier|qCharlier]] +* [[Definition:qDigamma|qDigamma]] +* [[Definition:qHyperrWs|qHyperrWs]] +* [[Definition:qExpKLS|qExpKLS]] +* [[Definition:qexpKLS|qexpKLS]] +* [[Definition:qcosKLS|qcosKLS]] +* [[Definition:qMeixner|qMeixner]] +* [[Definition:qKrawtchouk|qKrawtchouk]] +* [[Definition:monicqHahn|monicqHahn]] +* [[Definition:dualqHahn|dualqHahn]] +* [[Definition:dualqKrawtchouk|dualqKrawtchouk]] +* [[Definition:littleqLaguerre|littleqLaguerre]] +* [[Definition:qsinKLS|qsinKLS]] +* [[Definition:qSinKLS|qSinKLS]] +* [[Definition:qCosKLS|qCosKLS]] +* [[Definition:Wilson|Wilson]] +* [[Definition:Racah|Racah]] +* [[Definition:ctsdualHahn|ctsdualHahn]] +* [[Definition:ctsHahn|ctsHahn]] +* [[Definition:Hahn|Hahn]] +* [[Definition:dualHahn|dualHahn]] +* [[Definition:qRacah|qRacah]] +* [[Definition:normctsdualqHahnptilde|normctsdualqHahnptilde]] +* [[Definition:normctsqHahnptilde|normctsqHahnptilde]] +* [[Definition:qHahn|qHahn]] +* [[Definition:AlSalamChihara|AlSalamChihara]] +* [[Definition:qinvAlSalamChihara|qinvAlSalamChihara]] +* [[Definition:monicqinvAlSalamChihara|monicqinvAlSalamChihara]] +* [[Definition:monicAffqKrawtchouk|monicAffqKrawtchouk]] +* [[Definition:qMeixnerPollaczek|qMeixnerPollaczek]] +* [[Definition:qtmqKrawtchouk|qtmqKrawtchouk]] +* [[Definition:qLaguerre|qLaguerre]] +* [[Definition:ctsqHermite|ctsqHermite]] +* [[Definition:StieltjesWigert|StieltjesWigert]] +* [[Definition:discrqHermiteI|discrqHermiteI]] +* [[Definition:discrqHermiteII|discrqHermiteII]] +* [[Definition:StieltjesConstants|StieltjesConstants]] +* [[Definition:PolylogarithmS|PolylogarithmS]] +* [[Definition:HarmonicNumber|HarmonicNumber]] +* [[Definition:LucasL|LucasL]] +* [[Definition:HurwitzLerchPhi|HurwitzLerchPhi]] +* [[Definition:GoldenRatio|GoldenRatio]] +* [[Definition:WhitPsi|WhitPsi]] +* [[Definition:GompertzConstant|GompertzConstant]] +* [[Definition:rabbitConstant|rabbitConstant]] +* [[Definition:FibonacciNumber|FibonacciNumber]] +* [[Definition:Fibonacci|Fibonacci]] +
+ += Copyright = + +Pursuant to U.S. Code, Title 17, Chapter 1, Section 105: +
+Copyright protection under this title is not available for any +work of the United States Government, but the United States Government is not +precluded from receiving and holding copyrights transferred to it by assignment, +bequest, or otherwise. +
+the National Institute of Standards and Technology (NIST), United States Department +of Commerce, this website, a work of the United States Government, is in the public +domain. + += Disclaimer = + +While NIST has made every effort to ensure the accuracy and reliability of the +information in the DLMF, the DLMF is expressly provided “AS-IS.” NIST makes NO WARRANTY +OF ANY TYPE, including no warranties of merchantability or fitness for a particular +purpose. NIST makes no warranties or representations as to the correctness, accuracy, +or reliability of the DLMF. As a condition of using the DLMF, you explicitly release +NIST from any and all liabilities for any damage of any type that may result from +errors or omissions in the DLMF. + +Certain products, commercial and otherwise, are mentioned in the DLMF. These mentions +are for informational purposes only, and do not imply recommendation or endorsement by NIST. + += Privacy and Security Notice = + +The information we receive depends upon what you do when visiting our site. We collect +no personally identifying information about you when you visit our site, unless you +choose to provide that information to us. + +''If you visit our site to read or download information, we collect and store'' '''only''' +''the following information:'' + +* The name of the internet domain from which you accessed our site and the Internet Protocol (IP) address or host name which may or may not identify a specific computer. +* The date and time you access our site. +* The pages you visit. +* The Internet address of the website from which you linked directly to our site. + +This information may be preserved in web access logs for an indefinite period of time. +The data are used to prevent security breaches, insure the integrity of data on our +servers, and summarize usage of our systems. We do not collect information through use +of cookies. Other than the information described above which is collected from all +visitors, we do not collect any information online from children. + +''If you identify yourself by sending an E-mail containing personal information:'' + +* You also may decide to send us personally identifying information (for example, your mailing address) in an electronic mail message or web-based form requesting that information or products be mailed to you. Information collected in this manner is used solely for responding to your request unless noted in the specific web page where your request is made. + +'''Note:''' NIST is ''not'' responsible for the privacy practices employed by non-NIST sites that may link to or from the NIST website. +drmf_eof +drmf_bof +'''Definition:AffqKrawtchouk''' +
+
<< [[Definition:Fibonacci|Definition:Fibonacci]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\AffqKrawtchouk''' represents the Affine q-Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\AffqKrawtchouk{n}''' produces {\displaystyle \AffqKrawtchouk{n}}
+:'''\AffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \AffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\AffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \AffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by + +{\displaystyle +\AffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}:=\qHyperrphis{3}{2}@@{q^{-n},0,q^{-x}}{pq,q^{-N}}{q}{q} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:Fibonacci|Definition:Fibonacci]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
+
+drmf_eof +drmf_bof +'''Definition:AlSalamCarlitzI''' +
+
<< [[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamCarlitzII|Definition:AlSalamCarlitzII]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\AlSalamCarlitzI''' represents the Al-Salam-Carlitz I polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\AlSalamCarlitzI{a}{n}''' produces {\displaystyle \AlSalamCarlitzI{a}{n}}
+:'''\AlSalamCarlitzI{a}{n}@{x}{q}''' produces {\displaystyle \AlSalamCarlitzI{a}{n}@{x}{q}}
+ +These are defined by +{\displaystyle +\AlSalamCarlitzI{a}{n}@{x}{q}:=(-a)^nq^{\binom{n}{2}}\,\qHyperrphis{2}{1}@@{q^{-n},x^{-1}}{0}{q}{\frac{qx}{a}}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamCarlitzII|Definition:AlSalamCarlitzII]] >>
+
+drmf_eof +drmf_bof +'''Definition:AlSalamCarlitzII''' +
+
<< [[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamIsmail|Definition:AlSalamIsmail]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\AlSalamCarlitzII''' represents the Al-Salam-Carlitz II polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\AlSalamCarlitzII{a}{n}''' produces {\displaystyle \AlSalamCarlitzII{a}{n}}
+:'''\AlSalamCarlitzII{a}{n}@{x}{q}''' produces {\displaystyle \AlSalamCarlitzII{a}{n}@{x}{q}}
+ +These are defined by +{\displaystyle +\AlSalamCarlitzII{a}{n}@{x}{q}:= +(-a)^nq^{-\binom{n}{2}}\,\qHyperrphis{2}{0}@@{q^{-n},x}{-}{q}{\frac{q^n}{a}}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamIsmail|Definition:AlSalamIsmail]] >>
+
+drmf_eof +drmf_bof +'''Definition:AlSalamIsmail''' +
+
<< [[Definition:AlSalamCarlitzII|Definition:AlSalamCarlitzII]]
+
[[Main_Page|Main Page]]
+
[[Definition:AntiDer|Definition:AntiDer]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\AlSalamIsmail''' represents the Al-Salam Ismail q polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\AlSalamIsmail{n}''' produces {\displaystyle \AlSalamIsmail{n}}
+:'''\AlSalamIsmail{n}@{x}{s}{q}''' produces {\displaystyle \AlSalamIsmail{n}@{x}{s}{q}}
+ +These are defined by + +\AlSalamIsmail{2n}@{x^{1/2}}{a}{b}:=q^{n^2-n}(-b)^n +\qHyperrphis{4}{3}@@{q^{-n},-q^{1-n}/a,-aq^n,q^{n+1}} +{-q,q^{1/2},-q^{1/2}} +{q}{\frac{xaq}{b}} +
+ +and + + +\AlSalamIsmail{2n+1}@{x^{1/2}}{a}{b}=q^{n^2-n}\frac{(-b)^n(1+aq^n)(1-q^{n+1})x^{1/2}}{(1-q)} +\qHyperrphis{4}{3}@@{q^{-n},-q^{1-n}/a,-aq^{n+1},q^{n+2}} +{-q,q^{3/2},-q^{3/2}} +{q}{\frac{xaq}{b}}. + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail {\displaystyle U_{n}}] : Al-Salam Ismail polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:AlSalamCarlitzII|Definition:AlSalamCarlitzII]]
+
[[Main_Page|Main Page]]
+
[[Definition:AntiDer|Definition:AntiDer]] >>
+
+drmf_eof +drmf_bof +'''Definition:AntiDer''' +
+
<< [[Definition:AlSalamIsmail|Definition:AlSalamIsmail]]
+
[[Main_Page|Main Page]]
+
[[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]] >>
+
+ +In the DRMF, the LaTeX semantic macro '''\AntiDer''' represents the anti-derivative notation, +which is defined as follows. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\AntiDer''' produces {\displaystyle \AntiDer}
+:'''\AntiDer@{x}{f(x)}''' produces {\displaystyle \AntiDer@{x}{f(x)}}
+ +These are defined by +{\displaystyle +\AntiDer@{f(x)}{x}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AntiDer {\displaystyle \int f(x){\mathrm d}\!x}] : semantic antiderivative : [http://drmf.wmflabs.org/wiki/Definition:AntiDer http://drmf.wmflabs.org/wiki/Definition:AntiDer] +
+
<< [[Definition:AlSalamIsmail|Definition:AlSalamIsmail]]
+
[[Main_Page|Main Page]]
+
[[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]] >>
+
+drmf_eof +drmf_bof +'''Definition:BesselPolyIIparam''' +
+
<< [[Definition:AntiDer|Definition:AntiDer]]
+
[[Main_Page|Main Page]]
+
[[Definition:BesselPolyTheta|Definition:BesselPolyTheta]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\BesselPolyIIparam''' represents the Bessel polynomial with two-parameters. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\BesselPolyIIparam{n}''' produces {\displaystyle \BesselPolyIIparam{n}}
+:'''\BesselPolyIIparam{n}@{x}{a}{b}''' produces {\displaystyle \BesselPolyIIparam{n}@{x}{a}{b}}
+ +These are defined by +{\displaystyle +\BesselPolyIIparam{n}@{x}{a}{b}:=\BesselPoly{n}@{2b^{-1}x}{a} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters {\displaystyle y_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]
+[http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1] +
+
<< [[Definition:AntiDer|Definition:AntiDer]]
+
[[Main_Page|Main Page]]
+
[[Definition:BesselPolyTheta|Definition:BesselPolyTheta]] >>
+
+drmf_eof +drmf_bof +'''Definition:BesselPolyTheta''' +
+
<< [[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]]
+
[[Main_Page|Main Page]]
+
[[Definition:bigqJacobiIVparam|Definition:bigqJacobiIVparam]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\BesselPolyTheta''' represents the Bessel polynomial \theta_nwith two-parameters. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\BesselPolyTheta{n}''' produces {\displaystyle \BesselPolyTheta{n}}
+:'''\BesselPolyTheta{n}@{x}{a}{b}''' produces {\displaystyle \BesselPolyTheta{n}@{x}{a}{b}}
+ +These are defined by +{\displaystyle +\BesselPolyTheta{n}@{x}{a}{b}:=x^n\BesselPolyIIparam{n}@{x^{-1}}{a}{b} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta {\displaystyle \theta_{n}}] : Bessel polynomial with two parameters {\displaystyle \theta_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta]
+[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters {\displaystyle y_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam] +
+
<< [[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]]
+
[[Main_Page|Main Page]]
+
[[Definition:bigqJacobiIVparam|Definition:bigqJacobiIVparam]] >>
+
+drmf_eof +drmf_bof +'''Definition:bigqJacobiIVparam''' +
+
<< [[Definition:BesselPolyTheta|Definition:BesselPolyTheta]]
+
[[Main_Page|Main Page]]
+
[[Definition:bigqLaguerre|Definition:bigqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\bigqJacobiIVparam''' represents the Big q-Jacobi polynomial with four-parameters. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\bigqJacobiIVparam{n}''' produces {\displaystyle \bigqJacobiIVparam{n}}
+:'''\bigqJacobiIVparam{n}@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \bigqJacobiIVparam{n}@{x}{a}{b}{c}{d}{q}}
+ +These are defined by +{\displaystyle +\bigqJacobiIVparam{n}@{x}{a}{b}{c}{d}{q}:=\qHyperrphis{3}{2}@@{q^{-n},abq^{n+1},ac^{-1}qx}{aq,-ac^{-1}dq}{q}{q} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:BesselPolyTheta|Definition:BesselPolyTheta]]
+
[[Main_Page|Main Page]]
+
[[Definition:bigqLaguerre|Definition:bigqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:bigqLaguerre''' +
+
<< [[Definition:bigqJacobiIVparam|Definition:bigqJacobiIVparam]]
+
[[Main_Page|Main Page]]
+
[[Definition:bigqLegendre|Definition:bigqLegendre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\bigqLaguerre''' represents big q-Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\bigqLaguerre{n}''' produces {\displaystyle \bigqLaguerre{n}}
+:'''\bigqLaguerre{n}@{x}{a}{b}{q}''' produces {\displaystyle \bigqLaguerre{n}@{x}{a}{b}{q}}
+ +These are defined by +{\displaystyle +\bigqLaguerre{n}@{x}{a}{b}{q}:=\qHyperrphis{3}{2}@@{q^{-n},0,x}{aq,bq}{q}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:bigqJacobiIVparam|Definition:bigqJacobiIVparam]]
+
[[Main_Page|Main Page]]
+
[[Definition:bigqLegendre|Definition:bigqLegendre]] >>
+
+drmf_eof +drmf_bof +'''Definition:bigqLegendre''' +
+
<< [[Definition:bigqLaguerre|Definition:bigqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:CiglerqChebyT|Definition:CiglerqChebyT]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\bigqLegendre''' represents the big q-Legendre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\bigqLegendre{n}''' produces {\displaystyle \bigqLegendre{n}}
+:'''\bigqLegendre{n}@{x}{c}{q}''' produces {\displaystyle \bigqLegendre{n}@{x}{c}{q}}
+ +These are defined by +{\displaystyle +\bigqLegendre{n}@{x}{c}{q}:=\qHyperrphis{3}{2}@@{q^{-n},q^{n+1},x}{q,cq}{q}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:bigqLaguerre|Definition:bigqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:CiglerqChebyT|Definition:CiglerqChebyT]] >>
+
+drmf_eof +drmf_bof +'''Definition:CiglerqChebyT''' +
+
<< [[Definition:bigqLegendre|Definition:bigqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:CiglerqChebyU|Definition:CiglerqChebyU]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\CiglerqChebyT''' represents the Cigler q-Chebyshev polynomial of the first kind. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\CiglerqChebyT{n}''' produces {\displaystyle \CiglerqChebyT{n}}
+:'''\CiglerqChebyT{n}@{x}{s}{q}''' produces {\displaystyle \CiglerqChebyT{n}@{x}{s}{q}}
+ +These are defined by + +{\displaystyle +\CiglerqChebyT{n}@{x}{s}{q}:=(-s)^{\frac12 n} \bigqJacobiIVparam{n}@{(-qs)^{-\frac12} x}{q^{-\frac12}}{q^{-\frac12}}{1}{1}{q}. +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT {\displaystyle T_{n}}] : Cigler {\displaystyle q}-Chebyshev polynomial {\displaystyle T} : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam] +
+
<< [[Definition:bigqLegendre|Definition:bigqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:CiglerqChebyU|Definition:CiglerqChebyU]] >>
+
+drmf_eof +drmf_bof +'''Definition:CiglerqChebyU''' +
+
<< [[Definition:CiglerqChebyT|Definition:CiglerqChebyT]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsbigqHermite|Definition:ctsbigqHermite]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\CiglerqChebyU''' represents the Cigler q-Chebyshev polynomial of the second kind. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\CiglerqChebyU{n}''' produces {\displaystyle \CiglerqChebyU{n}}
+:'''\CiglerqChebyU{n}@{x}{s}{q}''' produces {\displaystyle \CiglerqChebyU{n}@{x}{s}{q}}
+ +These are defined by + +{\displaystyle +\CiglerqChebyU{n}@{x}{s}{q}:=(-q^{-2}s)^{\frac12 n} \frac{1-q^{n+1}}{1-q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU {\displaystyle U_{n}}] : Cigler {\displaystyle q}-Chebyshev polynomial {\displaystyle U} : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU] +
+
<< [[Definition:CiglerqChebyT|Definition:CiglerqChebyT]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsbigqHermite|Definition:ctsbigqHermite]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsbigqHermite''' +
+
<< [[Definition:CiglerqChebyU|Definition:CiglerqChebyU]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsdualqHahn|Definition:ctsdualqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsbigqHermite''' represents continuous big q-Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsbigqHermite{n}''' produces {\displaystyle \ctsbigqHermite{n}}
+:'''\ctsbigqHermite{n}@{x}{a}{q}''' produces {\displaystyle \ctsbigqHermite{n}@{x}{a}{q}}
+ +These are defined by +{\displaystyle +\ctsbigqHermite{n}@{x}{a}{q}:=a^{-n}\,\qHyperrphis{3}{2}@@{q^{-n},a\expe^{i\theta},a\expe^{-i\theta}}{0,0}{q}{q}. + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +
+
<< [[Definition:CiglerqChebyU|Definition:CiglerqChebyU]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsdualqHahn|Definition:ctsdualqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsdualqHahn''' +
+
<< [[Definition:ctsbigqHermite|Definition:ctsbigqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqHahn|Definition:ctsqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsdualqHahn''' represents the continuous dual q-Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsdualqHahn{n}''' produces {\displaystyle \ctsdualqHahn{n}}
+:'''\ctsdualqHahn{n}@{x}{a}{b}{c}{q}''' produces {\displaystyle \ctsdualqHahn{n}@{x}{a}{b}{c}{q}}
+ +These are defined by + +\frac{a^n\ctsdualqHahn{n}@{x}{a}{b}{c}{q}}{\qPochhammer{ab,ac}{q}{n}} +:=\qHyperrphis{3}{2}@@{q^{-n},a\expe^{i\theta},a\expe^{-i\theta}}{ab,ac}{q}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +
+
<< [[Definition:ctsbigqHermite|Definition:ctsbigqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqHahn|Definition:ctsqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsqHahn''' +
+
<< [[Definition:ctsdualqHahn|Definition:ctsdualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqJacobi|Definition:ctsqJacobi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsqHahn''' represents the continuous q-Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsqHahn{n}''' produces {\displaystyle \ctsqHahn{n}}
+:'''\ctsqHahn{n}@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \ctsqHahn{n}@{x}{a}{b}{c}{d}{q}}
+ +These are defined by +{\displaystyle +\frac{(a\expe^{i\phi})^n\ctsqHahn{n}@{x}{a}{b}{c}{d}{q}}{\qPochhammer{ab\expe^{2i\phi},ac,ad}{q}{n}} +{}:=\qHyperrphis{4}{3}@@{q^{-n},abcdq^{n-1},a\expe^{i(\theta+2\phi)},a\expe^{-i\theta}}{ab\expe^{2i\phi},ac,ad}{q}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:ctsdualqHahn|Definition:ctsdualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqJacobi|Definition:ctsqJacobi]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsqJacobi''' +
+
<< [[Definition:ctsqHahn|Definition:ctsqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqLaguerre|Definition:ctsqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsqJacobi''' represents the continuous q-Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsqJacobi{\alpha}{\beta}{m}''' produces {\displaystyle \ctsqJacobi{\alpha}{\beta}{m}}
+:'''\ctsqJacobi{\alpha}{\beta}{m}@{x}{q}''' produces {\displaystyle \ctsqJacobi{\alpha}{\beta}{m}@{x}{q}}
+ +These are defined by
+ +\ctsqJacobi{\alpha}{\beta}{n}@{x}{q} +:=\frac{\qPochhammer{q^{\alpha+1}}{q}{n}}{\qPochhammer{q}{q}{n}} +\qHyperrphis{4}{3}@@{q^{-n},q^{n+\alpha+\beta+1},q^{\frac{1}{2}\alpha+\frac{1}{4}}\expe^{i\theta},q^{\frac{1}{2}\alpha+\frac{1}{4}}\expe^{-i\theta}} +{q^{\alpha+1},-q^{\frac{1}{2}(\alpha+\beta+1)},-q^{\frac{1}{2}(\alpha+\beta+2)}}{q}{q} + + +with x=\cos@@{\theta}. +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2] +
+
<< [[Definition:ctsqHahn|Definition:ctsqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqLaguerre|Definition:ctsqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsqLaguerre''' +
+
<< [[Definition:ctsqJacobi|Definition:ctsqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqLegendre|Definition:ctsqLegendre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsqLaguerre''' represents the continuous q-Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsqLaguerre{\alpha}{n}''' produces {\displaystyle \ctsqLaguerre{\alpha}{n}}
+:'''\ctsqLaguerre{\alpha}{n}@{x}{q}''' produces {\displaystyle \ctsqLaguerre{\alpha}{n}@{x}{q}}
+ +These are defined by +{\displaystyle +\ctsqLaguerre{\alpha}{n}@{x}{q}:=\frac{\qPochhammer{q^{\alpha+1}}{q}{n}}{\qPochhammer{q}{q}{n}}\,\qHyperrphis{3}{2}@@{q^{-n},q^{\frac{1}{2}\alpha+\frac{1}{4}}\expe^{i\theta},q^{\frac{1}{2}\alpha+\frac{1}{4}}\expe^{-i\theta}}{q^{\alpha+1},0}{q}{q}. + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +
+
<< [[Definition:ctsqJacobi|Definition:ctsqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqLegendre|Definition:ctsqLegendre]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsqLegendre''' +
+
<< [[Definition:ctsqLaguerre|Definition:ctsqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:f|Definition:f]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsqLegendre''' represents the continuous q-Legendre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsqLegendre{n}''' produces {\displaystyle \ctsqLegendre{n}}
+:'''\ctsqLegendre{n}@{x}{q}''' produces {\displaystyle \ctsqLegendre{n}@{x}{q}}
+:'''\ctsqLegendre{n}@@{x}{q}''' produces {\displaystyle \ctsqLegendre{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\dualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}:=\qHyperrphis{3}{2}@@{q^{-n},q^{-x},cq^{x-N}}{q^{-N},0}{q}{q} +}. +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:ctsqLaguerre|Definition:ctsqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:f|Definition:f]] >>
+
+drmf_eof +drmf_bof +'''Definition:f''' +
+
<< [[Definition:ctsqLegendre|Definition:ctsqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:GenHermite|Definition:GenHermite]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\f''' represents Function. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\f{f}''' produces {\displaystyle \f{f}}
+:'''\f{f}@{x}''' produces {\displaystyle \f{f}@{x}}
+ +These are defined by + + +\GenGegenbauer{\alpha}{\beta}{2m}@{x}:={\rm const}\times \Jacobi{\alpha}{\beta}{m}@{2x^2-1}, +
+ + +\GenGegenbauer{\alpha}{\beta}{2m+1}@{x}:={\rm const}\times x\,\Jacobi{\alpha}{\beta+1}{m}@{2x^2-1}. +
+ +Then for \alpha,\beta>-1, we have the orthogonality relation
+ + +\int_{-1}^1 \GenGegenbauer{\alpha}{\beta}{m}@{x}\,\GenGegenbauer{\alpha}{\beta}{n}@{x}\,|x|^{2\beta+1} +(1-x^2)^\alpha\,dx=0, + + +for m\ne n. + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:f {\displaystyle {f}}] : function : [http://drmf.wmflabs.org/wiki/Definition:f http://drmf.wmflabs.org/wiki/Definition:f]
+[http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer {\displaystyle S^{(\alpha,\beta)}_{n}}] : Generalized Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer]
+[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv] +
+
<< [[Definition:ctsqLegendre|Definition:ctsqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:GenHermite|Definition:GenHermite]] >>
+
+drmf_eof +drmf_bof +'''Definition:GenHermite''' +
+
<< [[Definition:f|Definition:f]]
+
[[Main_Page|Main Page]]
+
[[Definition:GottliebLaguerre|Definition:GottliebLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\GenHermite''' represents the generalized Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\GenHermite[\alpha]{n}''' produces {\displaystyle \GenHermite[\alpha]{n}}
+:'''\GenHermite{n}''' produces {\displaystyle \GenHermite{n}}
+:'''\GenHermite[\alpha]{n}@{x}''' produces {\displaystyle \GenHermite[\alpha]{n}@{x}}
+:'''\GenHermite{n}@{x}''' produces {\displaystyle \GenHermite{n}@{x}}
+ +These are defined by + + +\GenHermite[\mu]{2m}@{x}:={\rm const}\times \Laguerre[\mu-\frac12]{m}@{x^2},\qquad +
+ +\GenHermite[\mu]{2m+1}@{x}:={\rm \const}\times x \Laguerre[\mu+\frac12]{m}@{x^2}. + +
+Then for \mu>-\tfrac12 we have orthogonality relation + +\int_{-\infty}^{\infty} \GenHermite[\mu]{m}@{x} \GenHermite[\mu]{n}@{x} |x|^{2\mu}e^{-x^2} dx, +=0 +
+for m\ne n. + +== Bibliography == +
+Page 156 of [[Bibliography#CHI|'''CHI''']]. +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:GenHermite {\displaystyle H_n^{\mu}}] : generalized Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenHermite http://drmf.wmflabs.org/wiki/Definition:GenHermite]
+[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv] +
+
<< [[Definition:f|Definition:f]]
+
[[Main_Page|Main Page]]
+
[[Definition:GottliebLaguerre|Definition:GottliebLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:GottliebLaguerre''' +
+
<< [[Definition:GenHermite|Definition:GenHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:Int|Definition:Int]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\GottliebLaguerre''' represents the Gottlieb-Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\GottliebLaguerre{n}''' produces {\displaystyle \GottliebLaguerre{n}}
+:'''\GottliebLaguerre{n}@{x}''' produces {\displaystyle \GottliebLaguerre{n}@{x}}
+ +These are defined by + +{\displaystyle +\GottliebLaguerre{n}@{x}:=e^{-n\la} \Meixner{n}@{x}{1}{e^{-\la}}. +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre {\displaystyle l_{n}}] : Gottlieb-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre]
+[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9] +
+
<< [[Definition:GenHermite|Definition:GenHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:Int|Definition:Int]] >>
+
+drmf_eof +drmf_bof +'''Definition:Int''' +
+
<< [[Definition:GottliebLaguerre|Definition:GottliebLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:JacksonqBesselII|Definition:JacksonqBesselII]] >>
+
+ +In the DRMF, the LaTeX semantic macro '''\Int''' represents the definite integral notation, +which is defined as follows. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\Int{a}{b}''' produces {\displaystyle \Int{a}{b}}
+:'''\Int{a}{b}@{x}{f(x)}''' produces {\displaystyle \Int{a}{b}@{x}{f(x)}}
+ +These are defined by +{\displaystyle +\JacksonqBesselI{\nu}@{z}{q}:=\frac{\qPochhammer{q^{\nu+1}}{q}{\infty}}{\qPochhammer{q}{q}{\infty}} +\left(\frac{z}{2}\right)^{\nu}\,\qHyperrphis{2}{1}@@{0,0}{q^{\nu+1}}{q}{-\frac{z^2}{4}}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:Int {\displaystyle \int_{a}^{b}f(x){\mathrm d}\!x}] : semantic definite integral : [http://drmf.wmflabs.org/wiki/Definition:Int http://drmf.wmflabs.org/wiki/Definition:Int]
+[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI {\displaystyle J^{(1)}_{q}}] : Jackson {\displaystyle q}-Bessel function 1 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:GottliebLaguerre|Definition:GottliebLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:JacksonqBesselII|Definition:JacksonqBesselII]] >>
+
+drmf_eof +drmf_bof +'''Definition:JacksonqBesselII''' +
+
<< [[Definition:Int|Definition:Int]]
+
[[Main_Page|Main Page]]
+
[[Definition:JacksonqBesselIII|Definition:JacksonqBesselIII]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\JacksonqBesselII''' represents the Jackson q-Bessel function 2. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\JacksonqBesselII{\nu}''' produces {\displaystyle \JacksonqBesselII{\nu}}
+:'''\JacksonqBesselII{\nu}@{z}{q}''' produces {\displaystyle \JacksonqBesselII{\nu}@{z}{q}}
+ +These are defined by + +{\displaystyle +\JacksonqBesselII{\nu}@{z}{q}:=\frac{\qPochhammer{q^{\nu+1}}{q}{\infty}}{\qPochhammer{q}{q}{\infty}} +\left(\frac{z}{2}\right)^{\nu}\,\qHyperrphis{0}{1}@@{-}{q^{\nu+1}}{q}{-\frac{q^{\nu+1}z^2}{4}}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII {\displaystyle J^{(2)}_{q}}] : Jackson {\displaystyle q}-Bessel function 2 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:Int|Definition:Int]]
+
[[Main_Page|Main Page]]
+
[[Definition:JacksonqBesselIII|Definition:JacksonqBesselIII]] >>
+
+drmf_eof +drmf_bof +'''Definition:JacksonqBesselIII''' +
+
<< [[Definition:JacksonqBesselII|Definition:JacksonqBesselII]]
+
[[Main_Page|Main Page]]
+
[[Definition:littleqLegendre|Definition:littleqLegendre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\JacksonqBesselIII''' represents the Jackson q-Bessel function 3. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\JacksonqBesselIII{\nu}''' produces {\displaystyle \JacksonqBesselIII{\nu}}
+:'''\JacksonqBesselIII{\nu}@{z}{q}''' produces {\displaystyle \JacksonqBesselIII{\nu}@{z}{q}}
+ +These are defined by + +{\displaystyle +\littleqLaguerre{n}@{x}{a}{q}:=\qHyperrphis{2}{1}@@{q^{-n},0}{aq}{q}{qx}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII {\displaystyle J^{(3)}_{q}}] : Jackson/Hahn-Exton {\displaystyle q}-Bessel function 3 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:JacksonqBesselII|Definition:JacksonqBesselII]]
+
[[Main_Page|Main Page]]
+
[[Definition:littleqLegendre|Definition:littleqLegendre]] >>
+
+drmf_eof +drmf_bof +'''Definition:littleqLegendre''' +
+
<< [[Definition:JacksonqBesselIII|Definition:JacksonqBesselIII]]
+
[[Main_Page|Main Page]]
+
[[Definition:lrselection|Definition:lrselection]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\littleqLegendre''' represents the little q-Legendre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\littleqLegendre{m}''' produces {\displaystyle \littleqLegendre{m}}
+:'''\littleqLegendre{m}@{x}{q}''' produces {\displaystyle \littleqLegendre{m}@{x}{q}}
+ +These are defined by +{\displaystyle +\littleqLegendre{n}@{x}{q}:=\qHyperrphis{2}{1}@@{q^{-n},q^{n+1}}{q}{q}{qx}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:JacksonqBesselIII|Definition:JacksonqBesselIII]]
+
[[Main_Page|Main Page]]
+
[[Definition:lrselection|Definition:lrselection]] >>
+
+drmf_eof +drmf_bof +'''Definition:lrselection''' +
+
<< [[Definition:littleqLegendre|Definition:littleqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAlSalamCarlitzI|Definition:monicAlSalamCarlitzI]] >>
+
+ +For the sake of compactness, we use the abbreviated '''\lrselection''' notation in a number of formulas. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following way: + +:'''\lrselection''' produces {\displaystyle \lrselection}
+ +These are defined by + +{\displaystyle +\AffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}=\frac{1}{\qPochhammer{pq,q^{-N}}{q}{n}}\monicAffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}. +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:Lrselection {\displaystyle \left\{\begin{matrix}x\end{matrix}\right\}}] : bracketed generalization of {\displaystyle \pm} : [http://drmf.wmflabs.org/wiki/Definition:Lrselection http://drmf.wmflabs.org/wiki/Definition:Lrselection]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk] +
+
<< [[Definition:littleqLegendre|Definition:littleqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAlSalamCarlitzI|Definition:monicAlSalamCarlitzI]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicAlSalamCarlitzI''' +
+
<< [[Definition:lrselection|Definition:lrselection]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAlSalamCarlitzII|Definition:monicAlSalamCarlitzII]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicAlSalamCarlitzI''' represents the monic q Al-Salam Carlitz I polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicAlSalamCarlitzI{a}{n}''' produces {\displaystyle \monicAlSalamCarlitzI{a}{n}}
+:'''\monicAlSalamCarlitzI{a}{n}@{x}{q}''' produces {\displaystyle \monicAlSalamCarlitzI{a}{n}@{x}{q}}
+:'''\monicAlSalamCarlitzI{a}{n}@@{x}{q}''' produces {\displaystyle \monicAlSalamCarlitzI{a}{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\AlSalamCarlitzI{a}{n}@{x}{q}:=\monicAlSalamCarlitzI{a}{n}@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI {\displaystyle {\widehat U}^{(\alpha)}_{n}}] : monic Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI]
+[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI] +
+
<< [[Definition:lrselection|Definition:lrselection]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAlSalamCarlitzII|Definition:monicAlSalamCarlitzII]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicAlSalamCarlitzII''' +
+
<< [[Definition:monicAlSalamCarlitzI|Definition:monicAlSalamCarlitzI]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAlSalamChihara|Definition:monicAlSalamChihara]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicAlSalamCarlitzII''' represents the monic q Al-Salam Carlitz II polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicAlSalamCarlitzII{a}{n}''' produces {\displaystyle \monicAlSalamCarlitzII{a}{n}}
+:'''\monicAlSalamCarlitzII{a}{n}@{x}{q}''' produces {\displaystyle \monicAlSalamCarlitzII{a}{n}@{x}{q}}
+:'''\monicAlSalamCarlitzII{a}{n}@@{x}{q}''' produces {\displaystyle \monicAlSalamCarlitzII{a}{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\AlSalamCarlitzII{a}{n}@{x}{q}=:\monicAlSalamCarlitzII{a}{n}@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII {\displaystyle {\widehat V}^{(n)}_{\alpha}}] : monic Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII]
+[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII] +
+
<< [[Definition:monicAlSalamCarlitzI|Definition:monicAlSalamCarlitzI]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAlSalamChihara|Definition:monicAlSalamChihara]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicAlSalamChihara''' +
+
<< [[Definition:monicAlSalamCarlitzII|Definition:monicAlSalamCarlitzII]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAskeyWilson|Definition:monicAskeyWilson]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicAlSalamChihara''' represents the monic Al-Salam Chihara q polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicAlSalamChihara{n}''' produces {\displaystyle \monicAlSalamChihara{n}}
+:'''\monicAlSalamChihara{n}@{x}{a}{b}{q}''' produces {\displaystyle \monicAlSalamChihara{n}@{x}{a}{b}{q}}
+:'''\monicAlSalamChihara{n}@@{x}{a}{b}{q}''' produces {\displaystyle \monicAlSalamChihara{n}@@{x}{a}{b}{q}}
+ +These are defined by + +{\displaystyle +\AlSalamChihara{n}@{x}{a}{b}{q}=:2^n\monicAlSalamChihara{n}@{x}{a}{b}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara]
+[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara] +
+
<< [[Definition:monicAlSalamCarlitzII|Definition:monicAlSalamCarlitzII]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAskeyWilson|Definition:monicAskeyWilson]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicAskeyWilson''' +
+
<< [[Definition:monicAlSalamChihara|Definition:monicAlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicBesselPoly|Definition:monicBesselPoly]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicAskeyWilson''' represents the monic Askey Wilson polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicAskeyWilson{n}''' produces {\displaystyle \monicAskeyWilson{n}}
+:'''\monicAskeyWilson{n}@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \monicAskeyWilson{n}@{x}{a}{b}{c}{d}{q}}
+:'''\monicAskeyWilson{n}@@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \monicAskeyWilson{n}@@{x}{a}{b}{c}{d}{q}}
+ +These are defined by + +{\displaystyle +\AskeyWilson{n}@{x}{a}{b}{c}{d}{q}=:2^n\qPochhammer{abcdq^{n-1}}{q}{n}\monicAskeyWilson{n}@{x}{a}{b}{c}{d}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson {\displaystyle {\widehat p}_{n}}] : monic Askey-Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson]
+[http://dlmf.nist.gov/18.28#E1 {\displaystyle p_{n}}] : Askey-Wilson polynomial : [http://dlmf.nist.gov/18.28#E1 http://dlmf.nist.gov/18.28#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicAlSalamChihara|Definition:monicAlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicBesselPoly|Definition:monicBesselPoly]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicBesselPoly''' +
+
<< [[Definition:monicAskeyWilson|Definition:monicAskeyWilson]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicbigqJacobi|Definition:monicbigqJacobi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicBesselPoly''' represents the monic Bessel polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicBesselPoly{n}''' produces {\displaystyle \monicBesselPoly{n}}
+:'''\monicBesselPoly{n}@{x}{a}''' produces {\displaystyle \monicBesselPoly{n}@{x}{a}}
+:'''\monicBesselPoly{n}@@{x}{a}''' produces {\displaystyle \monicBesselPoly{n}@@{x}{a}}
+ +These are defined by +{\displaystyle +\BesselPoly{n}@{x}{a}=:\frac{\pochhammer{n+a+1}{n}}{2^n}\monicBesselPoly{n}@{x}{a} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly {\displaystyle {\widehat y}_{n}}] : monic Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly]
+[http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicAskeyWilson|Definition:monicAskeyWilson]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicbigqJacobi|Definition:monicbigqJacobi]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicbigqJacobi''' +
+
<< [[Definition:monicBesselPoly|Definition:monicBesselPoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicbigqLaguerre|Definition:monicbigqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicbigqJacobi''' represents the monic big q Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicbigqJacobi{n}''' produces {\displaystyle \monicbigqJacobi{n}}
+:'''\monicbigqJacobi{n}@{x}{a}{b}{c}{q}''' produces {\displaystyle \monicbigqJacobi{n}@{x}{a}{b}{c}{q}}
+:'''\monicbigqJacobi{n}@@{x}{a}{b}{c}{q}''' produces {\displaystyle \monicbigqJacobi{n}@@{x}{a}{b}{c}{q}}
+ +These are defined by + +{\displaystyle +\bigqJacobi{n}@{x}{a}{b}{c}{q}=:\frac{\qPochhammer{abq^{n+1}}{q}{n}}{\qPochhammer{aq,cq}{q}{n}}\monicbigqJacobi{n}@{x}{a}{b}{c}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobi {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobi http://drmf.wmflabs.org/wiki/Definition:bigqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicBesselPoly|Definition:monicBesselPoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicbigqLaguerre|Definition:monicbigqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicbigqLaguerre''' +
+
<< [[Definition:monicbigqJacobi|Definition:monicbigqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicbigqLegendre|Definition:monicbigqLegendre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicbigqLaguerre''' represents the monic big q Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicbigqLaguerre{n}''' produces {\displaystyle \monicbigqLaguerre{n}}
+:'''\monicbigqLaguerre{n}@{x}{a}{b}{q}''' produces {\displaystyle \monicbigqLaguerre{n}@{x}{a}{b}{q}}
+:'''\monicbigqLaguerre{n}@@{x}{a}{b}{q}''' produces {\displaystyle \monicbigqLaguerre{n}@@{x}{a}{b}{q}}
+ +These are defined by + +{\displaystyle +\bigqLaguerre{n}@{x}{a}{b}{q}=:\frac{1}{\qPochhammer{aq,bq}{q}{n}}\monicbigqLaguerre{n}@{x}{a}{b}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicbigqJacobi|Definition:monicbigqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicbigqLegendre|Definition:monicbigqLegendre]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicbigqLegendre''' +
+
<< [[Definition:monicbigqLaguerre|Definition:monicbigqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicCharlier|Definition:monicCharlier]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicbigqLegendre''' represents the monic big q polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicbigqLegendre{n}''' produces {\displaystyle \monicbigqLegendre{n}}
+:'''\monicbigqLegendre{n}@{x}{c}{q}''' produces {\displaystyle \monicbigqLegendre{n}@{x}{c}{q}}
+:'''\monicbigqLegendre{n}@@{x}{c}{q}''' produces {\displaystyle \monicbigqLegendre{n}@@{x}{c}{q}}
+ +These are defined by + +{\displaystyle +\bigqLegendre{n}@{x}{c}{q}=:\frac{\qPochhammer{q^{n+1}}{q}{n}}{\qPochhammer{q,cq}{q}{n}}\monicbigqLegendre{n}@{x}{c}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicbigqLaguerre|Definition:monicbigqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicCharlier|Definition:monicCharlier]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicCharlier''' +
+
<< [[Definition:monicbigqLegendre|Definition:monicbigqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicChebyT|Definition:monicChebyT]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicCharlier''' represents the monic Charlier polynomial monic p. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicCharlier{n}''' produces {\displaystyle \monicCharlier{n}}
+:'''\monicCharlier{n}@{x}{a}''' produces {\displaystyle \monicCharlier{n}@{x}{a}}
+:'''\monicCharlier{n}@@{x}{a}''' produces {\displaystyle \monicCharlier{n}@@{x}{a}}
+ +These are defined by + +{\displaystyle +\Charlier{n}@{x}{a}=:\left(-\frac{1}{a}\right)^n\monicCharlier{n}@{x}{a} +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicCharlier {\displaystyle {\widehat C}_{n}}] : monic Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicCharlier http://drmf.wmflabs.org/wiki/Definition:monicCharlier]
+[http://dlmf.nist.gov/18.19#T1.t1.r11 {\displaystyle C_{n}}] : Charlier polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r11 http://dlmf.nist.gov/18.19#T1.t1.r11] +
+
<< [[Definition:monicbigqLegendre|Definition:monicbigqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicChebyT|Definition:monicChebyT]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicChebyT''' +
+
<< [[Definition:monicCharlier|Definition:monicCharlier]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicChebyU|Definition:monicChebyU]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicChebyT''' represents the monic monic Chebyshev polynomial first kind. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicChebyT{n}''' produces {\displaystyle \monicChebyT{n}}
+:'''\monicChebyT{n}@{x}''' produces {\displaystyle \monicChebyT{n}@{x}}
+:'''\monicChebyT{n}@@{x}''' produces {\displaystyle \monicChebyT{n}@@{x}}
+ +These are defined by + +{\displaystyle +\ChebyT{n}@{x}:=2^n\monicChebyT{n}@{x} +} +for n\ne 1 and \ChebyT{1}@{x}=\monicChebyT{1}@{x}=x. +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicChebyT {\displaystyle {\widehat T}_{n}}] : monic Chebyshev polynomial of the first kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyT http://drmf.wmflabs.org/wiki/Definition:monicChebyT]
+[http://dlmf.nist.gov/18.3#T1.t1.r8 {\displaystyle T_{n}}] : Chebyshev polynomial of the first kind : [http://dlmf.nist.gov/18.3#T1.t1.r8 http://dlmf.nist.gov/18.3#T1.t1.r8] +
+
<< [[Definition:monicCharlier|Definition:monicCharlier]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicChebyU|Definition:monicChebyU]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicChebyU''' +
+
<< [[Definition:monicChebyT|Definition:monicChebyT]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsbigqHermite|Definition:monicctsbigqHermite]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicChebyU''' represents the monic Chebyshev polynomial second kind. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicChebyU{n}''' produces {\displaystyle \monicChebyU{n}}
+:'''\monicChebyU{n}@{x}''' produces {\displaystyle \monicChebyU{n}@{x}}
+:'''\monicChebyU{n}@@{x}''' produces {\displaystyle \monicChebyU{n}@@{x}}
+ +These are defined by + +{\displaystyle +\ChebyU{n}@{x}:=2^n\monicChebyU{n}@{x} +}. +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicChebyU {\displaystyle {\widehat U}_{n}}] : monic Chebyshev polynomial of the second kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyU http://drmf.wmflabs.org/wiki/Definition:monicChebyU]
+[http://dlmf.nist.gov/18.3#T1.t1.r11 {\displaystyle U_{n}}] : Chebyshev polynomial of the second kind : [http://dlmf.nist.gov/18.3#T1.t1.r11 http://dlmf.nist.gov/18.3#T1.t1.r11] +
+
<< [[Definition:monicChebyT|Definition:monicChebyT]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsbigqHermite|Definition:monicctsbigqHermite]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsbigqHermite''' +
+
<< [[Definition:monicChebyU|Definition:monicChebyU]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsdualHahn|Definition:monicctsdualHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsbigqHermite''' represents the monic continuous big q polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsbigqHermite{n}''' produces {\displaystyle \monicctsbigqHermite{n}}
+:'''\monicctsbigqHermite{n}@{x}{a}{q}''' produces {\displaystyle \monicctsbigqHermite{n}@{x}{a}{q}}
+:'''\monicctsbigqHermite{n}@@{x}{a}{q}''' produces {\displaystyle \monicctsbigqHermite{n}@@{x}{a}{q}}
+ +These are defined by + +{\displaystyle +\ctsbigqHermite{n}@{x}{a}{q}=:2^n\monicctsbigqHermite{n}@{x}{a}{q} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite] +
+
<< [[Definition:monicChebyU|Definition:monicChebyU]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsdualHahn|Definition:monicctsdualHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsdualHahn''' +
+
<< [[Definition:monicctsbigqHermite|Definition:monicctsbigqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsdualqHahn|Definition:monicctsdualqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsdualHahn''' represents the monic continuous dual Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsdualHahn{n}''' produces {\displaystyle \monicctsdualHahn{n}}
+:'''\monicctsdualHahn{n}@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \monicctsdualHahn{n}@{x^2}{a}{b}{c}{d}}
+:'''\monicctsdualHahn{n}@@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \monicctsdualHahn{n}@@{x^2}{a}{b}{c}{d}}
+ +These are defined by + +{\displaystyle +\ctsdualHahn{n}@{x^2}{a}{b}{c}=:(-1)^n\monicctsdualHahn{n}@{x^2}{a}{b}{c} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn {\displaystyle {\widehat S}_{n}}] : monic continuous dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn]
+[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3] +
+
<< [[Definition:monicctsbigqHermite|Definition:monicctsbigqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsdualqHahn|Definition:monicctsdualqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsdualqHahn''' +
+
<< [[Definition:monicctsdualHahn|Definition:monicctsdualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsHahn|Definition:monicctsHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsdualqHahn''' represents the monic continuous dual q Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsdualqHahn{n}''' produces {\displaystyle \monicctsdualqHahn{n}}
+:'''\monicctsdualqHahn{n}@{x^2}{a}{b}{c}''' produces {\displaystyle \monicctsdualqHahn{n}@{x^2}{a}{b}{c}}
+:'''\monicctsdualqHahn{n}@@{x^2}{a}{b}{c}''' produces {\displaystyle \monicctsdualqHahn{n}@@{x^2}{a}{b}{c}}
+ +These are defined by + +{\displaystyle +\ctsdualqHahn{n}@{x}{a}{b}{c}{q}=:2^n\monicctsdualqHahn{n}@{x}{a}{b}{c}{q} +} +
+
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn] +
+
<< [[Definition:monicctsdualHahn|Definition:monicctsdualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsHahn|Definition:monicctsHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsHahn''' +
+
<< [[Definition:monicctsdualqHahn|Definition:monicctsdualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqHahn|Definition:monicctsqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsHahn''' represents the monic continuous Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsHahn{n}''' produces {\displaystyle \monicctsHahn{n}}
+:'''\monicctsHahn{n}@{x}{a}{b}{c}{d}''' produces {\displaystyle \monicctsHahn{n}@{x}{a}{b}{c}{d}}
+:'''\monicctsHahn{n}@@{x}{a}{b}{c}{d}''' produces {\displaystyle \monicctsHahn{n}@@{x}{a}{b}{c}{d}}
+ +These are defined by + +{\displaystyle +\ctsHahn{n}@{x}{a}{b}{c}{d}=:\frac{\pochhammer{n+a+b+c+d-1}{n}}{n!}\monicctsHahn{n}@{x}{a}{b}{c}{d} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsHahn {\displaystyle {\widehat p}_{n}}] : monic continuous Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsHahn http://drmf.wmflabs.org/wiki/Definition:monicctsHahn]
+[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicctsdualqHahn|Definition:monicctsdualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqHahn|Definition:monicctsqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsqHahn''' +
+
<< [[Definition:monicctsHahn|Definition:monicctsHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqHermite|Definition:monicctsqHermite]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsqHahn''' represents the monic continuous q Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsqHahn{n}''' produces {\displaystyle \monicctsqHahn{n}}
+:'''\monicctsqHahn{n}@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \monicctsqHahn{n}@{x}{a}{b}{c}{d}{q}}
+:'''\monicctsqHahn{n}@@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \monicctsqHahn{n}@@{x}{a}{b}{c}{d}{q}}
+ +These are defined by + +{\displaystyle +\ctsqHahn{n}@{x}{a}{b}{c}{d}{q}=:2^n\qPochhammer{abcdq^{n-1}}{q}{n}\monicctsqHahn{n}@{x}{a}{b}{c}{d}{q} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicctsHahn|Definition:monicctsHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqHermite|Definition:monicctsqHermite]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsqHermite''' +
+
<< [[Definition:monicctsqHahn|Definition:monicctsqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqJacobi|Definition:monicctsqJacobi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsqHermite''' represents the monic continuous q Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsqHermite{n}''' produces {\displaystyle \monicctsqHermite{n}}
+:'''\monicctsqHermite{n}@{x}{q}''' produces {\displaystyle \monicctsqHermite{n}@{x}{q}}
+:'''\monicctsqHermite{n}@@{x}{q}''' produces {\displaystyle \monicctsqHermite{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\ctsqHermite{n}@{x}{q}=:2^n\monicctsqHermite{n}@{x}{q} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite] +
+
<< [[Definition:monicctsqHahn|Definition:monicctsqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqJacobi|Definition:monicctsqJacobi]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsqJacobi''' +
+
<< [[Definition:monicctsqHermite|Definition:monicctsqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqLaguerre|Definition:monicctsqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsqJacobi''' represents the monic continous q Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsqJacobi{n}''' produces {\displaystyle \monicctsqJacobi{n}}
+:'''\monicctsqJacobi{n}@{x}{q}''' produces {\displaystyle \monicctsqJacobi{n}@{x}{q}}
+:'''\monicctsqJacobi{n}@@{x}{q}''' produces {\displaystyle \monicctsqJacobi{n}@@{x}{q}}
+ +These are defined by +{\displaystyle +\ctsqJacobi{\alpha}{\beta}{n}@{x}{q}=:\frac{2^nq^{(\frac{1}{2}\alpha+\frac{1}{4})n}\qPochhammer{q^{n+\alpha+\beta+1}}{q}{n}} +{\qPochhammer{q,-q^{\frac{1}{2}(\alpha+\beta+1)},-q^{\frac{1}{2}(\alpha+\beta+2)}}{q}{n}}\monicctsqJacobi{\alpha}{\beta}{n}@@{x}{q}. + +
+
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicctsqHermite|Definition:monicctsqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqLaguerre|Definition:monicctsqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsqLaguerre''' +
+
<< [[Definition:monicctsqJacobi|Definition:monicctsqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqLegendre|Definition:monicctsqLegendre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsqLaguerre''' represents the monic continuous q Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsqLaguerre{n}''' produces {\displaystyle \monicctsqLaguerre{n}}
+:'''\monicctsqLaguerre{n}@{x}{q}''' produces {\displaystyle \monicctsqLaguerre{n}@{x}{q}}
+:'''\monicctsqLaguerre{n}@@{x}{q}''' produces {\displaystyle \monicctsqLaguerre{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\ctsqLaguerre{\alpha}{n}@{x}{q}=:\frac{2^nq^{(\frac{1}{2}\alpha+\frac{1}{4})n}}{\qPochhammer{q}{q}{n}}\monicctsqLaguerre{\alpha}{n}@@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicctsqJacobi|Definition:monicctsqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqLegendre|Definition:monicctsqLegendre]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsqLegendre''' +
+
<< [[Definition:monicctsqLaguerre|Definition:monicctsqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqUltra|Definition:monicctsqUltra]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsqLegendre''' represents the monic continuous q Legendre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsqLegendre{n}''' produces {\displaystyle \monicctsqLegendre{n}}
+:'''\monicctsqLegendre{n}@{x}{q}''' produces {\displaystyle \monicctsqLegendre{n}@{x}{q}}
+:'''\monicctsqLegendre{n}@@{x}{q}''' produces {\displaystyle \monicctsqLegendre{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\ctsqLegendre{n}@{x}{q}=:\frac{2^nq^{\frac{1}{4}n}\qPochhammer{q^{\frac{1}{2}}}{q}{n}}{\qPochhammer{q}{q}{n}}\monicctsqLegendre{n}@@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre {\displaystyle {\widehat P}_{n}}] : monic continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicctsqLaguerre|Definition:monicctsqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicctsqUltra|Definition:monicctsqUltra]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicctsqUltra''' +
+
<< [[Definition:monicctsqLegendre|Definition:monicctsqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdiscrqHermiteI|Definition:monicdiscrqHermiteI]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicctsqUltra''' represents the monic continuous q ultraspherical Rogers polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicctsqUltra{n}''' produces {\displaystyle \monicctsqUltra{n}}
+:'''\monicctsqUltra{n}@{x}{\beta}{q}''' produces {\displaystyle \monicctsqUltra{n}@{x}{\beta}{q}}
+:'''\monicctsqUltra{n}@@{x}{\beta}{q}''' produces {\displaystyle \monicctsqUltra{n}@@{x}{\beta}{q}}
+ +These are defined by + +{\displaystyle +\ctsqUltra{n}@{x}{\beta}{q}=:\frac{2^n\qPochhammer{\beta}{q}{n}}{\qPochhammer{q}{q}{n}}\monicctsqUltra{n}@@{x}{\beta}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra {\displaystyle {\widehat C}_{n}}] : monic continuous {\displaystyle q}-ultraspherical/Rogers polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra]
+[http://dlmf.nist.gov/18.28#E13 {\displaystyle C_{n}}] : continuous {\displaystyle q}-ultraspherical/Rogers polynomial : [http://dlmf.nist.gov/18.28#E13 http://dlmf.nist.gov/18.28#E13]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicctsqLegendre|Definition:monicctsqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdiscrqHermiteI|Definition:monicdiscrqHermiteI]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicdiscrqHermiteI''' +
+
<< [[Definition:monicctsqUltra|Definition:monicctsqUltra]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdiscrqHermiteII|Definition:monicdiscrqHermiteII]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicdiscrqHermiteI''' represents the monic discrete q Hermite polynomial I. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicdiscrqHermiteI{n}''' produces {\displaystyle \monicdiscrqHermiteI{n}}
+:'''\monicdiscrqHermiteI{n}@{x}{q}''' produces {\displaystyle \monicdiscrqHermiteI{n}@{x}{q}}
+:'''\monicdiscrqHermiteI{n}@@{x}{q}''' produces {\displaystyle \monicdiscrqHermiteI{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\discrqHermiteI{n}@{x}{q}=:\monicdiscrqHermiteI{n}@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI {\displaystyle {\widehat h}_{n}}] : monic discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI] +
+
<< [[Definition:monicctsqUltra|Definition:monicctsqUltra]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdiscrqHermiteII|Definition:monicdiscrqHermiteII]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicdiscrqHermiteII''' +
+
<< [[Definition:monicdiscrqHermiteI|Definition:monicdiscrqHermiteI]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdualHahn|Definition:monicdualHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicdiscrqHermiteII''' represents the monic discrete q Hermite polynomial II. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicdiscrqHermiteII{n}''' produces {\displaystyle \monicdiscrqHermiteII{n}}
+:'''\monicdiscrqHermiteII{n}@{x}{q}''' produces {\displaystyle \monicdiscrqHermiteII{n}@{x}{q}}
+:'''\monicdiscrqHermiteII{n}@@{x}{q}''' produces {\displaystyle \monicdiscrqHermiteII{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\discrqHermiteII{n}@{x}{q}=:\monicdiscrqHermiteII{n}@@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII {\displaystyle {\widehat \tilde{p}_{n}}}] : monic discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII] +
+
<< [[Definition:monicdiscrqHermiteI|Definition:monicdiscrqHermiteI]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdualHahn|Definition:monicdualHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicdualHahn''' +
+
<< [[Definition:monicdiscrqHermiteII|Definition:monicdiscrqHermiteII]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdualqHahn|Definition:monicdualqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicdualHahn''' represents the monic dual Hahn. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicdualHahn{n}''' produces {\displaystyle \monicdualHahn{n}}
+:'''\monicdualHahn{n}@{\lambda(x)}{\gamma}{\delta}{N}''' produces {\displaystyle \monicdualHahn{n}@{\lambda(x)}{\gamma}{\delta}{N}}
+:'''\monicdualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N}''' produces {\displaystyle \monicdualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N}}
+ +These are defined by + +{\displaystyle +\dualHahn{n}@{\lambda(x)}{\gamma}{\delta}{N}=:\frac{1}{\pochhammer{\gamma+1}{n}\pochhammer{-N}{n}}\monicdualHahn{n}@{\lambda(x}{\gamma}{\delta}{N}) +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicdualHahn {\displaystyle {\widehat R}_{n}}] : monic dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualHahn http://drmf.wmflabs.org/wiki/Definition:monicdualHahn]
+[http://dlmf.nist.gov/18.25#T1.t1.r5 {\displaystyle R_{n}}] : dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r5 http://dlmf.nist.gov/18.25#T1.t1.r5]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicdiscrqHermiteII|Definition:monicdiscrqHermiteII]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdualqHahn|Definition:monicdualqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicdualqHahn''' +
+
<< [[Definition:monicdualHahn|Definition:monicdualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdualqKrawtchouk|Definition:monicdualqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicdualqHahn''' represents the monic dual q Hahn. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicdualqHahn{n}''' produces {\displaystyle \monicdualqHahn{n}}
+:'''\monicdualqHahn{n}@{\mu(x)}{\gamma}{\delta}{N}{q}''' produces {\displaystyle \monicdualqHahn{n}@{\mu(x)}{\gamma}{\delta}{N}{q}}
+:'''\monicdualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q}''' produces {\displaystyle \monicdualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q}}
+ +These are defined by + +{\displaystyle +\dualqHahn{n}@{\mu(x)}{\gamma}{\delta}{N}{q}=:\frac{1}{\qPochhammer{\gamma q,q^{-N}}{q}{n}}\monicdualqHahn{n}@@{\mu(x}{\gamma}{\delta}{N}). +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn {\displaystyle {\widehat R}_{n}}] : monic dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicdualHahn|Definition:monicdualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicdualqKrawtchouk|Definition:monicdualqKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicdualqKrawtchouk''' +
+
<< [[Definition:monicdualqHahn|Definition:monicdualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicHahn|Definition:monicHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicdualqKrawtchouk''' represents the monic dual q Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicdualqKrawtchouk{n}''' produces {\displaystyle \monicdualqKrawtchouk{n}}
+:'''\monicdualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}''' produces {\displaystyle \monicdualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}}
+:'''\monicdualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q}''' produces {\displaystyle \monicdualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q}}
+ +These are defined by + +{\displaystyle +\dualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}=:\frac{1}{\qPochhammer{q^{-N}}{q}{n}}\monicdualqKrawtchouk{n}@@{\lambda(x}{c}{N}{q}). +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicdualqHahn|Definition:monicdualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicHahn|Definition:monicHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicHahn''' +
+
<< [[Definition:monicdualqKrawtchouk|Definition:monicdualqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicHermite|Definition:monicHermite]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicHahn''' represents the monic Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicHahn{n}''' produces {\displaystyle \monicHahn{n}}
+:'''\monicHahn{n}@{x}{\alpha}{\beta}{N}''' produces {\displaystyle \monicHahn{n}@{x}{\alpha}{\beta}{N}}
+:'''\monicHahn{n}@@{x}{\alpha}{\beta}{N}''' produces {\displaystyle \monicHahn{n}@@{x}{\alpha}{\beta}{N}}
+ +These are defined by + +{\displaystyle +\Hahn{n}@{x}{\alpha}{\beta}{N}=:\frac{\pochhammer{n+\alpha+\beta+1}{n}}{\pochhammer{\alpha+1}{n}\pochhammer{-N}{n}}\monicHahn{n}@{x}{\alpha}{\beta}{N} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicHahn {\displaystyle {\widehat Q}_{n}}] : monic Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHahn http://drmf.wmflabs.org/wiki/Definition:monicHahn]
+[http://dlmf.nist.gov/18.19#T1.t1.r3 {\displaystyle Q_{n}}] : Hahn polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r3 http://dlmf.nist.gov/18.19#T1.t1.r3]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicdualqKrawtchouk|Definition:monicdualqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicHermite|Definition:monicHermite]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicHermite''' +
+
<< [[Definition:monicHahn|Definition:monicHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicJacobi|Definition:monicJacobi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicHermite''' represents the monic Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicHermite{n}''' produces {\displaystyle \monicHermite{n}}
+:'''\monicHermite{n}@{x}''' produces {\displaystyle \monicHermite{n}@{x}}
+:'''\monicHermite{n}@@{x}''' produces {\displaystyle \monicHermite{n}@@{x}}
+ +These are defined by + +{\displaystyle +\Hermite{n}@{x}=:2^n\monicHermite{n}@{x}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicHermite {\displaystyle {\widehat H}_{n}}] : monic Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHermite http://drmf.wmflabs.org/wiki/Definition:monicHermite]
+[http://dlmf.nist.gov/18.3#T1.t1.r28 {\displaystyle H_{n}}] : Hermite polynomial {\displaystyle H_n} : [http://dlmf.nist.gov/18.3#T1.t1.r28 http://dlmf.nist.gov/18.3#T1.t1.r28] +
+
<< [[Definition:monicHahn|Definition:monicHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicJacobi|Definition:monicJacobi]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicJacobi''' +
+
<< [[Definition:monicHermite|Definition:monicHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicKrawtchouk|Definition:monicKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicJacobi''' represents the monic Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicJacobi{n}''' produces {\displaystyle \monicJacobi{n}}
+:'''\monicJacobi{n}@{x}''' produces {\displaystyle \monicJacobi{n}@{x}}
+:'''\monicJacobi{n}@@{x}''' produces {\displaystyle \monicJacobi{n}@@{x}}
+ +These are defined by + +{\displaystyle +\Jacobi{\alpha}{\beta}{n}@{x}=:\frac{\pochhammer{n+\alpha+\beta+1}{n}}{2^nn!}\monicJacobi{\alpha}{\beta}{n}@{x} +} +
+
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicJacobi http://drmf.wmflabs.org/wiki/Definition:monicJacobi]
+[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicHermite|Definition:monicHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicKrawtchouk|Definition:monicKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicKrawtchouk''' +
+
<< [[Definition:monicJacobi|Definition:monicJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicLaguerre|Definition:monicLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicKrawtchouk''' represents the monic Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicKrawtchouk{n}''' produces {\displaystyle \monicKrawtchouk{n}}
+:'''\monicKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\monicKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by + +{\displaystyle +\Krawtchouk{n}@{x}{p}{N}=:\frac{1}{\pochhammer{-N}{n}p^n}\monicKrawtchouk{n}@{x}{p}{N}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk]
+[http://dlmf.nist.gov/18.19#T1.t1.r6 {\displaystyle K_{n}}] : Krawtchouk polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r6 http://dlmf.nist.gov/18.19#T1.t1.r6]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicJacobi|Definition:monicJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicLaguerre|Definition:monicLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicLaguerre''' +
+
<< [[Definition:monicKrawtchouk|Definition:monicKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicLegendrePoly|Definition:monicLegendrePoly]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicLaguerre''' represents the monic generalized Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicLaguerre{n}''' produces {\displaystyle \monicLaguerre{n}}
+:'''\monicLaguerre{n}@{x}''' produces {\displaystyle \monicLaguerre{n}@{x}}
+:'''\monicLaguerre{n}@@{x}''' produces {\displaystyle \monicLaguerre{n}@@{x}}
+ +These are defined by + +{\displaystyle +\Laguerre[\alpha]{n}@{x}=:\frac{(-1)^n}{n!}\monicLaguerre[\alpha]{n}@{x}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicLaguerre {\displaystyle {\widehat L}^{\alpha}_n}] : monic Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLaguerre http://drmf.wmflabs.org/wiki/Definition:monicLaguerre]
+[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27] +
+
<< [[Definition:monicKrawtchouk|Definition:monicKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicLegendrePoly|Definition:monicLegendrePoly]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicLegendrePoly''' +
+
<< [[Definition:monicLaguerre|Definition:monicLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:moniclittleqJacobi|Definition:moniclittleqJacobi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicLegendrePoly''' represents the monic Legendre spherical polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicLegendrePoly{n}''' produces {\displaystyle \monicLegendrePoly{n}}
+:'''\monicLegendrePoly{n}@{x}''' produces {\displaystyle \monicLegendrePoly{n}@{x}}
+:'''\monicLegendrePoly{n}@@{x}''' produces {\displaystyle \monicLegendrePoly{n}@@{x}}
+ +These are defined by + +{\displaystyle +\LegendrePoly{n}@{x}=:\binomial{2n}{n}\frac{1}{2^n}\monicLegendrePoly{n}@{x}. +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly {\displaystyle {\widehat P}_{n}}] : monic Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly]
+[http://dlmf.nist.gov/18.3#T1.t1.r25 {\displaystyle P_{n}}] : Legendre polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r25 http://dlmf.nist.gov/18.3#T1.t1.r25]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1] +
+
<< [[Definition:monicLaguerre|Definition:monicLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:moniclittleqJacobi|Definition:moniclittleqJacobi]] >>
+
+drmf_eof +drmf_bof +'''Definition:moniclittleqJacobi''' +
+
<< [[Definition:monicLegendrePoly|Definition:monicLegendrePoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:moniclittleqLaguerre|Definition:moniclittleqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\moniclittleqJacobi''' represents the monic little q Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\moniclittleqJacobi{n}''' produces {\displaystyle \moniclittleqJacobi{n}}
+:'''\moniclittleqJacobi{n}@{x}{a}{b}{q}''' produces {\displaystyle \moniclittleqJacobi{n}@{x}{a}{b}{q}}
+:'''\moniclittleqJacobi{n}@@{x}{a}{b}{q}''' produces {\displaystyle \moniclittleqJacobi{n}@@{x}{a}{b}{q}}
+ +These are defined by + +{\displaystyle +\littleqJacobi{n}@{x}{a}{b}{q}=:\frac{(-1)^nq^{-\binomial{n}{2}}\qPochhammer{abq^{n+1}}{q}{n}}{\qPochhammer{aq}{q}{n}}\moniclittleqJacobi{n}@@{x}{a}{b}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:littleqJacobi {\displaystyle p_{n}}] : little {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqJacobi http://drmf.wmflabs.org/wiki/Definition:littleqJacobi]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicLegendrePoly|Definition:monicLegendrePoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:moniclittleqLaguerre|Definition:moniclittleqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:moniclittleqLaguerre''' +
+
<< [[Definition:moniclittleqJacobi|Definition:moniclittleqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:moniclittleqLegendre|Definition:moniclittleqLegendre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\moniclittleqLaguerre''' represents the monic little q Laguerre Wall polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\moniclittleqLaguerre{n}''' produces {\displaystyle \moniclittleqLaguerre{n}}
+:'''\moniclittleqLaguerre{n}@{x}{a}{q}''' produces {\displaystyle \moniclittleqLaguerre{n}@{x}{a}{q}}
+:'''\moniclittleqLaguerre{n}@@{x}{a}{q}''' produces {\displaystyle \moniclittleqLaguerre{n}@@{x}{a}{q}}
+ +These are defined by +
+ +\littleqLaguerre{n}@{x}{a}{q}=:\frac{(-1)^nq^{-\binomial{n}{2}}}{\qPochhammer{aq}{q}{n}}\moniclittleqLaguerre{n}@@{x}{a}{q}. + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Laguerre/Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:moniclittleqJacobi|Definition:moniclittleqJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:moniclittleqLegendre|Definition:moniclittleqLegendre]] >>
+
+drmf_eof +drmf_bof +'''Definition:moniclittleqLegendre''' +
+
<< [[Definition:moniclittleqLaguerre|Definition:moniclittleqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicMeixner|Definition:monicMeixner]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\moniclittleqLegendre''' represents the monic little q Legendre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\moniclittleqLegendre{n}''' produces {\displaystyle \moniclittleqLegendre{n}}
+:'''\moniclittleqLegendre{n}@{x}{q}''' produces {\displaystyle \moniclittleqLegendre{n}@{x}{q}}
+:'''\moniclittleqLegendre{n}@@{x}{q}''' produces {\displaystyle \moniclittleqLegendre{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\littleqLegendre{n}@{x}{q}=:\frac{(-1)^nq^{-\binomial{n}{2}}\qPochhammer{q^{n+1}}{q}{n}}{\qPochhammer{q}{q}{n}}\moniclittleqLegendre{n}@@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:moniclittleqLaguerre|Definition:moniclittleqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicMeixner|Definition:monicMeixner]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicMeixner''' +
+
<< [[Definition:moniclittleqLegendre|Definition:moniclittleqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicMeixnerPollaczek|Definition:monicMeixnerPollaczek]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicMeixner''' represents the monic Meixner polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicMeixner{n}''' produces {\displaystyle \monicMeixner{n}}
+:'''\monicMeixner{n}@{x}{\beta}{c}''' produces {\displaystyle \monicMeixner{n}@{x}{\beta}{c}}
+:'''\monicMeixner{n}@@{x}{\beta}{c}''' produces {\displaystyle \monicMeixner{n}@@{x}{\beta}{c}}
+ +These are defined by + +{\displaystyle +\Meixner{n}@{x}{\beta}{c}=:\frac{1}{\pochhammer{\beta}{n}}\left(\frac{c-1}{c}\right)^n\monicMeixner{n}@@{x}{\beta}{c}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicMeixner {\displaystyle {\widehat M}_{n}}] : monic Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixner http://drmf.wmflabs.org/wiki/Definition:monicMeixner]
+[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:moniclittleqLegendre|Definition:moniclittleqLegendre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicMeixnerPollaczek|Definition:monicMeixnerPollaczek]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicMeixnerPollaczek''' +
+
<< [[Definition:monicMeixner|Definition:monicMeixner]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicpseudoJacobi|Definition:monicpseudoJacobi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicMeixnerPollaczek''' represents the monic Meixner Pollaczek polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicMeixnerPollaczek{\lambda}{n}''' produces {\displaystyle \monicMeixnerPollaczek{\lambda}{n}}
+:'''\monicMeixnerPollaczek{\lambda}{n}@{x}{\phi}''' produces {\displaystyle \monicMeixnerPollaczek{\lambda}{n}@{x}{\phi}}
+:'''\monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi}''' produces {\displaystyle \monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi}}
+ +These are defined by + +{\displaystyle +\MeixnerPollaczek{\lambda}{n}@{x}{\phi}=:\frac{(2\sin@@{\phi})^n}{n!}\monicMeixnerPollaczek{\lambda}{n}@@{x}{\phi}. +} +
+
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek]
+[http://dlmf.nist.gov/18.19#P3.p1 {\displaystyle P^{(\alpha)}_{n}}] : Meixner-Pollaczek polynomial : [http://dlmf.nist.gov/18.19#P3.p1 http://dlmf.nist.gov/18.19#P3.p1]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1] +
+
<< [[Definition:monicMeixner|Definition:monicMeixner]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicpseudoJacobi|Definition:monicpseudoJacobi]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicpseudoJacobi''' +
+
<< [[Definition:monicMeixnerPollaczek|Definition:monicMeixnerPollaczek]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqBesselPoly|Definition:monicqBesselPoly]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicpseudoJacobi''' represents the monic pseudo Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicpseudoJacobi{n}''' produces {\displaystyle \monicpseudoJacobi{n}}
+:'''\monicpseudoJacobi{n}@{x}{\nu}{N}''' produces {\displaystyle \monicpseudoJacobi{n}@{x}{\nu}{N}}
+:'''\monicpseudoJacobi{n}@@{x}{\nu}{N}''' produces {\displaystyle \monicpseudoJacobi{n}@@{x}{\nu}{N}}
+ +These are defined by + +{\displaystyle +\pseudoJacobi{n}@{x}{\nu}{N}=:\monicpseudoJacobi{n}@@{x}{\nu}{N}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi {\displaystyle {\widehat P}_{n}}] : monic pseudo-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi] +
+
<< [[Definition:monicMeixnerPollaczek|Definition:monicMeixnerPollaczek]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqBesselPoly|Definition:monicqBesselPoly]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqBesselPoly''' +
+
<< [[Definition:monicpseudoJacobi|Definition:monicpseudoJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqCharlier|Definition:monicqCharlier]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqBesselPoly''' represents the monic q Bessel polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqBesselPoly{n}''' produces {\displaystyle \monicqBesselPoly{n}}
+:'''\monicqBesselPoly{n}@{x}{a}{q}''' produces {\displaystyle \monicqBesselPoly{n}@{x}{a}{q}}
+:'''\monicqBesselPoly{n}@@{x}{a}{q}''' produces {\displaystyle \monicqBesselPoly{n}@@{x}{a}{q}}
+ +These are defined by + +{\displaystyle +\qBesselPoly{n}@{x}{a}{q}=:(-1)^nq^{-\binomial{n}{2}}\qPochhammer{-aq^n}{q}{n}\monicqBesselPoly{n}@@{x}{a}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqBessel {\displaystyle {\widehat y}_{n}}] : monic {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqBessel http://drmf.wmflabs.org/wiki/Definition:monicqBessel]
+[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicpseudoJacobi|Definition:monicpseudoJacobi]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqCharlier|Definition:monicqCharlier]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqCharlier''' +
+
<< [[Definition:monicqBesselPoly|Definition:monicqBesselPoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqKrawtchouk|Definition:monicqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqCharlier''' represents the monic q Charlier polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqCharlier{n}''' produces {\displaystyle \monicqCharlier{n}}
+:'''\monicqCharlier{n}@{q^{-x}}{a}{q}''' produces {\displaystyle \monicqCharlier{n}@{q^{-x}}{a}{q}}
+:'''\monicqCharlier{n}@@{q^{-x}}{a}{q}''' produces {\displaystyle \monicqCharlier{n}@@{q^{-x}}{a}{q}}
+ +These are defined by + +{\displaystyle +\qHahn{n}@{q^{-x}}{\alpha}{\beta}{N}{q}=: +\frac{\qPochhammer{\alpha\beta q^{n+1}}{q}{n}}{\qPochhammer{\alpha q,q^{-N}}{q}{n}}\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqCharlier {\displaystyle {\widehat C}_{n}}] : monic {\displaystyle q}-Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqCharlier http://drmf.wmflabs.org/wiki/Definition:monicqCharlier]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn] +
+
<< [[Definition:monicqBesselPoly|Definition:monicqBesselPoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqKrawtchouk|Definition:monicqKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqKrawtchouk''' +
+
<< [[Definition:monicqCharlier|Definition:monicqCharlier]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqLaguerre|Definition:monicqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqKrawtchouk''' represents the monic q Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqKrawtchouk{n}''' produces {\displaystyle \monicqKrawtchouk{n}}
+:'''\monicqKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicqKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by + +{\displaystyle +\qKrawtchouk{n}@{q^{-x}}{p}{N}{q}=:\frac{\qPochhammer{-pq^n}{q}{n}}{\qPochhammer{q^{-N}}{q}{n}}\monicqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqCharlier|Definition:monicqCharlier]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqLaguerre|Definition:monicqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqLaguerre''' +
+
<< [[Definition:monicqKrawtchouk|Definition:monicqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqMeixner|Definition:monicqMeixner]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqLaguerre''' represents the monic q Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqLaguerre{n}''' produces {\displaystyle \monicqLaguerre{n}}
+:'''\monicqLaguerre{n}@{x}{q}''' produces {\displaystyle \monicqLaguerre{n}@{x}{q}}
+:'''\monicqLaguerre{n}@@{x}{q}''' produces {\displaystyle \monicqLaguerre{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\qLaguerre[\alpha]{n}@{x}{q}=:\frac{(-1)^nq^{n(n+\alpha)}}{\qPochhammer{q}{q}{n}}\monicqLaguerre[\alpha]{n}@@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre {\displaystyle {\widehat L}^{(\alpha)}_{n}}] : monic {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqKrawtchouk|Definition:monicqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqMeixner|Definition:monicqMeixner]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqMeixner''' +
+
<< [[Definition:monicqLaguerre|Definition:monicqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqMeixnerPollaczek|Definition:monicqMeixnerPollaczek]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqMeixner''' represents the monic q Meixner polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqMeixner{n}''' produces {\displaystyle \monicqMeixner{n}}
+:'''\monicqMeixner{n}@{q^{-x}}{b}{c}{q}''' produces {\displaystyle \monicqMeixner{n}@{q^{-x}}{b}{c}{q}}
+:'''\monicqMeixner{n}@@{q^{-x}}{b}{c}{q}''' produces {\displaystyle \monicqMeixner{n}@@{q^{-x}}{b}{c}{q}}
+ +These are defined by +{\displaystyle +\qMeixner{n}@{q^{-x}}{b}{c}{q}=:\frac{(-1)^nq^{n^2}}{\qPochhammer{bq}{q}{n}c^n}\monicqMeixner{n}@@{q^{-x}}{b}{c}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqMeixner {\displaystyle {\widehat M}_{n}}] : monic {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixner http://drmf.wmflabs.org/wiki/Definition:monicqMeixner]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqLaguerre|Definition:monicqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqMeixnerPollaczek|Definition:monicqMeixnerPollaczek]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqMeixnerPollaczek''' +
+
<< [[Definition:monicqMeixner|Definition:monicqMeixner]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqRacah|Definition:monicqRacah]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqMeixnerPollaczek''' represents the monic q Meixner Pollaczek polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqMeixnerPollaczek{n}''' produces {\displaystyle \monicqMeixnerPollaczek{n}}
+:'''\monicqMeixnerPollaczek{n}@{x}{a}{q}''' produces {\displaystyle \monicqMeixnerPollaczek{n}@{x}{a}{q}}
+:'''\monicqMeixnerPollaczek{n}@@{x}{a}{q}''' produces {\displaystyle \monicqMeixnerPollaczek{n}@@{x}{a}{q}}
+ +These are defined by + +{\displaystyle +\qMeixnerPollaczek{n}@{x}{a}{q}=:\frac{2^n}{\qPochhammer{q}{q}{n}}\monicqMeixnerPollaczek{n}@@{x}{a}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek {\displaystyle {\widehat P}_{n}}] : monic {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqMeixner|Definition:monicqMeixner]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqRacah|Definition:monicqRacah]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqRacah''' +
+
<< [[Definition:monicqMeixnerPollaczek|Definition:monicqMeixnerPollaczek]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqtmqKrawtchouk|Definition:monicqtmqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqRacah''' represents the monic q Racah polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqRacah{n}''' produces {\displaystyle \monicqRacah{n}}
+:'''\monicqRacah{n}@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q}''' produces {\displaystyle \monicqRacah{n}@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q}}
+:'''\monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q}''' produces {\displaystyle \monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q}}
+ +These are defined by + +{\displaystyle +\qRacah{n}@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q}=: +\frac{\qPochhammer{\alpha\beta q^{n+1}}{q}{n}}{\qPochhammer{\alpha q,\beta\delta q,\gamma q}{q}{n}}\monicqRacah{n}@@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqRacah {\displaystyle {\widehat R}_{n}}] : monic {\displaystyle q}-Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqRacah http://drmf.wmflabs.org/wiki/Definition:monicqRacah]
+[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : {\displaystyle q}-Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqMeixnerPollaczek|Definition:monicqMeixnerPollaczek]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqtmqKrawtchouk|Definition:monicqtmqKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqtmqKrawtchouk''' +
+
<< [[Definition:monicqRacah|Definition:monicqRacah]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicRacah|Definition:monicRacah]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqtmqKrawtchouk''' represents the monic quantum q Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqtmqKrawtchouk{n}''' produces {\displaystyle \monicqtmqKrawtchouk{n}}
+:'''\monicqtmqKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicqtmqKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by + +{\displaystyle +\qtmqKrawtchouk{n}@{q^{-x}}{p}{N}{q}=:\frac{p^nq^{n^2}}{\qPochhammer{q^{-N}}{q}{n}}\monicqtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk {\displaystyle {\widehat K^{\mathrm{qtm}}}_{n}}] : monic quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqRacah|Definition:monicqRacah]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicRacah|Definition:monicRacah]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicRacah''' +
+
<< [[Definition:monicqtmqKrawtchouk|Definition:monicqtmqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicStieltjesWigert|Definition:monicStieltjesWigert]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicRacah''' represents the monic Racah polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicRacah{n}''' produces {\displaystyle \monicRacah{n}}
+:'''\monicRacah{n}@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta}''' produces {\displaystyle \monicRacah{n}@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta}}
+:'''\monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta}''' produces {\displaystyle \monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta}}
+ +These are defined by + +{\displaystyle +\Racah{n}@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta}=: +\frac{\pochhammer{n+\alpha+\beta+1}{n}}{\pochhammer{\alpha+1}{n}\pochhammer{\beta+\delta+1}{n}\pochhammer{\gamma+1}{n}}\monicRacah{n}@@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicRacah {\displaystyle {\widehat R}_{n}}] : monic Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicRacah http://drmf.wmflabs.org/wiki/Definition:monicRacah]
+[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicqtmqKrawtchouk|Definition:monicqtmqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicStieltjesWigert|Definition:monicStieltjesWigert]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicStieltjesWigert''' +
+
<< [[Definition:monicRacah|Definition:monicRacah]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicUltra|Definition:monicUltra]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicStieltjesWigert''' represents the monic Stieltjes Wigert polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicStieltjesWigert{n}''' produces {\displaystyle \monicStieltjesWigert{n}}
+:'''\monicStieltjesWigert{n}@{x}{q}''' produces {\displaystyle \monicStieltjesWigert{n}@{x}{q}}
+:'''\monicStieltjesWigert{n}@@{x}{q}''' produces {\displaystyle \monicStieltjesWigert{n}@@{x}{q}}
+ +These are defined by + +{\displaystyle +\StieltjesWigert{n}@{x}{q}=:\frac{(-1)^nq^{n^2}}{\qPochhammer{q}{q}{n}}\monicStieltjesWigert{n}@@{x}{q}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert {\displaystyle {\widehat S}_{n}}] : monic Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert]
+[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicRacah|Definition:monicRacah]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicUltra|Definition:monicUltra]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicUltra''' +
+
<< [[Definition:monicStieltjesWigert|Definition:monicStieltjesWigert]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicWilson|Definition:monicWilson]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicUltra''' represents the monic ultraspherical Gegenbauer polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicUltra{n}''' produces {\displaystyle \monicUltra{n}}
+:'''\monicUltra{n}@{x}''' produces {\displaystyle \monicUltra{n}@{x}}
+:'''\monicUltra{n}@@{x}''' produces {\displaystyle \monicUltra{n}@@{x}}
+ +These are defined by + +{\displaystyle +\Ultra{\lambda}{n}@{x}=:\frac{2^n\pochhammer{\lambda}{n}}{n!}\monicUltra{\lambda}{n}@@{x}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicUltra {\displaystyle {\widehat C}^{\mu}_{n}}] : monic ultraspherical/Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicUltra http://drmf.wmflabs.org/wiki/Definition:monicUltra]
+[http://dlmf.nist.gov/18.3#T1.t1.r5 {\displaystyle C^{\mu}_{n}}] : ultraspherical/Gegenbauer polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r5 http://dlmf.nist.gov/18.3#T1.t1.r5]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicStieltjesWigert|Definition:monicStieltjesWigert]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicWilson|Definition:monicWilson]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicWilson''' +
+
<< [[Definition:monicUltra|Definition:monicUltra]]
+
[[Main_Page|Main Page]]
+
[[Definition:NeumannFactor|Definition:NeumannFactor]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicWilson''' represents the monic Wilson polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicWilson{n}''' produces {\displaystyle \monicWilson{n}}
+:'''\monicWilson{n}@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \monicWilson{n}@{x^2}{a}{b}{c}{d}}
+:'''\monicWilson{n}@@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \monicWilson{n}@@{x^2}{a}{b}{c}{d}}
+ +These are defined by + +{\displaystyle +\Wilson{n}@{x^2}{a}{b}{c}{d}=:(-1)^n\pochhammer{n+a+b+c+d-1}{n}\monicWilson{n}@@{x^2}{a}{b}{c}{d}. +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicWilson {\displaystyle {\widehat W}_{n}}] : monic Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicWilson http://drmf.wmflabs.org/wiki/Definition:monicWilson]
+[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:monicUltra|Definition:monicUltra]]
+
[[Main_Page|Main Page]]
+
[[Definition:NeumannFactor|Definition:NeumannFactor]] >>
+
+drmf_eof +drmf_bof +'''Definition:NeumannFactor''' +
+
<< [[Definition:monicWilson|Definition:monicWilson]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsdualHahnStilde|Definition:normctsdualHahnStilde]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\NeumannFactor''' represents the Neumann factor. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following way: + +:'''\NeumannFactor{n}''' produces {\displaystyle \NeumannFactor{n}}
+ +These are defined by + +\NeumannFactor{n}:=2-\Kronecker{n}{0}. + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:NeumannFactor {\displaystyle \epsilon_{m}}] : Neumann factor : [http://drmf.wmflabs.org/wiki/Definition:NeumannFactor http://drmf.wmflabs.org/wiki/Definition:NeumannFactor]
+[http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 {\displaystyle \delta_{m,n}}] : Kronecker delta : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4] +
+
<< [[Definition:monicWilson|Definition:monicWilson]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsdualHahnStilde|Definition:normctsdualHahnStilde]] >>
+
+drmf_eof +drmf_bof +'''Definition:normctsdualHahnStilde''' +
+
<< [[Definition:NeumannFactor|Definition:NeumannFactor]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsHahnptilde|Definition:normctsHahnptilde]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\normctsdualHahnStilde''' represents the normalized continuous dual Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normctsdualHahnStilde{n}@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \normctsdualHahnStilde{n}@{x^2}{a}{b}{c}{d}}
+:'''\normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}{d}}
+ +These are defined by + +\normctsdualHahnStilde{n}@@{x^2}{a}{b}{c}:=\normctsdualHahnStilde{n}@{x^2}{a}{b}{c}=\frac{\ctsdualHahn{n}@{x^2}{a}{b}{c}}{\pochhammer{a+b}{n}\pochhammer{a+c}{n}}. + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde {\displaystyle {\tilde S}_{n}}] : normalized continuous dual Hahn polynomial {\displaystyle {\tilde S}} : [http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde]
+[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:NeumannFactor|Definition:NeumannFactor]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsHahnptilde|Definition:normctsHahnptilde]] >>
+
+drmf_eof +drmf_bof +'''Definition:normctsHahnptilde''' +
+
<< [[Definition:normctsdualHahnStilde|Definition:normctsdualHahnStilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:normJacobiR|Definition:normJacobiR]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\normctsHahnptilde''' represents the normalized continuous Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normctsHahnptilde{n}''' produces {\displaystyle \normctsHahnptilde{n}}
+:'''\normctsHahnptilde{n}@{x}{a}{b}{c}{d}''' produces {\displaystyle \normctsHahnptilde{n}@{x}{a}{b}{c}{d}}
+:'''\normctsHahnptilde{n}@@{x}{a}{b}{c}{d}''' produces {\displaystyle \normctsHahnptilde{n}@@{x}{a}{b}{c}{d}}
+ +These are defined by + +\normctsHahnptilde{n}@@{x}{a}{b}{c}{d}:=\normctsHahnptilde{n}@{x}{a}{b}{c}{d}=\frac{n!}{i^n\pochhammer{a+c}{n}\pochhammer{a+d}{n}}\ctsHahn{n}@{x}{a}{b}{c}{d}. + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1] +
+
<< [[Definition:normctsdualHahnStilde|Definition:normctsdualHahnStilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:normJacobiR|Definition:normJacobiR]] >>
+
+drmf_eof +drmf_bof +'''Definition:normJacobiR''' +
+
<< [[Definition:normctsHahnptilde|Definition:normctsHahnptilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:normWilsonWtilde|Definition:normWilsonWtilde]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\normJacobiR''' represents the normalized Jacobi polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normJacobiR{\alpha}{\beta}{n}''' produces {\displaystyle \normJacobiR{\alpha}{\beta}{n}}
+:'''\normJacobiR{\alpha}{\beta}{n}@{x}''' produces {\displaystyle \normJacobiR{\alpha}{\beta}{n}@{x}}
+ +These are defined by + +{\displaystyle \normJacobiR{\alpha}{\beta}{n}@{x}:= +\frac{\Jacobi{\alpha}{\beta}{n}@{x}}{ +\Jacobi{\alpha}{\beta}{n}@{1}},} + +where + +{\displaystyle \Jacobi{\alpha}{\beta}{n}@1=\frac{\pochhammer{\alpha+1}{n}}{n!}.} + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:normJacobiR {\displaystyle R^{(\alpha,\beta)}_{n}}] : normalized Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:normJacobiR http://drmf.wmflabs.org/wiki/Definition:normJacobiR]
+[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:normctsHahnptilde|Definition:normctsHahnptilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:normWilsonWtilde|Definition:normWilsonWtilde]] >>
+
+drmf_eof +drmf_bof +'''Definition:normWilsonWtilde''' +
+
<< [[Definition:normJacobiR|Definition:normJacobiR]]
+
[[Main_Page|Main Page]]
+
[[Definition:poly|Definition:poly]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\normWilsonWtilde''' represents the normalized Wilson polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normWilsonWtilde{n}''' produces {\displaystyle \normWilsonWtilde{n}}
+:'''\normWilsonWtilde{n}@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \normWilsonWtilde{n}@{x^2}{a}{b}{c}{d}}
+:'''\normWilsonWtilde{n}@@{x^2}{a}{b}{c}{d}''' produces {\displaystyle \normWilsonWtilde{n}@@{x^2}{a}{b}{c}{d}}
+ +These are defined by + + +{\displaystyle +\normWilsonWtilde{n}@{x^2}{a}{b}{c}{d}:=\frac{\Wilson{n}@{x^2}{a}{b}{c}{d}}{\pochhammer{a+b}{n}\pochhammer{a+c}{n}\pochhammer{a+d}{n}} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde {\displaystyle {\tilde W}_{n}}] : normalized Wilson polynomial {\displaystyle {\tilde W}} : [http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde]
+[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +
+
<< [[Definition:normJacobiR|Definition:normJacobiR]]
+
[[Main_Page|Main Page]]
+
[[Definition:poly|Definition:poly]] >>
+
+drmf_eof +drmf_bof +'''Definition:poly''' +
+
<< [[Definition:normWilsonWtilde|Definition:normWilsonWtilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:qBesselPoly|Definition:qBesselPoly]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\poly''' represents the semantic polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\poly{p}{n}''' produces {\displaystyle \poly{p}{n}}
+:'''\poly{p}{n}@{x}''' produces {\displaystyle \poly{p}{n}@{x}}
+ +These are defined by +{\displaystyle +\pseudoJacobi{n}@{x}{\nu}{N}:=\frac{(-2i)^n\pochhammer{-N+i\nu}{n}}{\pochhammer{n-2N-1}{n}}\,\HyperpFq{2}{1}@@{-n,n-2N-1}{-N+i\nu}{\frac{1-ix}{2}} + + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:poly {\displaystyle {p}_{n}}] : polynomial : [http://drmf.wmflabs.org/wiki/Definition:poly http://drmf.wmflabs.org/wiki/Definition:poly]
+[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:normWilsonWtilde|Definition:normWilsonWtilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:qBesselPoly|Definition:qBesselPoly]] >>
+
+drmf_eof +drmf_bof +'''Definition:qBesselPoly''' +
+
<< [[Definition:poly|Definition:poly]]
+
[[Main_Page|Main Page]]
+
[[Definition:qCharlier|Definition:qCharlier]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qBesselPoly''' represents the q-Bessel polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qBesselPoly{n}''' produces {\displaystyle \qBesselPoly{n}}
+:'''\qBesselPoly{n}@{x}{b}{q}''' produces {\displaystyle \qBesselPoly{n}@{x}{b}{q}}
+ +These are defined by +{\displaystyle +\qBesselPoly{n}@{x}{a}{q}:=\qHyperrphis{2}{1}@@{q^{-n},-aq^n}{0}{q}{qx} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:poly|Definition:poly]]
+
[[Main_Page|Main Page]]
+
[[Definition:qCharlier|Definition:qCharlier]] >>
+
+drmf_eof +drmf_bof +'''Definition:qCharlier''' +
+
<< [[Definition:qBesselPoly|Definition:qBesselPoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:qDigamma|Definition:qDigamma]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qCharlier''' represents the q-Charlier polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qCharlier{n}''' produces {\displaystyle \qCharlier{n}}
+:'''\qCharlier{n}@{x}{c}{q}''' produces {\displaystyle \qCharlier{n}@{x}{c}{q}}
+ +These are defined by +{\displaystyle +\qCharlier{n}@{q^{-x}}{a}{q}:=\qHyperrphis{2}{1}@@{q^{-n},q^{-x}}{0}{q}{-\frac{q^{n+1}}{a}} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qCharlier {\displaystyle C_{n}}] : {\displaystyle q}-Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:qCharlier http://drmf.wmflabs.org/wiki/Definition:qCharlier]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qBesselPoly|Definition:qBesselPoly]]
+
[[Main_Page|Main Page]]
+
[[Definition:qDigamma|Definition:qDigamma]] >>
+
+drmf_eof +drmf_bof +'''Definition:qDigamma''' +
+
<< [[Definition:qCharlier|Definition:qCharlier]]
+
[[Main_Page|Main Page]]
+
[[Definition:qHyperrWs|Definition:qHyperrWs]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qDigamma''' represents the q-gamma function. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\qDigamma{q}''' produces {\displaystyle \qDigamma{q}}
+:'''\qDigamma{q}@{z}''' produces {\displaystyle \qDigamma{q}@{z}}
+ +These are defined by +{\displaystyle +\qDigamma{q}@{z} = \qGamma{q}'@{z} / \qGamma{q}@{z} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qDigamma {\displaystyle \psi_{q}}] : {\displaystyle q}-digamma function : [http://drmf.wmflabs.org/wiki/Definition:qDigamma http://drmf.wmflabs.org/wiki/Definition:qDigamma]
+[http://dlmf.nist.gov/5.18#E4 {\displaystyle \Gamma_{q}}] : {\displaystyle q}-gamma function : [http://dlmf.nist.gov/5.18#E4 http://dlmf.nist.gov/5.18#E4] +
+
<< [[Definition:qCharlier|Definition:qCharlier]]
+
[[Main_Page|Main Page]]
+
[[Definition:qHyperrWs|Definition:qHyperrWs]] >>
+
+drmf_eof +drmf_bof +'''Definition:qHyperrWs''' +
+
<< [[Definition:qDigamma|Definition:qDigamma]]
+
[[Main_Page|Main Page]]
+
[[Definition:qExpKLS|Definition:qExpKLS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qHyperrWs''' represents the q-hypergeometric series. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\qHyperrWs{r}{r+1}''' produces {\displaystyle \qHyperrWs{r}{r+1}}
+:'''\qHyperrWs{r}{r+1}@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}''' produces {\displaystyle \qHyperrWs{r}{r+1}@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}}
+:'''\qHyperrWs{r}{r+1}@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}''' produces {\displaystyle \qHyperrWs{r}{r+1}@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}}
+:'''\qHyperrWs{r}{r+1}@@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}''' produces {\displaystyle \qHyperrWs{r}{r+1}@@@{a_1}{a_4,a_5,...,a_{r+1}}{q}{z}}
+ +These are defined by + +\qHyperrWs{r+1}r@ +{a_1}{a_4,a_5,\ldots,a_{r+1}}qz:= +\qHyperrphis{r+1}r@@{a_1,qa_1^\frac12,-qa_1^\frac12,a_4,\ldots,a_{r+1}} +{a_1^\frac12,-a_1^\frac12,qa_1/a_4,\ldots,qa_1/a_{r+1}}qz. + +
+ +== Bibliography == + +Equation (2.1.11) of [[Bibliography#GaR|'''GaR''']]. + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qHyperrWs {\displaystyle {{}_{r+1}W_{r}}}] : very-well-poised basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://drmf.wmflabs.org/wiki/Definition:qHyperrWs http://drmf.wmflabs.org/wiki/Definition:qHyperrWs]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qDigamma|Definition:qDigamma]]
+
[[Main_Page|Main Page]]
+
[[Definition:qExpKLS|Definition:qExpKLS]] >>
+
+drmf_eof +drmf_bof +'''Definition:qExpKLS''' +
+
<< [[Definition:qHyperrWs|Definition:qHyperrWs]]
+
[[Main_Page|Main Page]]
+
[[Definition:qexpKLS|Definition:qexpKLS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qExpKLS''' represents a q-analogue of the +\exp function: \qExpKLS{q}. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\qExpKLS{q}''' produces {\displaystyle \qExpKLS{q}}
+:'''\qExpKLS{q}@{z}''' produces {\displaystyle \qExpKLS{q}@{z}}
+:'''\qExpKLS{q}@@{z}''' produces {\displaystyle \qExpKLS{q}@@{z}}
+ +These are defined by +{\displaystyle +\qExpKLS{q}@{z}:=\qHyperrphis{0}{0}@@{-}{-}{q}{-z}:= +\sum_{n=0}^{\infty}\frac{q^{\binom{n}{2}}}{\qPochhammer{q}{q}{n}}z^n=\qPochhammer{-z}{q}{\infty},\quad 0<|q|<1. +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/4.2#E19 {\displaystyle \mathrm{exp}}] : exponential function : [http://dlmf.nist.gov/4.2#E19 http://dlmf.nist.gov/4.2#E19]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qHyperrWs|Definition:qHyperrWs]]
+
[[Main_Page|Main Page]]
+
[[Definition:qexpKLS|Definition:qexpKLS]] >>
+
+drmf_eof +drmf_bof +'''Definition:qexpKLS''' +
+
<< [[Definition:qExpKLS|Definition:qExpKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qcosKLS|Definition:qcosKLS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qexpKLS''' represents a q-analogue of the +\exp function: \qexpKLS{q}. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\qexpKLS{q}''' produces {\displaystyle \qexpKLS{q}}
+:'''\qexpKLS{q}@{z}''' produces {\displaystyle \qexpKLS{q}@{z}}
+:'''\qexpKLS{q}@@{z}''' produces {\displaystyle \qexpKLS{q}@@{z}}
+ +These are defined by +{\displaystyle +\qexpKLS{q}@{z}:=\qHyperrphis{1}{0}@@{0}{-}{q}{z}:=\sum_{n=0}^{\infty}\frac{z^n}{\qPochhammer{q}{q}{n}} +=\frac{1}{\qPochhammer{z}{q}{\infty}},\quad 0<|q|<1 +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/4.2#E19 {\displaystyle \mathrm{exp}}] : exponential function : [http://dlmf.nist.gov/4.2#E19 http://dlmf.nist.gov/4.2#E19]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qExpKLS|Definition:qExpKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qcosKLS|Definition:qcosKLS]] >>
+
+drmf_eof +drmf_bof +'''Definition:qcosKLS''' +
+
<< [[Definition:qexpKLS|Definition:qexpKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qMeixner|Definition:qMeixner]] >>
+
+The LaTeX DLMF and DRMF macro '''\qcosKLS''' represents a q-analogue of the +\cos function:~\qcosKLS{q}. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qcosKLS{q}''' produces {\displaystyle \qcosKLS{q}}
+:'''\qcosKLS{q}@{z}''' produces {\displaystyle \qcosKLS{q}@{z}}
+:'''\qcosKLS{q}@@{z}''' produces {\displaystyle \qcosKLS{q}@@{z}}
+ +These are defined by +{\displaystyle +\qcosKLS{q}@{z}:=\frac{\qexpKLS{q}@{iz)+{\mathrm e}_q(-iz}}{2}= +\sum_{n=0}^{\infty}\frac{(-1)^nz^{2n}}{\qPochhammer{q}{q}{2n}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qcosKLS {\displaystyle \mathrm{cos}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \cos} function used in KLS: {\displaystyle \cos_q} : [http://drmf.wmflabs.org/wiki/Definition:qcosKLS http://drmf.wmflabs.org/wiki/Definition:qcosKLS]
+[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qexpKLS|Definition:qexpKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qMeixner|Definition:qMeixner]] >>
+
+drmf_eof +drmf_bof +'''Definition:qMeixner''' +
+
<< [[Definition:qcosKLS|Definition:qcosKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qKrawtchouk|Definition:qKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qMeixner''' represents the q-Meixner polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qMeixner{n}''' produces {\displaystyle \qMeixner{n}}
+:'''\qMeixner{n}@{x}{b}{c}{q}''' produces {\displaystyle \qMeixner{n}@{x}{b}{c}{q}}
+ +These are defined by + +\qMeixner{n}@{q^{-x}}{b}{c}{q}:=\qHyperrphis{2}{1}@@{q^{-n},q^{-x}}{bq}{q}{-\frac{q^{n+1}}{c}}. + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qcosKLS|Definition:qcosKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qKrawtchouk|Definition:qKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:qKrawtchouk''' +
+
<< [[Definition:qMeixner|Definition:qMeixner]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqHahn|Definition:monicqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qKrawtchouk''' represents the q-Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qKrawtchouk{n}''' produces {\displaystyle \qKrawtchouk{n}}
+:'''\qKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \qKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\qKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \qKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by + +\qKrawtchouk{n}@{q^{-x}}{p}{N}{q}:=\qHyperrphis{3}{2}@@{q^{-n},q^{-x},-pq^n}{q^{-N},0}{q}{q}. +\end{equation} + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qMeixner|Definition:qMeixner]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqHahn|Definition:monicqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqHahn''' +
+
<< [[Definition:qKrawtchouk|Definition:qKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:dualqHahn|Definition:dualqHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqHahn''' represents the monic q Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqHahn{n}''' produces {\displaystyle \monicqHahn{n}}
+:'''\monicqHahn{n}@{q^{-x}}{\alpha}{\beta}{N}''' produces {\displaystyle \monicqHahn{n}@{q^{-x}}{\alpha}{\beta}{N}}
+:'''\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N}''' produces {\displaystyle \monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N}}
+ +These are defined by + +{\displaystyle +\qHahn{n}@{q^{-x}}{\alpha}{\beta}{N}{q}=: +\frac{\qPochhammer{\alpha\beta q^{n+1}}{q}{n}}{\qPochhammer{\alpha q,q^{-N}}{q}{n}}\monicqHahn{n}@@{q^{-x}}{\alpha}{\beta}{N}. +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qKrawtchouk|Definition:qKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:dualqHahn|Definition:dualqHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:dualqHahn''' +
+
<< [[Definition:monicqHahn|Definition:monicqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:dualqKrawtchouk|Definition:dualqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\dualqHahn''' represents the dual q-Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\dualqHahn{n}''' produces {\displaystyle \dualqHahn{n}}
+:'''\dualqHahn{n}@{\mu(x)}{\gamma}{\delta}{N}{q}''' produces {\displaystyle \dualqHahn{n}@{\mu(x)}{\gamma}{\delta}{N}{q}}
+:'''\dualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q}''' produces {\displaystyle \dualqHahn{n}@@{\mu(x)}{\gamma}{\delta}{N}{q}}
+ +These are defined by + +\dualqHahn{n}@{\mu(x)}{\gamma}{\delta}{N}{q}:= +\qHyperrphis32@@{q^{-n},q^{-x},\gamma\delta q^{x+1}} +{\gamma q,q^{-N}}qq, + + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:monicqHahn|Definition:monicqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:dualqKrawtchouk|Definition:dualqKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:dualqKrawtchouk''' +
+
<< [[Definition:dualqHahn|Definition:dualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:littleqLaguerre|Definition:littleqLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\dualqKrawtchouk''' represents the dual q-Krawtchouk. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\dualqKrawtchouk{n}''' produces {\displaystyle \dualqKrawtchouk{n}}
+:'''\dualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}''' produces {\displaystyle \dualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}}
+:'''\dualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q}''' produces {\displaystyle \dualqKrawtchouk{n}@@{\lambda(x)}{c}{N}{q}}
+ +These are defined by +{\displaystyle +\dualqKrawtchouk{n}@{\lambda(x)}{c}{N}{q}:=\qHyperrphis{3}{2}@@{q^{-n},q^{-x},cq^{x-N}}{q^{-N},0}{q}{q} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:dualqHahn|Definition:dualqHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:littleqLaguerre|Definition:littleqLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:littleqLaguerre''' +
+
<< [[Definition:dualqKrawtchouk|Definition:dualqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:qsinKLS|Definition:qsinKLS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\littleqLaguerre''' represents the little q-Laguerre / Wall polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\littleqLaguerre{n}''' produces {\displaystyle \littleqLaguerre{n}}
+:'''\littleqLaguerre{n}@{x}{a}{q}''' produces {\displaystyle \littleqLaguerre{n}@{x}{a}{q}}
+ +These are defined by +{\displaystyle +\littleqLaguerre{n}@{x}{a}{q}:=\qHyperrphis{2}{1}@@{q^{-n},0}{aq}{q}{qx}. +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:dualqKrawtchouk|Definition:dualqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:qsinKLS|Definition:qsinKLS]] >>
+
+drmf_eof +drmf_bof +'''Definition:qsinKLS''' +
+
<< [[Definition:littleqLaguerre|Definition:littleqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:qSinKLS|Definition:qSinKLS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qsinKLS''' represents a q-analogue of the \sin +function: \qsinKLS{q}. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\qsinKLS{q}''' produces {\displaystyle \qsinKLS{q}}
+:'''\qsinKLS{q}@{z}''' produces {\displaystyle \qsinKLS{q}@{z}}
+:'''\qsinKLS{q}@@{z}''' produces {\displaystyle \qsinKLS{q}@@{z}}
+ +These are defined by +{\displaystyle +\qsinKLS{q}@{z}:=\frac{\qexpKLS{q}@{\iunit z)-{\mathrm e}_q(-\iunit z}}{2\iunit}= +\sum_{n=0}^{\infty}\frac{(-1)^nz^{2n+1}}{\qPochhammer{q}{q}{2n+1}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qsinKLS {\displaystyle \mathrm{sin}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \sin} function used in KLS: {\displaystyle \sin_q} : [http://drmf.wmflabs.org/wiki/Definition:qsinKLS http://drmf.wmflabs.org/wiki/Definition:qsinKLS]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:littleqLaguerre|Definition:littleqLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:qSinKLS|Definition:qSinKLS]] >>
+
+drmf_eof +drmf_bof +'''Definition:qSinKLS''' +
+
<< [[Definition:qsinKLS|Definition:qsinKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qCosKLS|Definition:qCosKLS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qSinKLS''' represents a q-analogue of the +\sin function: \qSinKLS{q}. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\qSinKLS{q}''' produces {\displaystyle \qSinKLS{q}}
+:'''\qSinKLS{q}@{z}''' produces {\displaystyle \qSinKLS{q}@{z}}
+:'''\qSinKLS{q}@@{z}''' produces {\displaystyle \qSinKLS{q}@@{z}}
+ +These are defined by +{\displaystyle +\qSinKLS{q}@{z}:=\frac{\qExpKLS{q}@{\iunit z}-\qExpKLS{q}@{-\iunit z}}{2\iunit} +=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binomial{2n+1}{2}}z^{2n+1}}{\qPochhammer{q}{q}{2n+1}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qSinKLS {\displaystyle \mathrm{Sin}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \sin} function used in KLS: {\displaystyle \mathrm{Sin}_q} : [http://drmf.wmflabs.org/wiki/Definition:qSinKLS http://drmf.wmflabs.org/wiki/Definition:qSinKLS]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qsinKLS|Definition:qsinKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:qCosKLS|Definition:qCosKLS]] >>
+
+drmf_eof +drmf_bof +'''Definition:qCosKLS''' +
+
<< [[Definition:qSinKLS|Definition:qSinKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:Wilson|Definition:Wilson]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qCosKLS''' represents a q-analogue of the +\cos function: \qCosKLS{q}. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qCosKLS{q}''' produces {\displaystyle \qCosKLS{q}}
+:'''\qCosKLS{q}@{z}''' produces {\displaystyle \qCosKLS{q}@{z}}
+:'''\qCosKLS{q}@@{z}''' produces {\displaystyle \qCosKLS{q}@@{z}}
+ +These are defined by +{\displaystyle +\qCosKLS{q}@{z}:=\frac{\qExpKLS{q}@{\iunit z}+\qExpKLS{q}@{-\iunit z}}{2} +=\sum_{n=0}^{\infty}\frac{(-1)^nq^{\binomial{2n}{2}}z^{2n}}{\qPochhammer{q}{q}{2n}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qCosKLS {\displaystyle \mathrm{Cos}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \cos} function used in KLS: {\displaystyle \mathrm{Cos}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qCosKLS http://drmf.wmflabs.org/wiki/Definition:qCosKLS]
+[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
+[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qSinKLS|Definition:qSinKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:Wilson|Definition:Wilson]] >>
+
+drmf_eof +drmf_bof +'''Definition:Wilson''' +
+
<< [[Definition:qCosKLS|Definition:qCosKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:Racah|Definition:Racah]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\Wilson''' represents the Wilson polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\Wilson{n}''' produces {\displaystyle \Wilson{n}}
+:'''\Wilson{n}@{x}{a}{b}{c}{d}''' produces {\displaystyle \Wilson{n}@{x}{a}{b}{c}{d}}
+ +These are defined by +{\displaystyle +\frac{\Wilson{n}@{x^2}{a}{b}{c}{d}}{\pochhammer{a+b}{n}\pochhammer{a+c}{n}\pochhammer{a+d}{n}} +{}:=\HyperpFq{4}{3}@@{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1} +} + +== Symbols List == + +[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:qCosKLS|Definition:qCosKLS]]
+
[[Main_Page|Main Page]]
+
[[Definition:Racah|Definition:Racah]] >>
+
+drmf_eof +drmf_bof +'''Definition:Racah''' +
+
<< [[Definition:Wilson|Definition:Wilson]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsdualHahn|Definition:ctsdualHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\Racah''' represents the Racah polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\Racah{n}''' produces {\displaystyle \Racah{n}}
+:'''\Racah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}''' produces {\displaystyle \Racah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}}
+ +These are defined by +{\displaystyle +\Racah{n}@{\lambda(x)}{\alpha}{\beta}{\gamma}{\delta} +{}:=\HyperpFq{4}{3}@@{-n,n+\alpha+\beta+1,-x,x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1}, +} + +where {\displaystyle \lambda(x)=x(x+\gamma+\delta+1), } +and \alpha+1=-N or \beta+\delta+1=-N or \gamma+1=-N +with N a nonnegative integer. + +== Symbols List == + +[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:Wilson|Definition:Wilson]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsdualHahn|Definition:ctsdualHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsdualHahn''' +
+
<< [[Definition:Racah|Definition:Racah]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsHahn|Definition:ctsHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsdualHahn''' represents the Continuous Dual Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsdualHahn{n}''' produces {\displaystyle \ctsdualHahn{n}}
+:'''\ctsdualHahn{n}@{x^2}{a}{b}{c}''' produces {\displaystyle \ctsdualHahn{n}@{x^2}{a}{b}{c}}
+:'''\ctsdualHahn{n}@@{x^2}{a}{b}{c}''' produces {\displaystyle \ctsdualHahn{n}@@{x^2}{a}{b}{c}}
+ +These are defined by +{\displaystyle +\frac{\ctsdualHahn{n}@{x^2}{a}{b}{c}}{\pochhammer{a+b}{n}\pochhammer{a+c}{n}}:=\HyperpFq{3}{2}@@{-n,a+ix,a-ix}{a+b,a+c}{1} +} + +== Symbols List == + +[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:Racah|Definition:Racah]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsHahn|Definition:ctsHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsHahn''' +
+
<< [[Definition:ctsdualHahn|Definition:ctsdualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:Hahn|Definition:Hahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsHahn''' represents the Continuous Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsHahn{n}''' produces {\displaystyle \ctsHahn{n}}
+:'''\ctsHahn{n}@{x}{a}{b}{c}{d}''' produces {\displaystyle \ctsHahn{n}@{x}{a}{b}{c}{d}}
+:'''\ctsHahn{n}@@{x}{a}{b}{c}{d}''' produces {\displaystyle \ctsHahn{n}@@{x}{a}{b}{c}{d}}
+ +These are defined by +{\displaystyle +\ctsHahn{n}@{x}{a}{b}{c}{d} +{}:=i^n\frac{\pochhammer{a+c}{n}\pochhammer{a+d}{n}}{n!}\,\HyperpFq{3}{2}@@{-n,n+a+b+c+d-1,a+ix}{a+c,a+d}{1} +} + +== Symbols List == + +[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:ctsdualHahn|Definition:ctsdualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:Hahn|Definition:Hahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:Hahn''' +
+
<< [[Definition:ctsHahn|Definition:ctsHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:dualHahn|Definition:dualHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\Hahn''' represents the Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\Hahn{n}''' produces {\displaystyle \Hahn{n}}
+:'''\Hahn{n}@{x}{\alpha}{\beta}{N}''' produces {\displaystyle \Hahn{n}@{x}{\alpha}{\beta}{N}}
+ +These are defined by +{\displaystyle +\Hahn{n}@{x}{\alpha}{\beta}{N}:=\HyperpFq{3}{2}@@{-n,n+\alpha+\beta+1,-x}{\alpha+1,-N}{1} +} + +== Symbols List == + +[http://dlmf.nist.gov/18.19#T1.t1.r3 {\displaystyle Q_{n}}] : Hahn polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r3 http://dlmf.nist.gov/18.19#T1.t1.r3]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:ctsHahn|Definition:ctsHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:dualHahn|Definition:dualHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:dualHahn''' +
+
<< [[Definition:Hahn|Definition:Hahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:qRacah|Definition:qRacah]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\dualHahn''' represents the Dual Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\dualHahn{n}''' produces {\displaystyle \dualHahn{n}}
+:'''\dualHahn{n}@{\lambda(x)}{\gamma}{\delta}{N}''' produces {\displaystyle \dualHahn{n}@{\lambda(x)}{\gamma}{\delta}{N}}
+:'''\dualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N}''' produces {\displaystyle \dualHahn{n}@@{\lambda(x)}{\gamma}{\delta}{N}}
+ +These are defined by +{\displaystyle +\dualHahn{n}@{\lambda(x)}{\gamma}{\delta}{N}:= +\HyperpFq{3}{2}@@{-n,-x,x+\gamma+\delta+1}{\gamma+1,-N}{1} +} + +== Symbols List == + +[http://dlmf.nist.gov/18.25#T1.t1.r5 {\displaystyle R_{n}}] : dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r5 http://dlmf.nist.gov/18.25#T1.t1.r5]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +
+
<< [[Definition:Hahn|Definition:Hahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:qRacah|Definition:qRacah]] >>
+
+drmf_eof +drmf_bof +'''Definition:qRacah''' +
+
<< [[Definition:dualHahn|Definition:dualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsdualqHahnptilde|Definition:normctsdualqHahnptilde]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qRacah''' represents the q-Racah polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qRacah{n}''' produces {\displaystyle \qRacah{n}}
+:'''\qRacah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q}''' produces {\displaystyle \qRacah{n}@{x}{\alpha}{\beta}{\gamma}{\delta}{q}}
+ +These are defined by +{\displaystyle +\qRacah{n}@{\mu(x)}{\alpha}{\beta}{\gamma}{\delta}{q} +{}:=\qHyperrphis{4}{3}@@{q^{-n},\alpha\beta q^{n+1},q^{-x},\gamma\delta q^{x+1}}{\alpha q,\beta\delta q,\gamm +} + +== Symbols List == + +[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : {\displaystyle q}-Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:dualHahn|Definition:dualHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsdualqHahnptilde|Definition:normctsdualqHahnptilde]] >>
+
+drmf_eof +drmf_bof +'''Definition:normctsdualqHahnptilde''' +
+
<< [[Definition:qRacah|Definition:qRacah]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsqHahnptilde|Definition:normctsqHahnptilde]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\normctsdualqHahnptilde''' represents the normalized continuous dual q-Hahn tilde polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normctsdualqHahnptilde{n}''' produces {\displaystyle \normctsdualqHahnptilde{n}}
+:'''\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}''' produces {\displaystyle \normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}}
+:'''\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q}''' produces {\displaystyle \normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q}}
+ +These are defined by +{\displaystyle +{\tilde p}_n(x):=\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}=\frac{a^n\ctsdualqHahn{n}@{x}{a}{b}{c}{q}}{\qPochhammer{ab,ac}{q}{n}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous dual {\displaystyle q}-Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde]
+[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:qRacah|Definition:qRacah]]
+
[[Main_Page|Main Page]]
+
[[Definition:normctsqHahnptilde|Definition:normctsqHahnptilde]] >>
+
+drmf_eof +drmf_bof +'''Definition:normctsqHahnptilde''' +
+
<< [[Definition:normctsdualqHahnptilde|Definition:normctsdualqHahnptilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:qHahn|Definition:qHahn]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\normctsqHahnptilde''' represents the normalized continuous q-Hahn tilde polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normctsqHahnptilde{n}''' produces {\displaystyle \normctsqHahnptilde{n}}
+:'''\normctsqHahnptilde{n}@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \normctsqHahnptilde{n}@{x}{a}{b}{c}{d}{q}}
+:'''\normctsqHahnptilde{n}@@{x}{a}{b}{c}{d}{q}''' produces {\displaystyle \normctsqHahnptilde{n}@@{x}{a}{b}{c}{d}{q}}
+ +These are defined by +{\displaystyle +{\tilde p}_n(x):=\normctsqHahnptilde{n}@{x}{a}{b}{c}{d}{q}=\frac{(a\expe^{i\phi})^n\ctsqHahn{n}@{x}{a}{b}{c}{d}{q}}{\qPochhammer{ab\expe^{2i\phi},ac,ad}{q}{n}} + +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous {\displaystyle q}-Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:normctsdualqHahnptilde|Definition:normctsdualqHahnptilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:qHahn|Definition:qHahn]] >>
+
+drmf_eof +drmf_bof +'''Definition:qHahn''' +
+
<< [[Definition:normctsqHahnptilde|Definition:normctsqHahnptilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamChihara|Definition:AlSalamChihara]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qHahn''' represents the q-Hahn polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qHahn{n}@{q^{-x}}{\alpha}{\beta}{N}''' produces {\displaystyle \qHahn{n}@{q^{-x}}{\alpha}{\beta}{N}}
+:'''\qHahn{n}@@{q^{-x}}{\alpha}{\beta}{N}''' produces {\displaystyle \qHahn{n}@@{q^{-x}}{\alpha}{\beta}{N}}
+ +These are defined by +{\displaystyle +\qHahn{n}@{q^{-x}}{\alpha}{\beta}{N}{q}:=\qHyperrphis{3}{2}@@{q^{-n},\alpha\beta q^{n+1},q^{-x}}{\alpha q,q^{-N}}{q}{q} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:normctsqHahnptilde|Definition:normctsqHahnptilde]]
+
[[Main_Page|Main Page]]
+
[[Definition:AlSalamChihara|Definition:AlSalamChihara]] >>
+
+drmf_eof +drmf_bof +'''Definition:AlSalamChihara''' +
+
<< [[Definition:qHahn|Definition:qHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:qinvAlSalamChihara|Definition:qinvAlSalamChihara]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\AlSalamChihara''' represents the Al-Salam Chihara polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\AlSalamChihara{n}''' produces {\displaystyle \AlSalamChihara{n}}
+:'''\AlSalamChihara{n}@{x}{a}{b}{q}''' produces {\displaystyle \AlSalamChihara{n}@{x}{a}{b}{q}}
+:'''\AlSalamChihara{n}@@{x}{a}{b}{q}''' produces {\displaystyle \AlSalamChihara{n}@@{x}{a}{b}{q}}
+ +These are defined by +{\displaystyle +\AlSalamChihara{n}@{x}{a}{b}{q}:=\frac{\qPochhammer{ab}{q}{n}}{a^n}\, +\qHyperrphis{3}{2}@@{q^{-n},a\expe^{i\theta},a\expe^{-i\theta}}{ab,0}{q}{q} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +
+
<< [[Definition:qHahn|Definition:qHahn]]
+
[[Main_Page|Main Page]]
+
[[Definition:qinvAlSalamChihara|Definition:qinvAlSalamChihara]] >>
+
+drmf_eof +drmf_bof +'''Definition:qinvAlSalamChihara''' +
+
<< [[Definition:AlSalamChihara|Definition:AlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqinvAlSalamChihara|Definition:monicqinvAlSalamChihara]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qinvAlSalamChihara''' represents the q-inverse of the Al-Salam Chihara polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qinvAlSalamChihara{n}''' produces {\displaystyle \qinvAlSalamChihara{n}}
+:'''\qinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}}''' produces {\displaystyle \qinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}}}
+ +These are defined by +{\displaystyle +\qinvAlSalamChihara{n}@{\thalf(aq^{-x}+a^{-1}q^x)}{a}{b }{q^{-1}}:= +(-1)^n b^n q^{-\half n(n-1)}\qPochhammer{(ab)^{-1}}{q}{n} +\qHyperrphis{3}{1}@@{q^{-n},q^{-x},a^{-2}q^x}{(ab)^{-1}}{q}{q^nab^{-1}} +} + +== Symbols List == + +[http://dlmf.nist.gov/23.1 {\displaystyle Q_{n}}] : {\displaystyle q}-inverse Al-Salam-Chihara polynomial : [http://dlmf.nist.gov/23.1 http://dlmf.nist.gov/23.1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:AlSalamChihara|Definition:AlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicqinvAlSalamChihara|Definition:monicqinvAlSalamChihara]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicqinvAlSalamChihara''' +
+
<< [[Definition:qinvAlSalamChihara|Definition:qinvAlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAffqKrawtchouk|Definition:monicAffqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicqinvAlSalamChihara''' represents the monic q-inverse of the Al-Salam Chihara polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicqinvAlSalamChihara{n}''' produces {\displaystyle \monicqinvAlSalamChihara{n}}
+:'''\monicqinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}}''' produces {\displaystyle \monicqinvAlSalamChihara{n}@{x}{a}{b}{q^{-1}}}
+ +These are defined by +{\displaystyle +x\monicqinvAlSalamChihara{n}@@{x}{a}{b}{q^{-1}=:\monicqinvAlSalamChihara{n+1}@@{x}{a}{b}{q^{-1}+\thalf(a+b)q^{-n} \monicqinvAlSalamChihara{n}@@{x}{a}{b}{q^{-1}+ +\tfrac14(q^{-n}-1)(abq^{-n+1}-1)\monicqinvAlSalamChihara{n-1}@@{x}{a}{b}{q^{-1} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-inverse Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara] +
+
<< [[Definition:qinvAlSalamChihara|Definition:qinvAlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:monicAffqKrawtchouk|Definition:monicAffqKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:monicAffqKrawtchouk''' +
+
<< [[Definition:monicqinvAlSalamChihara|Definition:monicqinvAlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:qMeixnerPollaczek|Definition:qMeixnerPollaczek]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\monicAffqKrawtchouk''' represents the Affine q Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\monicAffqKrawtchouk{n}''' produces {\displaystyle \monicAffqKrawtchouk{n}}
+:'''\monicAffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicAffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\monicAffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \monicAffqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by + +{\displaystyle +\AffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}=:\frac{1}{\qPochhammer{pq,q^{-N}}{q}{n}}\monicAffqKrawtchouk{n}@{q^{-x}}{p}{N}{q}. +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
+
<< [[Definition:monicqinvAlSalamChihara|Definition:monicqinvAlSalamChihara]]
+
[[Main_Page|Main Page]]
+
[[Definition:qMeixnerPollaczek|Definition:qMeixnerPollaczek]] >>
+
+drmf_eof +drmf_bof +'''Definition:qMeixnerPollaczek''' +
+
<< [[Definition:monicAffqKrawtchouk|Definition:monicAffqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:qtmqKrawtchouk|Definition:qtmqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qMeixnerPollaczek''' represents the q-Meixner Pollaczek polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qMeixnerPollaczek{n}''' produces {\displaystyle \qMeixnerPollaczek{n}}
+:'''\qMeixnerPollaczek{n}@{x}{a}{q}''' produces {\displaystyle \qMeixnerPollaczek{n}@{x}{a}{q}}
+ +These are defined by +{\displaystyle +\qMeixnerPollaczek{n}@{x}{a}{q}:=a^{-n}\expe^{-in\phi}\frac{\qPochhammer{a^2}{q}{n}}{\qPochhammer{q}{q}{n}}\, +\qHyperrphis{3}{2}@@{q^{-n},a\expe^{i(\theta+2\phi)},a\expe^{-i\theta}}{a^2,0}{q}{q} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:monicAffqKrawtchouk|Definition:monicAffqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:qtmqKrawtchouk|Definition:qtmqKrawtchouk]] >>
+
+drmf_eof +drmf_bof +'''Definition:qtmqKrawtchouk''' +
+
<< [[Definition:qMeixnerPollaczek|Definition:qMeixnerPollaczek]]
+
[[Main_Page|Main Page]]
+
[[Definition:qLaguerre|Definition:qLaguerre]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qtmqKrawtchouk''' represents the quantum q-Krawtchouk polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qtmqKrawtchouk{n}''' produces {\displaystyle \qtmqKrawtchouk{n}}
+:'''\qtmqKrawtchouk{n}@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \qtmqKrawtchouk{n}@{q^{-x}}{p}{N}{q}}
+:'''\qtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}''' produces {\displaystyle \qtmqKrawtchouk{n}@@{q^{-x}}{p}{N}{q}}
+ +These are defined by +{\displaystyle +\qtmqKrawtchouk{n}@{q^{-x}}{p}{N}{q}:= +\qHyperrphis{2}{1}@@{q^{-n},q^{-x}}{q^{-N}}{q}{pq^{n+1}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qMeixnerPollaczek|Definition:qMeixnerPollaczek]]
+
[[Main_Page|Main Page]]
+
[[Definition:qLaguerre|Definition:qLaguerre]] >>
+
+drmf_eof +drmf_bof +'''Definition:qLaguerre''' +
+
<< [[Definition:qtmqKrawtchouk|Definition:qtmqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqHermite|Definition:ctsqHermite]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\qLaguerre''' represents the q-Laguerre polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\qLaguerre{n}''' produces {\displaystyle \qLaguerre{n}}
+:'''\qLaguerre[\alpha]{n}''' produces {\displaystyle \qLaguerre[\alpha]{n}}
+:'''\qLaguerre{n}@{x}{q}''' produces {\displaystyle \qLaguerre{n}@{x}{q}}
+:'''\qLaguerre[\alpha]{n}@{x}{q}''' produces {\displaystyle \qLaguerre[\alpha]{n}@{x}{q}}
+:'''\qLaguerre{n}@@{x}{q}''' produces {\displaystyle \qLaguerre{n}@@{x}{q}}
+:'''\qLaguerre[\alpha]{n}@@{x}{q}''' produces {\displaystyle \qLaguerre[\alpha]{n}@@{x}{q}}
+ +These are defined by +{\displaystyle +\qLaguerre[\alpha]{n}@{x}{q}:=\frac{\qPochhammer{q^{\alpha+1}}{q}{n}}{\qPochhammer{q}{q}{n}}\, +\qHyperrphis{1}{1}@@{q^{-n}}{q^{\alpha+1}}{q}{-q^{n+\alpha+1}x} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qtmqKrawtchouk|Definition:qtmqKrawtchouk]]
+
[[Main_Page|Main Page]]
+
[[Definition:ctsqHermite|Definition:ctsqHermite]] >>
+
+drmf_eof +drmf_bof +'''Definition:ctsqHermite''' +
+
<< [[Definition:qLaguerre|Definition:qLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:StieltjesWigert|Definition:StieltjesWigert]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\ctsqHermite''' represents the continuous q-Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\ctsqHermite{n}''' produces {\displaystyle \ctsqHermite{n}}
+:'''\ctsqHermite{n}@{x}{q}''' produces {\displaystyle \ctsqHermite{n}@{x}{q}}
+:'''\ctsqHermite{n}@@{x}{q}''' produces {\displaystyle \ctsqHermite{n}@@{x}{q}}
+ +These are defined by +{\displaystyle +\ctsqHermite{n}@{x}{q}:=\expe^{in\theta}\,\qHyperrphis{2}{0}@@{q^{-n},0}{-}{q}{q^n\expe^{-2i\theta}} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:qLaguerre|Definition:qLaguerre]]
+
[[Main_Page|Main Page]]
+
[[Definition:StieltjesWigert|Definition:StieltjesWigert]] >>
+
+drmf_eof +drmf_bof +'''Definition:StieltjesWigert''' +
+
<< [[Definition:ctsqHermite|Definition:ctsqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:discrqHermiteI|Definition:discrqHermiteI]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\StieltjesWigert''' represents the Stieltjes Wigert polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\StieltjesWigert{n}''' produces {\displaystyle \StieltjesWigert{n}}
+:'''\StieltjesWigert{n}@{x}{q}''' produces {\displaystyle \StieltjesWigert{n}@{x}{q}}
+:'''\StieltjesWigert{n}@@{x}{q}''' produces {\displaystyle \StieltjesWigert{n}@@{x}{q}}
+ +These are defined by +{\displaystyle +\StieltjesWigert{n}@{x}{q}:=\frac{1}{\qPochhammer{q}{q}{n}}\,\qHyperrphis{1}{1}@@{q^{-n}}{0}{q}{-q^{n+1}x} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+
<< [[Definition:ctsqHermite|Definition:ctsqHermite]]
+
[[Main_Page|Main Page]]
+
[[Definition:discrqHermiteI|Definition:discrqHermiteI]] >>
+
+drmf_eof +drmf_bof +'''Definition:discrqHermiteI''' +
+
<< [[Definition:StieltjesWigert|Definition:StieltjesWigert]]
+
[[Main_Page|Main Page]]
+
[[Definition:discrqHermiteII|Definition:discrqHermiteII]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\discrqHermiteI''' represents the first discrete q Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\discrqHermiteI{n}''' produces {\displaystyle \discrqHermiteI{n}}
+:'''\discrqHermiteI{n}@{x}{q}''' produces {\displaystyle \discrqHermiteI{n}@{x}{q}}
+:'''\discrqHermiteI{n}@@{x}{q}''' produces {\displaystyle \discrqHermiteI{n}@@{x}{q}}
+ +These are defined by +{\displaystyle +\discrqHermiteI{n}@{x}{q}:=\AlSalamCarlitzI{-1}{n}@{x}{q} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
+[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI] +
+
<< [[Definition:StieltjesWigert|Definition:StieltjesWigert]]
+
[[Main_Page|Main Page]]
+
[[Definition:discrqHermiteII|Definition:discrqHermiteII]] >>
+
+drmf_eof +drmf_bof +'''Definition:discrqHermiteII''' +
+
<< [[Definition:discrqHermiteI|Definition:discrqHermiteI]]
+
[[Main_Page|Main Page]]
+
[[Definition:StieltjesConstants|Definition:StieltjesConstants]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\discrqHermiteII''' represents the second discrete q Hermite polynomial. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\discrqHermiteII{n}''' produces {\displaystyle \discrqHermiteII{n}}
+:'''\discrqHermiteII{n}@{x}{q}''' produces {\displaystyle \discrqHermiteII{n}@{x}{q}}
+:'''\discrqHermiteII{n}@@{x}{q}''' produces {\displaystyle \discrqHermiteII{n}@@{x}{q}}
+ +These are defined by +{\displaystyle +\discrqHermiteII{n}@{x}{q}:=i^{-n}\AlSalamCarlitzII{-1}{n}@{ix}{q} +} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
+[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII] +
+
<< [[Definition:discrqHermiteI|Definition:discrqHermiteI]]
+
[[Main_Page|Main Page]]
+
[[Definition:StieltjesConstants|Definition:StieltjesConstants]] >>
+
+drmf_eof +drmf_bof +'''Definition:StieltjesConstants''' +
+
<< [[Definition:discrqHermiteII|Definition:discrqHermiteII]]
+
[[Main_Page|Main Page]]
+
[[Definition:PolylogarithmS|Definition:PolylogarithmS]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\StieltjesConstants''' represents the Stiltjes constants +\StieltjesConstants{n}. + +This macro is in the category of constants. + +In math mode, this macro can be called in the following way: + +:'''\StieltjesConstants{n}''' produces {\displaystyle \StieltjesConstants{n}}
+ +These are defined by +{\displaystyle \StieltjesConstants{n} := \lim_{m \to \infty} \left( \sum_{k=1}^m +\frac{(\ln@@{k})^n}{k} - \frac{(\ln@@{m})^{n+1}}{n+1} \right). +} + +The Stieltjes constant \StieltjesConstants{0}=0.57721\;56649\;01532\;86... equals \EulerConstant the Euler-Mascheroni constant.
+ +== Bibliography == +Equation (2), Section 2.21 of [[Bibliography#FI|'''FI''']]. + +== URL links == +[http://en.wikipedia.org/wiki/Stieltjes_constants http://en.wikipedia.org/wiki/Stieltjes_constants] + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants {\displaystyle \gamma_{n}}] : Stieltjes constants : [http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://dlmf.nist.gov/5.2#E3 {\displaystyle \gamma}] : Euler's (Euler-Mascheroni) constant : [http://dlmf.nist.gov/5.2#E3 http://dlmf.nist.gov/5.2#E3] +
+
<< [[Definition:discrqHermiteII|Definition:discrqHermiteII]]
+
[[Main_Page|Main Page]]
+
[[Definition:PolylogarithmS|Definition:PolylogarithmS]] >>
+
+drmf_eof +drmf_bof +'''Definition:PolylogarithmS''' +
+
<< [[Definition:StieltjesConstants|Definition:StieltjesConstants]]
+
[[Main_Page|Main Page]]
+
[[Definition:HarmonicNumber|Definition:HarmonicNumber]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\PolylogarithmS''' represents the PolylogarithmS. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\PolylogarithmS{n}{p}''' produces {\displaystyle \PolylogarithmS{n}{p}}
+:'''\PolylogarithmS{n}{p}@{z}''' produces {\displaystyle \PolylogarithmS{n}{p}@{z}}
+ +These are defined by + + + +{\displaystyle + +\PolylogarithmS{n}{p}@{z} + +} + +
+ +== Symbols List == + +[p}$ {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [p}$ p}$] [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS] +
+
<< [[Definition:StieltjesConstants|Definition:StieltjesConstants]]
+
[[Main_Page|Main Page]]
+
[[Definition:HarmonicNumber|Definition:HarmonicNumber]] >>
+
+drmf_eof +drmf_bof +'''Definition:HarmonicNumber''' +
+
<< [[Definition:PolylogarithmS|Definition:PolylogarithmS]]
+
[[Main_Page|Main Page]]
+
[[Definition:LucasL|Definition:LucasL]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\HarmonicNumber''' represents the HarmonicNumber. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\HarmonicNumber{n}''' produces {\displaystyle \HarmonicNumber{n}}
+:'''\HarmonicNumber[r]{n}''' produces {\displaystyle \HarmonicNumber[r]{n}}
+:'''\HarmonicNumber{n}''' produces {\displaystyle \HarmonicNumber{n}}
+ +These are defined by + + + +{\displaystyle + +\HarmonicNumber[r]{n} + +} + +
+ +== Symbols List == + +[http://dlmf.nist.gov/25.11#E33 {\displaystyle H_{n}}] : Harmonic number : [http://dlmf.nist.gov/25.11#E33 http://dlmf.nist.gov/25.11#E33] +
+
<< [[Definition:PolylogarithmS|Definition:PolylogarithmS]]
+
[[Main_Page|Main Page]]
+
[[Definition:LucasL|Definition:LucasL]] >>
+
+drmf_eof +drmf_bof +'''Definition:LucasL''' +
+
<< [[Definition:HarmonicNumber|Definition:HarmonicNumber]]
+
[[Main_Page|Main Page]]
+
[[Definition:HurwitzLerchPhi|Definition:HurwitzLerchPhi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\LucasL''' represents the LucasL. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\LucasL{n}''' produces {\displaystyle \LucasL{n}}
+:'''\LucasL{n}@{x}''' produces {\displaystyle \LucasL{n}@{x}}
+ +These are defined by + + + +{\displaystyle + +\LucasL{n}@{x} + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:LucasL {\displaystyle L_{n}}] : Lucas polynomial : [http://drmf.wmflabs.org/wiki/Definition:LucasL http://drmf.wmflabs.org/wiki/Definition:LucasL] +
+
<< [[Definition:HarmonicNumber|Definition:HarmonicNumber]]
+
[[Main_Page|Main Page]]
+
[[Definition:HurwitzLerchPhi|Definition:HurwitzLerchPhi]] >>
+
+drmf_eof +drmf_bof +'''Definition:HurwitzLerchPhi''' +
+
<< [[Definition:LucasL|Definition:LucasL]]
+
[[Main_Page|Main Page]]
+
[[Definition:GoldenRatio|Definition:GoldenRatio]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\HurwitzLerchPhi''' represents the HurwitzLerchPhi. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\HurwitzLerchPhi''' produces {\displaystyle \HurwitzLerchPhi}
+:'''\HurwitzLerchPhi@{z}{s}{a}''' produces {\displaystyle \HurwitzLerchPhi@{z}{s}{a}}
+ +These are defined by + + + +{\displaystyle + +\HurwitzLerchPhi@{z}{s}{a} + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi {\displaystyle \Phi}] : Hurwitz-Lerch's transcendent : [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi] +
+
<< [[Definition:LucasL|Definition:LucasL]]
+
[[Main_Page|Main Page]]
+
[[Definition:GoldenRatio|Definition:GoldenRatio]] >>
+
+drmf_eof +drmf_bof +'''Definition:GoldenRatio''' +
+
<< [[Definition:HurwitzLerchPhi|Definition:HurwitzLerchPhi]]
+
[[Main_Page|Main Page]]
+
[[Definition:WhitPsi|Definition:WhitPsi]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\GoldenRatio''' represents the GoldenRatio. + +This macro is in the category of constants. + +In math mode, this macro can be called in the following way: + +:'''\GoldenRatio''' produces {\displaystyle \GoldenRatio}
+ +These are defined by + + + +{\displaystyle + +\GoldenRatio + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:GoldenRatio {\displaystyle \phi}] : The golden ratio : [http://drmf.wmflabs.org/wiki/Definition:GoldenRatio http://drmf.wmflabs.org/wiki/Definition:GoldenRatio] +
+
<< [[Definition:HurwitzLerchPhi|Definition:HurwitzLerchPhi]]
+
[[Main_Page|Main Page]]
+
[[Definition:WhitPsi|Definition:WhitPsi]] >>
+
+drmf_eof +drmf_bof +'''Definition:WhitPsi''' +
+
<< [[Definition:GoldenRatio|Definition:GoldenRatio]]
+
[[Main_Page|Main Page]]
+
[[Definition:GompertzConstant|Definition:GompertzConstant]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\WhitPsi''' represents the WhitPsi. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\WhitPsi{\alpha}{\beta}''' produces {\displaystyle \WhitPsi{\alpha}{\beta}}
+:'''\WhitPsi{\alpha}{\beta}@{z}''' produces {\displaystyle \WhitPsi{\alpha}{\beta}@{z}}
+ +These are defined by + + + +{\displaystyle + +\WhitPsi{\alpha}{\beta}@{z} + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function {\displaystyle \Psi_{\alpha;\beta}} : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi] +
+
<< [[Definition:GoldenRatio|Definition:GoldenRatio]]
+
[[Main_Page|Main Page]]
+
[[Definition:GompertzConstant|Definition:GompertzConstant]] >>
+
+drmf_eof +drmf_bof +'''Definition:GompertzConstant''' +
+
<< [[Definition:WhitPsi|Definition:WhitPsi]]
+
[[Main_Page|Main Page]]
+
[[Definition:rabbitConstant|Definition:rabbitConstant]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\GompertzConstant''' represents the GompertzConstant. + +This macro is in the category of constants. + +In math mode, this macro can be called in the following way: + +:'''\GompertzConstant''' produces {\displaystyle \GompertzConstant}
+ +These are defined by + + + +{\displaystyle + +\GompertzConstant + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:GompertzConstant {\displaystyle G}] : Gompertz's constant : [http://drmf.wmflabs.org/wiki/Definition:GompertzConstant http://drmf.wmflabs.org/wiki/Definition:GompertzConstant] +
+
<< [[Definition:WhitPsi|Definition:WhitPsi]]
+
[[Main_Page|Main Page]]
+
[[Definition:rabbitConstant|Definition:rabbitConstant]] >>
+
+drmf_eof +drmf_bof +'''Definition:rabbitConstant''' +
+
<< [[Definition:GompertzConstant|Definition:GompertzConstant]]
+
[[Main_Page|Main Page]]
+
[[Definition:FibonacciNumber|Definition:FibonacciNumber]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\rabbitConstant''' represents the rabbitConstant. + +This macro is in the category of constants. + +In math mode, this macro can be called in the following way: + +:'''\rabbitConstant''' produces {\displaystyle \rabbitConstant}
+ +These are defined by + + + +{\displaystyle + +\rabbitConstant + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:RabbitConstant {\displaystyle \rho}] : rabbit constant : [http://drmf.wmflabs.org/wiki/Definition:RabbitConstant http://drmf.wmflabs.org/wiki/Definition:RabbitConstant] +
+
<< [[Definition:GompertzConstant|Definition:GompertzConstant]]
+
[[Main_Page|Main Page]]
+
[[Definition:FibonacciNumber|Definition:FibonacciNumber]] >>
+
+drmf_eof +drmf_bof +'''Definition:FibonacciNumber''' +
+
<< [[Definition:rabbitConstant|Definition:rabbitConstant]]
+
[[Main_Page|Main Page]]
+
[[Definition:Fibonacci|Definition:Fibonacci]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\FibonacciNumber''' represents the FibonacciNumber. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following way: + +:'''\FibonacciNumber{n}''' produces {\displaystyle \FibonacciNumber{n}}
+ +These are defined by + + + +{\displaystyle + +\FibonacciNumber{n} + +} + +
+ +== Symbols List == + +[http://dlmf.nist.gov/26.11#E5 {\displaystyle F_{n}}] : Fibonacci number : [http://dlmf.nist.gov/26.11#E5 http://dlmf.nist.gov/26.11#E5] +
+
<< [[Definition:rabbitConstant|Definition:rabbitConstant]]
+
[[Main_Page|Main Page]]
+
[[Definition:Fibonacci|Definition:Fibonacci]] >>
+
+drmf_eof +drmf_bof +'''Definition:Fibonacci''' +
+
<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
+
[[Main_Page|Main Page]]
+
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
+ +The LaTeX DLMF and DRMF macro '''\Fibonacci''' represents the Fibonacci. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following way: + +:'''\Fibonacci{n}''' produces {\displaystyle \Fibonacci{n}}
+ +These are defined by + + + +{\displaystyle + +\Fibonacci{n}@{x} + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci] +
+
<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
+
[[Main_Page|Main Page]]
+
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
+drmf_eof diff --git a/main_page/src/KLS.py b/main_page/src/KLS.py new file mode 100644 index 0000000..32bf360 --- /dev/null +++ b/main_page/src/KLS.py @@ -0,0 +1,19 @@ +__author__ = "Azeem Mohammed" +__status__ = "Development" + +import os + + +# TODO: Actually make the if statements do what they're supposed to. + +if raw_input("Update Main Page? (y or n) ") != "n": + print "List" + os.system("python src/list.py") + print "Symbols List" + os.system("python src/symbols_list.py") + print "Headers" + os.system("python src/headers.py") + print "List Ways" + os.system("python src/mod_main.py") + +print "Done" diff --git a/main_page/src/__init__.py b/main_page/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/main_page/src/headers.py b/main_page/src/headers.py new file mode 100644 index 0000000..f760e99 --- /dev/null +++ b/main_page/src/headers.py @@ -0,0 +1,64 @@ +__author__ = "Azeem Mohammed" +__status__ = "Development" + +import copy + +with open("main_page.mmd", "r") as main_page: + lines = main_page.read() + main_lines = copy.copy(lines) + +start = lines.find("* [[Definition:", lines.find("= Definition Pages =")) +end = lines.find("" in text: + search_string = ">>
\n
" + text = text[text.find(search_string) + len(search_string):] + + if "
" in text: + text = text[:text.find("
")] + + prev = pages[(count - 1) % len(pages)] + cur = "Main Page" + next = pages[(count + 1) % len(pages)] + + delimiter = "\n
<< [[" + prev.replace(" ", "_") + "|" + prev + "]]
" + \ + "\n
[[" + cur.replace(" ", "_") + "|" + cur + "]]
" + \ + "\n
[[" + next.replace(" ", "_") + "|" + next + "]] >>
" + \ + "\n
" + + header = "\n
" + delimiter + footer = "
" + delimiter + + main_page.write("drmf_bof\n" + title + header + text + footer + "\ndrmf_eof\n") + + count += 1 diff --git a/main_page/src/list.py b/main_page/src/list.py new file mode 100644 index 0000000..b65aeb8 --- /dev/null +++ b/main_page/src/list.py @@ -0,0 +1,59 @@ +__author__ = "Azeem Mohammed" +__status__ = "Development" + +import copy +import time + + +def compare_string(a, b): + """Returns whether string a is "less than" string b, up to the pipe symbol.""" + x = a[:a.find("|")] + y = b[:b.find("|")] + + # pipe missing in a string + if not x or not y: + return True + + return x < y + + +def sum_ordinal(string): + """Returns the sum of the ordinal values of all characters in string.""" + return sum((ord(ch) for ch in string)) + + +def sort(strings): + return sorted(copy.deepcopy(strings), cmp=compare_string) + + +def main(): + localtime = time.asctime(time.localtime(time.time())).replace(" ", "_") + with open("main_page.mmd") as main_page: + with open("backups/main_page.mmd" + str(localtime), "w") as main_page_bak: + main_page_bak.write(main_page.read()) + + with open("main_page.mmd") as main_page: + main_text = main_page.read() + + main_lines = main_text.split("\n") + + text = "" + + for line in main_lines: + if "'''Definition:" in line: + definition = line[line.find("'''Definition:") + 3:line.find("'''", line.find("'''Definition:") + 4)] + element = "* [[" + definition + "|" + definition[len("Definition:"):] + "]]" + text += element + "\n" + + s = main_text.find("== Definition Pages ==") + e = main_text.find("= Copyright =") + + text = main_text[:s] + \ + "== Definition Pages ==\n\n
\n" + \ + text + "
\n\n" + main_text[e:] + + with open("main_page.mmd", "w") as main_page: + main_page.write(text) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/main_page/src/main.py b/main_page/src/main.py new file mode 100644 index 0000000..19dd4c3 --- /dev/null +++ b/main_page/src/main.py @@ -0,0 +1,8 @@ +__author__ = "Azeem Mohammed" +__status__ = "Development" +__credits__ = ["Azeem Mohammed", "Joon Bang"] + +import os + +if raw_input("Update main page? (y/n): ") != "n": + pass diff --git a/main_page/src/mod_main.py b/main_page/src/mod_main.py new file mode 100644 index 0000000..fab8c86 --- /dev/null +++ b/main_page/src/mod_main.py @@ -0,0 +1,125 @@ +__author__ = "Azeem Mohammed" +__status__ = "Development" + +import copy +import csv + +DEF_STRING = "'''Definition:" + + +def at_sort(strings): + """Sorts by number of @ symbols in string.""" + + return sorted(copy.copy(strings), key=lambda ch: ch.count("@")) + + +def remove_brackets_text(string): + left_brackets = 0 + text = "" + + for ch in string: + if ch == "[": + left_brackets += 1 + elif ch == "]": + left_brackets -= 1 + elif not left_brackets: + text += ch + + return text + + +def find_all_pos(info): + # TODO: what is info? what does pos mean??? + + original = info[0] + key_string = info[3] + + before, key_string = key_string.split("|", 1) + keys = key_string.split(":") + ret = [] + + for key in keys: + if key in ["F", "FO", "O", "O1"]: + if "@" in original: + ret.append(original[:original.find("@")]) + if key == "O": + ret.append(original) + else: + ret.append(original) + elif key == "FnO": # remove optional parameters + if original.find("@") != -1: + ret.append(remove_brackets_text(original[0:original.find("@")])) + else: + ret.append(remove_brackets_text(original)) + elif key in ["P", "PO"]: + ret.append(original.replace("@@", "@")) + elif key == "PnO": # remove optional parameters + ret.append(remove_brackets_text(original.replace("@@", "@"))) + elif key in ["nP", "nPO", "PS", "O2"]: + ret.append(original) + elif key == "nPnO": # remove optional paramters + ret.append(remove_brackets_text(original)) + + if "fo" in key: + ret.append(original.replace("@@@", "@" * int(key[2]))) + + return at_sort(ret), before + +with open("main_page.mmd") as main_page: + lines = main_page.read() + +lines = lines.replace("The LaTeX DLMF macro '''\\", "The LaTeX DLMF and DRMF macro '''\\") + +with open("Categories.txt") as categories: + cats = [category.strip() for category in categories.readlines()] + +text = "" +i = 0 + +while True: + n = lines.find(DEF_STRING, i) + if n == -1: + break + else: + macroN = lines[n + len(DEF_STRING):lines.find("'''", n + len(DEF_STRING))] + r = lines.find("'''\\", n) + q = lines.find("'''", r + len("'''\\")) + + if lines[r:q].find("{") != -1: + lines = lines[:r] + "'''\\" + macroN + lines[q:] + + if lines.find("\nThis macro is in the category of", n) < lines.find(DEF_STRING, n + 15) \ + and "\nThis macro is in the category of" in lines[n:]: + p = lines.find("\nThis macro is in the category of", n) + else: + p = lines.find("\n", lines.find(".", n)) + + text += lines[i:p].rstrip() + "\n\n" + + count = 0 + list_calls = [] + + glossary = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + for entry in glossary: + if not entry[0].find("\\" + macroN) and (len(entry[0]) == len(macroN) + 1 or not entry[0][len(macroN) + 1].isalpha()): + q, s = find_all_pos(entry) + list_calls += q + count += len(q) + + for cat in cats: + if s + " -" in cat: + category = "This macro is in the category of" + cat[cat.find("-") + 2:] + "\n\n" + break + + new = category + "In math mode, this macro can be called in the following way" + "s" * (count > 1) + ":\n\n" + + for q in range(0, len(list_calls)): + c = list_calls[q] + new += ":'''" + c + "'''" + " produces {\\displaystyle " + c + "}
\n" + + # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + text += new + "\n" + i = lines.find("These are defined by", p) + +with open("main_page.mmd", "w") as main_page: + main_page.write(text + lines[i:]) diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py new file mode 100644 index 0000000..82d8eb9 --- /dev/null +++ b/main_page/src/symbols_list.py @@ -0,0 +1,285 @@ +__author__ = "Azeem Mohammed" +__status__ = "Development" + +import csv + + +def getSym(line): # Gets all symbols on a line for symbols list + line = line.replace("\n", " ") + symList = [] + if line == "": + return symList + symbol = "" + symFlag = False + argFlag = False + cC = 0 + for i in range(0, len(line)): + c = line[i] + if symFlag: + if c == "{" or c == "[": + cC += 1 + argFlag = True + if c != "}" and c != "]": + if argFlag or c.isalpha(): + symbol += c + else: + symFlag = False + argFlag = False + symList.append(symbol) + symList += (getSym(symbol)) + symbol = "" + else: + cC -= 1 + symbol += c + if i + 1 == len(line): + p = "" + else: + p = line[i + 1] + if cC == 0 and p != "{" and p != "[" and p != "@": + symFlag = False + symList.append(symbol) + symList += (getSym(symbol)) + argFlag = False + symbol = "" + + elif c == "\\": + symFlag = True + + symList.append(symbol) + symList += getSym(symbol) + return symList + +mainPage = open("main_page.mmd", "r") +mainLines = mainPage.read() +mainLines = mainLines[mainLines.find("drmf_bof"):mainLines.rfind("drmf_eof") + len("drmf_eof\n")] +mainPage.close() +main = open("main_page.mmd", "w") +mainPages = mainLines.split("drmf_eof") + +if mainPages[-1].strip() == "": + mainPages = mainPages[0:len(mainPages) - 1] + +print len(mainPages) + +glossary = open('new.Glossary.csv', 'rb') +gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') +lGlos = glossary.readlines() +wiki = "" + +for g in mainPages: + if not "\'\'\'Definition:" in g: + h = g.replace("drmf_eof", "") + h = g.replace("drmf_bof", "") + toWrite = "drmf_bof" + h + "drmf_eof\n" + main.write(toWrite) + else: + h = g.replace("drmf_eof", "") + h = g.replace("drmf_bof", "") + h = h.strip("\n") + sflag1 = False + sflag2 = False + if h.find("== Symbols List ==") != -1: + toWrite = h[0:h.find("== Symbols List ==")] + h = toWrite + else: + sflag1 = True + if h.find("drmf_foot") == -1: + toWrite = h + sflag2 = True + else: + toWrite = h[0:h.find("
len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": + argFlag = True + elif Q[o] == "}" or z == "]": + argFlag = False + listArgs.append(ap) + ap = "" + else: + ap += Q[o] + websiteF = "" + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + new1 = "" + new2 = "" + pause = False + mathF = True + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF + else: + new2 += p2[k] + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + if not gFlag: + del newSym[s] + + gFlag = True + for y in finSym: + if gFlag: + gFlag = False + toWrite += ("[" + y) + else: + toWrite += ("
\n[" + y) + + toWrite += "\n
\ndrmf_eof\n\n" + if sflag2: + toWrite += "\n" + main.write(toWrite) diff --git a/main_page/symbolsList.py~ b/main_page/symbolsList.py~ new file mode 100644 index 0000000..b0d1d72 --- /dev/null +++ b/main_page/symbolsList.py~ @@ -0,0 +1,278 @@ +def getSym(line): #Gets all symbols on a line for symbols list + symList=[] + symbol="" + symFlag=False + argFlag=False + cC=0 + for i in range(0,len(line)): + #if "Laguerre[-\\frac{1}{2}]{n}@{x^2}" in line: + #print symbol + c=line[i] + if symFlag: + if c=="{" or c=="[": + cC+=1 + argFlag=True + if c!="}" and c!="]": + if argFlag or c.isalpha(): + symbol+=c + else: + symFlag=False + argFlag=False + symList.append(symbol) + symList+=(getSym(symbol)) + symbol="" + else: + cC-=1 + symbol+=c + if i+1==len(line): + p="" + else: + p=line[i+1] + if cC==0 and p!="{" and p!="[" and p!="@": + symFlag=False + #if "Laguerre[-\\frac{1}{2}]{n}@{x^2}" in line: + #print(symbol,p) + symList.append(symbol) + symList+=(getSym(symbol)) + argFlag=False + symbol="" + + elif c=="\\": + symFlag=True + + #if "Laguerre[-\\frac{1}{2}]{n}@{x^2}" in line: + #print symbol + return(symList) +import os +files_in_dir=os.listdire(".") +for g in files_in_dir: + if not ".py" in g and not ".new" in g: + f=open(g,"r") + w=open(g+".new","w") + t=f.read() + w.write(t) + t=t.replace("\n","") + symbols=getSym(t) + if True: + wiki.write("
\n== Symbols List ==\n
\n") + newSym=[] + #if "09.12:21" in label: + #print(symbols) + for x in symbols: + flagA=True + #if x not in newSym: + cN=0 + cC=0 + ArgCx=0 + for z in x: + if z.isalpha(): + cN+=1 + else: + if z=="{" or z=="[": + cC+=1 + if z=="}" or z=="]": + cC-=1 + if cC==0: + ArgCx+=1 + noA=x[:cN] + for y in newSym: + cN=0 + cC=0 + ArgC=0 + for z in y: + if z.isalpha(): + cN+=1 + else: + if z=="{" or z=="[": + cC+=1 + if z=="}" or z=="]": + cC-=1 + if cC==0: + ArgC+=1 + + + if y[:cN]==noA and ArgC==ArgCx: + flagA=False + #print(x,y) + break + if flagA: + newSym.append(x) + newSym.reverse() + #if "9.12:20" in label: + #print newSym + symF=False + finSym=[] + for s in range(len(newSym)-1,-1,-1): + #print(newSym[s]) + symbolPar="\\"+newSym[s] + ArgCx=0 + parCx=0 + parFlag=False + cC=0 + for z in symbolPar: + if z=="@": + parFlag=True + elif z.isalpha(): + cN+=1 + else: + if z=="{" or z=="[": + cC+=1 + if z=="}" or z=="]": + cC-=1 + if cC==0: + if parFlag: + parCx+=1 + else: + ArgCx+=1 + + if symbolPar.find("{")!=-1 or symbolPar.find("[")!=-1: + if symbolPar.find("[")==-1: + symbol=symbolPar[0:symbolPar.find("{")] + elif symbolPar.find("{")==-1 or symbolPar.find("[")len(symbol) and (G[0][len(symbol)]=="{" or G[0][len(symbol)]=="["): + ap="" + for o in range(len(symbol),len(G[0])): + if G[0][o]=="{" or z=="[": + argFlag=True + elif G[0][o]=="}" or z=="]": + argFlag=False + listArgs.append(ap) + ap="" + else: + ap+=G[0][o] + '''websiteU=g[g.find("http://"):].strip("\n") + k=0 + websites=[] + for r in range(0,len(websiteU)): + if websiteU[r]==",": + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + k=r + + + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + websiteF="" + for d in websites: + websiteF=websiteF+" ["+d+" "+d+"]"''' + #websiteF=G[4].strip("\n") + websiteF="" + web1=G[5] + for t in range(5,len(G)): + if G[t]!="": + websiteF=websiteF+" ["+G[t]+" "+G[t]+"]" + p1="{\\displaystyle "+G[0]+"}" + if p1.find("@")!=-1: + p1=p1[:p1.find("@")] + #if checkFlag: + #print(p1) + new1="" + new2="" + pause=False + mathF=True + '''for k in range(0,len(p1)): + if p1[k]=="$": + if mathF: + new1+="{\\displaystyle " + else: + new1+="}" + mathF=not mathF + + elif p1[k]=="#" and p1[k+1].isdigit(): + pause=True + elif pause: + num=int(p1[k]) + #letter=chr(num+96) + letter=listArgs[num-1] + new1+=letter + pause=False + + else: + new1+=p1[k]''' + p2=G[1] + for k in range(0,len(p2)): + if p2[k]=="$": + if mathF: + new2+="{\\displaystyle " + else: + new2+="}" + mathF=not mathF + else: + new2+=p2[k] + #p1=new1 + p2=new2 + finSym.append(web1+" "+p1+"]
: "+p2+" :"+websiteF) + break + #gFlag=True + #if not symF: + # symF=True + # wiki.write("[") + #else: + # wiki.write("
\n") + # wiki.write("[") + #wiki.write(g[g.find("http://"):].strip("\n")) + #wiki.write(" ") + #wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + #wiki.write("] : ") + #wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + #wiki.write(" : [") + #wiki.write(g[g.find("http://"):].strip("\n")) + #wiki.write(" ") + #wiki.write(g[g.find("http://"):].strip("\n")) + #wiki.write("] ")''' + + + + if not gFlag: + del newSym[s] + + gFlag=True + #finSym.reverse() + for y in finSym: + #print(finSym) + if gFlag: + gFlag=False + wiki.write("["+y) + else: + wiki.write("
\n["+y) + + diff --git a/main_page/tex2Wiki.py~ b/main_page/tex2Wiki.py~ new file mode 100644 index 0000000..1cce794 --- /dev/null +++ b/main_page/tex2Wiki.py~ @@ -0,0 +1,966 @@ +#Version 11: Split Sections +#Convert tex to wikiText +import csv #imported for using csv format +import sys #imported for getting args +import os #imported for copying file +def isnumber(char): + return char[0] in "0123456789" +def getString(line): #Gets all data within curly braces on a line + #-------Initialization------- + stringWrite="" + getStr=False + pW="" + #---------------------------- + for c in line: + if c=="{" or c=="}": #if there is a curly brace in the line + getStr=not(getStr) #toggle the getStr flag + if c=="}": #no more info needed + break + elif getStr: #if within curly braces + if not(pW==c and c=="-"): #if there is no double dash (makes single dash) + if c!="$": #if not a $ sign + stringWrite+=c #this character is part of the data + else: #replace $ with '' + stringWrite+="\'\'" #add double ' + pW=c #change last character for finding double dashes + return (stringWrite.rstrip('\n').lstrip()) #return the data without newlines and without leading spaces +def getG(line): #gets equation for symbols list + start=True + final="" + for c in line: + if c=="$" and start: + final+="{\\displaystyle " + start=False + elif c=="$": + final+="}" + start=True + else: + final+=c + return(final) +def getEq(line): #Gets all data within constraints,substitutions + #-------Initialization------- + per=1 + stringWrite="" + fEq=False + count=0 + #---------------------------- + for c in line: #read each character + if count>=0 and per!=0: + per+=1 + if c!=" " and c!="%": + per=0 + if c=="{" and per==0: + if count>0: + stringWrite+=c + count+=1 + elif c=="}" and per==0: + count-=1 + if count>0: + stringWrite+=c + elif c=="$" and per==0: #either begin or end equation + fEq=not(fEq)#toggle fEq flag to know if begin or end equation + if fEq:#if begin + stringWrite+="{\\displaystyle " + else:#if end + stringWrite+="}" + elif c=="\n" and per==0:#if newline + stringWrite=stringWrite.strip()#remove all leading and trailing whitespace + + #should above be rstrip?<-------------------------------------------------------------------CHECK THIS + + stringWrite+=c#add the newline character + per+=1 #watch for % signs + elif count>0 and per==0: #not special character + stringWrite+=c #write the character + + return (stringWrite.rstrip().lstrip()) +def getEqP(line,Flag): #Gets all data within proofs + if Flag: + a=1 + else: + a=0 + per=1 + stringWrite="" + fEq=False + count=0 + length=0 + for c in line: + if fEq and c!=" " and c!="$" and c!="{" and c!="}" and not c.isalpha(): + length+=1 + if count>=0 and per!=0: + per+=1 + if c!=" " and c!="%": + #if c!="%": + per=0 + if c=="{" and per==0: + if count>0: + stringWrite+=c + count+=1 + elif c=="}" and per==0: + count-=1 + if count>0: + stringWrite+=c + elif c=="$" and per==0: + fEq=not(fEq) + if fEq: + stringWrite+="{\\displaystyle " + else: + if length<10: + stringWrite+="}" + else: + stringWrite+="}"+"
" + length=0 + elif c=="\n" and per==0: + stringWrite=stringWrite.strip() + stringWrite+=c + per+=1 + elif count>0 and per==0: + stringWrite+=c + + return (stringWrite.lstrip()) +def getSym(line): #Gets all symbols on a line for symbols list + symList=[] + symbol="" + symFlag=False + argFlag=False + cC=0 + for i in range(0,len(line)-1): + if "[" in line: + print symbol + c=line[i] + if symFlag: + if c=="{" or c=="[": + cC+=1 + argFlag=True + if c!="}" and c!="]": + if argFlag or c.isalpha(): + symbol+=c + else: + symFlag=False + argFlag=False + symList.append(symbol) + symList+=(getSym(symbol)) + symbol="" + else: + cC-=1 + symbol+=c + if cC==0 and line[i+1]!="{" and line[i+1]!="[" and line[i+1]!="@": + symFlag=False + symList.append(symbol) + symList+=(getSym(symbol)) + argFlag=False + symbol="" + + elif c=="\\": + symFlag=True + + return(symList) + '''symList=[] + getStr=False + getPar=False + morePar=False + curStr="" + deeper=False + cC=0 + for c in line: + if c=="\\" and not (getStr): + getStr=True + elif getStr: + if morePar and c!="{": + getPar=False + getStr=False + symList.append(curStr) + curStr="" + morePar=False + else: + morePar=False + if c=="\\": + deeper=True + if c.isalpha(): + curStr=curStr+c + elif not getPar and c!="{" and c!="}": + getStr=False + symList.append(curStr) + curStr="" + elif c=="{": + cC+=1 + getPar=True + curStr=curStr+c + elif c=="}": + cC-=1 + #getPar=False + if cC>0: + curStr=curStr+c + else: + morePar=True + curStr=curStr+c + getPar=False + getStr=False + symList.append(curStr) + curStr="" + #symList.append(curStr) + #curStr="" + else: + curStr=curStr+c + #print(line,symList) + dSym=[] + if deeper: + for sym in symList: + d=getSym(sym) + dSym=dSym+(d) + #print(symList,dSym,line) + symList=symList+dSym + return (symList)''' +def modLabel(label): + isNumer=False + newlabel="" + num="" + for i in range(0,len(label)): + if isNumer and not isnumber(label[i]): + if len(num)>1: + newlabel+=num + isNumer=False + num="" + else: + newlabel+="0"+str(num) + num="" + isNumer=False + if isnumber(label[i]): + isNumer=True + num+=str(label[i]) + else: + isNumer=False + newlabel+=label[i] + if len(num)>1: + newlabel+=num + elif len(num)==1: + newlabel+="0"+num + return(newlabel) +#try: +for jsahlfkjsd in range(0,1): + tex=open(sys.argv[1],'r') + wiki=open(sys.argv[2],'w') + main=open("OrthogonalPolynomials.mmd","r") + mainText=main.read() + mainPrepend="" + mainWrite=open("OrthogonalPolynomials.mmd.new","w") + tester=open("testData.txt",'w') + #glossary=open('Glossary', 'r') + glossary=open('new.Glossary.csv', 'rb') + gCSV=csv.reader(glossary, delimiter=',', quotechar='\"') + #lLinks=open('BruceLabelLinks', 'r') + lGlos=glossary.readlines() + #lLink=lLinks.readlines() + math=False + constraint=False + substitution=False + symbols=[] + lines=tex.readlines() + refLines=[] + sections=[] + labels=[] + eqs=[] + refEqs=[] + parse=False + head=False + #chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] + refLabels=[] + '''for c in chapRef: + refLines=refLines+(c[1].readlines()) + c[1].close()''' + for i in range(0,len(refLines)): + line=refLines[i] + if "\\begin{equation}" in line: + sLabel=line.find("\\formula{")+9 + eLabel=line.find("}",sLabel) + label=modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1 and l[len(label)+1]=="=": + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + refLabels.append(label) + refEqs.append("") + math=True + elif math: + refEqs[len(refEqs)-1]+=line + if "\\end{equation}" in refLines[i+1] or "\\constraint" in refLines[i+1] or "\\substitution" in refLines[i+1] or "\\drmfn" in refLines[i+1]: + math=False + + for i in range(0,len(lines)): + line=lines[i] + if "\\begin{document}" in line: + #wiki.write("drmf_bof\n") + parse=True + elif "\\end{document}" in line and parse: + #wiki.write("
\n") + mainPrepend+="
\n" + mainText=mainPrepend+mainText + mainText=mainText.replace("drmf_bof\n","") + mainText=mainText.replace("drmf_eof\n","") + mainText=mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n","") + mainText=mainText[0:mainText.rfind("== Sections ")] + mainText="drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n"+mainText+"\ndrmf_eof" + mainWrite.write(mainText) + mainWrite.close() + main.close() + os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") + #wiki.write("\ndrmf_eof\n") + parse=False + elif "\\title" in line and parse: + stringWrite="\'\'\'" + stringWrite+=getString(line)+"\'\'\'\n" + labels.append("Orthogonal Polynomials") + sections.append(["Orthogonal Polynomials",0]) + #wiki.write(stringWrite) + #mainPrepend+=stringWrite + mainPrepend+=("\n== Sections in "+getString(line)+" ==\n\n
\n") + elif "\\part" in line: + if getString(line)=="BOF": + parse=False + elif getString(line)=="EOF": + parse=True + elif parse: + mainPrepend+=("\n
\n= "+getString(line)+" =\n") + head=True + elif "\\section" in line: + mainPrepend+=("* [["+getString(line)+"|"+getString(line)+"]]\n") + sections.append([getString(line)]) + + secCounter=0 + eqCounter=0 + for i in range(0,len(lines)): + line=lines[i] + #line.replace("\\begin{equation}","$") + #line.replace("\\end{equation},"$") + '''if "\\begin{document}" in line: + wiki.write("drmf_bof\n") + parse=True + elif "\\end{document}" in line and parse: + wiki.write("\ndrmf_eof\n") + parse=False + elif "\\title" in line and parse: + stringWrite="\'\'\'" + stringWrite+=getString(line)+"\'\'\'\n" + labels.append("Orthogonal Polynomials") + wiki.write(stringWrite\n) + elif "\\part" in line: + if getString(line)=="BOF": + parse=False + elif getString(line)=="EOF": + parse=True + elif parse: + wiki.write("\n
\n= "+getString(line)+" =\n") + head=True + ''' + if "\\section" in line: + parse=True + secCounter+=1 + wiki.write("drmf_bof\n") + wiki.write("\'\'\'"+getString(line)+"\'\'\'\n") + wiki.write("
\n") + wiki.write("
<< [["+sections[secCounter-1][0]+"|"+sections[secCounter-1][0]+"]]
\n") + wiki.write("
[["+sections[secCounter][0]+"|"+sections[secCounter][0]+"]]
\n") + wiki.write("
[["+sections[(secCounter+1)%len(sections)][0]+"|"+sections[(secCounter+1)%len(sections)][0]+"]] >>
\n
\n\n") + head=True + wiki.write("== "+getString(line)+" ==\n") + elif ("\\section" in lines[(i+1)%len(lines)] or "\\end{document}" in lines[(i+1)%len(lines)]) and parse: + wiki.write("
\n") + wiki.write("
<< [["+sections[secCounter-1][0]+"|"+sections[secCounter-1][0]+"]]
\n") + wiki.write("
[["+sections[secCounter][0]+"|"+sections[secCounter][0]+"]]
\n") + wiki.write("
[["+sections[(secCounter+1)%len(sections)][0]+"|"+sections[(secCounter+1)%len(sections)][0]+"]] >>
\n
\n\n") + wiki.write("drmf_eof\n") + sections[secCounter].append(eqCounter) + eqCounter=0 + + elif "\\subsection" in line and parse: + wiki.write("\n
\n== "+getString(line)+" ==\n") + head=True + elif "\\paragraph" in line and parse: + wiki.write("\n
\n=== "+getString(line)+" ===\n") + head=True + elif "\\begin{equation}" in line and parse: + # symLine="" + if head: + wiki.write("
\n") + head=False + sLabel=line.find("\\formula{")+9 + eLabel=line.find("}",sLabel) + label=modLabel(line[sLabel:eLabel]) + eqCounter+=1 + '''for l in lLink: + if label==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + labels.append(label) + eqs.append("") + wiki.write("\n\n") + wiki.write("{\displaystyle \n") + math=True + elif "\\begin{equation}" in line and not parse: + sLabel=line.find("\\formula{")+9 + eLabel=line.find("}",sLabel) + label=modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + labels.append("*"+label) #special marker + eqs.append("") + math=True + elif "\\end{equation}" in line: + + math=False + elif "\\constraint" in line and parse: + constraint=True + math=False + conLine="" + elif "\\substitution" in line and parse: + substitution=True + math=False + subLine="" + #wiki.write("
Substitution(s): "+getEq(line)+"

\n") + elif "\\proof" in line and parse: + math=False + elif "\\drmfn" in line and parse: + math=False + if "\\drmfname" in line and parse: + wiki.write("
This formula has the name: "+getString(line)+"

\n") + elif math and parse: + flagM=True + eqs[len(eqs)-1]+=line + + if "\\end{equation}" in lines[i+1] and not "\\subsection" in lines[i+3] and not "\\section" in lines[i+3] and not "\\part" in lines[i+3]: + u=i + flagM2=False + while flagM: + u+=1 + if "\\begin{equation}"in lines[u] in lines[u]: + flagM=False + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: + flagM=False + flagM2=True + if not(flagM2): + + wiki.write(line.rstrip("\n")) + wiki.write("\n}
\n") + else: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\end{equation}" in lines[i+1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + else: + wiki.write(line) + elif math and not parse: + eqs[len(eqs)-1]+=line + if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: + math=False + if substitution and parse: + subLine=subLine+line + if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: + substitution=False + wiki.write("
Substitution(s): "+getEq(subLine)+"

\n") + + if constraint and parse: + conLine=conLine+line + if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: + constraint=False + wiki.write("
Constraint(s): "+getEq(conLine)+"

\n") + + eqCounter=0 + endNum=len(labels)-1 + '''for n in range(1,len(labels)): + if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": + labels[n]=""+labels[n] + endNum=n + elif labels[n][0]=="*": + labels[n]=""+labels[n][1:] + else: + labels[n]=""+labels[n]''' + '''for n in range(0,len(refLabels)): + refLabels[n]=""+refLabels[n]''' + parse=False + constraint=False + substitution=False + note=False + hCon=True + hSub=True + hNote=True + hProof=True + proof=False + comToWrite="" + secCount=-1 + newSec=False + for i in range(0,len(lines)): + line=lines[i] + + if "\\section" in line: + secCount+=1 + newSec=True + eqS=0 + + if "\\begin{equation}" in line: + symLine=line.strip("\n") + eqS+=1 + constraint=False + substitution=False + note=False + comToWrite="" + hCon=True + hSub=True + hNote=True + hProof=True + proof=False + parse=True + symbols=[] + eqCounter+=1 + wiki.write("drmf_bof\n") + label=labels[eqCounter] + wiki.write("\'\'\'"+label+"\'\'\'\n\n") + if eqCounter\n") + if newSec: + wiki.write("
<< [["+sections[secCount][0].replace(" ","_")+"|"+sections[secCount][0]+"]]
\n") + else: + wiki.write("
<< [["+labels[eqCounter-1].replace(" ","_")+"|"+labels[eqCounter-1]+"]]
\n") + wiki.write("
[["+labels[0].replace(" ","_")+"#"+label[8:]+"|formula in "+labels[0]+"]]
\n") + if eqS==sections[secCount][1]: + wiki.write("
[["+sections[(secCount+1)%len(sections)][0].replace(" ","_")+"|"+sections[(secCount+1)%len(sections)][0]+"]] >>
\n") + else: + wiki.write("
[["+labels[(eqCounter+1)%(endNum+1)].replace(" ","_")+"|"+labels[(eqCounter+1)%(endNum+1)]+"]] >>
\n") + wiki.write("
\n\n") + elif eqCounter==endNum: + wiki.write("
\n") + if newSec: + newSec=False + wiki.write("
<< [["+sections[secCount][0].replace(" ","_")+"|"+sections[secCount][0]+"]]
\n") + else: + wiki.write("
<< [["+labels[eqCounter-1].replace(" ","_")+"|"+labels[eqCounter-1]+"]]
\n") + wiki.write("
[["+labels[0].replace(" ","_")+"#"+label[8:]+"|formula in "+labels[0]+"]]
\n") + wiki.write("
[["+labels[(eqCounter+1)%(endNum+1)].replace(" ","_")+"|"+labels[(eqCounter+1)%(endNum+1)]+"]]
\n") + wiki.write("
\n\n") + + wiki.write("
{\displaystyle \n") + math=True + elif "\\end{equation}" in line: + wiki.write(comToWrite) + parse=False + math=False + if hProof: + wiki.write("
\n== Proof ==\n
\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") + + wiki.write("
\n== Symbols List ==\n
\n") + newSym=[] + if "09.12:21" in label: + print(symbols) + for x in symbols: + flagA=True + #if x not in newSym: + cN=0 + cC=0 + ArgCx=0 + for z in x: + if z.isalpha(): + cN+=1 + else: + if z=="{": + cC+=1 + if z=="}": + cC-=1 + if cC==0: + ArgCx+=1 + noA=x[:cN] + for y in newSym: + cN=0 + cC=0 + ArgC=0 + for z in y: + if z.isalpha(): + cN+=1 + else: + if z=="{": + cC+=1 + if z=="}": + cC-=1 + if cC==0: + ArgC+=1 + + + if y[:cN]==noA and ArgC==ArgCx: + flagA=False + #print(x,y) + break + if flagA: + newSym.append(x) + newSym.reverse() + symF=False + finSym=[] + for s in range(len(newSym)-1,-1,-1): + #print(newSym[s]) + symbolPar="\\"+newSym[s] + ArgCx=0 + cC=0 + for z in symbolPar: + if z.isalpha(): + cN+=1 + else: + if z=="{": + cC+=1 + if z=="}": + cC-=1 + if cC==0: + ArgCx+=1 + if symbolPar.find("{")!=-1: + symbol=symbolPar[0:symbolPar.find("{")] + else: + symbol=symbolPar + numPar=ArgCx + gFlag=False + gCSV=csv.reader(open('new.Glossary.csv','rb'),delimiter=',', quotechar='\"') + for G in gCSV: + ArgCx=0 + cC=0 + ind=G[0].find("@") + if ind==-1: + ind=len(G[0])-1 + for z in G[0]: + if z.isalpha(): + cN+=1 + else: + if z=="{": + cC+=1 + if z=="}": + cC-=1 + if cC==0: + ArgCx+=1 + checkFlag=False + if G[0].find(symbol)==0 and (len(G[0])==len(symbol) or not G[0][len(symbol)].isalpha()) and numPar!=0: + checkFlag=True + if G[0].find(symbol)==0 and (len(G[0])==len(symbol) or not G[0][len(symbol)].isalpha()) and ArgCx==numPar: + listArgs=[] + if len(G[0])>len(symbol) and G[0][len(symbol)]=="{": + ap="" + for o in range(len(symbol),len(G[0])): + if G[0][o]=="{": + argFlag=True + elif G[0][o]=="}": + argFlag=False + listArgs.append(ap) + ap="" + else: + ap+=G[0][o] + '''websiteU=g[g.find("http://"):].strip("\n") + k=0 + websites=[] + for r in range(0,len(websiteU)): + if websiteU[r]==",": + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + k=r + + + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + websiteF="" + for d in websites: + websiteF=websiteF+" ["+d+" "+d+"]"''' + #websiteF=G[4].strip("\n") + websiteF="" + web1=G[5] + for t in range(5,len(G)): + if G[t]!="": + websiteF=websiteF+" ["+G[t]+" "+G[t]+"]" + p1="{\\displaystyle "+G[0]+"}" + if p1.find("@")!=-1: + p1=p1[:p1.find("@")] + #if checkFlag: + #print(p1) + new1="" + new2="" + pause=False + mathF=True + '''for k in range(0,len(p1)): + if p1[k]=="$": + if mathF: + new1+="{\\displaystyle " + else: + new1+="}" + mathF=not mathF + + elif p1[k]=="#" and p1[k+1].isdigit(): + pause=True + elif pause: + num=int(p1[k]) + #letter=chr(num+96) + letter=listArgs[num-1] + new1+=letter + pause=False + + else: + new1+=p1[k]''' + p2=G[1] + for k in range(0,len(p2)): + if p2[k]=="$": + if mathF: + new2+="{\\displaystyle " + else: + new2+="}" + mathF=not mathF + else: + new2+=p2[k] + #p1=new1 + p2=new2 + finSym.append(web1+" "+p1+"] : "+p2+" :"+websiteF) + break + #gFlag=True + #if not symF: + # symF=True + # wiki.write("[") + #else: + # wiki.write("
\n") + # wiki.write("[") + #wiki.write(g[g.find("http://"):].strip("\n")) + #wiki.write(" ") + #wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + #wiki.write("] : ") + #wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + #wiki.write(" : [") + #wiki.write(g[g.find("http://"):].strip("\n")) + #wiki.write(" ") + #wiki.write(g[g.find("http://"):].strip("\n")) + #wiki.write("] ")''' + + + + if not gFlag: + del newSym[s] + + gFlag=True + #finSym.reverse() + for y in finSym: + #print(finSym) + if gFlag: + gFlag=False + wiki.write("["+y) + else: + wiki.write("
\n["+y) + + + wiki.write("\n
\n") + + wiki.write("== Bibliography==\n
\n")#should there be a space between bibliography and ==? + r=labels[eqCounter] + q=r.find("KLS:")+4 + p=r.find(":",q) + section=r[q:p] + equation=r[p+1:] + if equation.find(":")!=-1: + equation=equation[0:equation.find(":")] + + wiki.write("[HTTP://DLMF.NIST.GOV/"+section+"#"+equation+" Equation in Section "+section+"] of [[Bibliography#KLS|'''KLS''']].\n
\n
\n")#Where should it link to? + wiki.write("== URL links ==\n
\nWe ask users to provide relevant URL links in this space.\n
\n\n") + if eqCounter
\n") + if newSec: + newSec=False + wiki.write("
<< [["+sections[secCount][0].replace(" ","_")+"|"+sections[secCount][0]+"]]
\n") + else: + wiki.write("
<< [["+labels[eqCounter-1].replace(" ","_")+"|"+labels[eqCounter-1]+"]]
\n") + wiki.write("
[["+labels[0].replace(" ","_")+"#"+label[8:]+"|formula in "+labels[0]+"]]
\n") + if eqS==sections[secCount][1]: + wiki.write("
[["+sections[(secCount+1)%len(sections)][0].replace(" ","_")+"|"+sections[(secCount+1)%len(sections)][0]+"]] >>
\n") + else: + wiki.write("
[["+labels[(eqCounter+1)%(endNum+1)].replace(" ","_")+"|"+labels[(eqCounter+1)%(endNum+1)]+"]] >>
\n") + wiki.write("
\n\ndrmf_eof\n") + else: #FOR EXTRA EQUATIONS + wiki.write("
\n") + wiki.write("
<< [["+labels[endNum-1].replace(" ","_")+"|"+labels[endNum-1]+"]]
\n") + wiki.write("
[["+labels[0].replace(" ","_")+"#"+labels[endNum][8:]+"|formula in "+labels[0]+"]]
\n") + wiki.write("
[["+labels[(0)%endNum].replace(" ","_")+"|"+labels[0%endNum]+"]]
\n") + wiki.write("
\n\ndrmf_eof\n") + + + + elif "\\constraint" in line and parse: + #symbols=symbols+getSym(line) + symLine=line.strip("\n") + if hCon: + comToWrite=comToWrite+"
\n== Constraint(s) ==\n
\n" + hCon=False + constraint=True + math=False + conLine="" + #wiki.write("
"+getEq(line)+"

\n") + elif "\\substitution" in line and parse: + #symbols=symbols+getSym(line) + symLine=line.strip("\n") + if hSub: + comToWrite=comToWrite+"
\n== Substitution(s) ==\n
\n" + hSub=False + #wiki.write("
"+getEq(line)+"

\n") + substitution=True + math=False + subLine="" + elif "\\drmfname" in line and parse: + math=False + comToWrite="
\n== Name ==\n
\n
"+getString(line)+"

\n"+comToWrite + + elif "\\drmfnote" in line and parse: + symbols=symbols+getSym(line) + if hNote: + comToWrite=comToWrite+"
\n== Note(s) ==\n
\n" + hNote=False + note=True + math=False + noteLine="" + + elif "\\proof" in line and parse: + #symbols=symbols+getSym(line) + symLine=line.strip("\n") + if hProof: + hProof=False + comToWrite=comToWrite+"
\n== Proof ==\n
\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" + proof=True + proofLine="" + pause=False + pauseP=False + for ind in range(0,len(line)): + if line[ind:ind+7]=="\\eqref{": + pause=True + eqR=line[ind:line.find("}",ind)+1] + rLab=getString(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd=refLabels.index(""+label) + z=line[line.find("}",ind+7)+1] + if z=="." or z==",": + pauseP=True + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") + else: + if z=="}": + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
") + else: + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") + + + else: + if pause: + if line[ind]=="}": + pause=False + elif pauseP: + pauseP=False + elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: + pass + else: + proofLine+=(line[ind]) + if "\\end{equation}" in lines[i+1]: + proof=False + #symLine+=line.strip("\n") + wiki.write(comToWrite+getEqP(proofLine,False)+"
\n
\n") + comToWrite="" + symbols=symbols+getSym(symLine) + symLine="" + + #wiki.write(line) + + elif proof: + symLine+=line.strip("\n") + pauseP=False + #symbols=symbols+getSym(line) + for ind in range(0,len(line)): + if line[ind:ind+7]=="\\eqref{": + pause=True + eqR=line[ind:line.find("}",ind)+1] + rLab=getString(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd=refLabels.index(""+label) + z=line[line.find("}",ind+7)+1] + if z=="." or z==",": + pauseP=True + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") + else: + proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") + + else: + if pause: + if line[ind]=="}": + pause=False + elif pauseP: + pauseP=False + elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: + pass + + else: + proofLine+=(line[ind]) + if "\\end{equation}" in lines[i+1]: + proof=False + #symLine+=line.strip("\n") + wiki.write(comToWrite+getEqP(proofLine,False).rstrip("\n")+"
\n
\n") + comToWrite="" + symbols=symbols+getSym(symLine) + symLine="" + + elif math: + if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1] or "\\drmfnote" in lines[i+1] or "\\drmfname" in lines[i+1]: + wiki.write(line.rstrip("\n")) + symLine+=line.strip("\n") + symbols=symbols+getSym(symLine) + symLine="" + wiki.write("\n}
\n") + else: + symLine+=line.strip("\n") + wiki.write(line) + if note and parse: + noteLine=noteLine+line + symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1]: + note=False + comToWrite=comToWrite+"
"+getEq(noteLine)+"

\n" + + if constraint and parse: + conLine=conLine+line + symLine+=line.strip("\n") + #symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1]: + constraint=False + symbols=symbols+getSym(symLine) + symLine="" + wiki.write(comToWrite+"
"+getEq(conLine)+"

\n") + comToWrite="" + if substitution and parse: + subLine=subLine+line + symLine+=line.strip("\n") + #symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\proof" in lines[i+1]: + substitution=False + symbols=symbols+getSym(symLine) + symLine="" + wiki.write(comToWrite+"
"+getEq(subLine)+"

\n") + comToWrite="" +#except Exception as detail: #If exception occured +# print("Exception",detail) #print details of error +#except: #If anythin else occured... +# print ("ERROR",sys.exc_info()[0])#ERROR with basic info From ab92e47199ec05b6a77dcbf5e6477e1705a0f565 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 20 Jul 2016 15:21:23 -0400 Subject: [PATCH 185/402] Fix issues with Azeem's code (2) --- KLS-main-page/KLS_main_page.py | 14 -- KLS-main-page/headers.py | 55 ----- KLS-main-page/list.py | 86 -------- KLS-main-page/modMain.py | 117 ----------- KLS-main-page/symbolsList2.py | 373 --------------------------------- main_page/src/symbols_list.py | 22 +- 6 files changed, 11 insertions(+), 656 deletions(-) delete mode 100644 KLS-main-page/KLS_main_page.py delete mode 100644 KLS-main-page/headers.py delete mode 100644 KLS-main-page/list.py delete mode 100644 KLS-main-page/modMain.py delete mode 100644 KLS-main-page/symbolsList2.py diff --git a/KLS-main-page/KLS_main_page.py b/KLS-main-page/KLS_main_page.py deleted file mode 100644 index fc1722a..0000000 --- a/KLS-main-page/KLS_main_page.py +++ /dev/null @@ -1,14 +0,0 @@ -import os - -inp = raw_input("Update Main Page? (y or n)") -if inp != "n": - print("List") - os.system("python list.py") - print("Symbols List") - os.system("python symbolsList2.py") - print("Headers") - os.system("python headers.py") - print("List Ways") - os.system("python modMain.py") - -print("Done") diff --git a/KLS-main-page/headers.py b/KLS-main-page/headers.py deleted file mode 100644 index bdaac81..0000000 --- a/KLS-main-page/headers.py +++ /dev/null @@ -1,55 +0,0 @@ -file = open("main_page.mmd", "r") -lines = file.read() -listStart = lines.find("= Definition Pages =") -listStart = lines.find("* [[Definition:", listStart) -listEnd = lines.find("" in h: - h = h[h.find(">>
\n
") + len(">> \n"):] - if "
" in h: - h = h[0:h.find("
")] - prev = pages[(x - 1) % len(pages)] - # print h - next = pages[(x + 1) % len(pages)] - cur = "Main Page" - header = "\n
\n" - header += "
<< [[" + prev.replace(" ", "_") + "|" + prev + "]]
\n" - header += "
[[" + cur.replace(" ", "_") + "|" + cur + "]]
\n" - header += "
[[" + next.replace(" ", "_") + "|" + next + "]] >>
\n" - header += "
" - - footer = "
\n" - footer += "
<< [[" + prev.replace(" ", "_") + "|" + prev + "]]
\n" - footer += "
[[" + cur.replace(" ", "_") + "|" + cur + "]]
\n" - footer += "
[[" + next.replace(" ", "_") + "|" + next + "]] >>
\n" - footer += "
" - main.write("drmf_bof\n" + title + header + h + footer + "\ndrmf_eof\n") - x += 1 diff --git a/KLS-main-page/list.py b/KLS-main-page/list.py deleted file mode 100644 index 1e33e9a..0000000 --- a/KLS-main-page/list.py +++ /dev/null @@ -1,86 +0,0 @@ -import os -import time - -localtime = time.asctime(time.localtime(time.time())).replace(" ", "_") -os.system("cp main_page.mmd main_page.mmd" + str(localtime)) - - -def compString(a, b): - x = a[0:a.find("|")] - y = b[0:b.find("|")] - if len(x) > len(y): - max = len(y) - ret = False - else: - max = len(x) - ret = True - if True: - for i in range(0, max): - if ord(x[i].lower()) < ord(y[i].lower()): - return True - elif ord(x[i].lower()) > ord(y[i].lower()): - return False - return ret - - -def sumOrd(x): - sum = 0 - for s in x: - sum += ord(s) - return (sum) - - -def sort(x): - ret = [] - ret.append(x[0]) - for i in range(1, len(x)): - if compString(x[i], ret[0]): - ret = [x[i]] + ret - elif compString(ret[len(ret) - 1], x[i]): - ret.append(x[i]) - else: - for p in range(1, len(ret)): - if compString(x[i], ret[p]): - ret = ret[0:p] + [x[i]] + ret[p:] - break - return (ret) - - -'''listFile=open("list.txt","w") -files_in_dir=os.listdir(".") -toWrite=[] -for g in files_in_dir: - if ".new" in g and "Definition:" in g: - g=g[:g.find(".new")] - element="* [["+g+"|"+g[len("Definition:"):]+"]]" - toWrite.append(element) - toWrite=sort(toWrite) -text="" -for g in toWrite: - text+=(g+"\n") -listFile.close() -listFile=open("list.txt","r") -text=listFile.read()''' -main = open("main_page.mmd", "r") -mainText = main.read() -mainLines = mainText.split("\n") -main.close() -toWrite = [] -for z in mainLines: - if "\'\'\'Definition:" in z: - g = z[z.find("\'\'\'Definition:") + len("\'\'\'"):z.find("\'\'\'", z.find("\'\'\'Definition:") + 4)] - element = "* [[" + g + "|" + g[len("Definition:"):] + "]]" - toWrite.append(element) -main = open("main_page.mmd", "w") -s = mainText.find("== Definition Pages ==") -e = mainText.find("= Copyright =") -text = "" -for g in toWrite: - text += (g + "\n") -# print text -# print mainText[:s] -newText = mainText[ - :s] + "== Definition Pages ==\n\n
\n" + text + "
\n\n" + mainText[ - e:] -main.write(newText) -main.close() diff --git a/KLS-main-page/modMain.py b/KLS-main-page/modMain.py deleted file mode 100644 index 3ec6d8f..0000000 --- a/KLS-main-page/modMain.py +++ /dev/null @@ -1,117 +0,0 @@ -file = open("main_page.mmd", "r") -import csv - -lines = file.read() -lines = lines.replace("The LaTeX DLMF macro \'\'\'\\", "The LaTeX DLMF and DRMF macro \'\'\'\\") -file.close() -file = open("main_page.mmd", "w") -flag = True -gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') -toWrite = "" -i = 0 - - -def atSort(l): - return (sorted(l, key=lambda x: x.count("@"))) - - -def remOpt(p): - parse = True - ret = "" - for x in p: - if parse: - if x == "[": - parse = False - else: - ret += x - else: - if x == "]": - parse = True - return ret - - -def findAllPos(g): - key = g[3] - orig = g[0] - r = key[:key.find("|")] - key = key[key.find("|") + 1:] - keys = key.split(":") - ret = [] - for x in keys: - if x == "F" or x == "FO" or x == "O" or x == "O1": - if orig.find("@") != -1: - ret.append(orig[0:orig.find("@")]) - if x == "O": - ret.append(orig) - else: - ret.append(orig) - if x == "FnO": # remove optional parameters - if orig.find("@") != -1: - ret.append(remOpt(orig[0:orig.find("@")])) - else: - ret.append(remOpt(orig)) - if x == "P" or x == "PO": - ret.append(orig.replace("@@", "@")) - if x == "PnO": # remove optional parameters - ret.append(remOpt(orig.replace("@@", "@"))) - if x == "nP" or x == "nPO" or x == "PS" or x == "O2": - ret.append(orig) - if x == "nPnO": # remove optional paramters - ret.append(remOpt(orig)) - if "fo" in x: - ret.append(orig.replace("@@@", "@" * int(x[2]))) - return atSort(ret), r - - -categories = open("Categories.txt", "r") -cats = categories.readlines() -categories.close() -for x in range(0, len(cats)): - cats[x] = cats[x].strip() -while flag: - n = lines.find("\'\'\'Definition:", i) - if n == -1: - flag = False - # elif lines.find("This macro can be called in the following way")1: plural =1; if count=1: plural=0 - if count == 1: plural = 0 - for t in cats: - if s + " -" in t: - category = "This macro is in the category of" + t[t.find("-") + 2:] - break - new = category + "\n\nIn math mode, this macro can be called in the following way" + "s" * plural + ":\n\n" - for q in range(0, len(listCalls)): - c = listCalls[q] - new += ":\'\'\'" + c + "\'\'\'" + " produces {\\displaystyle " + c + "}
\n" - # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... - toWrite += new + "\n" - i = lines.find("These are defined by", p) -file.write(toWrite + lines[i:]) diff --git a/KLS-main-page/symbolsList2.py b/KLS-main-page/symbolsList2.py deleted file mode 100644 index a79c590..0000000 --- a/KLS-main-page/symbolsList2.py +++ /dev/null @@ -1,373 +0,0 @@ -def getSym(line): # Gets all symbols on a line for symbols list - line = line.replace("\n", " ") - symList = [] - if line == "": - return symList - symbol = "" - symFlag = False - argFlag = False - cC = 0 - for i in range(0, len(line)): - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - # print symbol - c = line[i] - if symFlag: - if c == "{" or c == "[": - cC += 1 - argFlag = True - if c != "}" and c != "]": - if argFlag or c.isalpha(): - symbol += c - else: - symFlag = False - argFlag = False - symList.append(symbol) - symList += (getSym(symbol)) - symbol = "" - else: - cC -= 1 - symbol += c - if i + 1 == len(line): - p = "" - else: - p = line[i + 1] - if cC == 0 and p != "{" and p != "[" and p != "@": - symFlag = False - # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: - # print(symbol,p) - symList.append(symbol) - # if symbol=="binom{n}{k}":print line - symList += (getSym(symbol)) - argFlag = False - symbol = "" - - elif c == "\\": - symFlag = True - - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - # print symbol - symList.append(symbol) - # if "ctsbigqHermite" in line: - # print(symList) - symList += getSym(symbol) - return (symList) - - -import csv - -# files_in_dir=os.listdir(".") -mainPage = open("main_page.mmd", "r") -mainLines = mainPage.read() -mainLines = mainLines[mainLines.find("drmf_bof"):mainLines.rfind("drmf_eof") + len("drmf_eof\n")] -mainPage.close() -main = open("main_page.mmd", "w") -mainPages = mainLines.split("drmf_eof") -if mainPages[-1].strip() == "": - mainPages = mainPages[0:len(mainPages) - 1] -print len(mainPages) -glossary = open('new.Glossary.csv', 'rb') -gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') -lGlos = glossary.readlines() -wiki = "" -for g in mainPages: - if not "\'\'\'Definition:" in g: - h = g.replace("drmf_eof", "") - h = g.replace("drmf_bof", "") - toWrite = "drmf_bof" + h + "drmf_eof\n" - main.write(toWrite) - else: - h = g.replace("drmf_eof", "") - h = g.replace("drmf_bof", "") - h = h.strip("\n") - sflag1 = False - sflag2 = False - if h.find("== Symbols List ==") != -1: - toWrite = h[0:h.find("== Symbols List ==")] - h = toWrite - else: - sflag1 = True - if h.find("drmf_foot") == -1: - toWrite = h - sflag2 = True - else: - toWrite = h[0:h.find("
"):]+t[0:t.find("
")] - t = t.replace("\n", " ") - # if "Symbol" in t:print t - symbols = getSym(t) - # print symbols - # if "qsin" in g:print t,symbols - # if "Neumann" in g:print t,"\n",symbols - if True: - toWrite += ("== Symbols List ==\n\n") - newSym = [] - # if "09.07:04" in label: - # print(symbols) - for x in symbols: - flagA = True - # if x not in newSym: - cN = 0 - cC = 0 - flag = True - ArgCx = 0 - for z in x: - if z.isalpha() and flag: - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgCx += 1 - noA = x[:cN] - for y in newSym: - cN = 0 - cC = 0 - ArgC = 0 - flag = True - for z in y: - if z.isalpha() and flag: - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgC += 1 - - if y[:cN].strip() == noA.strip(): # and ArgC==ArgCx: - flagA = False - # print(x,y) - break - if flagA: - newSym.append(x) - newSym.reverse() - # print newSym - # if "14.27:02" in label: - # print newSym - symF = False - finSym = [] - for s in range(len(newSym) - 1, -1, -1): - # print(newSym[s]) - symbolPar = "\\" + newSym[s] - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - for z in symbolPar: - if z == "@": - parFlag = True - elif z.isalpha(): - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - - if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: - if symbolPar.find("[") == -1: - symbol = symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): - symbol = symbolPar[0:symbolPar.find("[")] - else: - symbol = symbolPar[0:symbolPar.find("{")] - else: - symbol = symbolPar - # if "14.27:02" in label:print symbolPar,symbol - numArg = parCx - numPar = ArgCx - gFlag = False - checkFlag = False - get = False - gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') - preG = "" - symbol = symbol.strip("}").strip("]") - for S in gCSV: - G = S - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 - for z in G[0]: - if z == "@": - parFlag = True - elif z.isalpha(): - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): - checkFlag = True - get = True - preG = S - # if "14.27:02" in label:print "ok" + symbol - - # if "9.07:04" in label:print symbol,numPar,numArg,parCx,ArgCx - - elif checkFlag: - get = True - checkFlag = False - if (get): - if get: - G = preG - # print preG - get = False - checkFlag = False - # if "14.27:02" in label:print "yes"+symbol - if True: - if symbolPar.find("@") != -1: - Q = symbolPar[:symbolPar.find("@")] - else: - Q = symbolPar - listArgs = [] - if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - argFlag = True - elif Q[o] == "}" or z == "]": - argFlag = False - listArgs.append(ap) - ap = "" - else: - ap += Q[o] - '''websiteU=g[g.find("http://"):].strip("\n") - k=0 - websites=[] - for r in range(0,len(websiteU)): - if websiteU[r]==",": - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - k=r - - - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - websiteF="" - for d in websites: - websiteF=websiteF+" ["+d+" "+d+"]"''' - # websiteF=G[4].strip("\n") - websiteF = "" - # print("(",G,")") - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - - # p1=Q - # if Q.find("@")!=-1: - # p1=Q[:Q.find("@")] - p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" - # if checkFlag: - # print(p1) - new1 = "" - new2 = "" - pause = False - mathF = True - '''for k in range(0,len(p1)): - if p1[k]=="$": - if mathF: - new1+="{\\displaystyle " - else: - new1+="}" - mathF=not mathF - - elif p1[k]=="#" and p1[k+1].isdigit(): - pause=True - elif pause: - num=int(p1[k]) - #letter=chr(num+96) - letter=listArgs[num-1] - new1+=letter - pause=False - - else: - new1+=p1[k]''' - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += "{\\displaystyle " - else: - new2 += "}" - mathF = not mathF - else: - new2 += p2[k] - # p1=new1 - p2 = new2 - finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - # gFlag=True - # if not symF: - # symF=True - # wiki.write("[") - # else: - # wiki.write("
\n") - # wiki.write("[") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - # wiki.write("] : ") - # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - # wiki.write(" : [") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write("] ")''' - - # preG=S - if not gFlag: - del newSym[s] - - gFlag = True - # finSym.reverse() - for y in finSym: - # print(finSym) - if gFlag: - gFlag = False - toWrite += ("[" + y) - else: - toWrite += ("
\n[" + y) - - toWrite += ("\n
\ndrmf_eof\n\n") - if sflag2: - toWrite += "\n" - main.write(toWrite) diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py index 82d8eb9..bdb8087 100644 --- a/main_page/src/symbols_list.py +++ b/main_page/src/symbols_list.py @@ -16,10 +16,10 @@ def getSym(line): # Gets all symbols on a line for symbols list for i in range(0, len(line)): c = line[i] if symFlag: - if c == "{" or c == "[": + if c in ["{", "["]: cC += 1 argFlag = True - if c != "}" and c != "]": + if c not in ["}", "]"]: if argFlag or c.isalpha(): symbol += c else: @@ -57,7 +57,7 @@ def getSym(line): # Gets all symbols on a line for symbols list mainPages = mainLines.split("drmf_eof") if mainPages[-1].strip() == "": - mainPages = mainPages[0:len(mainPages) - 1] + mainPages = mainPages[0:-1] print len(mainPages) @@ -118,9 +118,9 @@ def getSym(line): # Gets all symbols on a line for symbols list cN += 1 else: flag = False - if z == "{" or z == "[": + if z in ["{", "["]: cC += 1 - if z == "}" or z == "]": + if z in ["}", "]"]: cC -= 1 if cC == 0: ArgCx += 1 @@ -135,9 +135,9 @@ def getSym(line): # Gets all symbols on a line for symbols list cN += 1 else: flag = False - if z == "{" or z == "[": + if z in ["{", "["]: cC += 1 - if z == "}" or z == "]": + if z in ["}", "]"]: cC -= 1 if cC == 0: ArgC += 1 @@ -162,9 +162,9 @@ def getSym(line): # Gets all symbols on a line for symbols list elif z.isalpha(): cN += 1 else: - if z == "{" or z == "[": + if z in ["{", "["]: cC += 1 - if z == "}" or z == "]": + if z in ["}", "]"]: cC -= 1 if cC == 0: if parFlag: @@ -204,9 +204,9 @@ def getSym(line): # Gets all symbols on a line for symbols list elif z.isalpha(): cN += 1 else: - if z == "{" or z == "[": + if z in ["{", "["]: cC += 1 - if z == "}" or z == "]": + if z in ["}", "]"]: cC -= 1 if cC == 0: if parFlag: From 6d2c2de1fb2df8c2696c0f85074f2842743f8b97 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Thu, 21 Jul 2016 10:35:29 -0400 Subject: [PATCH 186/402] Further cover the number of lines tested in replace_special.py Fix \index spacing error. Increase efficiency of replace_special.py --- DLMF_preprocessing/src/math_function.py | 21 +++++++++--------- DLMF_preprocessing/src/replace_special.py | 17 --------------- DLMF_preprocessing/test/test_replace_i.py | 26 ++++++++++++++++++++++- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/DLMF_preprocessing/src/math_function.py b/DLMF_preprocessing/src/math_function.py index 2fa1dea..79b198e 100644 --- a/DLMF_preprocessing/src/math_function.py +++ b/DLMF_preprocessing/src/math_function.py @@ -38,7 +38,6 @@ def formatting(file_str): commands = r'\\[a-zA-Z]+' updated = [] - IND_START = r'\index\{' ind_str = "" in_ind = False previous = "" @@ -61,7 +60,7 @@ def formatting(file_str): if '\\begin{equation}' in line: in_eq = True - been_in_eq = False + been_in_eq = True if '\\end{equation}' in line: updated.append(line) in_eq = False @@ -71,15 +70,15 @@ def formatting(file_str): updated.append(line) else: - # not in eq + # not been in eq if not been_in_eq: # if text line != command - if re.match(commands, line) or line == '': - if '\\paragraph' not in line and '\\acknowledgements' not in line: + if re.match(commands, line): + if '\\paragraph' not in line and '\\index' not in line: updated.append(line) else: # not in eq but already been in eq - if '\\index' in line or re.match(section,line) or line == '': + if re.match(section,line) or line == '': updated.append(line) if past_last > ranges[-1][1]: @@ -89,22 +88,24 @@ def formatting(file_str): updated.append(line) # if this line is an index start storing it,or write it if we're done with the indexes - if IND_START in line: + if '\\index{' in line: in_ind = True ind_str += line + "\n" + continue - - if in_ind: + elif in_ind: in_ind = False # add a preceding newline if one is not already present if previous.strip() != "": ind_str = "\n" + ind_str + fullsplit = ind_str.split("\n") + updated.extend(fullsplit) ind_str = "" - previous = line + previous = line wrote = "\n".join(updated) # remove consecutive blank lines and blank lines between \index groups diff --git a/DLMF_preprocessing/src/replace_special.py b/DLMF_preprocessing/src/replace_special.py index 5123917..070584a 100644 --- a/DLMF_preprocessing/src/replace_special.py +++ b/DLMF_preprocessing/src/replace_special.py @@ -96,20 +96,6 @@ def remove_special(content): for lnum, line in enumerate(lines): lnum += 1 - # if this line marks the start of an equation, set the flag - if EQ_START in line: - in_eq = True - - # if this line marks the end of an equation, set the flag - if EQ_END in line: - - # remove other flags too - for flag in inside: - inside[flag][SEEN] = False - - comment_str = "" - - in_eq = True # we need to make the replacements in equations if in_eq: @@ -138,7 +124,6 @@ def remove_special(content): line = _replace_i(line) - # print 'line2', line elif any(info[SEEN] for info in inside.values()): # ^we're in a special block, look for dollar signs to replace "i"s @@ -153,8 +138,6 @@ def remove_special(content): for flag in inside: inside[flag][SEEN] = False - # print(comment_str + "\n") - dollar_locs = [match.start() for match in dollar_pat.finditer(comment_str)] locs_iter = iter(dollar_locs) diff --git a/DLMF_preprocessing/test/test_replace_i.py b/DLMF_preprocessing/test/test_replace_i.py index 725d657..d58d0aa 100644 --- a/DLMF_preprocessing/test/test_replace_i.py +++ b/DLMF_preprocessing/test/test_replace_i.py @@ -1,9 +1,33 @@ from unittest import TestCase -from src.replace_special import remove_special +from replace_special import remove_special +mismatched = """ +%\\frac{q(t)}{p'(t) (p(t) - p(a))^{(\lambda/\mu)-1}}$, using Cauchy's integral +%formula for the residue, and integrating by parts. See also + b_s + = \\frac{1}{\mu} + \Residue_{t=a}\left[\\frac{q(t)}{(p(t) - p(a))^{(\lambda+s)/\mu}}\\right] +% \constraint{$s = 0,1,2,\dots$.} +""" +matched = """ +%\\note{This follows from \eqref{eq:AL.xx}--\eqref{eq:AL.xx} by setting $f(t) = p(t), g(t) = +%\\frac{q(t)}{p'(t) (p(t) - p(a))^{(\lambda/\mu)-1}}$, using Cauchy's integral +%formula for the residue, and integrating by parts. See also +%\citet{Cicuta:1975:RFA}.} + b_s + = \\frac{1}{\mu} + \Residue_{t=a}\left[\\frac{q(t)}{(p(t) - p(a))^{(\lambda+s)/\mu}}\\right] +% \constraint{$s = 0,1,2,\dots$.} +""" class TestReplaceSpecial(TestCase): def test__replace_special(self): tex = "z^a = \\underbrace{z \\cdot z \\cdots z}_{n \n \\text{ times}} = 1 / z^{-a}" result = remove_special(tex) self.assertEqual(tex, result) + def test_dollar_loc(self): + actual = remove_special(mismatched) + self.assertEqual(mismatched, actual) + def test_matching(self): + result = remove_special(matched) + self.assertEqual(matched, result) \ No newline at end of file From 2ced4b0b4e907a089fc10abbde9e82180175d4ce Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 2 Aug 2016 08:17:12 -0400 Subject: [PATCH 187/402] Add support for LaTeX comments in math_mode.py and the relevant test cases. --- DLMF_preprocessing/src/math_mode.py | 86 ++++++++++++++--------- DLMF_preprocessing/test/test_math_mode.py | 10 +-- 2 files changed, 59 insertions(+), 37 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 5017006..1d74000 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -1,6 +1,8 @@ __author__ = "Jagan Prem" __status__ = "Production" +import re + # Dictionary containing math mode delimiters and their respective endpoints. MATH_START = {"\\[": "\\]", "\\(": "\\)", @@ -87,24 +89,34 @@ def parse_math(string, start, ranges): delim = first_delim(string) i = len(delim) begin = start + i + commented = False while i < len(string): - if string[i:].startswith("\\$"): - i += 1 - elif string[i:].startswith("\\\\]"): - i += 2 - elif string[i:].startswith("\\\\)"): - i += 2 - else: - if does_exit(string[i:]): - if begin != start + i: - ranges.append((begin, start + i)) - i += parse_non_math(string[i:], start + i, ranges) - begin = start + i - i -= 1 - if string[i:].startswith(MATH_START[delim]): - if begin != start + i: - ranges.append((begin, start + i)) - return i + len(MATH_START[delim]) - 1 + if not commented: + if string[i:].startswith("\\%"): + i += 1 + elif string[i] == "%": + i += 1 + commented = True + elif string[i:].startswith("\\$"): + i += 1 + elif string[i:].startswith("\\\\]"): + i += 2 + elif string[i:].startswith("\\\\)"): + i += 2 + else: + if does_exit(string[i:]): + if begin != start + i: + ranges.append((begin, start + i)) + i += parse_non_math(string[i:], start + i, ranges) + begin = start + i + i -= 1 + if string[i:].startswith(MATH_START[delim]): + if begin != start + i: + ranges.append((begin, start + i)) + return i + len(MATH_START[delim]) - 1 + if commented: + if string[i] == "\n": + commented = False i += 1 raise SyntaxError("missing " + MATH_START[delim]) @@ -123,23 +135,33 @@ def parse_non_math(string, start, ranges): delim = "" level = 0 i = len(delim) + commented = False while i < len(string): - if string[i:].startswith("\\$"): - i += 1 - elif string[i:].startswith("\\\\["): - i += 2 - elif string[i:].startswith("\\\\("): - i += 2 - elif does_enter(string[i:]): - i += parse_math(string[i:], start + i, ranges) - elif string[i] == "{": - level += 1 - elif string[i] == "}": - if level == 0 and delim != "": + if not commented: + if string[i:].startswith("\\%"): i += 1 - return i - else: - level -= 1 + elif string[i] == "%": + i += 1 + commented = True + elif string[i:].startswith("\\$"): + i += 1 + elif string[i:].startswith("\\\\["): + i += 2 + elif string[i:].startswith("\\\\("): + i += 2 + elif does_enter(string[i:]): + i += parse_math(string[i:], start + i, ranges) + elif string[i] == "{": + level += 1 + elif string[i] == "}": + if level == 0 and delim != "": + i += 1 + return i + else: + level -= 1 + if commented: + if string[i] == "\n": + commented = False i += 1 if delim == "" and level == 0: return i diff --git a/DLMF_preprocessing/test/test_math_mode.py b/DLMF_preprocessing/test/test_math_mode.py index 2308e51..13eb596 100644 --- a/DLMF_preprocessing/test/test_math_mode.py +++ b/DLMF_preprocessing/test/test_math_mode.py @@ -32,15 +32,15 @@ "output": 18 }, { - "string": "$\\$$", + "string": "$%\n\\$$", "start": 12, - "output": 3 + "output": 5 }, [ (1, 10), (24, 25), (36, 39), - (13, 15) + (13, 17) ] ] @@ -56,9 +56,9 @@ "output": 39 }, { - "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}", + "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}\n%begin{equation}", "start": 3, - "output": 46 + "output": 63 }, [ (28, 35), From 7e2cd64c2660d4f72a8a1398b20d866f441b2217 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 2 Aug 2016 08:25:43 -0400 Subject: [PATCH 188/402] Removed unnecessary import. --- DLMF_preprocessing/src/math_mode.py | 2 -- DLMF_preprocessing/test/test_math_mode.py | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 1d74000..35747d4 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -1,8 +1,6 @@ __author__ = "Jagan Prem" __status__ = "Production" -import re - # Dictionary containing math mode delimiters and their respective endpoints. MATH_START = {"\\[": "\\]", "\\(": "\\)", diff --git a/DLMF_preprocessing/test/test_math_mode.py b/DLMF_preprocessing/test/test_math_mode.py index 13eb596..d8925bf 100644 --- a/DLMF_preprocessing/test/test_math_mode.py +++ b/DLMF_preprocessing/test/test_math_mode.py @@ -32,15 +32,15 @@ "output": 18 }, { - "string": "$%\n\\$$", + "string": "$%\n\\$\\%$", "start": 12, - "output": 5 + "output": 7 }, [ (1, 10), (24, 25), (36, 39), - (13, 17) + (13, 19) ] ] @@ -68,9 +68,9 @@ RANGE_TESTS = [ { - "string": "test \\begin{multline*}\ntest \\hbox{Test}\\end{multline*}", + "string": "test\\% \\begin{multline*}\ntest \\hbox{Test}\\end{multline*}", "output": [ - (22, 28) + (24, 30) ] }, { From 42d9fd70935fa724e67945f679ae48c9e55a80e3 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 2 Aug 2016 08:39:53 -0400 Subject: [PATCH 189/402] Clean up code, fix test, and reduce function complexity. --- DLMF_preprocessing/src/math_mode.py | 61 ++++++++++++----------- DLMF_preprocessing/test/test_math_mode.py | 4 +- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 35747d4..d35d714 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -75,6 +75,13 @@ def does_enter(string): return any(string.startswith(delim) for delim in MATH_START) +def skip_escaped(string): + for escape in ["\\$", "\\\\]", "\\\\)", "\\\\(", "\\\\["]: + if string.startswith(escape): + return len(escape) + return 0 + + def parse_math(string, start, ranges): # type: (str) -> str, int """ @@ -90,31 +97,33 @@ def parse_math(string, start, ranges): commented = False while i < len(string): if not commented: - if string[i:].startswith("\\%"): - i += 1 - elif string[i] == "%": + i += skip_escaped(string[i:]) + if i >= len(string): + break + sub = string[i:] + if sub.startswith("\\%"): i += 1 + elif sub[0] == "%": commented = True - elif string[i:].startswith("\\$"): + elif sub.startswith("\\$"): i += 1 - elif string[i:].startswith("\\\\]"): + elif sub.startswith("\\\\]"): i += 2 - elif string[i:].startswith("\\\\)"): + elif sub.startswith("\\\\)"): i += 2 else: - if does_exit(string[i:]): + if does_exit(sub): if begin != start + i: ranges.append((begin, start + i)) - i += parse_non_math(string[i:], start + i, ranges) + i += parse_non_math(sub, start + i, ranges) begin = start + i i -= 1 - if string[i:].startswith(MATH_START[delim]): + if sub.startswith(MATH_START[delim]): if begin != start + i: ranges.append((begin, start + i)) return i + len(MATH_START[delim]) - 1 - if commented: - if string[i] == "\n": - commented = False + elif commented and string[i] == "\n": + commented = False i += 1 raise SyntaxError("missing " + MATH_START[delim]) @@ -136,30 +145,26 @@ def parse_non_math(string, start, ranges): commented = False while i < len(string): if not commented: - if string[i:].startswith("\\%"): - i += 1 - elif string[i] == "%": + i += skip_escaped(string[i:]) + if i >= len(string): + break + sub = string[i:] + if sub.startswith("\\%"): i += 1 + elif sub[0] == "%": commented = True - elif string[i:].startswith("\\$"): - i += 1 - elif string[i:].startswith("\\\\["): - i += 2 - elif string[i:].startswith("\\\\("): - i += 2 - elif does_enter(string[i:]): - i += parse_math(string[i:], start + i, ranges) - elif string[i] == "{": + elif does_enter(sub): + i += parse_math(sub, start + i, ranges) + elif sub[0] == "{": level += 1 - elif string[i] == "}": + elif sub[0] == "}": if level == 0 and delim != "": i += 1 return i else: level -= 1 - if commented: - if string[i] == "\n": - commented = False + elif commented and string[i] == "\n": + commented = False i += 1 if delim == "" and level == 0: return i diff --git a/DLMF_preprocessing/test/test_math_mode.py b/DLMF_preprocessing/test/test_math_mode.py index d8925bf..225605c 100644 --- a/DLMF_preprocessing/test/test_math_mode.py +++ b/DLMF_preprocessing/test/test_math_mode.py @@ -56,9 +56,9 @@ "output": 39 }, { - "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}\n%begin{equation}", + "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}\n%begin{equation}\n", "start": 3, - "output": 63 + "output": 64 }, [ (28, 35), From cce831ea84b86f1fac37d72fad35bfe9559bbed8 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 2 Aug 2016 08:43:59 -0400 Subject: [PATCH 190/402] Removed unnecessary conditions. --- DLMF_preprocessing/src/math_mode.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index d35d714..1762bc9 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -98,19 +98,11 @@ def parse_math(string, start, ranges): while i < len(string): if not commented: i += skip_escaped(string[i:]) - if i >= len(string): - break sub = string[i:] if sub.startswith("\\%"): i += 1 elif sub[0] == "%": commented = True - elif sub.startswith("\\$"): - i += 1 - elif sub.startswith("\\\\]"): - i += 2 - elif sub.startswith("\\\\)"): - i += 2 else: if does_exit(sub): if begin != start + i: From e054e2f80d949ed9b781bb942e8ab985e5702fed Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 2 Aug 2016 09:10:17 -0400 Subject: [PATCH 191/402] Add comments. --- DLMF_preprocessing/src/math_mode.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 1762bc9..88ee5b7 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -76,6 +76,12 @@ def does_enter(string): def skip_escaped(string): + # type: (str) -> int + """ + Returns the distance to skip from escaped delimiters in the string. + :param string: The string to check. + :return: The distance to skip. + """ for escape in ["\\$", "\\\\]", "\\\\)", "\\\\(", "\\\\["]: if string.startswith(escape): return len(escape) From 5a726fc2f922d42008f528b46c23b7b490a98398 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 2 Aug 2016 09:36:07 -0400 Subject: [PATCH 192/402] Clean up and fix more code. --- DLMF_preprocessing/src/math_mode.py | 32 +++++++++++++++++------------ 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 88ee5b7..1f7bbf6 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -75,17 +75,27 @@ def does_enter(string): return any(string.startswith(delim) for delim in MATH_START) -def skip_escaped(string): +def skip_escaped(string, loop=True): # type: (str) -> int """ Returns the distance to skip from escaped delimiters in the string. :param string: The string to check. + :param loop: Whether to skip repeatedly or not. :return: The distance to skip. """ - for escape in ["\\$", "\\\\]", "\\\\)", "\\\\(", "\\\\["]: - if string.startswith(escape): - return len(escape) - return 0 + if loop: + s = skip_escaped(string, False) + index = 0 + while s != 0: + string = string[s:] + index += s + s = skip_escaped(string, False) + return index + else: + for escape in ["\\$", "\\\\]", "\\\\)", "\\\\(", "\\\\[", "\\%"]: + if string.startswith(escape): + return len(escape) + return 0 def parse_math(string, start, ranges): @@ -105,9 +115,7 @@ def parse_math(string, start, ranges): if not commented: i += skip_escaped(string[i:]) sub = string[i:] - if sub.startswith("\\%"): - i += 1 - elif sub[0] == "%": + if sub[0] == "%": commented = True else: if does_exit(sub): @@ -120,7 +128,7 @@ def parse_math(string, start, ranges): if begin != start + i: ranges.append((begin, start + i)) return i + len(MATH_START[delim]) - 1 - elif commented and string[i] == "\n": + elif string[i] == "\n": commented = False i += 1 raise SyntaxError("missing " + MATH_START[delim]) @@ -147,9 +155,7 @@ def parse_non_math(string, start, ranges): if i >= len(string): break sub = string[i:] - if sub.startswith("\\%"): - i += 1 - elif sub[0] == "%": + if sub[0] == "%": commented = True elif does_enter(sub): i += parse_math(sub, start + i, ranges) @@ -161,7 +167,7 @@ def parse_non_math(string, start, ranges): return i else: level -= 1 - elif commented and string[i] == "\n": + elif string[i] == "\n": commented = False i += 1 if delim == "" and level == 0: From 12e3147e310ab20c0a01f0d46fbb51055cc06b1f Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 4 Aug 2016 14:48:16 -0400 Subject: [PATCH 193/402] Clean up some code --- main_page/Categories.txt | 10 + main_page/main_page.mmd | 267 ++++++--- main_page/src/KLS.py | 19 - main_page/src/add_definition.py | 22 + main_page/src/headers.py | 64 --- main_page/src/list.py | 59 -- main_page/src/main.py | 111 +++- main_page/src/mod_main.py | 212 ++++--- main_page/src/symbols_list.py | 395 +++++++------ main_page/symbolsList.py~ | 278 --------- main_page/tex2Wiki.py~ | 966 -------------------------------- 11 files changed, 630 insertions(+), 1773 deletions(-) create mode 100644 main_page/Categories.txt delete mode 100644 main_page/src/KLS.py create mode 100644 main_page/src/add_definition.py delete mode 100644 main_page/src/headers.py delete mode 100644 main_page/src/list.py delete mode 100644 main_page/symbolsList.py~ delete mode 100644 main_page/tex2Wiki.py~ diff --git a/main_page/Categories.txt b/main_page/Categories.txt new file mode 100644 index 0000000..2d2fc4a --- /dev/null +++ b/main_page/Categories.txt @@ -0,0 +1,10 @@ + F - real or complex valued functions. + P - polynomials. + I - integer valued functions. + O - operators. + SM - semantic macros. + Q - quantifiers, set operators, and symbols. + SN - sets of numbers. + C - constants. + L - linear algebra. + D - distributions. diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd index ff6a93c..3e07ca8 100644 --- a/main_page/main_page.mmd +++ b/main_page/main_page.mmd @@ -221,6 +221,10 @@ For more information see [http://link.springer.com/chapter/10.1007%2F978-3-319-0 * [[Definition:rabbitConstant|rabbitConstant]] * [[Definition:FibonacciNumber|FibonacciNumber]] * [[Definition:Fibonacci|Fibonacci]] +* [[Definition:RegGammaP|RegGammaP]] +* [[Definition:RegGammaQ|RegGammaQ]] +* [[Definition:GaussDistF|GaussDistF]] +* [[Definition:GaussDistQ|GaussDistQ]]
= Copyright = @@ -278,7 +282,7 @@ drmf_eof drmf_bof '''Definition:AffqKrawtchouk'''
-
<< [[Definition:Fibonacci|Definition:Fibonacci]]
+
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
[[Main_Page|Main Page]]
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
@@ -305,7 +309,7 @@ These are defined by [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-
<< [[Definition:Fibonacci|Definition:Fibonacci]]
+
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
[[Main_Page|Main Page]]
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
@@ -328,7 +332,7 @@ In math mode, this macro can be called in the following ways: :'''\AlSalamCarlitzI{a}{n}@{x}{q}''' produces {\displaystyle \AlSalamCarlitzI{a}{n}@{x}{q}}
These are defined by -{\displaystyle +{\displaystyle \AlSalamCarlitzI{a}{n}@{x}{q}:=(-a)^nq^{\binom{n}{2}}\,\qHyperrphis{2}{1}@@{q^{-n},x^{-1}}{0}{q}{\frac{qx}{a}}. }
@@ -432,7 +436,7 @@ drmf_bof
[[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]] >>
-In the DRMF, the LaTeX semantic macro '''\AntiDer''' represents the anti-derivative notation, +In the DRMF, the LaTeX semantic macro '''\AntiDer''' represents the anti-derivative notation, which is defined as follows. This macro is in the category of polynomials. @@ -574,7 +578,7 @@ In math mode, this macro can be called in the following ways: :'''\bigqLaguerre{n}@{x}{a}{b}{q}''' produces {\displaystyle \bigqLaguerre{n}@{x}{a}{b}{q}}
These are defined by -{\displaystyle +{\displaystyle \bigqLaguerre{n}@{x}{a}{b}{q}:=\qHyperrphis{3}{2}@@{q^{-n},0,x}{aq,bq}{q}{q}. }
@@ -1024,7 +1028,7 @@ In math mode, this macro can be called in the following ways: :'''\GottliebLaguerre{n}''' produces {\displaystyle \GottliebLaguerre{n}}
:'''\GottliebLaguerre{n}@{x}''' produces {\displaystyle \GottliebLaguerre{n}@{x}}
-These are defined by +These are defined by {\displaystyle \GottliebLaguerre{n}@{x}:=e^{-n\la} \Meixner{n}@{x}{1}{e^{-\la}}. @@ -1050,7 +1054,7 @@ drmf_bof
[[Definition:JacksonqBesselII|Definition:JacksonqBesselII]] >>
-In the DRMF, the LaTeX semantic macro '''\Int''' represents the definite integral notation, +In the DRMF, the LaTeX semantic macro '''\Int''' represents the definite integral notation, which is defined as follows. This macro is in the category of polynomials. @@ -3376,7 +3380,7 @@ drmf_bof
[[Definition:qexpKLS|Definition:qexpKLS]] >>
-The LaTeX DLMF and DRMF macro '''\qExpKLS''' represents a q-analogue of the +The LaTeX DLMF and DRMF macro '''\qExpKLS''' represents a q-analogue of the \exp function: \qExpKLS{q}. This macro is in the category of real or complex valued functions. @@ -3415,7 +3419,7 @@ drmf_bof
[[Definition:qcosKLS|Definition:qcosKLS]] >>
-The LaTeX DLMF and DRMF macro '''\qexpKLS''' represents a q-analogue of the +The LaTeX DLMF and DRMF macro '''\qexpKLS''' represents a q-analogue of the \exp function: \qexpKLS{q}. This macro is in the category of real or complex valued functions. @@ -3452,7 +3456,7 @@ drmf_bof
[[Main_Page|Main Page]]
[[Definition:qMeixner|Definition:qMeixner]] >>
-The LaTeX DLMF and DRMF macro '''\qcosKLS''' represents a q-analogue of the +The LaTeX DLMF and DRMF macro '''\qcosKLS''' represents a q-analogue of the \cos function:~\qcosKLS{q}. This macro is in the category of polynomials. @@ -3692,7 +3696,7 @@ drmf_bof
[[Definition:qSinKLS|Definition:qSinKLS]] >>
-The LaTeX DLMF and DRMF macro '''\qsinKLS''' represents a q-analogue of the \sin +The LaTeX DLMF and DRMF macro '''\qsinKLS''' represents a q-analogue of the \sin function: \qsinKLS{q}. This macro is in the category of real or complex valued functions. @@ -3731,7 +3735,7 @@ drmf_bof
[[Definition:qCosKLS|Definition:qCosKLS]] >>
-The LaTeX DLMF and DRMF macro '''\qSinKLS''' represents a q-analogue of the +The LaTeX DLMF and DRMF macro '''\qSinKLS''' represents a q-analogue of the \sin function: \qSinKLS{q}. This macro is in the category of real or complex valued functions. @@ -3771,7 +3775,7 @@ drmf_bof
[[Definition:Wilson|Definition:Wilson]] >>
-The LaTeX DLMF and DRMF macro '''\qCosKLS''' represents a q-analogue of the +The LaTeX DLMF and DRMF macro '''\qCosKLS''' represents a q-analogue of the \cos function: \qCosKLS{q}. This macro is in the category of polynomials. @@ -3860,7 +3864,7 @@ These are defined by {}:=\HyperpFq{4}{3}@@{-n,n+\alpha+\beta+1,-x,x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1}, } -where {\displaystyle \lambda(x)=x(x+\gamma+\delta+1), } +where {\displaystyle \lambda(x)=x(x+\gamma+\delta+1), } and \alpha+1=-N or \beta+\delta+1=-N or \gamma+1=-N with N a nonnegative integer. @@ -4531,7 +4535,7 @@ drmf_bof
[[Definition:PolylogarithmS|Definition:PolylogarithmS]] >>
-The LaTeX DLMF and DRMF macro '''\StieltjesConstants''' represents the Stiltjes constants +The LaTeX DLMF and DRMF macro '''\StieltjesConstants''' represents the Stiltjes constants \StieltjesConstants{n}. This macro is in the category of constants. @@ -4585,18 +4589,16 @@ In math mode, this macro can be called in the following ways: These are defined by - {\displaystyle - -\PolylogarithmS{n}{p}@{z} - +\PolylogarithmS{n}{p}@{z}:=\frac{(-1)^{n+p-1}}{(n-1)!p!}\int_0^1 \frac{(\ln{t})^{n-1}[\ln(1-zt)]^p}{t}\,dt } -
== Symbols List == -[p}$ {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [p}$ p}$] [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS] +[p}$ {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [p}$ p}$] [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
<< [[Definition:StieltjesConstants|Definition:StieltjesConstants]]
[[Main_Page|Main Page]]
@@ -4624,18 +4626,15 @@ In math mode, this macro can be called in the following ways: These are defined by - {\displaystyle - -\HarmonicNumber[r]{n} - +\HarmonicNumber[r]{n}:=\sum_{k=1}^n \frac{1}{k^r} } -
== Symbols List == -[http://dlmf.nist.gov/25.11#E33 {\displaystyle H_{n}}] : Harmonic number : [http://dlmf.nist.gov/25.11#E33 http://dlmf.nist.gov/25.11#E33] +[http://dlmf.nist.gov/25.11#E33 {\displaystyle H_{n}}] : Harmonic number : [http://dlmf.nist.gov/25.11#E33 http://dlmf.nist.gov/25.11#E33]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:PolylogarithmS|Definition:PolylogarithmS]]
[[Main_Page|Main Page]]
@@ -4662,13 +4661,9 @@ In math mode, this macro can be called in the following ways: These are defined by - {\displaystyle - -\LucasL{n}@{x} - +\LucasL{n}@{x}:=2^{-n}\left[\left(x-\sqrt{x^2+4}\right)^n+\left(x+\sqrt{x^2+4}\right)^n\right] } -
== Symbols List == @@ -4700,18 +4695,15 @@ In math mode, this macro can be called in the following ways: These are defined by - {\displaystyle - -\HurwitzLerchPhi@{z}{s}{a} - +\HurwitzLerchPhi@{z}{s}{a}:=\sum_{k=0}^\infty \frac{z^k}{(a+k)^{s}} } -
== Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi {\displaystyle \Phi}] : Hurwitz-Lerch's transcendent : [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi] +[http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi {\displaystyle \Phi}] : Hurwitz-Lerch's transcendent : [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:LucasL|Definition:LucasL]]
[[Main_Page|Main Page]]
@@ -4737,13 +4729,9 @@ In math mode, this macro can be called in the following way: These are defined by - {\displaystyle - -\GoldenRatio - +\GoldenRatio:=\frac{1}{2}\left(1+\sqrt{5}\right) } -
== Symbols List == @@ -4775,18 +4763,15 @@ In math mode, this macro can be called in the following ways: These are defined by - {\displaystyle - -\WhitPsi{\alpha}{\beta}@{z} - +\WhitPsi{\alpha}{\beta}@{z}:=z^{\frac{\alpha+\beta}{2}-1}e^\frac{z}{2}\WhitW{-\frac{\alpha+\beta}{2}}{\frac{\beta-\alpha}{2}}@{z} } -
== Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function {\displaystyle \Psi_{\alpha;\beta}} : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi] +[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function {\displaystyle \Psi_{\alpha;\beta}} : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi]
+[http://dlmf.nist.gov/13.14#E3 {\displaystyle W_{\kappa,\mu}}] : Whittaker function {\displaystyle W_{\kappa;\mu}} : [http://dlmf.nist.gov/13.14#E3 http://dlmf.nist.gov/13.14#E3]
<< [[Definition:GoldenRatio|Definition:GoldenRatio]]
[[Main_Page|Main Page]]
@@ -4812,18 +4797,15 @@ In math mode, this macro can be called in the following way: These are defined by - {\displaystyle - -\GompertzConstant - +\GompertzConstant:=\int_0^\infty \frac{e^{-u}}{1+u}\,du } -
== Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:GompertzConstant {\displaystyle G}] : Gompertz's constant : [http://drmf.wmflabs.org/wiki/Definition:GompertzConstant http://drmf.wmflabs.org/wiki/Definition:GompertzConstant] +[http://drmf.wmflabs.org/wiki/Definition:GompertzConstant {\displaystyle G}] : Gompertz's constant : [http://drmf.wmflabs.org/wiki/Definition:GompertzConstant http://drmf.wmflabs.org/wiki/Definition:GompertzConstant]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
<< [[Definition:WhitPsi|Definition:WhitPsi]]
[[Main_Page|Main Page]]
@@ -4849,18 +4831,17 @@ In math mode, this macro can be called in the following way: These are defined by - {\displaystyle - -\rabbitConstant - +\rabbitConstant:=\sum_{i=1}^\infty 2^{-\floor{i\GoldenRatio}} } -
== Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:RabbitConstant {\displaystyle \rho}] : rabbit constant : [http://drmf.wmflabs.org/wiki/Definition:RabbitConstant http://drmf.wmflabs.org/wiki/Definition:RabbitConstant] +[http://drmf.wmflabs.org/wiki/Definition:RabbitConstant {\displaystyle \rho}] : rabbit constant : [http://drmf.wmflabs.org/wiki/Definition:RabbitConstant http://drmf.wmflabs.org/wiki/Definition:RabbitConstant]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
+[http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16 {\displaystyle \left\lfloor a\right\rfloor}] : floor : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16]
+[http://drmf.wmflabs.org/wiki/Definition:GoldenRatio {\displaystyle \phi}] : The golden ratio : [http://drmf.wmflabs.org/wiki/Definition:GoldenRatio http://drmf.wmflabs.org/wiki/Definition:GoldenRatio]
<< [[Definition:GompertzConstant|Definition:GompertzConstant]]
[[Main_Page|Main Page]]
@@ -4886,13 +4867,9 @@ In math mode, this macro can be called in the following way: These are defined by - {\displaystyle - -\FibonacciNumber{n} - +\FibonacciNumber{n}:=\frac{\left(1+\sqrt{5}\right)^n-\left(1-\sqrt{5}\right)^n}{2^n\sqrt{5}} } -
== Symbols List == @@ -4909,7 +4886,7 @@ drmf_bof
<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
[[Main_Page|Main Page]]
-
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
[[Definition:RegGammaP|Definition:RegGammaP]] >>
The LaTeX DLMF and DRMF macro '''\Fibonacci''' represents the Fibonacci. @@ -4922,11 +4899,44 @@ In math mode, this macro can be called in the following way: These are defined by + +{\displaystyle +\Fibonacci{n}@{x}:=\frac{\left(x+\sqrt{x^2+4}\right)^n-\left(x-\sqrt{x^2+4}\right)^n}{2^n\sqrt{x^2+4}} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci] +
+
<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
+
[[Main_Page|Main Page]]
+
[[Definition:RegGammaP|Definition:RegGammaP]] >>
+
+drmf_eof +drmf_bof +'''Definition:RegGammaP''' +
+
<< [[Definition:Fibonacci|Definition:Fibonacci]]
+
[[Main_Page|Main Page]]
+
[[Definition:RegGammaQ|Definition:RegGammaQ]] >>
+
+The LaTeX DLMF and DRMF macro '''\RegGammaP''' represents the RegGammaP. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\RegGammaP''' produces {\displaystyle \RegGammaP}
+:'''\RegGammaP@{x}{\alpha}{\theta}''' produces {\displaystyle \RegGammaP@{x}{\alpha}{\theta}}
+ +These are defined by + {\displaystyle -\Fibonacci{n}@{x} +\RegGammaP@{x}{\alpha}{\theta}:=\frac{\incgamma@{\alpha}{\frac{x}{\theta}}}{\EulerGamma@{\alpha}} } @@ -4934,9 +4944,126 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci] +[\theta\right)$ {\displaystyle P\left(x;\alpha}] : Regularized gamma function of incomplete gamma function : [\theta\right)$ \theta\right)$] [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
+[http://dlmf.nist.gov/8.2#E1 {\displaystyle \gamma}] : incomplete gamma function {\displaystyle \gamma} : [http://dlmf.nist.gov/8.2#E1 http://dlmf.nist.gov/8.2#E1]
+[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-
<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
+
<< [[Definition:Fibonacci|Definition:Fibonacci]]
+
[[Main_Page|Main Page]]
+
[[Definition:RegGammaQ|Definition:RegGammaQ]] >>
+
+drmf_eof +drmf_bof +'''Definition:RegGammaQ''' +
+
<< [[Definition:RegGammaP|Definition:RegGammaP]]
+
[[Main_Page|Main Page]]
+
[[Definition:GaussDistF|Definition:GaussDistF]] >>
+
+The LaTeX DLMF and DRMF macro '''\RegGammaQ''' represents the RegGammaQ. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\RegGammaQ''' produces {\displaystyle \RegGammaQ}
+:'''\RegGammaQ@{x}{\alpha}{\theta}''' produces {\displaystyle \RegGammaQ@{x}{\alpha}{\theta}}
+ +These are defined by + + + +{\displaystyle + +\RegGammaQ@{x}{\alpha}{\theta}:=\frac{\IncGamma@{\alpha}{\frac{x}{\theta}}}{\EulerGamma@{\alpha}} + +} + +
+ +== Symbols List == + +[\theta\right)$ {\displaystyle Q\left(x;\alpha}] : Regularized gamma function of complementary incomplete gamma function : [\theta\right)$ \theta\right)$] [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
+[http://dlmf.nist.gov/8.2#E2 {\displaystyle \Gamma}] : incomplete gamma function {\displaystyle \Gamma} : [http://dlmf.nist.gov/8.2#E2 http://dlmf.nist.gov/8.2#E2]
+[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1] +
+
<< [[Definition:RegGammaP|Definition:RegGammaP]]
+
[[Main_Page|Main Page]]
+
[[Definition:GaussDistF|Definition:GaussDistF]] >>
+
+drmf_eof +drmf_bof +'''Definition:GaussDistF''' +
+
<< [[Definition:RegGammaQ|Definition:RegGammaQ]]
+
[[Main_Page|Main Page]]
+
[[Definition:GaussDistQ|Definition:GaussDistQ]] >>
+
+The LaTeX DLMF and DRMF macro '''\GaussDistF''' represents the GaussDistF. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\GaussDistF''' produces {\displaystyle \GaussDistF}
+:'''\GaussDistF@{x}''' produces {\displaystyle \GaussDistF@{x}}
+ +These are defined by + + + +{\displaystyle + +\GaussDistF@{x}:=\frac{1}{2}\left(1+\erf@{\frac{x}{\sqrt{2}}}\right) + +} + +
+ +== Symbols List == + +[0 {\displaystyle F\left(x}] : Gaussian distribution : [0 0] [1\right)$ 1\right)$] [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
+[http://dlmf.nist.gov/7.2#E1 {\displaystyle \mathrm{erf}}] : error function : [http://dlmf.nist.gov/7.2#E1 http://dlmf.nist.gov/7.2#E1] +
+
<< [[Definition:RegGammaQ|Definition:RegGammaQ]]
+
[[Main_Page|Main Page]]
+
[[Definition:GaussDistQ|Definition:GaussDistQ]] >>
+
+drmf_eof +drmf_bof +'''Definition:GaussDistQ''' +
+
<< [[Definition:GaussDistF|Definition:GaussDistF]]
+
[[Main_Page|Main Page]]
+
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
+The LaTeX DLMF and DRMF macro '''\GaussDistQ''' represents the GaussDistQ. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\GaussDistQ''' produces {\displaystyle \GaussDistQ}
+:'''\GaussDistQ@{x}''' produces {\displaystyle \GaussDistQ@{x}}
+ +These are defined by + + + +{\displaystyle + +\GaussDistQ@{x}:=\frac{1}{2}\erfc@{\frac{x}{\sqrt{2}}} + +} + +
+ +== Symbols List == + +[0 {\displaystyle Q\left(x}] : Related to Gaussian distribution : [0 0] [1\right)$ 1\right)$] [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
+[http://dlmf.nist.gov/7.2#E2 {\displaystyle \mathrm{erfc}}] : complementary error function : [http://dlmf.nist.gov/7.2#E2 http://dlmf.nist.gov/7.2#E2] +
+
<< [[Definition:GaussDistF|Definition:GaussDistF]]
[[Main_Page|Main Page]]
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
diff --git a/main_page/src/KLS.py b/main_page/src/KLS.py deleted file mode 100644 index 32bf360..0000000 --- a/main_page/src/KLS.py +++ /dev/null @@ -1,19 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -import os - - -# TODO: Actually make the if statements do what they're supposed to. - -if raw_input("Update Main Page? (y or n) ") != "n": - print "List" - os.system("python src/list.py") - print "Symbols List" - os.system("python src/symbols_list.py") - print "Headers" - os.system("python src/headers.py") - print "List Ways" - os.system("python src/mod_main.py") - -print "Done" diff --git a/main_page/src/add_definition.py b/main_page/src/add_definition.py new file mode 100644 index 0000000..41c4d7c --- /dev/null +++ b/main_page/src/add_definition.py @@ -0,0 +1,22 @@ +__author__ = "Joon Bang" +__status__ = "Development" + + +def main(): + macro_name = raw_input("Macro name: ") + definition = raw_input("LaTeX definition: ") + + result = "drmf_bof\n" + \ + "'''Definition:" + macro_name + "'''\n" + \ + "The LaTeX DLMF and DRMF macro '''\\" + macro_name + "''' represents the " + macro_name + ".\n\n" + \ + "These are defined by \n\n" + \ + "\n\n{\\displaystyle\n\n" + definition + "\n\n}\n\n
\n\ndrmf_eof\n" + + with open("main_page.mmd", "a") as main_page: + main_page.write("\n" + result) + + print "\n" + result + + +if __name__ == '__main__': + main() diff --git a/main_page/src/headers.py b/main_page/src/headers.py deleted file mode 100644 index f760e99..0000000 --- a/main_page/src/headers.py +++ /dev/null @@ -1,64 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -import copy - -with open("main_page.mmd", "r") as main_page: - lines = main_page.read() - main_lines = copy.copy(lines) - -start = lines.find("* [[Definition:", lines.find("= Definition Pages =")) -end = lines.find("" in text: - search_string = ">>
\n
" - text = text[text.find(search_string) + len(search_string):] - - if "
" in text: - text = text[:text.find("
")] - - prev = pages[(count - 1) % len(pages)] - cur = "Main Page" - next = pages[(count + 1) % len(pages)] - - delimiter = "\n
<< [[" + prev.replace(" ", "_") + "|" + prev + "]]
" + \ - "\n
[[" + cur.replace(" ", "_") + "|" + cur + "]]
" + \ - "\n
[[" + next.replace(" ", "_") + "|" + next + "]] >>
" + \ - "\n
" - - header = "\n
" + delimiter - footer = "
" + delimiter - - main_page.write("drmf_bof\n" + title + header + text + footer + "\ndrmf_eof\n") - - count += 1 diff --git a/main_page/src/list.py b/main_page/src/list.py deleted file mode 100644 index b65aeb8..0000000 --- a/main_page/src/list.py +++ /dev/null @@ -1,59 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -import copy -import time - - -def compare_string(a, b): - """Returns whether string a is "less than" string b, up to the pipe symbol.""" - x = a[:a.find("|")] - y = b[:b.find("|")] - - # pipe missing in a string - if not x or not y: - return True - - return x < y - - -def sum_ordinal(string): - """Returns the sum of the ordinal values of all characters in string.""" - return sum((ord(ch) for ch in string)) - - -def sort(strings): - return sorted(copy.deepcopy(strings), cmp=compare_string) - - -def main(): - localtime = time.asctime(time.localtime(time.time())).replace(" ", "_") - with open("main_page.mmd") as main_page: - with open("backups/main_page.mmd" + str(localtime), "w") as main_page_bak: - main_page_bak.write(main_page.read()) - - with open("main_page.mmd") as main_page: - main_text = main_page.read() - - main_lines = main_text.split("\n") - - text = "" - - for line in main_lines: - if "'''Definition:" in line: - definition = line[line.find("'''Definition:") + 3:line.find("'''", line.find("'''Definition:") + 4)] - element = "* [[" + definition + "|" + definition[len("Definition:"):] + "]]" - text += element + "\n" - - s = main_text.find("== Definition Pages ==") - e = main_text.find("= Copyright =") - - text = main_text[:s] + \ - "== Definition Pages ==\n\n
\n" + \ - text + "
\n\n" + main_text[e:] - - with open("main_page.mmd", "w") as main_page: - main_page.write(text) - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/main_page/src/main.py b/main_page/src/main.py index 19dd4c3..d6a93f4 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -1,8 +1,111 @@ __author__ = "Azeem Mohammed" __status__ = "Development" -__credits__ = ["Azeem Mohammed", "Joon Bang"] +__credits__ = ["Joon Bang", "Azeem Mohammed"] -import os +import time +import symbols_list +import mod_main -if raw_input("Update main page? (y/n): ") != "n": - pass +""" +Order: +- List +- Symbols List +- Headers +- List Ways +""" + + +def generate_html(tag_name, options, text, spacing=True): + result = "<" + tag_name + if options != "": + result += " " + options + result += ">\n" + text + "\n\n" + + if not spacing: + return result.replace("\n", " ")[:-1] + "\n" + + return result + + +def update_macro_list(text): + lines = text.split("\n") + definitions = list() + + for line in lines: + if "'''Definition:" in line: + macro = line.split("'''")[1][11:] + element = "* [[Definition:" + macro + "|" + macro + "]]" + definitions.append(element) + + def_contents = generate_html("div", "style=\"-moz-column-count:2; column-count:2;-webkit-column-count:2\"", + "\n".join(definitions)) + + start = text.find("== Definition Pages ==") + end = text.find("= Copyright =") + + return text[:start + 23] + "\n" + def_contents + "\n" + text[end:], definitions + + +def update_headers(text, definitions): + pages = text.split("drmf_eof")[:-1] + + macros = list() + formatted = list() + for definition in definitions: + macros.append("Definition:" + definition.split("|")[1][:-2]) + formatted.append("[[" + macros[-1].replace(" ", "_") + "|" + macros[-1] + "]]") + + output = "" + + i = 0 + for page in pages: + if "'''Definition:" not in page: + output += page + "drmf_eof\n" + continue + + if "
" in page: + page = page[page.find(">>
\n
") + len(">>
\n
"):] + + if "
" in page: + page = page[:page.find("
")] + + nav_section = generate_html("div", "id=\"alignleft\"", "<< " + formatted[i - 1], spacing=False) + \ + generate_html("div", "id=\"aligncenter\"", "[[Main_Page|Main Page]]", spacing=False) + \ + generate_html("div", "id=\"alignright\"", formatted[(i + 1) % len(formatted)] + " >>", + spacing=False)[:-1] + + header = generate_html("div", "id=\"drmf_head\"", nav_section)[:-1] + footer = generate_html("div", "id=\"drmf_foot\"", nav_section)[:-1] + + output += "drmf_bof\n" + "'''" + macros[i] + "'''\n" + header + page[:-1] + footer + "\ndrmf_eof\n" + + i += 1 + + return output + + +def main(): + if raw_input("Update main page? (y/n): ") == "n": + return + + # read contents + with open("main_page.mmd") as main_page: + text = main_page.read() + + # create backup + local_time = time.asctime(time.localtime(time.time())).split() + local_time = "_" + '_'.join(local_time[1:3] + local_time[3:][::-1]) + with open("backups/main_page" + local_time + ".mmd.bak", "w") as backup: + backup.write(text) + + text, definitions = update_macro_list(text) + text = symbols_list.main(text) + text = update_headers(text, definitions) + text = mod_main.main(text) + + with open("main_page.mmd", "w") as main_page: + main_page.write(text) + + +if __name__ == '__main__': + main() diff --git a/main_page/src/mod_main.py b/main_page/src/mod_main.py index fab8c86..e7090f7 100644 --- a/main_page/src/mod_main.py +++ b/main_page/src/mod_main.py @@ -1,125 +1,115 @@ __author__ = "Azeem Mohammed" __status__ = "Development" +__credits__ = ["Joon Bang", "Azeem Mohammed"] -import copy import csv -DEF_STRING = "'''Definition:" +def atSort(l): + return (sorted(l, key=lambda x: x.count("@"))) -def at_sort(strings): - """Sorts by number of @ symbols in string.""" - return sorted(copy.copy(strings), key=lambda ch: ch.count("@")) - - -def remove_brackets_text(string): - left_brackets = 0 - text = "" - - for ch in string: - if ch == "[": - left_brackets += 1 - elif ch == "]": - left_brackets -= 1 - elif not left_brackets: - text += ch - - return text - - -def find_all_pos(info): - # TODO: what is info? what does pos mean??? +def remOpt(p): + parse = True + ret = "" + for x in p: + if parse: + if x == "[": + parse = False + else: + ret += x + else: + if x == "]": + parse = True + return ret - original = info[0] - key_string = info[3] - before, key_string = key_string.split("|", 1) - keys = key_string.split(":") +def findAllPos(g): + key = g[3] + orig = g[0] + r = key[:key.find("|")] + key = key[key.find("|") + 1:] + keys = key.split(":") ret = [] - - for key in keys: - if key in ["F", "FO", "O", "O1"]: - if "@" in original: - ret.append(original[:original.find("@")]) - if key == "O": - ret.append(original) + for x in keys: + if x == "F" or x == "FO" or x == "O" or x == "O1": + if orig.find("@") != -1: + ret.append(orig[0:orig.find("@")]) + if x == "O": + ret.append(orig) else: - ret.append(original) - elif key == "FnO": # remove optional parameters - if original.find("@") != -1: - ret.append(remove_brackets_text(original[0:original.find("@")])) + ret.append(orig) + if x == "FnO": # remove optional parameters + if orig.find("@") != -1: + ret.append(remOpt(orig[0:orig.find("@")])) else: - ret.append(remove_brackets_text(original)) - elif key in ["P", "PO"]: - ret.append(original.replace("@@", "@")) - elif key == "PnO": # remove optional parameters - ret.append(remove_brackets_text(original.replace("@@", "@"))) - elif key in ["nP", "nPO", "PS", "O2"]: - ret.append(original) - elif key == "nPnO": # remove optional paramters - ret.append(remove_brackets_text(original)) - - if "fo" in key: - ret.append(original.replace("@@@", "@" * int(key[2]))) - - return at_sort(ret), before - -with open("main_page.mmd") as main_page: - lines = main_page.read() - -lines = lines.replace("The LaTeX DLMF macro '''\\", "The LaTeX DLMF and DRMF macro '''\\") - -with open("Categories.txt") as categories: - cats = [category.strip() for category in categories.readlines()] - -text = "" -i = 0 - -while True: - n = lines.find(DEF_STRING, i) - if n == -1: - break - else: - macroN = lines[n + len(DEF_STRING):lines.find("'''", n + len(DEF_STRING))] - r = lines.find("'''\\", n) - q = lines.find("'''", r + len("'''\\")) - - if lines[r:q].find("{") != -1: - lines = lines[:r] + "'''\\" + macroN + lines[q:] - - if lines.find("\nThis macro is in the category of", n) < lines.find(DEF_STRING, n + 15) \ - and "\nThis macro is in the category of" in lines[n:]: - p = lines.find("\nThis macro is in the category of", n) + ret.append(remOpt(orig)) + if x == "P" or x == "PO": + ret.append(orig.replace("@@", "@")) + if x == "PnO": # remove optional parameters + ret.append(remOpt(orig.replace("@@", "@"))) + if x == "nP" or x == "nPO" or x == "PS" or x == "O2": + ret.append(orig) + if x == "nPnO": # remove optional paramters + ret.append(remOpt(orig)) + if "fo" in x: + ret.append(orig.replace("@@@", "@" * int(x[2]))) + return atSort(ret), r + + +def main(lines): + lines = lines.replace("The LaTeX DLMF macro \'\'\'\\", "The LaTeX DLMF and DRMF macro \'\'\'\\") + flag = True + gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + toWrite = "" + i = 0 + + categories = open("Categories.txt", "r") + cats = categories.readlines() + categories.close() + for x in range(0, len(cats)): + cats[x] = cats[x].strip() + while flag: + n = lines.find("\'\'\'Definition:", i) + if n == -1: + flag = False else: - p = lines.find("\n", lines.find(".", n)) - - text += lines[i:p].rstrip() + "\n\n" - - count = 0 - list_calls = [] - - glossary = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') - for entry in glossary: - if not entry[0].find("\\" + macroN) and (len(entry[0]) == len(macroN) + 1 or not entry[0][len(macroN) + 1].isalpha()): - q, s = find_all_pos(entry) - list_calls += q - count += len(q) - - for cat in cats: - if s + " -" in cat: - category = "This macro is in the category of" + cat[cat.find("-") + 2:] + "\n\n" - break - - new = category + "In math mode, this macro can be called in the following way" + "s" * (count > 1) + ":\n\n" - - for q in range(0, len(list_calls)): - c = list_calls[q] - new += ":'''" + c + "'''" + " produces {\\displaystyle " + c + "}
\n" - - # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... - text += new + "\n" - i = lines.find("These are defined by", p) - -with open("main_page.mmd", "w") as main_page: - main_page.write(text + lines[i:]) + macroN = lines[n + len("\'\'\'Definition:"):lines.find("\'\'\'", n + len("\'\'\'Definition:"))] + r = lines.find("\'\'\'\\", n) + q = lines.find("\'\'\'", r + len("\'\'\'\\")) + if lines[r:q].find("{") != -1: + lines = lines[0:r] + "\'\'\'\\" + macroN + lines[q:] + + if lines.find("\nThis macro is in the category of", n) < lines.find("\'\'\'Definition:", n + len( + "\'\'\'Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: + # print n + p = lines.find("\nThis macro is in the category of", n) + else: + p = lines.find("\n", lines.find(".", n)) + toWrite += lines[i:p] + toWrite = toWrite.rstrip() + toWrite += "\n\n" + count = 0 + listCalls = [] + gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + for g in gCSV: + if g[0].find("\\" + macroN) == 0 and (len(g[0]) == len(macroN) + 1 + or not g[0][len(macroN) + 1].isalpha()): + q, s = findAllPos(g) + listCalls += q + count += len(q) + plural = 1 # if count>1: plural =1; if count=1: plural=0 + if count == 1: plural = 0 + for t in cats: + if s + " -" in t: + category = "This macro is in the category of" + t[t.find("-") + 2:] + break + new = category + "\n\nIn math mode, this macro can be called in the following way" + "s" * plural + ":\n\n" + for q in range(0, len(listCalls)): + c = listCalls[q] + new += ":\'\'\'" + c + "\'\'\'" + " produces {\\displaystyle " + c + "}
\n" + # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + toWrite += new + "\n" + i = lines.find("These are defined by", p) + + return toWrite + lines[i:] diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py index bdb8087..48eef80 100644 --- a/main_page/src/symbols_list.py +++ b/main_page/src/symbols_list.py @@ -1,9 +1,9 @@ __author__ = "Azeem Mohammed" __status__ = "Development" +__credits__ = ["Joon Bang", "Azeem Mohammed"] import csv - def getSym(line): # Gets all symbols on a line for symbols list line = line.replace("\n", " ") symList = [] @@ -16,10 +16,10 @@ def getSym(line): # Gets all symbols on a line for symbols list for i in range(0, len(line)): c = line[i] if symFlag: - if c in ["{", "["]: + if c == "{" or c == "[": cC += 1 argFlag = True - if c not in ["}", "]"]: + if c != "}" and c != "]": if argFlag or c.isalpha(): symbol += c else: @@ -44,242 +44,233 @@ def getSym(line): # Gets all symbols on a line for symbols list elif c == "\\": symFlag = True - symList.append(symbol) symList += getSym(symbol) - return symList - -mainPage = open("main_page.mmd", "r") -mainLines = mainPage.read() -mainLines = mainLines[mainLines.find("drmf_bof"):mainLines.rfind("drmf_eof") + len("drmf_eof\n")] -mainPage.close() -main = open("main_page.mmd", "w") -mainPages = mainLines.split("drmf_eof") - -if mainPages[-1].strip() == "": - mainPages = mainPages[0:-1] + return (symList) -print len(mainPages) -glossary = open('new.Glossary.csv', 'rb') -gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') -lGlos = glossary.readlines() -wiki = "" - -for g in mainPages: - if not "\'\'\'Definition:" in g: - h = g.replace("drmf_eof", "") - h = g.replace("drmf_bof", "") - toWrite = "drmf_bof" + h + "drmf_eof\n" - main.write(toWrite) - else: - h = g.replace("drmf_eof", "") - h = g.replace("drmf_bof", "") - h = h.strip("\n") - sflag1 = False - sflag2 = False - if h.find("== Symbols List ==") != -1: - toWrite = h[0:h.find("== Symbols List ==")] - h = toWrite +def main(mainLines): + mainLines = mainLines[mainLines.find("drmf_bof"):mainLines.rfind("drmf_eof") + len("drmf_eof\n")] + mainPages = mainLines.split("drmf_eof") + if mainPages[-1].strip() == "": + mainPages = mainPages[0:len(mainPages) - 1] + print len(mainPages) + glossary = open('new.Glossary.csv', 'rb') + gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') + lGlos = glossary.readlines() + wiki = "" + result = "" + for g in mainPages: + if not "\'\'\'Definition:" in g: + h = g.replace("drmf_eof", "") + h = g.replace("drmf_bof", "") + toWrite = "drmf_bof" + h + "drmf_eof\n" + result += toWrite else: - sflag1 = True - if h.find("drmf_foot") == -1: - toWrite = h - sflag2 = True - else: - toWrite = h[0:h.find("
len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - argFlag = True - elif Q[o] == "}" or z == "]": - argFlag = False - listArgs.append(ap) - ap = "" + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ + len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + checkFlag = True + get = True + preG = S + elif checkFlag: + get = True + checkFlag = False + if (get): + if get: + G = preG + get = False + checkFlag = False + if True: + if symbolPar.find("@") != -1: + Q = symbolPar[:symbolPar.find("@")] else: - ap += Q[o] - websiteF = "" - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" - new1 = "" - new2 = "" - pause = False - mathF = True - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += "{\\displaystyle " + Q = symbolPar + listArgs = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": + argFlag = True + elif Q[o] == "}" or z == "]": + argFlag = False + listArgs.append(ap) + ap = "" + else: + ap += Q[o] + websiteF = "" + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + new1 = "" + new2 = "" + pause = False + mathF = True + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF else: - new2 += "}" - mathF = not mathF - else: - new2 += p2[k] - p2 = new2 - finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - if not gFlag: - del newSym[s] + new2 += p2[k] + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + if not gFlag: + del newSym[s] - gFlag = True - for y in finSym: - if gFlag: - gFlag = False - toWrite += ("[" + y) - else: - toWrite += ("
\n[" + y) + gFlag = True + for y in finSym: + if gFlag: + gFlag = False + toWrite += ("[" + y) + else: + toWrite += ("
\n[" + y) + + toWrite += ("\n
\ndrmf_eof\n\n") + if sflag2: + toWrite += "\n" + result += toWrite - toWrite += "\n
\ndrmf_eof\n\n" - if sflag2: - toWrite += "\n" - main.write(toWrite) + return result \ No newline at end of file diff --git a/main_page/symbolsList.py~ b/main_page/symbolsList.py~ deleted file mode 100644 index b0d1d72..0000000 --- a/main_page/symbolsList.py~ +++ /dev/null @@ -1,278 +0,0 @@ -def getSym(line): #Gets all symbols on a line for symbols list - symList=[] - symbol="" - symFlag=False - argFlag=False - cC=0 - for i in range(0,len(line)): - #if "Laguerre[-\\frac{1}{2}]{n}@{x^2}" in line: - #print symbol - c=line[i] - if symFlag: - if c=="{" or c=="[": - cC+=1 - argFlag=True - if c!="}" and c!="]": - if argFlag or c.isalpha(): - symbol+=c - else: - symFlag=False - argFlag=False - symList.append(symbol) - symList+=(getSym(symbol)) - symbol="" - else: - cC-=1 - symbol+=c - if i+1==len(line): - p="" - else: - p=line[i+1] - if cC==0 and p!="{" and p!="[" and p!="@": - symFlag=False - #if "Laguerre[-\\frac{1}{2}]{n}@{x^2}" in line: - #print(symbol,p) - symList.append(symbol) - symList+=(getSym(symbol)) - argFlag=False - symbol="" - - elif c=="\\": - symFlag=True - - #if "Laguerre[-\\frac{1}{2}]{n}@{x^2}" in line: - #print symbol - return(symList) -import os -files_in_dir=os.listdire(".") -for g in files_in_dir: - if not ".py" in g and not ".new" in g: - f=open(g,"r") - w=open(g+".new","w") - t=f.read() - w.write(t) - t=t.replace("\n","") - symbols=getSym(t) - if True: - wiki.write("
\n== Symbols List ==\n
\n") - newSym=[] - #if "09.12:21" in label: - #print(symbols) - for x in symbols: - flagA=True - #if x not in newSym: - cN=0 - cC=0 - ArgCx=0 - for z in x: - if z.isalpha(): - cN+=1 - else: - if z=="{" or z=="[": - cC+=1 - if z=="}" or z=="]": - cC-=1 - if cC==0: - ArgCx+=1 - noA=x[:cN] - for y in newSym: - cN=0 - cC=0 - ArgC=0 - for z in y: - if z.isalpha(): - cN+=1 - else: - if z=="{" or z=="[": - cC+=1 - if z=="}" or z=="]": - cC-=1 - if cC==0: - ArgC+=1 - - - if y[:cN]==noA and ArgC==ArgCx: - flagA=False - #print(x,y) - break - if flagA: - newSym.append(x) - newSym.reverse() - #if "9.12:20" in label: - #print newSym - symF=False - finSym=[] - for s in range(len(newSym)-1,-1,-1): - #print(newSym[s]) - symbolPar="\\"+newSym[s] - ArgCx=0 - parCx=0 - parFlag=False - cC=0 - for z in symbolPar: - if z=="@": - parFlag=True - elif z.isalpha(): - cN+=1 - else: - if z=="{" or z=="[": - cC+=1 - if z=="}" or z=="]": - cC-=1 - if cC==0: - if parFlag: - parCx+=1 - else: - ArgCx+=1 - - if symbolPar.find("{")!=-1 or symbolPar.find("[")!=-1: - if symbolPar.find("[")==-1: - symbol=symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{")==-1 or symbolPar.find("[")len(symbol) and (G[0][len(symbol)]=="{" or G[0][len(symbol)]=="["): - ap="" - for o in range(len(symbol),len(G[0])): - if G[0][o]=="{" or z=="[": - argFlag=True - elif G[0][o]=="}" or z=="]": - argFlag=False - listArgs.append(ap) - ap="" - else: - ap+=G[0][o] - '''websiteU=g[g.find("http://"):].strip("\n") - k=0 - websites=[] - for r in range(0,len(websiteU)): - if websiteU[r]==",": - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - k=r - - - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - websiteF="" - for d in websites: - websiteF=websiteF+" ["+d+" "+d+"]"''' - #websiteF=G[4].strip("\n") - websiteF="" - web1=G[5] - for t in range(5,len(G)): - if G[t]!="": - websiteF=websiteF+" ["+G[t]+" "+G[t]+"]" - p1="{\\displaystyle "+G[0]+"}" - if p1.find("@")!=-1: - p1=p1[:p1.find("@")] - #if checkFlag: - #print(p1) - new1="" - new2="" - pause=False - mathF=True - '''for k in range(0,len(p1)): - if p1[k]=="$": - if mathF: - new1+="{\\displaystyle " - else: - new1+="}" - mathF=not mathF - - elif p1[k]=="#" and p1[k+1].isdigit(): - pause=True - elif pause: - num=int(p1[k]) - #letter=chr(num+96) - letter=listArgs[num-1] - new1+=letter - pause=False - - else: - new1+=p1[k]''' - p2=G[1] - for k in range(0,len(p2)): - if p2[k]=="$": - if mathF: - new2+="{\\displaystyle " - else: - new2+="}" - mathF=not mathF - else: - new2+=p2[k] - #p1=new1 - p2=new2 - finSym.append(web1+" "+p1+"]
: "+p2+" :"+websiteF) - break - #gFlag=True - #if not symF: - # symF=True - # wiki.write("[") - #else: - # wiki.write("
\n") - # wiki.write("[") - #wiki.write(g[g.find("http://"):].strip("\n")) - #wiki.write(" ") - #wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - #wiki.write("] : ") - #wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - #wiki.write(" : [") - #wiki.write(g[g.find("http://"):].strip("\n")) - #wiki.write(" ") - #wiki.write(g[g.find("http://"):].strip("\n")) - #wiki.write("] ")''' - - - - if not gFlag: - del newSym[s] - - gFlag=True - #finSym.reverse() - for y in finSym: - #print(finSym) - if gFlag: - gFlag=False - wiki.write("["+y) - else: - wiki.write("
\n["+y) - - diff --git a/main_page/tex2Wiki.py~ b/main_page/tex2Wiki.py~ deleted file mode 100644 index 1cce794..0000000 --- a/main_page/tex2Wiki.py~ +++ /dev/null @@ -1,966 +0,0 @@ -#Version 11: Split Sections -#Convert tex to wikiText -import csv #imported for using csv format -import sys #imported for getting args -import os #imported for copying file -def isnumber(char): - return char[0] in "0123456789" -def getString(line): #Gets all data within curly braces on a line - #-------Initialization------- - stringWrite="" - getStr=False - pW="" - #---------------------------- - for c in line: - if c=="{" or c=="}": #if there is a curly brace in the line - getStr=not(getStr) #toggle the getStr flag - if c=="}": #no more info needed - break - elif getStr: #if within curly braces - if not(pW==c and c=="-"): #if there is no double dash (makes single dash) - if c!="$": #if not a $ sign - stringWrite+=c #this character is part of the data - else: #replace $ with '' - stringWrite+="\'\'" #add double ' - pW=c #change last character for finding double dashes - return (stringWrite.rstrip('\n').lstrip()) #return the data without newlines and without leading spaces -def getG(line): #gets equation for symbols list - start=True - final="" - for c in line: - if c=="$" and start: - final+="{\\displaystyle " - start=False - elif c=="$": - final+="}" - start=True - else: - final+=c - return(final) -def getEq(line): #Gets all data within constraints,substitutions - #-------Initialization------- - per=1 - stringWrite="" - fEq=False - count=0 - #---------------------------- - for c in line: #read each character - if count>=0 and per!=0: - per+=1 - if c!=" " and c!="%": - per=0 - if c=="{" and per==0: - if count>0: - stringWrite+=c - count+=1 - elif c=="}" and per==0: - count-=1 - if count>0: - stringWrite+=c - elif c=="$" and per==0: #either begin or end equation - fEq=not(fEq)#toggle fEq flag to know if begin or end equation - if fEq:#if begin - stringWrite+="{\\displaystyle " - else:#if end - stringWrite+="}" - elif c=="\n" and per==0:#if newline - stringWrite=stringWrite.strip()#remove all leading and trailing whitespace - - #should above be rstrip?<-------------------------------------------------------------------CHECK THIS - - stringWrite+=c#add the newline character - per+=1 #watch for % signs - elif count>0 and per==0: #not special character - stringWrite+=c #write the character - - return (stringWrite.rstrip().lstrip()) -def getEqP(line,Flag): #Gets all data within proofs - if Flag: - a=1 - else: - a=0 - per=1 - stringWrite="" - fEq=False - count=0 - length=0 - for c in line: - if fEq and c!=" " and c!="$" and c!="{" and c!="}" and not c.isalpha(): - length+=1 - if count>=0 and per!=0: - per+=1 - if c!=" " and c!="%": - #if c!="%": - per=0 - if c=="{" and per==0: - if count>0: - stringWrite+=c - count+=1 - elif c=="}" and per==0: - count-=1 - if count>0: - stringWrite+=c - elif c=="$" and per==0: - fEq=not(fEq) - if fEq: - stringWrite+="{\\displaystyle " - else: - if length<10: - stringWrite+="}" - else: - stringWrite+="}"+"
" - length=0 - elif c=="\n" and per==0: - stringWrite=stringWrite.strip() - stringWrite+=c - per+=1 - elif count>0 and per==0: - stringWrite+=c - - return (stringWrite.lstrip()) -def getSym(line): #Gets all symbols on a line for symbols list - symList=[] - symbol="" - symFlag=False - argFlag=False - cC=0 - for i in range(0,len(line)-1): - if "[" in line: - print symbol - c=line[i] - if symFlag: - if c=="{" or c=="[": - cC+=1 - argFlag=True - if c!="}" and c!="]": - if argFlag or c.isalpha(): - symbol+=c - else: - symFlag=False - argFlag=False - symList.append(symbol) - symList+=(getSym(symbol)) - symbol="" - else: - cC-=1 - symbol+=c - if cC==0 and line[i+1]!="{" and line[i+1]!="[" and line[i+1]!="@": - symFlag=False - symList.append(symbol) - symList+=(getSym(symbol)) - argFlag=False - symbol="" - - elif c=="\\": - symFlag=True - - return(symList) - '''symList=[] - getStr=False - getPar=False - morePar=False - curStr="" - deeper=False - cC=0 - for c in line: - if c=="\\" and not (getStr): - getStr=True - elif getStr: - if morePar and c!="{": - getPar=False - getStr=False - symList.append(curStr) - curStr="" - morePar=False - else: - morePar=False - if c=="\\": - deeper=True - if c.isalpha(): - curStr=curStr+c - elif not getPar and c!="{" and c!="}": - getStr=False - symList.append(curStr) - curStr="" - elif c=="{": - cC+=1 - getPar=True - curStr=curStr+c - elif c=="}": - cC-=1 - #getPar=False - if cC>0: - curStr=curStr+c - else: - morePar=True - curStr=curStr+c - getPar=False - getStr=False - symList.append(curStr) - curStr="" - #symList.append(curStr) - #curStr="" - else: - curStr=curStr+c - #print(line,symList) - dSym=[] - if deeper: - for sym in symList: - d=getSym(sym) - dSym=dSym+(d) - #print(symList,dSym,line) - symList=symList+dSym - return (symList)''' -def modLabel(label): - isNumer=False - newlabel="" - num="" - for i in range(0,len(label)): - if isNumer and not isnumber(label[i]): - if len(num)>1: - newlabel+=num - isNumer=False - num="" - else: - newlabel+="0"+str(num) - num="" - isNumer=False - if isnumber(label[i]): - isNumer=True - num+=str(label[i]) - else: - isNumer=False - newlabel+=label[i] - if len(num)>1: - newlabel+=num - elif len(num)==1: - newlabel+="0"+num - return(newlabel) -#try: -for jsahlfkjsd in range(0,1): - tex=open(sys.argv[1],'r') - wiki=open(sys.argv[2],'w') - main=open("OrthogonalPolynomials.mmd","r") - mainText=main.read() - mainPrepend="" - mainWrite=open("OrthogonalPolynomials.mmd.new","w") - tester=open("testData.txt",'w') - #glossary=open('Glossary', 'r') - glossary=open('new.Glossary.csv', 'rb') - gCSV=csv.reader(glossary, delimiter=',', quotechar='\"') - #lLinks=open('BruceLabelLinks', 'r') - lGlos=glossary.readlines() - #lLink=lLinks.readlines() - math=False - constraint=False - substitution=False - symbols=[] - lines=tex.readlines() - refLines=[] - sections=[] - labels=[] - eqs=[] - refEqs=[] - parse=False - head=False - #chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] - refLabels=[] - '''for c in chapRef: - refLines=refLines+(c[1].readlines()) - c[1].close()''' - for i in range(0,len(refLines)): - line=refLines[i] - if "\\begin{equation}" in line: - sLabel=line.find("\\formula{")+9 - eLabel=line.find("}",sLabel) - label=modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1 and l[len(label)+1]=="=": - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' - refLabels.append(label) - refEqs.append("") - math=True - elif math: - refEqs[len(refEqs)-1]+=line - if "\\end{equation}" in refLines[i+1] or "\\constraint" in refLines[i+1] or "\\substitution" in refLines[i+1] or "\\drmfn" in refLines[i+1]: - math=False - - for i in range(0,len(lines)): - line=lines[i] - if "\\begin{document}" in line: - #wiki.write("drmf_bof\n") - parse=True - elif "\\end{document}" in line and parse: - #wiki.write("
\n") - mainPrepend+="
\n" - mainText=mainPrepend+mainText - mainText=mainText.replace("drmf_bof\n","") - mainText=mainText.replace("drmf_eof\n","") - mainText=mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n","") - mainText=mainText[0:mainText.rfind("== Sections ")] - mainText="drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n"+mainText+"\ndrmf_eof" - mainWrite.write(mainText) - mainWrite.close() - main.close() - os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") - #wiki.write("\ndrmf_eof\n") - parse=False - elif "\\title" in line and parse: - stringWrite="\'\'\'" - stringWrite+=getString(line)+"\'\'\'\n" - labels.append("Orthogonal Polynomials") - sections.append(["Orthogonal Polynomials",0]) - #wiki.write(stringWrite) - #mainPrepend+=stringWrite - mainPrepend+=("\n== Sections in "+getString(line)+" ==\n\n
\n") - elif "\\part" in line: - if getString(line)=="BOF": - parse=False - elif getString(line)=="EOF": - parse=True - elif parse: - mainPrepend+=("\n
\n= "+getString(line)+" =\n") - head=True - elif "\\section" in line: - mainPrepend+=("* [["+getString(line)+"|"+getString(line)+"]]\n") - sections.append([getString(line)]) - - secCounter=0 - eqCounter=0 - for i in range(0,len(lines)): - line=lines[i] - #line.replace("\\begin{equation}","$") - #line.replace("\\end{equation},"$") - '''if "\\begin{document}" in line: - wiki.write("drmf_bof\n") - parse=True - elif "\\end{document}" in line and parse: - wiki.write("\ndrmf_eof\n") - parse=False - elif "\\title" in line and parse: - stringWrite="\'\'\'" - stringWrite+=getString(line)+"\'\'\'\n" - labels.append("Orthogonal Polynomials") - wiki.write(stringWrite\n) - elif "\\part" in line: - if getString(line)=="BOF": - parse=False - elif getString(line)=="EOF": - parse=True - elif parse: - wiki.write("\n
\n= "+getString(line)+" =\n") - head=True - ''' - if "\\section" in line: - parse=True - secCounter+=1 - wiki.write("drmf_bof\n") - wiki.write("\'\'\'"+getString(line)+"\'\'\'\n") - wiki.write("
\n") - wiki.write("
<< [["+sections[secCounter-1][0]+"|"+sections[secCounter-1][0]+"]]
\n") - wiki.write("
[["+sections[secCounter][0]+"|"+sections[secCounter][0]+"]]
\n") - wiki.write("
[["+sections[(secCounter+1)%len(sections)][0]+"|"+sections[(secCounter+1)%len(sections)][0]+"]] >>
\n
\n\n") - head=True - wiki.write("== "+getString(line)+" ==\n") - elif ("\\section" in lines[(i+1)%len(lines)] or "\\end{document}" in lines[(i+1)%len(lines)]) and parse: - wiki.write("
\n") - wiki.write("
<< [["+sections[secCounter-1][0]+"|"+sections[secCounter-1][0]+"]]
\n") - wiki.write("
[["+sections[secCounter][0]+"|"+sections[secCounter][0]+"]]
\n") - wiki.write("
[["+sections[(secCounter+1)%len(sections)][0]+"|"+sections[(secCounter+1)%len(sections)][0]+"]] >>
\n
\n\n") - wiki.write("drmf_eof\n") - sections[secCounter].append(eqCounter) - eqCounter=0 - - elif "\\subsection" in line and parse: - wiki.write("\n
\n== "+getString(line)+" ==\n") - head=True - elif "\\paragraph" in line and parse: - wiki.write("\n
\n=== "+getString(line)+" ===\n") - head=True - elif "\\begin{equation}" in line and parse: - # symLine="" - if head: - wiki.write("
\n") - head=False - sLabel=line.find("\\formula{")+9 - eLabel=line.find("}",sLabel) - label=modLabel(line[sLabel:eLabel]) - eqCounter+=1 - '''for l in lLink: - if label==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - labels.append(label) - eqs.append("") - wiki.write("\n\n") - wiki.write("{\displaystyle \n") - math=True - elif "\\begin{equation}" in line and not parse: - sLabel=line.find("\\formula{")+9 - eLabel=line.find("}",sLabel) - label=modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' - labels.append("*"+label) #special marker - eqs.append("") - math=True - elif "\\end{equation}" in line: - - math=False - elif "\\constraint" in line and parse: - constraint=True - math=False - conLine="" - elif "\\substitution" in line and parse: - substitution=True - math=False - subLine="" - #wiki.write("
Substitution(s): "+getEq(line)+"

\n") - elif "\\proof" in line and parse: - math=False - elif "\\drmfn" in line and parse: - math=False - if "\\drmfname" in line and parse: - wiki.write("
This formula has the name: "+getString(line)+"

\n") - elif math and parse: - flagM=True - eqs[len(eqs)-1]+=line - - if "\\end{equation}" in lines[i+1] and not "\\subsection" in lines[i+3] and not "\\section" in lines[i+3] and not "\\part" in lines[i+3]: - u=i - flagM2=False - while flagM: - u+=1 - if "\\begin{equation}"in lines[u] in lines[u]: - flagM=False - if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: - flagM=False - flagM2=True - if not(flagM2): - - wiki.write(line.rstrip("\n")) - wiki.write("\n}
\n") - else: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - elif "\\end{equation}" in lines[i+1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - elif "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - else: - wiki.write(line) - elif math and not parse: - eqs[len(eqs)-1]+=line - if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: - math=False - if substitution and parse: - subLine=subLine+line - if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: - substitution=False - wiki.write("
Substitution(s): "+getEq(subLine)+"

\n") - - if constraint and parse: - conLine=conLine+line - if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: - constraint=False - wiki.write("
Constraint(s): "+getEq(conLine)+"

\n") - - eqCounter=0 - endNum=len(labels)-1 - '''for n in range(1,len(labels)): - if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": - labels[n]=""+labels[n] - endNum=n - elif labels[n][0]=="*": - labels[n]=""+labels[n][1:] - else: - labels[n]=""+labels[n]''' - '''for n in range(0,len(refLabels)): - refLabels[n]=""+refLabels[n]''' - parse=False - constraint=False - substitution=False - note=False - hCon=True - hSub=True - hNote=True - hProof=True - proof=False - comToWrite="" - secCount=-1 - newSec=False - for i in range(0,len(lines)): - line=lines[i] - - if "\\section" in line: - secCount+=1 - newSec=True - eqS=0 - - if "\\begin{equation}" in line: - symLine=line.strip("\n") - eqS+=1 - constraint=False - substitution=False - note=False - comToWrite="" - hCon=True - hSub=True - hNote=True - hProof=True - proof=False - parse=True - symbols=[] - eqCounter+=1 - wiki.write("drmf_bof\n") - label=labels[eqCounter] - wiki.write("\'\'\'"+label+"\'\'\'\n\n") - if eqCounter\n") - if newSec: - wiki.write("
<< [["+sections[secCount][0].replace(" ","_")+"|"+sections[secCount][0]+"]]
\n") - else: - wiki.write("
<< [["+labels[eqCounter-1].replace(" ","_")+"|"+labels[eqCounter-1]+"]]
\n") - wiki.write("
[["+labels[0].replace(" ","_")+"#"+label[8:]+"|formula in "+labels[0]+"]]
\n") - if eqS==sections[secCount][1]: - wiki.write("
[["+sections[(secCount+1)%len(sections)][0].replace(" ","_")+"|"+sections[(secCount+1)%len(sections)][0]+"]] >>
\n") - else: - wiki.write("
[["+labels[(eqCounter+1)%(endNum+1)].replace(" ","_")+"|"+labels[(eqCounter+1)%(endNum+1)]+"]] >>
\n") - wiki.write("
\n\n") - elif eqCounter==endNum: - wiki.write("
\n") - if newSec: - newSec=False - wiki.write("
<< [["+sections[secCount][0].replace(" ","_")+"|"+sections[secCount][0]+"]]
\n") - else: - wiki.write("
<< [["+labels[eqCounter-1].replace(" ","_")+"|"+labels[eqCounter-1]+"]]
\n") - wiki.write("
[["+labels[0].replace(" ","_")+"#"+label[8:]+"|formula in "+labels[0]+"]]
\n") - wiki.write("
[["+labels[(eqCounter+1)%(endNum+1)].replace(" ","_")+"|"+labels[(eqCounter+1)%(endNum+1)]+"]]
\n") - wiki.write("
\n\n") - - wiki.write("
{\displaystyle \n") - math=True - elif "\\end{equation}" in line: - wiki.write(comToWrite) - parse=False - math=False - if hProof: - wiki.write("
\n== Proof ==\n
\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - - wiki.write("
\n== Symbols List ==\n
\n") - newSym=[] - if "09.12:21" in label: - print(symbols) - for x in symbols: - flagA=True - #if x not in newSym: - cN=0 - cC=0 - ArgCx=0 - for z in x: - if z.isalpha(): - cN+=1 - else: - if z=="{": - cC+=1 - if z=="}": - cC-=1 - if cC==0: - ArgCx+=1 - noA=x[:cN] - for y in newSym: - cN=0 - cC=0 - ArgC=0 - for z in y: - if z.isalpha(): - cN+=1 - else: - if z=="{": - cC+=1 - if z=="}": - cC-=1 - if cC==0: - ArgC+=1 - - - if y[:cN]==noA and ArgC==ArgCx: - flagA=False - #print(x,y) - break - if flagA: - newSym.append(x) - newSym.reverse() - symF=False - finSym=[] - for s in range(len(newSym)-1,-1,-1): - #print(newSym[s]) - symbolPar="\\"+newSym[s] - ArgCx=0 - cC=0 - for z in symbolPar: - if z.isalpha(): - cN+=1 - else: - if z=="{": - cC+=1 - if z=="}": - cC-=1 - if cC==0: - ArgCx+=1 - if symbolPar.find("{")!=-1: - symbol=symbolPar[0:symbolPar.find("{")] - else: - symbol=symbolPar - numPar=ArgCx - gFlag=False - gCSV=csv.reader(open('new.Glossary.csv','rb'),delimiter=',', quotechar='\"') - for G in gCSV: - ArgCx=0 - cC=0 - ind=G[0].find("@") - if ind==-1: - ind=len(G[0])-1 - for z in G[0]: - if z.isalpha(): - cN+=1 - else: - if z=="{": - cC+=1 - if z=="}": - cC-=1 - if cC==0: - ArgCx+=1 - checkFlag=False - if G[0].find(symbol)==0 and (len(G[0])==len(symbol) or not G[0][len(symbol)].isalpha()) and numPar!=0: - checkFlag=True - if G[0].find(symbol)==0 and (len(G[0])==len(symbol) or not G[0][len(symbol)].isalpha()) and ArgCx==numPar: - listArgs=[] - if len(G[0])>len(symbol) and G[0][len(symbol)]=="{": - ap="" - for o in range(len(symbol),len(G[0])): - if G[0][o]=="{": - argFlag=True - elif G[0][o]=="}": - argFlag=False - listArgs.append(ap) - ap="" - else: - ap+=G[0][o] - '''websiteU=g[g.find("http://"):].strip("\n") - k=0 - websites=[] - for r in range(0,len(websiteU)): - if websiteU[r]==",": - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - k=r - - - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - websiteF="" - for d in websites: - websiteF=websiteF+" ["+d+" "+d+"]"''' - #websiteF=G[4].strip("\n") - websiteF="" - web1=G[5] - for t in range(5,len(G)): - if G[t]!="": - websiteF=websiteF+" ["+G[t]+" "+G[t]+"]" - p1="{\\displaystyle "+G[0]+"}" - if p1.find("@")!=-1: - p1=p1[:p1.find("@")] - #if checkFlag: - #print(p1) - new1="" - new2="" - pause=False - mathF=True - '''for k in range(0,len(p1)): - if p1[k]=="$": - if mathF: - new1+="{\\displaystyle " - else: - new1+="}" - mathF=not mathF - - elif p1[k]=="#" and p1[k+1].isdigit(): - pause=True - elif pause: - num=int(p1[k]) - #letter=chr(num+96) - letter=listArgs[num-1] - new1+=letter - pause=False - - else: - new1+=p1[k]''' - p2=G[1] - for k in range(0,len(p2)): - if p2[k]=="$": - if mathF: - new2+="{\\displaystyle " - else: - new2+="}" - mathF=not mathF - else: - new2+=p2[k] - #p1=new1 - p2=new2 - finSym.append(web1+" "+p1+"] : "+p2+" :"+websiteF) - break - #gFlag=True - #if not symF: - # symF=True - # wiki.write("[") - #else: - # wiki.write("
\n") - # wiki.write("[") - #wiki.write(g[g.find("http://"):].strip("\n")) - #wiki.write(" ") - #wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - #wiki.write("] : ") - #wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - #wiki.write(" : [") - #wiki.write(g[g.find("http://"):].strip("\n")) - #wiki.write(" ") - #wiki.write(g[g.find("http://"):].strip("\n")) - #wiki.write("] ")''' - - - - if not gFlag: - del newSym[s] - - gFlag=True - #finSym.reverse() - for y in finSym: - #print(finSym) - if gFlag: - gFlag=False - wiki.write("["+y) - else: - wiki.write("
\n["+y) - - - wiki.write("\n
\n") - - wiki.write("== Bibliography==\n
\n")#should there be a space between bibliography and ==? - r=labels[eqCounter] - q=r.find("KLS:")+4 - p=r.find(":",q) - section=r[q:p] - equation=r[p+1:] - if equation.find(":")!=-1: - equation=equation[0:equation.find(":")] - - wiki.write("[HTTP://DLMF.NIST.GOV/"+section+"#"+equation+" Equation in Section "+section+"] of [[Bibliography#KLS|'''KLS''']].\n
\n
\n")#Where should it link to? - wiki.write("== URL links ==\n
\nWe ask users to provide relevant URL links in this space.\n
\n\n") - if eqCounter
\n") - if newSec: - newSec=False - wiki.write("
<< [["+sections[secCount][0].replace(" ","_")+"|"+sections[secCount][0]+"]]
\n") - else: - wiki.write("
<< [["+labels[eqCounter-1].replace(" ","_")+"|"+labels[eqCounter-1]+"]]
\n") - wiki.write("
[["+labels[0].replace(" ","_")+"#"+label[8:]+"|formula in "+labels[0]+"]]
\n") - if eqS==sections[secCount][1]: - wiki.write("
[["+sections[(secCount+1)%len(sections)][0].replace(" ","_")+"|"+sections[(secCount+1)%len(sections)][0]+"]] >>
\n") - else: - wiki.write("
[["+labels[(eqCounter+1)%(endNum+1)].replace(" ","_")+"|"+labels[(eqCounter+1)%(endNum+1)]+"]] >>
\n") - wiki.write("
\n\ndrmf_eof\n") - else: #FOR EXTRA EQUATIONS - wiki.write("
\n") - wiki.write("
<< [["+labels[endNum-1].replace(" ","_")+"|"+labels[endNum-1]+"]]
\n") - wiki.write("
[["+labels[0].replace(" ","_")+"#"+labels[endNum][8:]+"|formula in "+labels[0]+"]]
\n") - wiki.write("
[["+labels[(0)%endNum].replace(" ","_")+"|"+labels[0%endNum]+"]]
\n") - wiki.write("
\n\ndrmf_eof\n") - - - - elif "\\constraint" in line and parse: - #symbols=symbols+getSym(line) - symLine=line.strip("\n") - if hCon: - comToWrite=comToWrite+"
\n== Constraint(s) ==\n
\n" - hCon=False - constraint=True - math=False - conLine="" - #wiki.write("
"+getEq(line)+"

\n") - elif "\\substitution" in line and parse: - #symbols=symbols+getSym(line) - symLine=line.strip("\n") - if hSub: - comToWrite=comToWrite+"
\n== Substitution(s) ==\n
\n" - hSub=False - #wiki.write("
"+getEq(line)+"

\n") - substitution=True - math=False - subLine="" - elif "\\drmfname" in line and parse: - math=False - comToWrite="
\n== Name ==\n
\n
"+getString(line)+"

\n"+comToWrite - - elif "\\drmfnote" in line and parse: - symbols=symbols+getSym(line) - if hNote: - comToWrite=comToWrite+"
\n== Note(s) ==\n
\n" - hNote=False - note=True - math=False - noteLine="" - - elif "\\proof" in line and parse: - #symbols=symbols+getSym(line) - symLine=line.strip("\n") - if hProof: - hProof=False - comToWrite=comToWrite+"
\n== Proof ==\n
\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" - proof=True - proofLine="" - pause=False - pauseP=False - for ind in range(0,len(line)): - if line[ind:ind+7]=="\\eqref{": - pause=True - eqR=line[ind:line.find("}",ind)+1] - rLab=getString(eqR) - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - - eInd=refLabels.index(""+label) - z=line[line.find("}",ind+7)+1] - if z=="." or z==",": - pauseP=True - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") - else: - if z=="}": - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
") - else: - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") - - - else: - if pause: - if line[ind]=="}": - pause=False - elif pauseP: - pauseP=False - elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: - pass - else: - proofLine+=(line[ind]) - if "\\end{equation}" in lines[i+1]: - proof=False - #symLine+=line.strip("\n") - wiki.write(comToWrite+getEqP(proofLine,False)+"
\n
\n") - comToWrite="" - symbols=symbols+getSym(symLine) - symLine="" - - #wiki.write(line) - - elif proof: - symLine+=line.strip("\n") - pauseP=False - #symbols=symbols+getSym(line) - for ind in range(0,len(line)): - if line[ind:ind+7]=="\\eqref{": - pause=True - eqR=line[ind:line.find("}",ind)+1] - rLab=getString(eqR) - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - - eInd=refLabels.index(""+label) - z=line[line.find("}",ind+7)+1] - if z=="." or z==",": - pauseP=True - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") - else: - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") - - else: - if pause: - if line[ind]=="}": - pause=False - elif pauseP: - pauseP=False - elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: - pass - - else: - proofLine+=(line[ind]) - if "\\end{equation}" in lines[i+1]: - proof=False - #symLine+=line.strip("\n") - wiki.write(comToWrite+getEqP(proofLine,False).rstrip("\n")+"
\n
\n") - comToWrite="" - symbols=symbols+getSym(symLine) - symLine="" - - elif math: - if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1] or "\\drmfnote" in lines[i+1] or "\\drmfname" in lines[i+1]: - wiki.write(line.rstrip("\n")) - symLine+=line.strip("\n") - symbols=symbols+getSym(symLine) - symLine="" - wiki.write("\n}
\n") - else: - symLine+=line.strip("\n") - wiki.write(line) - if note and parse: - noteLine=noteLine+line - symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1]: - note=False - comToWrite=comToWrite+"
"+getEq(noteLine)+"

\n" - - if constraint and parse: - conLine=conLine+line - symLine+=line.strip("\n") - #symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1]: - constraint=False - symbols=symbols+getSym(symLine) - symLine="" - wiki.write(comToWrite+"
"+getEq(conLine)+"

\n") - comToWrite="" - if substitution and parse: - subLine=subLine+line - symLine+=line.strip("\n") - #symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\proof" in lines[i+1]: - substitution=False - symbols=symbols+getSym(symLine) - symLine="" - wiki.write(comToWrite+"
"+getEq(subLine)+"

\n") - comToWrite="" -#except Exception as detail: #If exception occured -# print("Exception",detail) #print details of error -#except: #If anythin else occured... -# print ("ERROR",sys.exc_info()[0])#ERROR with basic info From 2d6b117358113b88d6455e48e197e8cc4033f910 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 5 Aug 2016 09:29:13 -0400 Subject: [PATCH 194/402] Update main_page.mmd, fix bugs with new entries --- main_page/main_page.mmd | 129 +++++++++++++++++++++++++++++++++++++++- main_page/src/main.py | 3 + 2 files changed, 129 insertions(+), 3 deletions(-) diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd index 3e07ca8..f271213 100644 --- a/main_page/main_page.mmd +++ b/main_page/main_page.mmd @@ -225,6 +225,9 @@ For more information see [http://link.springer.com/chapter/10.1007%2F978-3-319-0 * [[Definition:RegGammaQ|RegGammaQ]] * [[Definition:GaussDistF|GaussDistF]] * [[Definition:GaussDistQ|GaussDistQ]] +* [[Definition:RamanujanTauTheta|RamanujanTauTheta]] +* [[Definition:RiemannSiegelTheta|RiemannSiegelTheta]] +* [[Definition:sinc|sinc]]
= Copyright = @@ -282,7 +285,7 @@ drmf_eof drmf_bof '''Definition:AffqKrawtchouk'''
-
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
+
<< [[Definition:sinc|Definition:sinc]]
[[Main_Page|Main Page]]
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
@@ -309,7 +312,7 @@ These are defined by [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
+
<< [[Definition:sinc|Definition:sinc]]
[[Main_Page|Main Page]]
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
@@ -5035,7 +5038,7 @@ drmf_bof
<< [[Definition:GaussDistF|Definition:GaussDistF]]
[[Main_Page|Main Page]]
-
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
[[Definition:RamanujanTauTheta|Definition:RamanujanTauTheta]] >>
The LaTeX DLMF and DRMF macro '''\GaussDistQ''' represents the GaussDistQ. @@ -5065,6 +5068,126 @@ These are defined by
<< [[Definition:GaussDistF|Definition:GaussDistF]]
[[Main_Page|Main Page]]
+
[[Definition:RamanujanTauTheta|Definition:RamanujanTauTheta]] >>
+
+drmf_eof +drmf_bof +'''Definition:RamanujanTauTheta''' +
+
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
+
[[Main_Page|Main Page]]
+
[[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]] >>
+
+The LaTeX DLMF and DRMF macro '''\RamanujanTauTheta''' represents the RamanujanTauTheta. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\RamanujanTauTheta''' produces {\displaystyle \RamanujanTauTheta}
+:'''\RamanujanTauTheta@{z}''' produces {\displaystyle \RamanujanTauTheta@{z}}
+ +These are defined by + + + +{\displaystyle + +\RamanujanTauTheta@{z}:=-\log\left(2\pi\right)z-\frac{i}{2}\left(\log\EulerGamma@{6+iz}-\log{\EulerGamma@{6-iz}}\right) + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{log}}] : principle branch of natural logarithm : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1] +
+
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
+
[[Main_Page|Main Page]]
+
[[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]] >>
+
+drmf_eof +drmf_bof +'''Definition:RiemannSiegelTheta''' +
+
<< [[Definition:RamanujanTauTheta|Definition:RamanujanTauTheta]]
+
[[Main_Page|Main Page]]
+
[[Definition:sinc|Definition:sinc]] >>
+
+The LaTeX DLMF and DRMF macro '''\RiemannSiegelTheta''' represents the RiemannSiegelTheta. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\RiemannSiegelTheta''' produces {\displaystyle \RiemannSiegelTheta}
+:'''\RiemannSiegelTheta@{t}''' produces {\displaystyle \RiemannSiegelTheta@{t}}
+ +These are defined by + + + +{\displaystyle + +\RiemannSiegelTheta@{t}:=\arg\left[\EulerGamma@{\frac{1}{4}+\frac{1}{2}it}\right]-\frac{1}{2}t\ln\pi + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta]
+[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2] +
+
<< [[Definition:RamanujanTauTheta|Definition:RamanujanTauTheta]]
+
[[Main_Page|Main Page]]
+
[[Definition:sinc|Definition:sinc]] >>
+
+drmf_eof +drmf_bof +'''Definition:sinc''' +
+
<< [[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]]
+
[[Main_Page|Main Page]]
+
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
+The LaTeX DLMF and DRMF macro '''\sinc''' represents the sinc. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\sinc''' produces {\displaystyle \sinc}
+:'''\sinc@{x}''' produces {\displaystyle \sinc@{x}}
+ +These are defined by + + + +{\displaystyle + +\sinc@{x}:= +\begin{cases} + \hfill 1 \hfill & \text{ for $x = 0$} \\ + \hfill \frac{\sin{x}}{x} \hfill & \text{ otherwise,} \\ +\end{cases} + +} + +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:Sinc {\displaystyle \mathrm{sinc}{x}}] : sine cardinal function : [http://drmf.wmflabs.org/wiki/Definition:Sinc http://drmf.wmflabs.org/wiki/Definition:Sinc]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1] +
+
<< [[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]]
+
[[Main_Page|Main Page]]
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
drmf_eof diff --git a/main_page/src/main.py b/main_page/src/main.py index d6a93f4..5524ffe 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -63,6 +63,9 @@ def update_headers(text, definitions): output += page + "drmf_eof\n" continue + # remove drmf_bof and definition header to prevent redundancy + page = page[page.find(macros[i]) + len(macros[i]) + 3:] + if "
" in page: page = page[page.find(">>
\n
") + len(">>
\n
"):] From f7e3ad7923d68fddf78f5826e0e90b8160ae699b Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 5 Aug 2016 10:48:42 -0400 Subject: [PATCH 195/402] Add eCF to travis build checks --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dd5c68f..cbea7fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex + nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex eCF after_success: coveralls From 510cb5709cebafbae0538f2e6cab5e03d6ffeae5 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 5 Aug 2016 10:49:07 -0400 Subject: [PATCH 196/402] Add eCF directory --- eCF/.gitignore | 12 + eCF/data/IdentitiesTest.m | 8 + eCF/data/functions | 116 +++++ eCF/src/MathematicaToLaTeX.py | 845 ++++++++++++++++++++++++++++++++++ eCF/src/pythonTest.py | 0 5 files changed, 981 insertions(+) create mode 100644 eCF/.gitignore create mode 100644 eCF/data/IdentitiesTest.m create mode 100644 eCF/data/functions create mode 100644 eCF/src/MathematicaToLaTeX.py create mode 100644 eCF/src/pythonTest.py diff --git a/eCF/.gitignore b/eCF/.gitignore new file mode 100644 index 0000000..975836e --- /dev/null +++ b/eCF/.gitignore @@ -0,0 +1,12 @@ +Divya/ +other/ +test +Identities.* +newIdentities.* +IdentitiesTest.txt +README_Glossary +x.log +tasks.txt +*.sty +*.aux +*.csv diff --git a/eCF/data/IdentitiesTest.m b/eCF/data/IdentitiesTest.m new file mode 100644 index 0000000..64e8ed4 --- /dev/null +++ b/eCF/data/IdentitiesTest.m @@ -0,0 +1,8 @@ +(* {"RamanujanTauTheta", 1}*) +ConditionalExpression[RamanujanTauTheta[z] == (z*(137/60 - EulerGamma - Log[2*Pi]))/(1 + Inactive[ContinuedFractionK][((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), 1 - ((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), {k, 1, Infinity}]), Element[z, Complexes] && Abs[z] < 1] + +(* {"Sinc", 1}*) +ConditionalExpression[Sinc[z] == (1 + Inactive[ContinuedFractionK][z^2/(2*k*(1 + 2*k)), 1 - z^2/(2*k*(1 + 2*k)), {k, 1, Infinity}])^(-1), Element[z, Complexes]] + +(* {"RiemannSiegelTheta", 1}*) +ConditionalExpression[RiemannSiegelTheta[z] == -(z*(Log[Pi] - PolyGamma[0, 1/4]))/2 - (z^3*PolyGamma[2, 1/4])/(48*(1 + Inactive[ContinuedFractionK][(z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), 1 - (z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), {k, 1, Infinity}])), Element[z, Complexes] && Abs[z] < 1/2] \ No newline at end of file diff --git a/eCF/data/functions b/eCF/data/functions new file mode 100644 index 0000000..360ce2c --- /dev/null +++ b/eCF/data/functions @@ -0,0 +1,116 @@ + Abs, \abs, ({-}), () + AiryAi, \AiryAi, (@{-}), (AiryAiPrime) + AiryAiPrime, \AiryAi', (@{-}), () + AiryBi, \AiryBi, (@{-}), (AiryBiPrime) + AiryBiPrime, \AiryBi', (@{-}), () + ArcCos, \acos, (@{-}), (ArcCosh) + ArcCosh, \acosh, (@{-}), () + ArcCot, \acot, (@{-}), (ArcCoth) + ArcCoth, \acoth, (@{-}), () + ArcCsc, \acsc, (@{-}), (ArcCsch) + ArcCsch, \acsch, (@{-}), () + ArcSec, \asec, (@{-}), (ArcSech) + ArcSech, \asech, (@{-}), () + ArcSin, \asin, (@{-}), (ArcSinh) + ArcSinh, \asinh, (@{-}), () + ArcTan, \atan, (@{-}), (ArcTanh) + ArcTanh, \atanh, (@{-}), () + Arg, \ph, (@{-}), () + BetaRegularized, \IncI, ({-}@{-}{-}), () + Binomial, \binom, ({-}{-}), () + BernoulliB, \BernoulliB, ({-}, {-}@{-}), () + BesselI, \BesselI, ({-}@{-}), (SphericalBesselI) + BesselJ, \BesselJ, ({-}@{-}), (SphericalBesselJ) + BesselK, \BesselK, ({-}@{-}), (SphericalBesselK) + BesselY, \BesselY, ({-}@{-}), (SphericalBesselY) + ChebyshevT, \ChebyT, ({-}@{-}), () + ChebyshevU, \ChebyU, ({-}@{-}), () + Cos, \cos, (@{-}), (ArcCos, Cosh, CosIntegral) + Cosh, \cosh, (@{-}), (ArcCosh, CoshIntegral) + CoshIntegral, \CoshInt, (@{-}), () + CosIntegral, \CosInt, (@{-}), () + Cot, \cot, (@{-}), (ArcCot, Coth) + Coth, \coth, (@{-}), (ArcCoth) + Csc, \csc, (@{-}), (ArcCsc, Csch) + Csch, \csch, (@{-}), (ArcCsch) + DawsonF, \DawsonsInt, (@{-}), () + D, \deriv, ({-}{-}), (ParabolicCylinderD) + EllipticE, \CompEllIntE, (@{-}), () + EllipticK, \CompEllIntK, (@{-}), () + Erf, \erf, (@{-}), () + EllipticTheta, \JacobiTheta, ({-}@{-}{-}), () + Erfc, \erfc, (@{-}), () + Erfi, \inverf, (@{-}), () + ExpIntegralE, \ExpIntn, ({-}@{-}), () + ExpIntegralEi, \ExpInti, (@{-}), () + Fibonacci, \Fibonacci, (Number{-}, {-}@{-}), () + Floor, \floor, ({-}), () + FresnelC, \FresnelCos, (@{-}), () + FresnelS, \FresnelSin, (@{-}), () + GammaRegularized, \GammaQ, (@{-}{-}), () + GegenbauerC, \Ultra, ({-}{-}@{-}), () + HankelH1, \HankelHi, ({-}@{-}), (SphericalHankelH1) + HankelH2, \HankelHii, ({-}@{-}), (SphericalHankelH2) + HarmonicNumber, \HarmonicNumber, ({-}, [-]{-}), () + HermiteH, \Hermite, ({-}@{-}), (HermiteHe) + HurwitzLerchPhi, \HurwitzLerchPhi, (@{-}{-}{-}), () + HurwitzZeta, \HurwitzZeta, (@{-}{-}), () + Hypergeometric0F1, \HyperpFq, ({0}{1}@@{}{-}{-}), (Hypergeometric0F1Regularized) + Hypergeometric1F1, \HyperpFq, ({1}{1}@@{-}{-}{-}), (Hypergeometric1F1Regularized) + Hypergeometric2F1, \HyperpFq, ({2}{1}@@{-,-}{-}{-}), (Hypergeometric2F1Regularized) + Hypergeometric0F1Regularized, \HyperboldpFq, ({0}{1}@@{}{-}{-}), () + Hypergeometric1F1Regularized, \HyperboldpFq, ({1}{1}@@{-}{-}{-}), () + Hypergeometric2F1Regularized, \HyperboldpFq, ({2}{1}@@{-,-}{-}{-}), () + HypergeometricPFQ, \HyperpFq, ({-}{-}@@--{-}), (QHypergeometricPFQ) + HypergeometricU, \KummerU, (@{-}{-}{-}), () + Im, \imagpart, ({-}), () + JacobiCN, \Jacobicn, (@{-}{-}), () + JacobiDN, \Jacobidn, (@{-}{-}), () + JacobiP, \JacobiP, ({-}{-}{-}@{-}), () + JacobiSN, \Jacobisn, (@{-}{-}), () + KelvinBei, \Kelvinbei, ({-}, {-}@@{-}), () + KelvinBer, \Kelvinber, ({-}, {-}@@{-}), () + KelvinKei, \Kelvinkei, ({-}, {-}@@{-}), () + KelvinKer, \Kelvinker, ({-}, {-}@@{-}), () + KroneckerDelta, \Kronecker, ({-}{0}, {-}{-}), () + LaguerreL, \Laguerre, ({-}@{-}, [-]{-}@{-}), () + LerchPhi, \LerchPhi, (@{-}{-}{-}), (HurwitzLerchPhi) + Log, \log, (@{-}), (PolyLog, LogInt, LogGamma, ProductLog) + LogGamma, \log@@, ({\EulerGamma@{-}}), () + LogIntegral, \LogInt, (@{-}), () + LucasL, \LucasL, ({-}, {-}@{-}), () + Max, \max, ((-,-), (-,-,-)), () + Min, \min, ((-,-), (-,-,-)), () + Mod, , (({-}\bmod{-})), () + ParabolicCylinderD, \WhitD, ({-}@{-}), () + Pochhammer, \pochhammer, ({-}{-}), (QPochhammer) + PolyLog, \Polylogarithm, ({-}@{-}, S{-}{-}@{-}), () + ProductLog, \LambertW, (@{-}), () + QHypergeometricPFQ, \qHyperrphis, ({-}{-}@@--{-}{-}), () + RamanujanTauTheta, \RamanujanTauTheta, (@{-}), () + Re, \realpart, ({-}), (Regularized, Real) + RiemannSiegelTheta, \RiemannSiegelTheta, (@{-}), () + Sec, \sec, (@{-}), (ArcSec, Sech) + Sech, \sech, (@{-}), (ArcSech) + Sinc, \sinc, (@{-}), () + Sign, \sign, (@{-}), () + Sin, \sin, (@{-}), (ArcSin, Sinh, SinIntegral, Sinc) + Sinh, \sinh, (@{-}), (ArcSinh, SinhIntegral) + SinhIntegral, \SinhInt, (@{-}), () + SinIntegral, \SinInt, (@{-}), () + SphericalBesselJ, \SphBesselJ, ({-}@{-}), () + SphericalBesselY, \SphBesselY, ({-}@{-}), () + SphericalHankelH1, \SphHankelHi, ({-}@{-}), () + SphericalHankelH2, \SphHankelHii, ({-}@{-}), () + Sqrt, \sqrt, ({-}), () + StieltjesGamma, \StieltjesConstants, ({-}), () + StirlingS1, \StirlingS, (@{-}{-}), () + StruveH, \StruveH, ({-}@{-}), () + StruveL, \StruveL, ({-}@{-}), () + Subscript, \text, ({-}_{-}), () + Tan, \tan, (@{-}), (ArcTan, Tanh) + Tanh, \tanh, (@{-}), (ArcTanh) + UnitStep, \HeavisideH, (@{-}), () + WhittakerM, \WhitM, ({-}{-}@{-}), () + WhittakerW, \WhitW, ({-}{-}@{-}), () + Zeta, \RiemannZeta, (@{-}, @{-,-}), () \ No newline at end of file diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py new file mode 100644 index 0000000..14df64b --- /dev/null +++ b/eCF/src/MathematicaToLaTeX.py @@ -0,0 +1,845 @@ +""" + + Started by Divya Gandla, Version Without Regex by Kevin Chen + DRMF Project: Converting Mathematica to LaTeX + + http://www.wolframfoundation.org/programs/eCF_Identities.pdf + +""" + +__author__ = 'Kevin Chen' +__status__ = 'Development' + + +symbols = { + 'Alpha': 'alpha', 'Beta': 'beta', 'Gamma': 'gamma', 'Delta': 'delta', + 'Epsilon': 'epsilon', 'Zeta': 'zeta', 'Eta': 'eta', 'Theta': 'theta', + 'Iota': 'iota', 'Kappa': 'kappa', 'Lambda': 'lambda', 'Mu': 'mu', + 'Nu': 'nu', 'Xi': 'xi', 'Omicron': 'o', 'Pi': 'pi', 'Rho': 'rho', + 'Sigma': 'sigma', 'Tau': 'tau', 'Upsilon': 'upsilon', 'Phi': 'phi', + 'Chi': 'chi', 'Psi': 'phi', 'Omega': 'omega', + + 'CapitalAlpha': ' A', 'CapitalBeta': ' B', 'CapitalGamma': 'Gamma', + 'CapitalDelta': 'Delta', 'CapitalEpsilon': 'E', 'CapitalZeta': ' Z', + 'CapitalEta': ' H', 'CapitalTheta': 'Theta', 'CapitalIota': ' I', + 'CapitalKappa': 'K', 'CapitalLambda': 'Lambda', 'CapitalMu': ' M', + 'CapitalNu': ' N', 'CapitalXi': 'Xi', 'CapitalOmicron': 'O', + 'CapitalPi': 'Pi', 'CapitalRho': ' P', 'CapitalSigma': 'Sigma', + 'CapitalTau': ' T', 'CapitalUpsilon': ' Y', 'CapitalPhi': 'Phi', + 'CapitalChi': ' X', 'CapitalPsi': 'Psi', 'CapitalOmega': 'Omega', + + 'CurlyEpsilon': 'varepsilon', 'CurlyTheta': 'vartheta', + 'CurlyKappa': 'varkappa', 'CurlyPi': 'varpi', 'CurlyRho': 'varrho', + 'FinalSigma': 'varsigma', 'CurlyPhi': 'varphi', + 'CurlyCapitalUpsilon': 'varUpsilon', + + 'Aleph': 'aleph', 'Bet': 'beth', 'Gimel': 'gimel', 'Dalet': 'daleth', + + 'Infinity': 'infty'} + + +def find_surrounding(line, function, ex=(), start=0): + """finds the indices of the beginning and end of a function; this is the + main function that powers the converter. + """ + positions = [0, 0] + line = line[start:] + positions[0] = line.find(function) + + if ex != '' and len(ex) >= 1: + for e in ex: + if (line.find(e) != -1 and + line.find(e) <= positions[0] and + line.find(e) + len(e) >= positions[0] + len(function)): + + return [line.find(e) + len(e) + start, + line.find(e) + len(e) + start] + + count = 0 + + for j in range(positions[0] + len(function), len(line) + 1): + if j == len(line) and count == 0: + positions[1] = positions[0] + break + + if line[j] in list('([{'): + count += 1 + if line[j] in list(')]}'): + count -= 1 + if count == 0: + if j == positions[0] + len(function): + positions[1] = positions[0] + else: + positions[1] = j + 1 + break + + return positions[0] + start, positions[1] + start + + +def arg_split(line, sep): + """Does the same thing as 'split', but does not split when the separator + is inside parentheses, brackets, or braces. Useful for nested statements. + """ + l = list('([{') + r = list(')]}') + args = [] + count = i = 0 + end = len(line) + 1 + line = line + sep + + while i != end: + if i == end: + args.append(line) + break + + if line[i] in l: + count += 1 + if line[i] in r: + count -= 1 + if count == 0 and line[i] == sep: + args.append(line[:i]) + end -= i + 1 + line = line[i + 1:] + i = 0 + else: + i += 1 + + return args + + +def master_function(line, params): + """A master function, reads in the conversion templates from the + 'functions' file and performs the conversion. + """ + m, l, sep, ex = params[:5] + sep = [i.split('-') for i in sep] + + for _ in range(0, line.count(m)): + try: + pos + except NameError: + pos = find_surrounding(line, m, ex=ex) + else: + pos = find_surrounding(line, m, ex=ex, + start=pos[0] + (0, len(l) + 1) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + len(m) + 1:pos[1] - 1], ',') + + # exceptions: + if m == 'GegenbauerC': + args[0], args[1] = args[1], args[0] + if m == 'HarmonicNumber' and len(args) == 2: + args[0], args[1] = args[1], args[0] + if m == 'LaguerreL' and len(args) == 3: + args[0], args[1] = args[1], args[0] + if m == 'HypergeometricPFQ' or m == 'QHypergeometricPFQ': + if args[1] == '{}': + args.insert(0, 0) + else: + args.insert(0, len(arg_split(args[1][1:-1], ','))) + if args[1] == '{}': + args.insert(0, 0) + else: + args.insert(0, len(arg_split(args[1][1:-1], ','))) + + line = (line[:pos[0]] + l + + '%s'.join(sep[[len(y) for y in sep]. + index(len(args) + 1)]) + line[pos[1]:]) + line %= tuple(args) + + return line + + +def remove_inactive(line): + """Removes the 'Inactive' statement and its surrounding brakets, like in + the beginning of 'ConditionalExpression.' + """ + for _ in range(0, line.count('Inactive')): + pos = find_surrounding(line, 'Inactive') + if pos[0] != pos[1]: + line = line[:pos[0]] + line[pos[0] + 9:pos[1] - 1] + line[pos[1]:] + + return line + + +def remove_conditionalexpression(line): + """Removes 'ConditionalExpression' and its surrounding brakets.""" + for _ in range(0, line.count('ConditionalExpression')): + pos = find_surrounding(line, 'ConditionalExpression') + if pos[0] != pos[1]: + line = line[:pos[0]] + line[pos[0] + 22:pos[1] - 1] + line[pos[1]:] + + return line + + +def remove_symbol(line): + """Removes 'Symbol' and its surrounding brakets.""" + for _ in range(0, line.count('Symbol')): + pos = find_surrounding(line, 'Symbol') + if pos[0] != pos[1]: + line = line[:pos[0]] + line[pos[0] + 7:pos[1] - 1] + line[pos[1]:] + + return line + + +def beta(line): + """Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, + taking into account the variations for the different number of arguments. + """ + for _ in range(0, line.count('Beta')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Beta', + ex=('BetaRegularized', '[Beta]')) + else: + pos = find_surrounding(line, 'Beta', + ex=('BetaRegularized', '[Beta]'), + start=pos[0] + (0, 9) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 5:pos[1] - 1], ',') + if len(args) == 2: + line = (line[:pos[0]] + '\\EulerBeta@{%s}{%s}' + % (args[0], args[1]) + line[pos[1]:]) + else: + line = (line[:pos[0]] + '\\IncBeta{%s}@{%s}{%s}' + % (args[0], args[1], args[2]) + line[pos[1]:]) + + return line + + +def carat(line): + """Converts carats ('^') to ones with braces instead of parentheses. e.g: + 'a ^ (b + c)' would only show the first character 'b' as superscript in + LaTeX, but converting it to + 'a ^ {b + c}' would make it look correct in LaTeX, with 'b + c' as the + superscript. + """ + l = list('([{') + r = list(')]}') + sign = list('*/+-=,') + i = 0 + + while i != len(line): + if line[i] == '^': + count = 0 + for k in range(i + 1, len(line)): + if line[k] in l: + count += 1 + if line[k] in r: + count -= 1 + if count == 0 and line[k] in sign: + count -= 1 + if count < 0: + break + if count == 0 and k == len(line) - 1: + k += 1 + break + k -= 1 + + if line[i + 1] == '(' and line[-1] == ')': + line = line[:i] + '^{' + line[i + 2:k] + '}' + line[k + 1:] + else: + line = line[:i] + '^{' + line[i + 1:k + 1] + '}' + line[k + 1:] + + i += 1 + + return line + + +def cfk(line): + """Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX + macro. + """ + for _ in range(0, line.count('ContinuedFractionK')): + try: + pos + except NameError: + pos = find_surrounding(line, 'ContinuedFractionK', ex='') + else: + pos = find_surrounding(line, 'ContinuedFractionK', ex='', + start=pos[0] + (0, 5) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 19:pos[1] - 1], ',') + moreargs = arg_split(args[-1][1:-1], ',') + if len(args) == 3: + line = (line[:pos[0]] + '\\CFK{%s}{%s}{\\infty}@{%s}{%s}' + % (moreargs[0], moreargs[1], args[0], args[1]) + + line[pos[1]:]) + else: + line = (line[:pos[0]] + '\\CFK{%s}{%s}{\\infty}@{1}{%s}' + % (moreargs[0], moreargs[1], args[0]) + + line[pos[1]:]) + + return line + + +def gamma(line): + """Converts Mathematica's 'Gamma' function to the equivalent LaTeX macro, + taking into account the variations for the different number of arguments. + """ + for _ in range(0, line.count('Gamma')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Gamma', + ex=('PolyGamma', 'CapitalGamma', + 'PolyGamma', 'LogGamma', 'EulerGamma', + 'IncGamma', 'Gamma]', 'GammaQ', + 'GammaRegularized', 'StieltjesGamma')) + else: + pos = find_surrounding(line, 'Gamma', + ex=('PolyGamma', 'CapitalGamma', + 'PolyGamma', 'LogGamma', 'EulerGamma', + 'IncGamma', 'Gamma]', 'GammaQ', + 'GammaRegularized', 'StieltjesGamma'), + start=pos[0] + (0, 11) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 6:pos[1] - 1], ',') + if len(args) == 1: + line = (line[:pos[0]] + '\\EulerGamma@{%s}' + % args[0] + line[pos[1]:]) + elif len(args) == 2: + line = (line[:pos[0]] + '\\IncGamma@{%s}{%s}' + % (args[0], args[1]) + line[pos[1]:]) + else: + line = (line[:pos[0]] + '\\Incgamma@{%s}{%s} - ' + % (args[0], args[1]) + '\\Incgamma@{%s}{%s}' + % (args[0], args[2]) + line[pos[1]:]) + + return line.replace('Incgamma', 'IncGamma') + # needed or the addition of an 'IncGamma' would screw up the rest + + +def integrate(line): + """Converts Mathematica's 'Integrate' function to + the equivalent LaTeX macro. + """ + for _ in range(0, line.count('Integrate')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Integrate', ex='') + else: + pos = find_surrounding(line, 'Integrate', ex='', + start=pos[0] + (0, 10) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') + moreargs = arg_split(args[1][1:-1], ',') + line = (line[:pos[0]] + '\\int_{%s}^{%s}{%s}d{%s}' + % (moreargs[1], moreargs[2], args[0], moreargs[0]) + + line[pos[1]:]) + + return line + + +def legendrep(line): + """Converts Mathematica's 'LegendreP' function to the equivalent LaTeX + macro, taking into account the variations for the different number of + arguments. + """ + for _ in range(0, line.count('LegendreP')): + try: + pos + except NameError: + pos = find_surrounding(line, 'LegendreP', ex='') + else: + pos = find_surrounding(line, 'LegendreP', ex='', + start=pos[0] + (0, 10) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') + if len(args) == 2: + line = (line[:pos[0]] + '\\LegendreP{%s}@{%s}' + % (args[0], args[1]) + line[pos[1]:]) + else: + # len(args) == 4 + if args[2] in ('1', '2'): + line = (line[:pos[0]] + '\\FerrersP[%s]{%s}@{%s}' + % (args[1], args[0], args[3]) + line[pos[1]:]) + else: + # args[2] == 3 + line = (line[:pos[0]] + '\\LegendreP[%s]{%s}@{%s}' + % (args[1], args[0], args[3]) + line[pos[1]:]) + + return line + + +def legendreq(line): + """Converts Mathematica's 'LegendreQ' function to the equivalent LaTeX + macro, taking into account the variations for the different number of + arguments. + """ + for _ in range(0, line.count('LegendreQ')): + try: + pos + except NameError: + pos = find_surrounding(line, 'LegendreQ', ex='') + else: + pos = find_surrounding(line, 'LegendreQ', ex='', + start=pos[0] + (0, 10) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') + if len(args) == 2: + line = (line[:pos[0]] + '\\LegendreQ{%s}@{%s}' + % (args[0], args[1]) + line[pos[1]:]) + else: + # len(args) == 4 + if args[2] in ('1', '2'): + line = (line[:pos[0]] + '\\FerrersQ[%s]{%s}@{%s}' + % (args[1], args[0], args[3]) + line[pos[1]:]) + else: + # args[2] == 3 + line = (line[:pos[0]] + '\\LegendreQ[%s]{%s}@{%s}' + % (args[1], args[0], args[3]) + line[pos[1]:]) + + return line + + +def polyeulergamma(line): + """Converts Mathematica's 'Polygamma' function to the equivalent LaTeX + macro, taking into account the variations for the different number of + arguments. + """ + for _ in range(0, line.count('PolyGamma')): + try: + pos + except NameError: + pos = find_surrounding(line, 'PolyGamma', ex='') + else: + pos = find_surrounding(line, 'PolyGamma', ex='', + start=pos[0] + (0, 10) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') + if len(args) == 2: + line = (line[:pos[0]] + '\\polygamma{%s}@{%s}' + % (args[0], args[1]) + line[pos[1]:]) + else: + line = (line[:pos[0]] + '\\digamma@{%s}' + % args[0] + '}' + line[pos[1]:]) + + return line + + +def product(line): + """Converts Mathematica's product sum function to the equivalent LaTeX + macro. + """ + for _ in range(0, line.count('Product')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Product', ex='') + else: + pos = find_surrounding(line, 'Product', ex='', + start=pos[0] + (0, 6) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 8:pos[1] - 1], ',') + moreargs = arg_split(args[-1][1:-1], ',') + line = (line[:pos[0]] + '\\Prod{%s}{%s}{%s}@{%s}' + % (moreargs[0], moreargs[1], moreargs[2], args[0]) + + line[pos[1]:]) + + return line + + +def qpochhammer(line): + """Converts Mathematica's 'QPochhammer' function to the equivalent LaTeX + macro. + """ + for _ in range(0, line.count('QPochhammer')): + try: + pos + except NameError: + pos = find_surrounding(line, 'QPochhammer', ex='') + else: + pos = find_surrounding(line, 'QPochhammer', ex='', + start=pos[0] + (0, 13) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 12:pos[1] - 1], ',') + + if len(args) == 1: + line = (line[:pos[0]] + '\\qPochhammer{%s}{%s}{\infty}' + % (args[0], args[0]) + line[pos[1]:]) + elif len(args) == 2: + line = (line[:pos[0]] + '\\qPochhammer{%s}{%s}{\infty}' + % (args[0], args[1]) + line[pos[1]:]) + else: # len(args) = 3 + line = (line[:pos[0]] + '\\qPochhammer{%s}{%s}{%s}' + % (args[0], args[1], args[2]) + line[pos[1]:]) + + return line + + +def summation(line): + """Converts Mathematica's summation function to the equivalent LaTeX + macro. + """ + for _ in range(0, line.count('Sum')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Sum', ex='') + else: + pos = find_surrounding(line, 'Sum', ex='', + start=pos[0] + (0, 5) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 4:pos[1] - 1], ',') + moreargs = arg_split(args[-1][1:-1], ',') + line = (line[:pos[0]] + '\\Sum{%s}{%s}{%s}@{%s}' + % (moreargs[0], moreargs[1], moreargs[2], args[0]) + + line[pos[1]:]) + + return line + + +def constraint(line): + """Converts Mathematica's 'Element', 'NotElement', and 'Inequality' + functions to LaTeX formatting using \constraint{}. + """ + sections = arg_split(line, ',') + + if len(sections) == 1: + return line + + constraints = arg_split(sections[-1].replace('&&', '&'), '&') + + for i in range(len(constraints)): + if i == 0: + constraints[i] = ('\n% \\constraint{$' + + constraints[i].replace('&', ' \\land ')) + else: + constraints[i] = ('\n% & $' + + constraints[i].replace('&', ' \\land ')) + if i == len(constraints) - 1: + constraints[i] += '$}' + else: + constraints[i] += '$' + + line = sections[0] + ''.join(constraints) + + mathematica_elements = ('Complexes', 'Wholes', 'Naturals', 'Integers', + 'Irrationals', 'Reals', 'Rational', 'Primes') + latex_elements = ('Complex', 'Whole', 'NatNumber', 'Integer', + 'Irrational', 'Real', 'Rational', 'Prime') + + for _ in range(0, line.count('Element')): + + try: + pos1 + except NameError: + pos1 = find_surrounding(line, 'Element', ex=('NotElement', )) + else: + pos1 = find_surrounding(line, 'Element', ex=('NotElement', ), + start=pos1[0] + (0, 8) + [(1, 0).index(pos1[1] == pos1[0])]) + + if pos1[0] != pos1[1]: + sep = arg_split(line[pos1[0] + 8:pos1[1] - 1], ',') + sep[1] = latex_elements[mathematica_elements.index(sep[1])] + line = (line[:pos1[0]] + sep[0].replace('|', ',') + ' \\in \\' + + sep[1] + line[pos1[1]:]) + + for _ in range(0, line.count('NotElement')): + + try: + pos2 + except NameError: + pos2 = find_surrounding(line, 'NotElement', ex=()) + else: + pos2 = find_surrounding(line, 'NotElement', ex=(), + start=pos2[0] + (0, 11) + [(1, 0).index(pos2[1] == pos2[0])]) + + if pos2[0] != pos2[1]: + sep = arg_split(line[pos2[0] + 11:pos2[1] - 1], ',') + sep[1] = latex_elements[mathematica_elements.index(sep[1])] + line = (line[:pos2[0]] + sep[0].replace('|', ',') + + ' \\notin \\' + sep[1] + line[pos2[1]:]) + + for _ in range(0, line.count('Inequality')): + pos3 = find_surrounding(line, 'Inequality') + line = (line[:pos3[0]] + + ''.join(line[pos3[0] + 11:pos3[1] - 1].split(',')) + + line[pos3[1]:]) + + return line + + +def convert_fraction(line): + """Converts Mathematica fractions, which are only '/', to LaTeX + \frac{}{}-ions. + """ + l = list('([{') + r = list(')]}') + sign = list('*+-=,<>&') + i = 0 + + while i != len(line): + if line[i] == '/': + + # Searching left. + count = 0 + for j in range(i - 1, -1, -1): + if line[j] in r: + count += 1 + if line[j] in l: + count -= 1 + if count == 0 and line[j] in sign: + count -= 1 + if count < 0: + break + if count == 0 and j == 0: + j -= 1 + break + + # Searching right. + count = 0 + for k in range(i + 1, len(line)): + if line[k] in l: + count += 1 + if line[k] in r: + count -= 1 + if count == 0 and line[k] in sign: + count -= 1 + if count < 0: + break + if count == 0 and k == len(line) - 1: + k += 1 + break + k -= 1 + + # Removes extra surrounding parentheses, if there are any. + # This won't work if you're doing "( )( )/( )( )", it will + # incorrectly change it to " )( / )( ", but there are no cases of + # this happening yet, so I have not gone to fixing this yet. + if (line[j + 1] == '(' and line[i - 1] == ')' and + line[i + 1] == '(' and line[k] == ')'): + # ()/() + line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + + line[i + 2:k] + '}' + line[k + 1:]) + elif line[j + 1] == '(' and line[i - 1] == ')': + # ()/-- + line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + + line[i + 1:k + 1] + '}' + line[k + 1:]) + elif line[i + 1] == '(' and line[k] == ')': + # --/() + line = (line[:j + 1] + '\\frac{' + line[j + 1:i] + '}{' + + line[i + 2:k] + '}' + line[k + 1:]) + else: + # --/-- + line = (line[:j + 1] + '\\frac{' + line[j + 1:i] + '}{' + + line[i + 1:k + 1] + '}' + line[k + 1:]) + + i += 1 + + return line + + +def piecewise(line): + """Converts Mathematica's piecewise function to LaTeX, using 'cases'.""" + for _ in range(0, line.count('Piecewise')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Piecewise', ex='') + else: + pos = find_surrounding(line, 'Piecewise', ex='', + start=pos[0] + (0, 15) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') + + piece = ' \\\\ '.join([' & '.join(arg_split(i[1:-1], ',')) + for i in arg_split(args[0][1:-1], ',')]) + + if len(args) == 1: + piece += ' \\\\ 0 & \\text{True}' + else: + piece += ' \\\\ ' + args[1] + ' & \\text{True}' + + line = (line[:pos[0]] + '{\\begin{cases} ' + piece + + ' \\end{cases}}' + line[pos[1]:]) + + return line + + +def replace_operators(line): + """Replaces basic operators.""" + line = line.replace('==', '=') + line = line.replace('||', ' \\lor ') + line = line.replace('>=', ' \\geq ') + line = line.replace('<=', ' \\leq ') + line = line.replace('LessEqual', ' \\leq ') + line = line.replace('Less', '<') + line = line.replace('>', ' > ') + line = line.replace('<', ' < ') + line = line.replace('=', ' = ') + line = line.replace('^', ' ^ ') + line = line.replace('*', ' ') + line = line.replace('+', ' + ') + line = line.replace('-', ' - ') + line = line.replace(',', ', ') + + if '%' in line: + parts = (line[:line.index('%')], line[line.index('%'):]) + line = parts[0] + line = line.replace('(', '\\left( ') + line = line.replace(')', ' \\right)') + line = line.replace('&', ' \\land ') + line = line.replace(' ', ' ') + line += parts[1] + + line = line.replace('"a"', 'a') + line = line.replace('Catalan', '\\CatalansConstant') + line = line.replace('GoldenRatio', '\\GoldenRatio') + line = line.replace('Pi', '\\pi') + line = line.replace('CalculateData`Private`nu', + '\\text{CalculateData`Private`nu}') + + return line + + +def replace_vars(line): + """Replaces the easy to convert variables in Mathematica to + its equivalent LaTeX code in the dictionary 'symbols'. + """ + for word in symbols: + if symbols[word][0] == ' ': + line = line.replace('\\[' + word + ']', symbols[word][1:]) + elif word == 'Infinity': + line = line.replace('Infinity', r'\infty') + else: + line = line.replace('[' + word + ']', symbols[word]) + + return line + + +def main(): + """Opens Mathematica file with identities and puts converted lines into + newIdentities.tex. + """ + test = True + + with open('data/newIdentities.tex', 'w') as latex: + with open('data/Identities' + ['', 'Test'][test] + '.m', 'r') \ + as mathematica: + + latex.write('\n\\documentclass{article}\n\n' + '\\usepackage{amsmath}\n' + '\\usepackage{amsthm}\n' + '\\usepackage{amssymb}\n' + '\\usepackage{amsfonts}\n' + '\\usepackage{breqn}\n' + '\\usepackage{DLMFmath}\n' + '\\usepackage{DRMFfcns}\n' + '\\usepackage{DLMFfcns}\n' + '\\usepackage{graphicx}\n' + '\\usepackage[paperwidth=20in, paperheight=20in, ' + 'margin=0.5in]{geometry}\n\n' + '\\begin{document}\n\n\n') + + for line in mathematica: + line = line.replace('\n', '') + + if '(*' in line and '*)' in line: + + if test: + line = line.replace('(*', '%').replace('*)', '%') + else: + line = ('\\begin{equation*} \\tag{' + + line[4:-3].replace('"', '') + '}') + + latex.write(line + '\n') + + else: + + line = line.replace(' ', '') + + line = remove_inactive(line) + line = remove_conditionalexpression(line) + line = remove_symbol(line) + + line = line.replace('EulerGamma', '\\EulerConstant') + + for i in FUNCTION_CONVERSIONS: + line = master_function(line, i) + + line = beta(line) + line = carat(line) + line = cfk(line) + line = gamma(line) + line = integrate(line) + line = legendrep(line) + line = legendreq(line) + line = polyeulergamma(line) + line = product(line) + line = qpochhammer(line) + line = summation(line) + line = convert_fraction(line) + line = constraint(line) + line = piecewise(line) + line = replace_operators(line) + line = replace_vars(line) + + # create macros for: + # Sinc + # RamanujanTauTheta + # RiemannSiegelTheta + + print(line) + + if test and line != '': + line = '\\begin{equation*}\n' + line + + if line != '': + line += '\n\\end{equation*}' + + latex.write(line + '\n') + + latex.write('\n\n\\end{document}\n') + + +with open('data/functions') as functions: + FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line + in functions.read().split('\n') + if (line != '' and '#' not in line)) + +for index in range(len(FUNCTION_CONVERSIONS)): + FUNCTION_CONVERSIONS[index][2] = \ + tuple(arg_split(FUNCTION_CONVERSIONS[index][2][1:-1], ',')) + + if FUNCTION_CONVERSIONS[index][3] == '()': + FUNCTION_CONVERSIONS[index][3] = '' + else: + FUNCTION_CONVERSIONS[index][3] = \ + tuple(FUNCTION_CONVERSIONS[index][3][1:-1].split(',')) + + FUNCTION_CONVERSIONS[index] = tuple(FUNCTION_CONVERSIONS[index]) + +FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) + +if __name__ == '__main__': + main() diff --git a/eCF/src/pythonTest.py b/eCF/src/pythonTest.py new file mode 100644 index 0000000..e69de29 From 96ad76d48e5d099b9049be4f1c787473b414ef04 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 5 Aug 2016 10:53:56 -0400 Subject: [PATCH 197/402] Add test files --- eCF/data/IdentitiesTest.m | 8 ----- eCF/src/pythonTest.py | 0 eCF/test/test_arg_split.py | 30 +++++++++++++++++++ eCF/test/test_carat.py | 7 +++++ eCF/test/test_constraint.py | 7 +++++ eCF/test/test_convert_fraction.py | 7 +++++ eCF/test/test_find_surrounding.py | 7 +++++ eCF/test/test_master_function.py | 7 +++++ eCF/test/test_piecewise.py | 7 +++++ eCF/test/test_removal_functions.py | 9 ++++++ eCF/test/test_replace_operators.py | 7 +++++ eCF/test/test_replace_vars.py | 7 +++++ .../test_single_macro_conversion_functions.py | 16 ++++++++++ 13 files changed, 111 insertions(+), 8 deletions(-) delete mode 100644 eCF/data/IdentitiesTest.m delete mode 100644 eCF/src/pythonTest.py create mode 100644 eCF/test/test_arg_split.py create mode 100644 eCF/test/test_carat.py create mode 100644 eCF/test/test_constraint.py create mode 100644 eCF/test/test_convert_fraction.py create mode 100644 eCF/test/test_find_surrounding.py create mode 100644 eCF/test/test_master_function.py create mode 100644 eCF/test/test_piecewise.py create mode 100644 eCF/test/test_removal_functions.py create mode 100644 eCF/test/test_replace_operators.py create mode 100644 eCF/test/test_replace_vars.py create mode 100644 eCF/test/test_single_macro_conversion_functions.py diff --git a/eCF/data/IdentitiesTest.m b/eCF/data/IdentitiesTest.m deleted file mode 100644 index 64e8ed4..0000000 --- a/eCF/data/IdentitiesTest.m +++ /dev/null @@ -1,8 +0,0 @@ -(* {"RamanujanTauTheta", 1}*) -ConditionalExpression[RamanujanTauTheta[z] == (z*(137/60 - EulerGamma - Log[2*Pi]))/(1 + Inactive[ContinuedFractionK][((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), 1 - ((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), {k, 1, Infinity}]), Element[z, Complexes] && Abs[z] < 1] - -(* {"Sinc", 1}*) -ConditionalExpression[Sinc[z] == (1 + Inactive[ContinuedFractionK][z^2/(2*k*(1 + 2*k)), 1 - z^2/(2*k*(1 + 2*k)), {k, 1, Infinity}])^(-1), Element[z, Complexes]] - -(* {"RiemannSiegelTheta", 1}*) -ConditionalExpression[RiemannSiegelTheta[z] == -(z*(Log[Pi] - PolyGamma[0, 1/4]))/2 - (z^3*PolyGamma[2, 1/4])/(48*(1 + Inactive[ContinuedFractionK][(z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), 1 - (z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), {k, 1, Infinity}])), Element[z, Complexes] && Abs[z] < 1/2] \ No newline at end of file diff --git a/eCF/src/pythonTest.py b/eCF/src/pythonTest.py deleted file mode 100644 index e69de29..0000000 diff --git a/eCF/test/test_arg_split.py b/eCF/test/test_arg_split.py new file mode 100644 index 0000000..410c58d --- /dev/null +++ b/eCF/test/test_arg_split.py @@ -0,0 +1,30 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import arg_split + + +class TestArgumentSplit(TestCase): + + def test_normal(self): + self.assertEqual(arg_split(','.join(list('abcdef')), ','), ','.join(list('abcdef')).split(',')) + + def test_empty(self): + self.assertEqual(arg_split(',,,,,,', ','), ',,,,,,'.split(',')) + + def test_some_empty(self): + before = 'a,,b,,c,,d' + after = ['a', '', 'b', '', 'c', '', 'd'] + self.assertEqual(arg_split(before, ','), after) + + def test_parens(self): + before = '(a,b),[c,d],{e,(f,g)}' + after = ['(a,b)', '[c,d]', '{e,(f,g)}'] + self.assertEqual(arg_split(before, ','), after) + + def test_combined(self): + before = 'a,(b,c),,[d,e],,,{fg,hi}' + after = ['a', '(b,c)', '', '[d,e]', '', '', '{fg,hi}'] + self.assertEqual(arg_split(before, ','), after) diff --git a/eCF/test/test_carat.py b/eCF/test/test_carat.py new file mode 100644 index 0000000..1cdc8d8 --- /dev/null +++ b/eCF/test/test_carat.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import carat + diff --git a/eCF/test/test_constraint.py b/eCF/test/test_constraint.py new file mode 100644 index 0000000..34330f8 --- /dev/null +++ b/eCF/test/test_constraint.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import constraint + diff --git a/eCF/test/test_convert_fraction.py b/eCF/test/test_convert_fraction.py new file mode 100644 index 0000000..1d6be0f --- /dev/null +++ b/eCF/test/test_convert_fraction.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import convert_fraction + diff --git a/eCF/test/test_find_surrounding.py b/eCF/test/test_find_surrounding.py new file mode 100644 index 0000000..fd545d0 --- /dev/null +++ b/eCF/test/test_find_surrounding.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import find_surrounding + diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py new file mode 100644 index 0000000..427bd1d --- /dev/null +++ b/eCF/test/test_master_function.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import master_function + diff --git a/eCF/test/test_piecewise.py b/eCF/test/test_piecewise.py new file mode 100644 index 0000000..5775dde --- /dev/null +++ b/eCF/test/test_piecewise.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import piecewise + diff --git a/eCF/test/test_removal_functions.py b/eCF/test/test_removal_functions.py new file mode 100644 index 0000000..3945a15 --- /dev/null +++ b/eCF/test/test_removal_functions.py @@ -0,0 +1,9 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import remove_inactive +from MathematicaToLaTeX import remove_conditionalexpression +from MathematicaToLaTeX import remove_symbol + diff --git a/eCF/test/test_replace_operators.py b/eCF/test/test_replace_operators.py new file mode 100644 index 0000000..b07ce81 --- /dev/null +++ b/eCF/test/test_replace_operators.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import replace_operators + diff --git a/eCF/test/test_replace_vars.py b/eCF/test/test_replace_vars.py new file mode 100644 index 0000000..041adc4 --- /dev/null +++ b/eCF/test/test_replace_vars.py @@ -0,0 +1,7 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import replace_vars + diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py new file mode 100644 index 0000000..722ba2e --- /dev/null +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -0,0 +1,16 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import beta +from MathematicaToLaTeX import cfk +from MathematicaToLaTeX import gamma +from MathematicaToLaTeX import integrate +from MathematicaToLaTeX import legendrep +from MathematicaToLaTeX import legendreq +from MathematicaToLaTeX import polyeulergamma +from MathematicaToLaTeX import product +from MathematicaToLaTeX import qpochhammer +from MathematicaToLaTeX import summation + From b0748bfe848e87a2fe197aecfd4f1d8627488f56 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 5 Aug 2016 11:13:53 -0400 Subject: [PATCH 198/402] Fix path to files for ability to run from any directory --- .gitignore | 11 ++++++++++ eCF/.gitignore | 6 +++--- eCF/data/IdentitiesTest.m | 8 +++++++ eCF/src/MathematicaToLaTeX.py | 40 +++++++++++++++++++++++------------ eCF/src/pythonTest.py | 0 5 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 eCF/data/IdentitiesTest.m create mode 100644 eCF/src/pythonTest.py diff --git a/.gitignore b/.gitignore index 5c0f18c..1d43b2a 100644 --- a/.gitignore +++ b/.gitignore @@ -251,3 +251,14 @@ sympy-plots-for-*.tex/ *.bak *.sav +# ecf project +*.sty +Identities.* +newIdentities.* +*.csv +macros.txt +test.* +*.log +*.aux +ZE.3.* + diff --git a/eCF/.gitignore b/eCF/.gitignore index 975836e..13bc7e0 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -1,8 +1,8 @@ Divya/ other/ -test -Identities.* -newIdentities.* +src/test.txt +data/Identities.* +data/newIdentities.* IdentitiesTest.txt README_Glossary x.log diff --git a/eCF/data/IdentitiesTest.m b/eCF/data/IdentitiesTest.m new file mode 100644 index 0000000..64e8ed4 --- /dev/null +++ b/eCF/data/IdentitiesTest.m @@ -0,0 +1,8 @@ +(* {"RamanujanTauTheta", 1}*) +ConditionalExpression[RamanujanTauTheta[z] == (z*(137/60 - EulerGamma - Log[2*Pi]))/(1 + Inactive[ContinuedFractionK][((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), 1 - ((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), {k, 1, Infinity}]), Element[z, Complexes] && Abs[z] < 1] + +(* {"Sinc", 1}*) +ConditionalExpression[Sinc[z] == (1 + Inactive[ContinuedFractionK][z^2/(2*k*(1 + 2*k)), 1 - z^2/(2*k*(1 + 2*k)), {k, 1, Infinity}])^(-1), Element[z, Complexes]] + +(* {"RiemannSiegelTheta", 1}*) +ConditionalExpression[RiemannSiegelTheta[z] == -(z*(Log[Pi] - PolyGamma[0, 1/4]))/2 - (z^3*PolyGamma[2, 1/4])/(48*(1 + Inactive[ContinuedFractionK][(z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), 1 - (z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), {k, 1, Infinity}])), Element[z, Complexes] && Abs[z] < 1/2] \ No newline at end of file diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 14df64b..f87b17d 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -9,7 +9,9 @@ __author__ = 'Kevin Chen' __status__ = 'Development' +__credits__ = ["Divya Gandla", "Kevin Chen"] +import os symbols = { 'Alpha': 'alpha', 'Beta': 'beta', 'Gamma': 'gamma', 'Delta': 'delta', @@ -49,9 +51,9 @@ def find_surrounding(line, function, ex=(), start=0): if ex != '' and len(ex) >= 1: for e in ex: if (line.find(e) != -1 and - line.find(e) <= positions[0] and - line.find(e) + len(e) >= positions[0] + len(function)): - + line.find(e) <= positions[0] and + line.find(e) + len(e) >= positions[0] + len( + function)): return [line.find(e) + len(e) + start, line.find(e) + len(e) + start] @@ -213,7 +215,8 @@ def beta(line): def carat(line): - """Converts carats ('^') to ones with braces instead of parentheses. e.g: + """ + Converts carats ('^') to ones with braces instead of parentheses. e.g: 'a ^ (b + c)' would only show the first character 'b' as superscript in LaTeX, but converting it to 'a ^ {b + c}' would make it look correct in LaTeX, with 'b + c' as the @@ -252,7 +255,8 @@ def carat(line): def cfk(line): - """Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX + """ + Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX macro. """ for _ in range(0, line.count('ContinuedFractionK')): @@ -281,7 +285,8 @@ def cfk(line): def gamma(line): - """Converts Mathematica's 'Gamma' function to the equivalent LaTeX macro, + """ + Converts Mathematica's 'Gamma' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. """ for _ in range(0, line.count('Gamma')): @@ -320,7 +325,8 @@ def gamma(line): def integrate(line): - """Converts Mathematica's 'Integrate' function to + """ + Converts Mathematica's 'Integrate' function to the equivalent LaTeX macro. """ for _ in range(0, line.count('Integrate')): @@ -549,9 +555,9 @@ def constraint(line): try: pos1 except NameError: - pos1 = find_surrounding(line, 'Element', ex=('NotElement', )) + pos1 = find_surrounding(line, 'Element', ex=('NotElement',)) else: - pos1 = find_surrounding(line, 'Element', ex=('NotElement', ), + pos1 = find_surrounding(line, 'Element', ex=('NotElement',), start=pos1[0] + (0, 8) [(1, 0).index(pos1[1] == pos1[0])]) @@ -635,7 +641,7 @@ def convert_fraction(line): # incorrectly change it to " )( / )( ", but there are no cases of # this happening yet, so I have not gone to fixing this yet. if (line[j + 1] == '(' and line[i - 1] == ')' and - line[i + 1] == '(' and line[k] == ')'): + line[i + 1] == '(' and line[k] == ')'): # ()/() line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + line[i + 2:k] + '}' + line[k + 1:]) @@ -743,9 +749,14 @@ def main(): """ test = True - with open('data/newIdentities.tex', 'w') as latex: - with open('data/Identities' + ['', 'Test'][test] + '.m', 'r') \ - as mathematica: + with open(os.path.dirname(os.path.realpath(__file__)) + + '/../data/newIdentities.tex', 'w') as latex: + if test: + to_open = 'IdentitiesTest.m' + else: + to_open = 'Identities.m' + with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/' + + to_open, 'r') as mathematica: latex.write('\n\\documentclass{article}\n\n' '\\usepackage{amsmath}\n' @@ -822,7 +833,8 @@ def main(): latex.write('\n\n\\end{document}\n') -with open('data/functions') as functions: +with open(os.path.dirname(os.path.realpath(__file__)) + \ + '/../data/functions') as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line in functions.read().split('\n') if (line != '' and '#' not in line)) diff --git a/eCF/src/pythonTest.py b/eCF/src/pythonTest.py new file mode 100644 index 0000000..e69de29 From 5820fbfc0b5c215ffea44d1714fa2c53c47fca15 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 5 Aug 2016 12:26:45 -0400 Subject: [PATCH 199/402] Clean up more code --- main_page/Categories.txt | 10 - main_page/categories.txt | 10 + main_page/main_page.mmd | 10 +- main_page/src/main.py | 27 +- main_page/src/mod_main.py | 194 ++++++------- main_page/src/symbols_list.py | 496 +++++++++++++++++----------------- 6 files changed, 372 insertions(+), 375 deletions(-) delete mode 100644 main_page/Categories.txt create mode 100644 main_page/categories.txt diff --git a/main_page/Categories.txt b/main_page/Categories.txt deleted file mode 100644 index 2d2fc4a..0000000 --- a/main_page/Categories.txt +++ /dev/null @@ -1,10 +0,0 @@ - F - real or complex valued functions. - P - polynomials. - I - integer valued functions. - O - operators. - SM - semantic macros. - Q - quantifiers, set operators, and symbols. - SN - sets of numbers. - C - constants. - L - linear algebra. - D - distributions. diff --git a/main_page/categories.txt b/main_page/categories.txt new file mode 100644 index 0000000..eee3923 --- /dev/null +++ b/main_page/categories.txt @@ -0,0 +1,10 @@ +F - real or complex valued functions. +P - polynomials. +I - integer valued functions. +O - operators. +SM - semantic macros. +Q - quantifiers, set operators, and symbols. +SN - sets of numbers. +C - constants. +L - linear algebra. +D - distributions. diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd index f271213..65d8685 100644 --- a/main_page/main_page.mmd +++ b/main_page/main_page.mmd @@ -442,7 +442,7 @@ drmf_bof In the DRMF, the LaTeX semantic macro '''\AntiDer''' represents the anti-derivative notation, which is defined as follows. -This macro is in the category of polynomials. +This macro is in the category of semantic macros. In math mode, this macro can be called in the following ways: @@ -925,7 +925,7 @@ drmf_bof The LaTeX DLMF and DRMF macro '''\f''' represents Function. -This macro is in the category of polynomials. +This macro is in the category of semantic macros. In math mode, this macro can be called in the following ways: @@ -1060,7 +1060,7 @@ drmf_bof In the DRMF, the LaTeX semantic macro '''\Int''' represents the definite integral notation, which is defined as follows. -This macro is in the category of polynomials. +This macro is in the category of semantic macros. In math mode, this macro can be called in the following ways: @@ -1200,7 +1200,7 @@ drmf_bof For the sake of compactness, we use the abbreviated '''\lrselection''' notation in a number of formulas. -This macro is in the category of polynomials. +This macro is in the category of semantic macros. In math mode, this macro can be called in the following way: @@ -3208,7 +3208,7 @@ drmf_bof The LaTeX DLMF and DRMF macro '''\poly''' represents the semantic polynomial. -This macro is in the category of polynomials. +This macro is in the category of semantic macros. In math mode, this macro can be called in the following ways: diff --git a/main_page/src/main.py b/main_page/src/main.py index 5524ffe..9c2e117 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -3,16 +3,8 @@ __credits__ = ["Joon Bang", "Azeem Mohammed"] import time -import symbols_list import mod_main - -""" -Order: -- List -- Symbols List -- Headers -- List Ways -""" +import symbols_list def generate_html(tag_name, options, text, spacing=True): @@ -87,6 +79,14 @@ def update_headers(text, definitions): return output +def create_backup(): + with open("main_page.mmd") as current: + local_time = time.asctime(time.localtime(time.time())).split() + local_time = "_" + '_'.join(local_time[1:3] + local_time[3:][::-1]) + with open("backups/main_page" + local_time + ".mmd.bak", "w") as backup: + backup.write(current.read()) + + def main(): if raw_input("Update main page? (y/n): ") == "n": return @@ -95,17 +95,14 @@ def main(): with open("main_page.mmd") as main_page: text = main_page.read() - # create backup - local_time = time.asctime(time.localtime(time.time())).split() - local_time = "_" + '_'.join(local_time[1:3] + local_time[3:][::-1]) - with open("backups/main_page" + local_time + ".mmd.bak", "w") as backup: - backup.write(text) - text, definitions = update_macro_list(text) text = symbols_list.main(text) text = update_headers(text, definitions) text = mod_main.main(text) + # only create backup if program did not crash + create_backup() + with open("main_page.mmd", "w") as main_page: main_page.write(text) diff --git a/main_page/src/mod_main.py b/main_page/src/mod_main.py index e7090f7..7d6d40c 100644 --- a/main_page/src/mod_main.py +++ b/main_page/src/mod_main.py @@ -4,112 +4,112 @@ import csv +GLOSSARY_LOCATION = "new.Glossary.csv" -def atSort(l): - return (sorted(l, key=lambda x: x.count("@"))) - -def remOpt(p): +def remove_optional_params(string): parse = True - ret = "" - for x in p: - if parse: - if x == "[": - parse = False - else: - ret += x + text = "" + for ch in string: + if parse and ch == "[": + parse = False + elif parse: + text += ch else: - if x == "]": + if ch == "]": parse = True - return ret - - -def findAllPos(g): - key = g[3] - orig = g[0] - r = key[:key.find("|")] - key = key[key.find("|") + 1:] - keys = key.split(":") - ret = [] - for x in keys: - if x == "F" or x == "FO" or x == "O" or x == "O1": - if orig.find("@") != -1: - ret.append(orig[0:orig.find("@")]) - if x == "O": - ret.append(orig) - else: - ret.append(orig) - if x == "FnO": # remove optional parameters - if orig.find("@") != -1: - ret.append(remOpt(orig[0:orig.find("@")])) - else: - ret.append(remOpt(orig)) - if x == "P" or x == "PO": - ret.append(orig.replace("@@", "@")) - if x == "PnO": # remove optional parameters - ret.append(remOpt(orig.replace("@@", "@"))) - if x == "nP" or x == "nPO" or x == "PS" or x == "O2": - ret.append(orig) - if x == "nPnO": # remove optional paramters - ret.append(remOpt(orig)) - if "fo" in x: - ret.append(orig.replace("@@@", "@" * int(x[2]))) - return atSort(ret), r + + return text + + +def find_all_positions(entry): + macro = entry[0] + category = entry[3].split("|", 1)[0] + keys = entry[3].split("|", 1)[1].split(":") + result = [] + + for key in keys: + if key in ["F", "FO", "O", "O1"]: + result.append(macro.split("@", 1)[0]) + if macro.count("@") > 0 and key == "O": + result.append(macro) + + if key == "FnO": # remove optional parameters + string = macro + if macro.count("@") > 0: + string = string[:string.find("@")] + result.append(remove_optional_params(string)) + + if key in ["P", "PO", "PnO"]: + result.append(macro.replace("@@", "@")) + + if key == "PnO": # remove optional parameters + result[-1] = remove_optional_params(result[-1]) + + if key in ["nP", "nPO", "PS", "O2"]: + result.append(macro) + + if key == "nPnO": # remove optional paramters + result.append(remove_optional_params(macro)) + + if "fo" in key: + result.append(macro.replace("@@@", "@" * int(key[2]))) + + return sorted(result, key=lambda x: x.count("@")), category + + +def macro_match(macro, entry): + """Determines whether the entry refers to the macro.""" + return macro in entry and (len(macro) == len(entry) or not entry[len(macro)].isalpha()) def main(lines): - lines = lines.replace("The LaTeX DLMF macro \'\'\'\\", "The LaTeX DLMF and DRMF macro \'\'\'\\") - flag = True - gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') - toWrite = "" + lines = lines.replace("The LaTeX DLMF macro '''\\", "The LaTeX DLMF and DRMF macro '''\\") + to_write = "" i = 0 - categories = open("Categories.txt", "r") - cats = categories.readlines() - categories.close() - for x in range(0, len(cats)): - cats[x] = cats[x].strip() - while flag: - n = lines.find("\'\'\'Definition:", i) + with open("categories.txt") as cats: + categories = cats.readlines() + + while True: + n = lines.find("'''Definition:", i) if n == -1: - flag = False + break + + macro_name = lines[n + len("'''Definition:"):lines.find("'''", n + len("'''Definition:"))] + r = lines.find("'''\\", n) + q = lines.find("'''", r + len("'''\\")) + if lines[r:q].find("{") != -1: + lines = lines[0:r] + "'''\\" + macro_name + lines[q:] + + if lines.find("\nThis macro is in the category of", n) < lines.find("'''Definition:", n + len( + "'''Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: + p = lines.find("\nThis macro is in the category of", n) else: - macroN = lines[n + len("\'\'\'Definition:"):lines.find("\'\'\'", n + len("\'\'\'Definition:"))] - r = lines.find("\'\'\'\\", n) - q = lines.find("\'\'\'", r + len("\'\'\'\\")) - if lines[r:q].find("{") != -1: - lines = lines[0:r] + "\'\'\'\\" + macroN + lines[q:] - - if lines.find("\nThis macro is in the category of", n) < lines.find("\'\'\'Definition:", n + len( - "\'\'\'Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: - # print n - p = lines.find("\nThis macro is in the category of", n) - else: - p = lines.find("\n", lines.find(".", n)) - toWrite += lines[i:p] - toWrite = toWrite.rstrip() - toWrite += "\n\n" - count = 0 - listCalls = [] - gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') - for g in gCSV: - if g[0].find("\\" + macroN) == 0 and (len(g[0]) == len(macroN) + 1 - or not g[0][len(macroN) + 1].isalpha()): - q, s = findAllPos(g) - listCalls += q - count += len(q) - plural = 1 # if count>1: plural =1; if count=1: plural=0 - if count == 1: plural = 0 - for t in cats: - if s + " -" in t: - category = "This macro is in the category of" + t[t.find("-") + 2:] - break - new = category + "\n\nIn math mode, this macro can be called in the following way" + "s" * plural + ":\n\n" - for q in range(0, len(listCalls)): - c = listCalls[q] - new += ":\'\'\'" + c + "\'\'\'" + " produces {\\displaystyle " + c + "}
\n" - # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... - toWrite += new + "\n" - i = lines.find("These are defined by", p) - - return toWrite + lines[i:] + p = lines.find(".\n", n) + 1 + to_write += lines[i:p].rstrip() + "\n\n" + + calls = [] + glossary = csv.reader(open(GLOSSARY_LOCATION, 'rb'), delimiter=',', quotechar='\"') + for entry in glossary: + if macro_match("\\" + macro_name, entry[0]): + macro_calls, category = find_all_positions(entry) + calls += macro_calls + + for line in categories: + key, meaning = line.split(" - ") + if key == category: + category_text = "This macro is in the category of " + meaning + break + + text = category_text + "\nIn math mode, this macro can be called in the following way" + "s" * ( + len(calls) > 1) + ":\n\n" + + for call in calls: + text += ":'''" + call + "'''" + " produces {\\displaystyle " + call + "}
\n" + + # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + to_write += text + "\n" + i = lines.find("These are defined by", p) + + return to_write + lines[i:] diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py index 48eef80..61a8266 100644 --- a/main_page/src/symbols_list.py +++ b/main_page/src/symbols_list.py @@ -4,273 +4,273 @@ import csv -def getSym(line): # Gets all symbols on a line for symbols list +GLOSSARY_LOCATION = "new.Glossary.csv" + + +def get_symbols(line): + # (str) -> list + """Gets all symbols on a line.""" line = line.replace("\n", " ") - symList = [] + sym_list = [] if line == "": - return symList + return sym_list + symbol = "" - symFlag = False - argFlag = False - cC = 0 - for i in range(0, len(line)): - c = line[i] - if symFlag: - if c == "{" or c == "[": - cC += 1 - argFlag = True - if c != "}" and c != "]": - if argFlag or c.isalpha(): - symbol += c + sym_flag = False + arg_flag = False + count = 0 + + for i in range(len(line)): + ch = line[i] + if sym_flag: + if ch == "{" or ch == "[": + count += 1 + arg_flag = True + + if ch != "}" and ch != "]": + if arg_flag or ch.isalpha(): + symbol += ch else: - symFlag = False - argFlag = False - symList.append(symbol) - symList += (getSym(symbol)) + sym_flag = False + arg_flag = False + sym_list.append(symbol) + sym_list += (get_symbols(symbol)) symbol = "" else: - cC -= 1 - symbol += c + count -= 1 + symbol += ch if i + 1 == len(line): p = "" else: p = line[i + 1] - if cC == 0 and p != "{" and p != "[" and p != "@": - symFlag = False - symList.append(symbol) - symList += (getSym(symbol)) - argFlag = False + if count == 0 and p != "{" and p != "[" and p != "@": + sym_flag = False + sym_list.append(symbol) + sym_list += (get_symbols(symbol)) + arg_flag = False symbol = "" - elif c == "\\": - symFlag = True - symList.append(symbol) - symList += getSym(symbol) - return (symList) - - -def main(mainLines): - mainLines = mainLines[mainLines.find("drmf_bof"):mainLines.rfind("drmf_eof") + len("drmf_eof\n")] - mainPages = mainLines.split("drmf_eof") - if mainPages[-1].strip() == "": - mainPages = mainPages[0:len(mainPages) - 1] - print len(mainPages) - glossary = open('new.Glossary.csv', 'rb') - gCSV = csv.reader(glossary, delimiter=',', quotechar='\"') - lGlos = glossary.readlines() - wiki = "" + elif ch == "\\": + sym_flag = True + + sym_list.append(symbol) + sym_list += get_symbols(symbol) + return sym_list + + +def main(data): + pages = data[data.find("drmf_bof"):].split("drmf_eof")[:-1] + + print "Pages: " + str(len(pages)) + result = "" - for g in mainPages: - if not "\'\'\'Definition:" in g: - h = g.replace("drmf_eof", "") - h = g.replace("drmf_bof", "") - toWrite = "drmf_bof" + h + "drmf_eof\n" - result += toWrite + for page in pages: + # skip over non-definition pages + if "'''Definition:" not in page: + to_write = page + "drmf_eof\n" + result += to_write + continue + + page = page.replace("drmf_bof", "").strip("\n") + add_spacing = False + sflag2 = False + # remove data (to be regenerated later) + if page.find("== Symbols List ==") != -1: + to_write = page.split("== Symbols List ==")[0] + page = to_write else: - h = g.replace("drmf_eof", "") - h = g.replace("drmf_bof", "") - h = h.strip("\n") - sflag1 = False - sflag2 = False - if h.find("== Symbols List ==") != -1: - toWrite = h[0:h.find("== Symbols List ==")] - h = toWrite + add_spacing = True + if page.find("drmf_foot") == -1: + to_write = page + sflag2 = True else: - sflag1 = True - if h.find("drmf_foot") == -1: - toWrite = h - sflag2 = True + to_write = page.split("
")[0] + page = to_write + + to_write = "drmf_bof\n" + to_write + if add_spacing: + to_write += "\n\n" + + to_write += "== Symbols List ==\n\n" + + symbols = get_symbols((' '.join(page.split("\n")) + " ").replace("\n", " ")) + + new_symbols = [] + + for symbol in symbols: + flag_a = True + flag_b = True + c_n = 0 + c_c = 0 + arg_count = 0 + + for ch in symbol: + if ch.isalpha() and flag_a: + c_n += 1 else: - toWrite = h[0:h.find("
len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - argFlag = True - elif Q[o] == "}" or z == "]": - argFlag = False - listArgs.append(ap) - ap = "" - else: - ap += Q[o] - websiteF = "" - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" - new1 = "" - new2 = "" - pause = False - mathF = True - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += "{\\displaystyle " - else: - new2 += "}" - mathF = not mathF - else: - new2 += p2[k] - p2 = new2 - finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - if not gFlag: - del newSym[s] - - gFlag = True - for y in finSym: - if gFlag: - gFlag = False - toWrite += ("[" + y) + arg_count += 1 + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ + len(symbol)].isalpha()): + checkFlag = True + get = True + preG = S + elif checkFlag: + checkFlag = False + get = True + + if get: + G = preG + + if symbolPar.find("@") != -1: + Q = symbolPar[:symbolPar.find("@")] else: - toWrite += ("
\n[" + y) + Q = symbolPar + + arg_list = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in xrange(len(symbol), len(Q)): + if Q[o] == "}" or ch == "]": + arg_list.append(ap) + ap = "" + elif Q[o] != "{" and ch != "[": + ap += Q[o] + + websiteF = "" + web1 = G[5] + for t in xrange(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + new2 = "" + mathF = True + p2 = G[1] + for k in p2: + if k == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF + else: + new2 += k + p2 = new2 + final_symbols.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + + if not gFlag: + new_symbols.pop(i) + + gFlag = True + for y in final_symbols: + if gFlag: + gFlag = False + to_write += ("[" + y) + else: + to_write += ("
\n[" + y) - toWrite += ("\n
\ndrmf_eof\n\n") - if sflag2: - toWrite += "\n" - result += toWrite + to_write += "\n
\ndrmf_eof\n\n" + if sflag2: + to_write += "\n" + result += to_write - return result \ No newline at end of file + return result From f164bbdb35c661a8307c76fd9abd0fba26cda4e5 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 5 Aug 2016 12:32:54 -0400 Subject: [PATCH 200/402] Fix QuantifiedCode issues --- main_page/src/symbols_list.py | 38 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py index 61a8266..196e22e 100644 --- a/main_page/src/symbols_list.py +++ b/main_page/src/symbols_list.py @@ -20,22 +20,20 @@ def get_symbols(line): arg_flag = False count = 0 - for i in range(len(line)): - ch = line[i] + for i, ch in enumerate(line): if sym_flag: - if ch == "{" or ch == "[": + if ch == ["{", "["]: count += 1 arg_flag = True - if ch != "}" and ch != "]": - if arg_flag or ch.isalpha(): - symbol += ch - else: - sym_flag = False - arg_flag = False - sym_list.append(symbol) - sym_list += (get_symbols(symbol)) - symbol = "" + if ch not in ["}", "]"] and arg_flag or ch.isalpha(): + symbol += ch + elif ch not in ["}", "]"]: + sym_flag = False + arg_flag = False + sym_list.append(symbol) + sym_list += (get_symbols(symbol)) + symbol = "" else: count -= 1 symbol += ch @@ -109,9 +107,9 @@ def main(data): c_n += 1 else: flag_a = False - if ch == "{" or ch == "[": + if ch in ["{", "["]: c_c += 1 - if ch == "}" or ch == "]": + if ch in ["}", "]"]: c_c -= 1 if c_c == 0: arg_count += 1 @@ -127,9 +125,9 @@ def main(data): c_n += 1 else: flag_a = False - if ch == "{" or ch == "[": + if ch in ["{", "["]: c_c += 1 - if ch == "}" or ch == "]": + if ch in ["}", "]"]: c_c -= 1 if c_c == 0: arg_count += 1 @@ -155,9 +153,9 @@ def main(data): parFlag = True elif ch.isalpha(): c_n += 1 - elif ch == "{" or ch == "[": + elif ch in ["{", "["]: c_c += 1 - elif ch == "}" or ch == "]": + elif ch in ["}", "]"]: c_c -= 1 if c_c == 0: if parFlag: @@ -197,9 +195,9 @@ def main(data): elif ch.isalpha(): c_n += 1 else: - if ch == "{" or ch == "[": + if ch in ["{", "["]: c_c += 1 - if ch == "}" or ch == "]": + if ch in ["}", "]"]: c_c -= 1 if c_c == 0: if parFlag: From 0aae79a41b73cf0cbb8eb7518b4371f966b46447 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Mon, 8 Aug 2016 16:12:01 -0400 Subject: [PATCH 201/402] Rewrite symbols_list.py --- main_page/main_page.mmd | 596 ++++++++++++++++------------------ main_page/src/main.py | 99 +++++- main_page/src/symbols_list.py | 12 +- 3 files changed, 379 insertions(+), 328 deletions(-) diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd index 65d8685..7484a68 100644 --- a/main_page/main_page.mmd +++ b/main_page/main_page.mmd @@ -309,8 +309,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]

<< [[Definition:sinc|Definition:sinc]]
[[Main_Page|Main Page]]
@@ -342,9 +342,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -378,8 +378,8 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]

<< [[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]]
[[Main_Page|Main Page]]
@@ -423,8 +423,8 @@ and == Symbols List == +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail {\displaystyle U_{n}}] : Al-Salam Ismail polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:AlSalamCarlitzII|Definition:AlSalamCarlitzII]]
[[Main_Page|Main Page]]
@@ -457,7 +457,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:AntiDer {\displaystyle \int f(x){\mathrm d}\!x}] : semantic antiderivative : [http://drmf.wmflabs.org/wiki/Definition:AntiDer http://drmf.wmflabs.org/wiki/Definition:AntiDer] +[http://drmf.wmflabs.org/wiki/Definition:AntiDer {\displaystyle \int f(x){\mathrm d}\!x}] : semantic antiderivative : [http://drmf.wmflabs.org/wiki/Definition:AntiDer http://drmf.wmflabs.org/wiki/Definition:AntiDer]

<< [[Definition:AlSalamIsmail|Definition:AlSalamIsmail]]
[[Main_Page|Main Page]]
@@ -489,8 +489,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters {\displaystyle y_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]
-[http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1] +[http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1]
+[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]

<< [[Definition:AntiDer|Definition:AntiDer]]
[[Main_Page|Main Page]]
@@ -522,8 +522,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta {\displaystyle \theta_{n}}] : Bessel polynomial with two parameters {\displaystyle \theta_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta]
-[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters {\displaystyle y_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam] +[http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta {\displaystyle \theta_{n}}] : Bessel polynomial with two parameters : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta]
+[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]

<< [[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]]
[[Main_Page|Main Page]]
@@ -555,8 +555,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big -Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]

<< [[Definition:BesselPolyTheta|Definition:BesselPolyTheta]]
[[Main_Page|Main Page]]
@@ -588,8 +588,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]

<< [[Definition:bigqJacobiIVparam|Definition:bigqJacobiIVparam]]
[[Main_Page|Main Page]]
@@ -621,8 +621,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]

<< [[Definition:bigqLaguerre|Definition:bigqLaguerre]]
[[Main_Page|Main Page]]
@@ -656,8 +656,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT {\displaystyle T_{n}}] : Cigler {\displaystyle q}-Chebyshev polynomial {\displaystyle T} : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT]
-[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam] +[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT {\displaystyle T_{n}}] : Cigler -Chebyshev polynomial : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big -Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]

<< [[Definition:bigqLegendre|Definition:bigqLegendre]]
[[Main_Page|Main Page]]
@@ -690,7 +690,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU {\displaystyle U_{n}}] : Cigler {\displaystyle q}-Chebyshev polynomial {\displaystyle U} : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU] +[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU {\displaystyle U_{n}}] : Cigler -Chebyshev polynomial : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU]

<< [[Definition:CiglerqChebyT|Definition:CiglerqChebyT]]
[[Main_Page|Main Page]]
@@ -722,9 +722,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]

<< [[Definition:CiglerqChebyU|Definition:CiglerqChebyU]]
[[Main_Page|Main Page]]
@@ -757,10 +756,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:ctsbigqHermite|Definition:ctsbigqHermite]]
[[Main_Page|Main Page]]
@@ -793,10 +791,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:ctsdualqHahn|Definition:ctsdualqHahn]]
[[Main_Page|Main Page]]
@@ -833,11 +830,7 @@ with x=\cos@@{\theta}. == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
-[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2] +
<< [[Definition:ctsqHahn|Definition:ctsqHahn]]
[[Main_Page|Main Page]]
@@ -869,10 +862,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]

<< [[Definition:ctsqJacobi|Definition:ctsqJacobi]]
[[Main_Page|Main Page]]
@@ -906,9 +898,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]

<< [[Definition:ctsqLaguerre|Definition:ctsqLaguerre]]
[[Main_Page|Main Page]]
@@ -953,10 +944,8 @@ for m\ne n. == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:f {\displaystyle {f}}] : function : [http://drmf.wmflabs.org/wiki/Definition:f http://drmf.wmflabs.org/wiki/Definition:f]
-[http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer {\displaystyle S^{(\alpha,\beta)}_{n}}] : Generalized Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer]
[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
-[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv] +[http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer {\displaystyle S^{(\alpha,\beta)}_{n}}] : Generalized Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer]

<< [[Definition:ctsqLegendre|Definition:ctsqLegendre]]
[[Main_Page|Main Page]]
@@ -1007,7 +996,6 @@ Page 156 of [[Bibliography#CHI|'''CHI''']]. [http://drmf.wmflabs.org/wiki/Definition:GenHermite {\displaystyle H_n^{\mu}}] : generalized Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenHermite http://drmf.wmflabs.org/wiki/Definition:GenHermite]
[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27]
-[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
<< [[Definition:f|Definition:f]]
[[Main_Page|Main Page]]
@@ -1042,7 +1030,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre {\displaystyle l_{n}}] : Gottlieb-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre]
-[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9] +[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9]

<< [[Definition:GenHermite|Definition:GenHermite]]
[[Main_Page|Main Page]]
@@ -1076,10 +1064,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:Int {\displaystyle \int_{a}^{b}f(x){\mathrm d}\!x}] : semantic definite integral : [http://drmf.wmflabs.org/wiki/Definition:Int http://drmf.wmflabs.org/wiki/Definition:Int]
-[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI {\displaystyle J^{(1)}_{q}}] : Jackson {\displaystyle q}-Bessel function 1 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI {\displaystyle J^{(1)}_{q}}] : Jackson -Bessel function 1 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:GottliebLaguerre|Definition:GottliebLaguerre]]
[[Main_Page|Main Page]]
@@ -1113,9 +1100,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII {\displaystyle J^{(2)}_{q}}] : Jackson {\displaystyle q}-Bessel function 2 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII {\displaystyle J^{(2)}_{q}}] : Jackson -Bessel function 2 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:Int|Definition:Int]]
[[Main_Page|Main Page]]
@@ -1148,9 +1135,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII {\displaystyle J^{(3)}_{q}}] : Jackson/Hahn-Exton {\displaystyle q}-Bessel function 3 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little -Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]

<< [[Definition:JacksonqBesselII|Definition:JacksonqBesselII]]
[[Main_Page|Main Page]]
@@ -1182,8 +1168,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]

<< [[Definition:JacksonqBesselIII|Definition:JacksonqBesselIII]]
[[Main_Page|Main Page]]
@@ -1216,10 +1202,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:Lrselection {\displaystyle \left\{\begin{matrix}x\end{matrix}\right\}}] : bracketed generalization of {\displaystyle \pm} : [http://drmf.wmflabs.org/wiki/Definition:Lrselection http://drmf.wmflabs.org/wiki/Definition:Lrselection]
-[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]

<< [[Definition:littleqLegendre|Definition:littleqLegendre]]
[[Main_Page|Main Page]]
@@ -1254,7 +1239,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI {\displaystyle {\widehat U}^{(\alpha)}_{n}}] : monic Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI]
-[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI] +[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]

<< [[Definition:lrselection|Definition:lrselection]]
[[Main_Page|Main Page]]
@@ -1289,7 +1274,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII {\displaystyle {\widehat V}^{(n)}_{\alpha}}] : monic Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII]
-[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII] +[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]

<< [[Definition:monicAlSalamCarlitzI|Definition:monicAlSalamCarlitzI]]
[[Main_Page|Main Page]]
@@ -1324,7 +1309,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara]
-[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara] +[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara]

<< [[Definition:monicAlSalamCarlitzII|Definition:monicAlSalamCarlitzII]]
[[Main_Page|Main Page]]
@@ -1358,9 +1343,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson {\displaystyle {\widehat p}_{n}}] : monic Askey-Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson]
[http://dlmf.nist.gov/18.28#E1 {\displaystyle p_{n}}] : Askey-Wilson polynomial : [http://dlmf.nist.gov/18.28#E1 http://dlmf.nist.gov/18.28#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson {\displaystyle {\widehat p}_{n}}] : monic Askey-Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson]

<< [[Definition:monicAlSalamChihara|Definition:monicAlSalamChihara]]
[[Main_Page|Main Page]]
@@ -1393,9 +1378,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly {\displaystyle {\widehat y}_{n}}] : monic Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly]
[http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly {\displaystyle {\widehat y}_{n}}] : monic Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly]

<< [[Definition:monicAskeyWilson|Definition:monicAskeyWilson]]
[[Main_Page|Main Page]]
@@ -1429,9 +1414,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:bigqJacobi {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobi http://drmf.wmflabs.org/wiki/Definition:bigqJacobi]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi {\displaystyle {\widehat P}_{n}}] : monic big -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobi {\displaystyle P_{n}}] : big -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobi http://drmf.wmflabs.org/wiki/Definition:bigqJacobi]

<< [[Definition:monicBesselPoly|Definition:monicBesselPoly]]
[[Main_Page|Main Page]]
@@ -1465,9 +1450,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre]
-[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre {\displaystyle {\widehat P}_{n}}] : monic big -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre]

<< [[Definition:monicbigqJacobi|Definition:monicbigqJacobi]]
[[Main_Page|Main Page]]
@@ -1501,9 +1486,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre {\displaystyle {\widehat P}_{n}}] : monic big -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre]

<< [[Definition:monicbigqLaguerre|Definition:monicbigqLaguerre]]
[[Main_Page|Main Page]]
@@ -1538,8 +1523,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/18.19#T1.t1.r11 {\displaystyle C_{n}}] : Charlier polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r11 http://dlmf.nist.gov/18.19#T1.t1.r11]
[http://drmf.wmflabs.org/wiki/Definition:monicCharlier {\displaystyle {\widehat C}_{n}}] : monic Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicCharlier http://drmf.wmflabs.org/wiki/Definition:monicCharlier]
-[http://dlmf.nist.gov/18.19#T1.t1.r11 {\displaystyle C_{n}}] : Charlier polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r11 http://dlmf.nist.gov/18.19#T1.t1.r11]
<< [[Definition:monicbigqLegendre|Definition:monicbigqLegendre]]
[[Main_Page|Main Page]]
@@ -1574,8 +1559,8 @@ for n\ne 1 and \ChebyT{1}@{x}=\monicChebyT{1}@{x}=x. == Symbols List == +[http://dlmf.nist.gov/18.3#T1.t1.r8 {\displaystyle T_{n}}] : Chebyshev polynomial of the first kind : [http://dlmf.nist.gov/18.3#T1.t1.r8 http://dlmf.nist.gov/18.3#T1.t1.r8]
[http://drmf.wmflabs.org/wiki/Definition:monicChebyT {\displaystyle {\widehat T}_{n}}] : monic Chebyshev polynomial of the first kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyT http://drmf.wmflabs.org/wiki/Definition:monicChebyT]
-[http://dlmf.nist.gov/18.3#T1.t1.r8 {\displaystyle T_{n}}] : Chebyshev polynomial of the first kind : [http://dlmf.nist.gov/18.3#T1.t1.r8 http://dlmf.nist.gov/18.3#T1.t1.r8]
<< [[Definition:monicCharlier|Definition:monicCharlier]]
[[Main_Page|Main Page]]
@@ -1609,8 +1594,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/18.3#T1.t1.r11 {\displaystyle U_{n}}] : Chebyshev polynomial of the second kind : [http://dlmf.nist.gov/18.3#T1.t1.r11 http://dlmf.nist.gov/18.3#T1.t1.r11]
[http://drmf.wmflabs.org/wiki/Definition:monicChebyU {\displaystyle {\widehat U}_{n}}] : monic Chebyshev polynomial of the second kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyU http://drmf.wmflabs.org/wiki/Definition:monicChebyU]
-[http://dlmf.nist.gov/18.3#T1.t1.r11 {\displaystyle U_{n}}] : Chebyshev polynomial of the second kind : [http://dlmf.nist.gov/18.3#T1.t1.r11 http://dlmf.nist.gov/18.3#T1.t1.r11]
<< [[Definition:monicChebyT|Definition:monicChebyT]]
[[Main_Page|Main Page]]
@@ -1644,8 +1629,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite]
-[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite] +[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous big -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite]

<< [[Definition:monicChebyU|Definition:monicChebyU]]
[[Main_Page|Main Page]]
@@ -1679,8 +1664,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
[http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn {\displaystyle {\widehat S}_{n}}] : monic continuous dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn]
-[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
<< [[Definition:monicctsbigqHermite|Definition:monicctsbigqHermite]]
[[Main_Page|Main Page]]
@@ -1715,8 +1700,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn] +[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn]

<< [[Definition:monicctsdualHahn|Definition:monicctsdualHahn]]
[[Main_Page|Main Page]]
@@ -1751,8 +1736,8 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicctsHahn {\displaystyle {\widehat p}_{n}}] : monic continuous Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsHahn http://drmf.wmflabs.org/wiki/Definition:monicctsHahn]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicctsdualqHahn|Definition:monicctsdualqHahn]]
[[Main_Page|Main Page]]
@@ -1786,9 +1771,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:monicctsHahn|Definition:monicctsHahn]]
[[Main_Page|Main Page]]
@@ -1822,8 +1807,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite] +[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite]

<< [[Definition:monicctsqHahn|Definition:monicctsqHahn]]
[[Main_Page|Main Page]]
@@ -1858,9 +1843,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic continuous -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:monicctsqHermite|Definition:monicctsqHermite]]
[[Main_Page|Main Page]]
@@ -1894,9 +1879,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic continuous -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]

<< [[Definition:monicctsqJacobi|Definition:monicctsqJacobi]]
[[Main_Page|Main Page]]
@@ -1930,9 +1915,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre {\displaystyle {\widehat P}_{n}}] : monic continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre {\displaystyle {\widehat P}_{n}}] : monic continuous -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre]

<< [[Definition:monicctsqLaguerre|Definition:monicctsqLaguerre]]
[[Main_Page|Main Page]]
@@ -1966,9 +1951,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra {\displaystyle {\widehat C}_{n}}] : monic continuous {\displaystyle q}-ultraspherical/Rogers polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra]
-[http://dlmf.nist.gov/18.28#E13 {\displaystyle C_{n}}] : continuous {\displaystyle q}-ultraspherical/Rogers polynomial : [http://dlmf.nist.gov/18.28#E13 http://dlmf.nist.gov/18.28#E13]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra {\displaystyle {\widehat C}_{n}}] : monic continuous -ultraspherical/Rogers polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/18.28#E13 {\displaystyle C_{n}}] : continuous -ultraspherical/Rogers polynomial : [http://dlmf.nist.gov/18.28#E13 http://dlmf.nist.gov/18.28#E13]

<< [[Definition:monicctsqLegendre|Definition:monicctsqLegendre]]
[[Main_Page|Main Page]]
@@ -2002,8 +1987,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI {\displaystyle {\widehat h}_{n}}] : monic discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI]
-[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI] +[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete -Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
+[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI {\displaystyle {\widehat h}_{n}}] : monic discrete -Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI]

<< [[Definition:monicctsqUltra|Definition:monicctsqUltra]]
[[Main_Page|Main Page]]
@@ -2037,8 +2022,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII {\displaystyle {\widehat \tilde{p}_{n}}}] : monic discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII]
-[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII] +[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete -Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
+[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII {\displaystyle {\widehat \tilde{p}_{n}}}] : monic discrete -Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII]

<< [[Definition:monicdiscrqHermiteI|Definition:monicdiscrqHermiteI]]
[[Main_Page|Main Page]]
@@ -2073,9 +2058,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicdualHahn {\displaystyle {\widehat R}_{n}}] : monic dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualHahn http://drmf.wmflabs.org/wiki/Definition:monicdualHahn]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.25#T1.t1.r5 {\displaystyle R_{n}}] : dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r5 http://dlmf.nist.gov/18.25#T1.t1.r5]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://drmf.wmflabs.org/wiki/Definition:monicdualHahn {\displaystyle {\widehat R}_{n}}] : monic dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualHahn http://drmf.wmflabs.org/wiki/Definition:monicdualHahn]

<< [[Definition:monicdiscrqHermiteII|Definition:monicdiscrqHermiteII]]
[[Main_Page|Main Page]]
@@ -2109,9 +2094,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn {\displaystyle {\widehat R}_{n}}] : monic dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn {\displaystyle {\widehat R}_{n}}] : monic dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn]

<< [[Definition:monicdualHahn|Definition:monicdualHahn]]
[[Main_Page|Main Page]]
@@ -2145,9 +2130,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]

<< [[Definition:monicdualqHahn|Definition:monicdualqHahn]]
[[Main_Page|Main Page]]
@@ -2181,9 +2166,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicHahn {\displaystyle {\widehat Q}_{n}}] : monic Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHahn http://drmf.wmflabs.org/wiki/Definition:monicHahn]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#T1.t1.r3 {\displaystyle Q_{n}}] : Hahn polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r3 http://dlmf.nist.gov/18.19#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://drmf.wmflabs.org/wiki/Definition:monicHahn {\displaystyle {\widehat Q}_{n}}] : monic Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHahn http://drmf.wmflabs.org/wiki/Definition:monicHahn]

<< [[Definition:monicdualqKrawtchouk|Definition:monicdualqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2217,8 +2202,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/18.3#T1.t1.r28 {\displaystyle H_{n}}] : Hermite polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r28 http://dlmf.nist.gov/18.3#T1.t1.r28]
[http://drmf.wmflabs.org/wiki/Definition:monicHermite {\displaystyle {\widehat H}_{n}}] : monic Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHermite http://drmf.wmflabs.org/wiki/Definition:monicHermite]
-[http://dlmf.nist.gov/18.3#T1.t1.r28 {\displaystyle H_{n}}] : Hermite polynomial {\displaystyle H_n} : [http://dlmf.nist.gov/18.3#T1.t1.r28 http://dlmf.nist.gov/18.3#T1.t1.r28]
<< [[Definition:monicHahn|Definition:monicHahn]]
[[Main_Page|Main Page]]
@@ -2253,9 +2238,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicJacobi http://drmf.wmflabs.org/wiki/Definition:monicJacobi]
[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://drmf.wmflabs.org/wiki/Definition:monicJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicJacobi http://drmf.wmflabs.org/wiki/Definition:monicJacobi]

<< [[Definition:monicHermite|Definition:monicHermite]]
[[Main_Page|Main Page]]
@@ -2289,9 +2274,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk]
[http://dlmf.nist.gov/18.19#T1.t1.r6 {\displaystyle K_{n}}] : Krawtchouk polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r6 http://dlmf.nist.gov/18.19#T1.t1.r6]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]

<< [[Definition:monicJacobi|Definition:monicJacobi]]
[[Main_Page|Main Page]]
@@ -2326,7 +2311,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicLaguerre {\displaystyle {\widehat L}^{\alpha}_n}] : monic Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLaguerre http://drmf.wmflabs.org/wiki/Definition:monicLaguerre]
-[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27] +[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27]

<< [[Definition:monicKrawtchouk|Definition:monicKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2363,7 +2348,7 @@ These are defined by [http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly {\displaystyle {\widehat P}_{n}}] : monic Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly]
[http://dlmf.nist.gov/18.3#T1.t1.r25 {\displaystyle P_{n}}] : Legendre polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r25 http://dlmf.nist.gov/18.3#T1.t1.r25]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1] +[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]

<< [[Definition:monicLaguerre|Definition:monicLaguerre]]
[[Main_Page|Main Page]]
@@ -2397,10 +2382,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:littleqJacobi {\displaystyle p_{n}}] : little {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqJacobi http://drmf.wmflabs.org/wiki/Definition:littleqJacobi]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi {\displaystyle {\widehat p}_{n}}] : monic little -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:littleqJacobi {\displaystyle p_{n}}] : little -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqJacobi http://drmf.wmflabs.org/wiki/Definition:littleqJacobi]

<< [[Definition:monicLegendrePoly|Definition:monicLegendrePoly]]
[[Main_Page|Main Page]]
@@ -2433,10 +2418,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Laguerre/Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +
<< [[Definition:moniclittleqJacobi|Definition:moniclittleqJacobi]]
[[Main_Page|Main Page]]
@@ -2470,10 +2452,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre {\displaystyle {\widehat p}_{n}}] : monic little -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre]

<< [[Definition:moniclittleqLaguerre|Definition:moniclittleqLaguerre]]
[[Main_Page|Main Page]]
@@ -2508,8 +2490,8 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicMeixner {\displaystyle {\widehat M}_{n}}] : monic Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixner http://drmf.wmflabs.org/wiki/Definition:monicMeixner]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:moniclittleqLegendre|Definition:moniclittleqLegendre]]
[[Main_Page|Main Page]]
@@ -2546,7 +2528,7 @@ These are defined by [http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek]
[http://dlmf.nist.gov/18.19#P3.p1 {\displaystyle P^{(\alpha)}_{n}}] : Meixner-Pollaczek polynomial : [http://dlmf.nist.gov/18.19#P3.p1 http://dlmf.nist.gov/18.19#P3.p1]
-[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1] +[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]

<< [[Definition:monicMeixner|Definition:monicMeixner]]
[[Main_Page|Main Page]]
@@ -2581,7 +2563,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi {\displaystyle {\widehat P}_{n}}] : monic pseudo-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi] +[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]

<< [[Definition:monicMeixnerPollaczek|Definition:monicMeixnerPollaczek]]
[[Main_Page|Main Page]]
@@ -2615,10 +2597,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqBessel {\displaystyle {\widehat y}_{n}}] : monic {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqBessel http://drmf.wmflabs.org/wiki/Definition:monicqBessel]
-[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : -Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicqBessel {\displaystyle {\widehat y}_{n}}] : monic -Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqBessel http://drmf.wmflabs.org/wiki/Definition:monicqBessel]

<< [[Definition:monicpseudoJacobi|Definition:monicpseudoJacobi]]
[[Main_Page|Main Page]]
@@ -2653,10 +2635,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqCharlier {\displaystyle {\widehat C}_{n}}] : monic {\displaystyle q}-Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqCharlier http://drmf.wmflabs.org/wiki/Definition:monicqCharlier]
-[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn] +[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:monicqBesselPoly|Definition:monicqBesselPoly]]
[[Main_Page|Main Page]]
@@ -2690,9 +2671,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:monicqCharlier|Definition:monicqCharlier]]
[[Main_Page|Main Page]]
@@ -2726,9 +2707,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre {\displaystyle {\widehat L}^{(\alpha)}_{n}}] : monic {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre]
-[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre {\displaystyle {\widehat L}^{(\alpha)}_{n}}] : monic -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]

<< [[Definition:monicqKrawtchouk|Definition:monicqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2761,9 +2742,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqMeixner {\displaystyle {\widehat M}_{n}}] : monic {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixner http://drmf.wmflabs.org/wiki/Definition:monicqMeixner]
-[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicqMeixner {\displaystyle {\widehat M}_{n}}] : monic -Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixner http://drmf.wmflabs.org/wiki/Definition:monicqMeixner]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : -Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]

<< [[Definition:monicqLaguerre|Definition:monicqLaguerre]]
[[Main_Page|Main Page]]
@@ -2797,9 +2778,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek {\displaystyle {\widehat P}_{n}}] : monic {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek]
-[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek {\displaystyle {\widehat P}_{n}}] : monic -Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : -Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]

<< [[Definition:monicqMeixner|Definition:monicqMeixner]]
[[Main_Page|Main Page]]
@@ -2834,9 +2815,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqRacah {\displaystyle {\widehat R}_{n}}] : monic {\displaystyle q}-Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqRacah http://drmf.wmflabs.org/wiki/Definition:monicqRacah]
-[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : {\displaystyle q}-Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : -Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
+[http://drmf.wmflabs.org/wiki/Definition:monicqRacah {\displaystyle {\widehat R}_{n}}] : monic -Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqRacah http://drmf.wmflabs.org/wiki/Definition:monicqRacah]

<< [[Definition:monicqMeixnerPollaczek|Definition:monicqMeixnerPollaczek]]
[[Main_Page|Main Page]]
@@ -2870,9 +2851,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk {\displaystyle {\widehat K^{\mathrm{qtm}}}_{n}}] : monic quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk {\displaystyle {\widehat K^{\mathrm{qtm}}}_{n}}] : monic quantum -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk]

<< [[Definition:monicqRacah|Definition:monicqRacah]]
[[Main_Page|Main Page]]
@@ -2907,9 +2888,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicRacah {\displaystyle {\widehat R}_{n}}] : monic Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicRacah http://drmf.wmflabs.org/wiki/Definition:monicRacah]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://drmf.wmflabs.org/wiki/Definition:monicRacah {\displaystyle {\widehat R}_{n}}] : monic Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicRacah http://drmf.wmflabs.org/wiki/Definition:monicRacah]

<< [[Definition:monicqtmqKrawtchouk|Definition:monicqtmqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2943,9 +2924,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
[http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert {\displaystyle {\widehat S}_{n}}] : monic Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert]
[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicRacah|Definition:monicRacah]]
[[Main_Page|Main Page]]
@@ -2981,7 +2962,7 @@ These are defined by [http://drmf.wmflabs.org/wiki/Definition:monicUltra {\displaystyle {\widehat C}^{\mu}_{n}}] : monic ultraspherical/Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicUltra http://drmf.wmflabs.org/wiki/Definition:monicUltra]
[http://dlmf.nist.gov/18.3#T1.t1.r5 {\displaystyle C^{\mu}_{n}}] : ultraspherical/Gegenbauer polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r5 http://dlmf.nist.gov/18.3#T1.t1.r5]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]

<< [[Definition:monicStieltjesWigert|Definition:monicStieltjesWigert]]
[[Main_Page|Main Page]]
@@ -3015,9 +2996,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicWilson {\displaystyle {\widehat W}_{n}}] : monic Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicWilson http://drmf.wmflabs.org/wiki/Definition:monicWilson]
[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://drmf.wmflabs.org/wiki/Definition:monicWilson {\displaystyle {\widehat W}_{n}}] : monic Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicWilson http://drmf.wmflabs.org/wiki/Definition:monicWilson]

<< [[Definition:monicUltra|Definition:monicUltra]]
[[Main_Page|Main Page]]
@@ -3048,7 +3029,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:NeumannFactor {\displaystyle \epsilon_{m}}] : Neumann factor : [http://drmf.wmflabs.org/wiki/Definition:NeumannFactor http://drmf.wmflabs.org/wiki/Definition:NeumannFactor]
-[http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 {\displaystyle \delta_{m,n}}] : Kronecker delta : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4] +[http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 {\displaystyle \delta_{m,n}}] : Kronecker delta : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4]

<< [[Definition:monicWilson|Definition:monicWilson]]
[[Main_Page|Main Page]]
@@ -3079,9 +3060,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde {\displaystyle {\tilde S}_{n}}] : normalized continuous dual Hahn polynomial {\displaystyle {\tilde S}} : [http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde]
[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde {\displaystyle {\tilde S}_{n}}] : normalized continuous dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde]

<< [[Definition:NeumannFactor|Definition:NeumannFactor]]
[[Main_Page|Main Page]]
@@ -3113,9 +3094,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde]
+[http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde]
+[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
<< [[Definition:normctsdualHahnStilde|Definition:normctsdualHahnStilde]]
[[Main_Page|Main Page]]
@@ -3152,9 +3133,9 @@ where == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normJacobiR {\displaystyle R^{(\alpha,\beta)}_{n}}] : normalized Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:normJacobiR http://drmf.wmflabs.org/wiki/Definition:normJacobiR]
[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://drmf.wmflabs.org/wiki/Definition:normJacobiR {\displaystyle R^{(\alpha,\beta)}_{n}}] : normalized Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:normJacobiR http://drmf.wmflabs.org/wiki/Definition:normJacobiR]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]

<< [[Definition:normctsHahnptilde|Definition:normctsHahnptilde]]
[[Main_Page|Main Page]]
@@ -3189,9 +3170,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde {\displaystyle {\tilde W}_{n}}] : normalized Wilson polynomial {\displaystyle {\tilde W}} : [http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde]
[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii] +[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde {\displaystyle {\tilde W}_{n}}] : normalized Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde]

<< [[Definition:normJacobiR|Definition:normJacobiR]]
[[Main_Page|Main Page]]
@@ -3224,10 +3205,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:poly {\displaystyle {p}_{n}}] : polynomial : [http://drmf.wmflabs.org/wiki/Definition:poly http://drmf.wmflabs.org/wiki/Definition:poly]
-[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]

<< [[Definition:normWilsonWtilde|Definition:normWilsonWtilde]]
[[Main_Page|Main Page]]
@@ -3259,8 +3239,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : -Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]

<< [[Definition:poly|Definition:poly]]
[[Main_Page|Main Page]]
@@ -3292,8 +3272,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qCharlier {\displaystyle C_{n}}] : {\displaystyle q}-Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:qCharlier http://drmf.wmflabs.org/wiki/Definition:qCharlier]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:qCharlier {\displaystyle C_{n}}] : -Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:qCharlier http://drmf.wmflabs.org/wiki/Definition:qCharlier]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]

<< [[Definition:qBesselPoly|Definition:qBesselPoly]]
[[Main_Page|Main Page]]
@@ -3325,8 +3305,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qDigamma {\displaystyle \psi_{q}}] : {\displaystyle q}-digamma function : [http://drmf.wmflabs.org/wiki/Definition:qDigamma http://drmf.wmflabs.org/wiki/Definition:qDigamma]
-[http://dlmf.nist.gov/5.18#E4 {\displaystyle \Gamma_{q}}] : {\displaystyle q}-gamma function : [http://dlmf.nist.gov/5.18#E4 http://dlmf.nist.gov/5.18#E4] +[http://dlmf.nist.gov/5.18#E4 {\displaystyle \Gamma_{q}}] : -gamma function : [http://dlmf.nist.gov/5.18#E4 http://dlmf.nist.gov/5.18#E4]
+[http://drmf.wmflabs.org/wiki/Definition:qDigamma {\displaystyle \psi_{q}}] : -digamma function : [http://drmf.wmflabs.org/wiki/Definition:qDigamma http://drmf.wmflabs.org/wiki/Definition:qDigamma]

<< [[Definition:qCharlier|Definition:qCharlier]]
[[Main_Page|Main Page]]
@@ -3367,8 +3347,8 @@ Equation (2.1.11) of [[Bibliography#GaR|'''GaR''']]. == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qHyperrWs {\displaystyle {{}_{r+1}W_{r}}}] : very-well-poised basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://drmf.wmflabs.org/wiki/Definition:qHyperrWs http://drmf.wmflabs.org/wiki/Definition:qHyperrWs]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:qHyperrWs {\displaystyle {{}_{r+1}W_{r}}}] : very-well-poised basic hypergeometric (or -hypergeometric) function : [http://drmf.wmflabs.org/wiki/Definition:qHyperrWs http://drmf.wmflabs.org/wiki/Definition:qHyperrWs]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]

<< [[Definition:qDigamma|Definition:qDigamma]]
[[Main_Page|Main Page]]
@@ -3402,12 +3382,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
-[http://dlmf.nist.gov/4.2#E19 {\displaystyle \mathrm{exp}}] : exponential function : [http://dlmf.nist.gov/4.2#E19 http://dlmf.nist.gov/4.2#E19]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:qHyperrWs|Definition:qHyperrWs]]
[[Main_Page|Main Page]]
@@ -3441,11 +3419,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
-[http://dlmf.nist.gov/4.2#E19 {\displaystyle \mathrm{exp}}] : exponential function : [http://dlmf.nist.gov/4.2#E19 http://dlmf.nist.gov/4.2#E19]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:qExpKLS|Definition:qExpKLS]]
[[Main_Page|Main Page]]
@@ -3478,11 +3454,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qcosKLS {\displaystyle \mathrm{cos}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \cos} function used in KLS: {\displaystyle \cos_q} : [http://drmf.wmflabs.org/wiki/Definition:qcosKLS http://drmf.wmflabs.org/wiki/Definition:qcosKLS]
-[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
-[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:qcosKLS {\displaystyle \mathrm{cos}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qcosKLS http://drmf.wmflabs.org/wiki/Definition:qcosKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]

<< [[Definition:qexpKLS|Definition:qexpKLS]]
[[Main_Page|Main Page]]
@@ -3513,8 +3487,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : -Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]

<< [[Definition:qcosKLS|Definition:qcosKLS]]
[[Main_Page|Main Page]]
@@ -3547,8 +3521,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]

<< [[Definition:qMeixner|Definition:qMeixner]]
[[Main_Page|Main Page]]
@@ -3582,9 +3556,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:qKrawtchouk|Definition:qKrawtchouk]]
[[Main_Page|Main Page]]
@@ -3618,8 +3592,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]

<< [[Definition:monicqHahn|Definition:monicqHahn]]
[[Main_Page|Main Page]]
@@ -3651,8 +3624,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]

<< [[Definition:dualqHahn|Definition:dualqHahn]]
[[Main_Page|Main Page]]
@@ -3683,8 +3656,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little -Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]

<< [[Definition:dualqKrawtchouk|Definition:dualqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -3718,12 +3691,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qsinKLS {\displaystyle \mathrm{sin}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \sin} function used in KLS: {\displaystyle \sin_q} : [http://drmf.wmflabs.org/wiki/Definition:qsinKLS http://drmf.wmflabs.org/wiki/Definition:qsinKLS]
-[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
-[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qsinKLS {\displaystyle \mathrm{sin}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qsinKLS http://drmf.wmflabs.org/wiki/Definition:qsinKLS]
[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:littleqLaguerre|Definition:littleqLaguerre]]
[[Main_Page|Main Page]]
@@ -3757,13 +3728,11 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qSinKLS {\displaystyle \mathrm{Sin}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \sin} function used in KLS: {\displaystyle \mathrm{Sin}_q} : [http://drmf.wmflabs.org/wiki/Definition:qSinKLS http://drmf.wmflabs.org/wiki/Definition:qSinKLS]
-[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
-[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qSinKLS {\displaystyle \mathrm{Sin}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qSinKLS http://drmf.wmflabs.org/wiki/Definition:qSinKLS]
[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:qsinKLS|Definition:qsinKLS]]
[[Main_Page|Main Page]]
@@ -3797,13 +3766,11 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qCosKLS {\displaystyle \mathrm{Cos}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \cos} function used in KLS: {\displaystyle \mathrm{Cos}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qCosKLS http://drmf.wmflabs.org/wiki/Definition:qCosKLS]
-[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
-[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://drmf.wmflabs.org/wiki/Definition:qCosKLS {\displaystyle \mathrm{Cos}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qCosKLS http://drmf.wmflabs.org/wiki/Definition:qCosKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]

<< [[Definition:qSinKLS|Definition:qSinKLS]]
[[Main_Page|Main Page]]
@@ -3835,9 +3802,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:qCosKLS|Definition:qCosKLS]]
[[Main_Page|Main Page]]
@@ -3873,8 +3840,8 @@ with N a nonnegative integer. == Symbols List == +[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:Wilson|Definition:Wilson]]
[[Main_Page|Main Page]]
@@ -3906,9 +3873,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:Racah|Definition:Racah]]
[[Main_Page|Main Page]]
@@ -3941,9 +3908,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1] +[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]

<< [[Definition:ctsdualHahn|Definition:ctsdualHahn]]
[[Main_Page|Main Page]]
@@ -3974,8 +3941,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.19#T1.t1.r3 {\displaystyle Q_{n}}] : Hahn polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r3 http://dlmf.nist.gov/18.19#T1.t1.r3]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:ctsHahn|Definition:ctsHahn]]
[[Main_Page|Main Page]]
@@ -4008,8 +3975,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.25#T1.t1.r5 {\displaystyle R_{n}}] : dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r5 http://dlmf.nist.gov/18.25#T1.t1.r5]
-[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:Hahn|Definition:Hahn]]
[[Main_Page|Main Page]]
@@ -4041,8 +4008,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : {\displaystyle q}-Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : -Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]

<< [[Definition:dualHahn|Definition:dualHahn]]
[[Main_Page|Main Page]]
@@ -4074,9 +4041,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous dual {\displaystyle q}-Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde]
-[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:qRacah|Definition:qRacah]]
[[Main_Page|Main Page]]
@@ -4109,10 +4076,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous {\displaystyle q}-Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:normctsdualqHahnptilde|Definition:normctsdualqHahnptilde]]
[[Main_Page|Main Page]]
@@ -4143,8 +4109,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]

<< [[Definition:normctsqHahnptilde|Definition:normctsqHahnptilde]]
[[Main_Page|Main Page]]
@@ -4177,10 +4143,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
<< [[Definition:qHahn|Definition:qHahn]]
[[Main_Page|Main Page]]
@@ -4213,9 +4178,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/23.1 {\displaystyle Q_{n}}] : {\displaystyle q}-inverse Al-Salam-Chihara polynomial : [http://dlmf.nist.gov/23.1 http://dlmf.nist.gov/23.1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/23.1 {\displaystyle Q_{n}}] : -inverse Al-Salam-Chihara polynomial : [http://dlmf.nist.gov/23.1 http://dlmf.nist.gov/23.1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]

<< [[Definition:AlSalamChihara|Definition:AlSalamChihara]]
[[Main_Page|Main Page]]
@@ -4247,7 +4212,7 @@ x\monicqinvAlSalamChihara{n}@@{x}{a}{b}{q^{-1}=:\monicqinvAlSalamChihara{n+1}@@{ == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-inverse Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara] +[http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic -inverse Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara]

<< [[Definition:qinvAlSalamChihara|Definition:qinvAlSalamChihara]]
[[Main_Page|Main Page]]
@@ -4280,9 +4245,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1] +[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]

<< [[Definition:monicqinvAlSalamChihara|Definition:monicqinvAlSalamChihara]]
[[Main_Page|Main Page]]
@@ -4314,10 +4279,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : -Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]

<< [[Definition:monicAffqKrawtchouk|Definition:monicAffqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -4350,8 +4314,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]

<< [[Definition:qMeixnerPollaczek|Definition:qMeixnerPollaczek]]
[[Main_Page|Main Page]]
@@ -4387,9 +4351,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]

<< [[Definition:qtmqKrawtchouk|Definition:qtmqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -4421,9 +4385,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
-[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]

<< [[Definition:qLaguerre|Definition:qLaguerre]]
[[Main_Page|Main Page]]
@@ -4455,9 +4418,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:ctsqHermite|Definition:ctsqHermite]]
[[Main_Page|Main Page]]
@@ -4489,8 +4452,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
-[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI] +[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete -Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
+[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]

<< [[Definition:StieltjesWigert|Definition:StieltjesWigert]]
[[Main_Page|Main Page]]
@@ -4522,8 +4485,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
-[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII] +[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete -Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]

<< [[Definition:discrqHermiteI|Definition:discrqHermiteI]]
[[Main_Page|Main Page]]
@@ -4563,9 +4526,7 @@ Equation (2), Section 2.21 of [[Bibliography#FI|'''FI''']]. == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants {\displaystyle \gamma_{n}}] : Stieltjes constants : [http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
-[http://dlmf.nist.gov/5.2#E3 {\displaystyle \gamma}] : Euler's (Euler-Mascheroni) constant : [http://dlmf.nist.gov/5.2#E3 http://dlmf.nist.gov/5.2#E3]
<< [[Definition:discrqHermiteII|Definition:discrqHermiteII]]
[[Main_Page|Main Page]]
@@ -4599,9 +4560,8 @@ These are defined by == Symbols List == -[p}$ {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [p}$ p}$] [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS]
-[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
-[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2] +[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS]

<< [[Definition:StieltjesConstants|Definition:StieltjesConstants]]
[[Main_Page|Main Page]]
@@ -4636,8 +4596,7 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/25.11#E33 {\displaystyle H_{n}}] : Harmonic number : [http://dlmf.nist.gov/25.11#E33 http://dlmf.nist.gov/25.11#E33]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum] +[http://drmf.wmflabs.org/wiki/Definition:HarmonicNumber {\displaystyle H_{n}^{r}}] : Harmonic number : [http://drmf.wmflabs.org/wiki/Definition:HarmonicNumber http://drmf.wmflabs.org/wiki/Definition:HarmonicNumber]

<< [[Definition:PolylogarithmS|Definition:PolylogarithmS]]
[[Main_Page|Main Page]]
@@ -4671,7 +4630,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:LucasL {\displaystyle L_{n}}] : Lucas polynomial : [http://drmf.wmflabs.org/wiki/Definition:LucasL http://drmf.wmflabs.org/wiki/Definition:LucasL] +[http://drmf.wmflabs.org/wiki/Definition:LucasL {\displaystyle L_{n}}] : Lucas polynomial : [http://drmf.wmflabs.org/wiki/Definition:LucasL http://drmf.wmflabs.org/wiki/Definition:LucasL]

<< [[Definition:HarmonicNumber|Definition:HarmonicNumber]]
[[Main_Page|Main Page]]
@@ -4706,7 +4665,6 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi {\displaystyle \Phi}] : Hurwitz-Lerch's transcendent : [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:LucasL|Definition:LucasL]]
[[Main_Page|Main Page]]
@@ -4739,7 +4697,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:GoldenRatio {\displaystyle \phi}] : The golden ratio : [http://drmf.wmflabs.org/wiki/Definition:GoldenRatio http://drmf.wmflabs.org/wiki/Definition:GoldenRatio] +
<< [[Definition:HurwitzLerchPhi|Definition:HurwitzLerchPhi]]
[[Main_Page|Main Page]]
@@ -4773,8 +4731,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function {\displaystyle \Psi_{\alpha;\beta}} : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi]
-[http://dlmf.nist.gov/13.14#E3 {\displaystyle W_{\kappa,\mu}}] : Whittaker function {\displaystyle W_{\kappa;\mu}} : [http://dlmf.nist.gov/13.14#E3 http://dlmf.nist.gov/13.14#E3] +[http://dlmf.nist.gov/13.14#E3 {\displaystyle W_{\kappa,\mu}}] : Whittaker function : [http://dlmf.nist.gov/13.14#E3 http://dlmf.nist.gov/13.14#E3]
+[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi]

<< [[Definition:GoldenRatio|Definition:GoldenRatio]]
[[Main_Page|Main Page]]
@@ -4807,8 +4765,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:GompertzConstant {\displaystyle G}] : Gompertz's constant : [http://drmf.wmflabs.org/wiki/Definition:GompertzConstant http://drmf.wmflabs.org/wiki/Definition:GompertzConstant]
-[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv] +
<< [[Definition:WhitPsi|Definition:WhitPsi]]
[[Main_Page|Main Page]]
@@ -4841,10 +4798,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:RabbitConstant {\displaystyle \rho}] : rabbit constant : [http://drmf.wmflabs.org/wiki/Definition:RabbitConstant http://drmf.wmflabs.org/wiki/Definition:RabbitConstant]
-[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
[http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16 {\displaystyle \left\lfloor a\right\rfloor}] : floor : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16]
-[http://drmf.wmflabs.org/wiki/Definition:GoldenRatio {\displaystyle \phi}] : The golden ratio : [http://drmf.wmflabs.org/wiki/Definition:GoldenRatio http://drmf.wmflabs.org/wiki/Definition:GoldenRatio]
<< [[Definition:GompertzConstant|Definition:GompertzConstant]]
[[Main_Page|Main Page]]
@@ -4877,7 +4831,7 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/26.11#E5 {\displaystyle F_{n}}] : Fibonacci number : [http://dlmf.nist.gov/26.11#E5 http://dlmf.nist.gov/26.11#E5] +[http://dlmf.nist.gov/26.11#E5 {\displaystyle F_{n}}] : Fibonacci number : [http://dlmf.nist.gov/26.11#E5 http://dlmf.nist.gov/26.11#E5]

<< [[Definition:rabbitConstant|Definition:rabbitConstant]]
[[Main_Page|Main Page]]
@@ -4910,7 +4864,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci] +[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci]

<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
[[Main_Page|Main Page]]
@@ -4947,9 +4901,9 @@ These are defined by == Symbols List == -[\theta\right)$ {\displaystyle P\left(x;\alpha}] : Regularized gamma function of incomplete gamma function : [\theta\right)$ \theta\right)$] [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
-[http://dlmf.nist.gov/8.2#E1 {\displaystyle \gamma}] : incomplete gamma function {\displaystyle \gamma} : [http://dlmf.nist.gov/8.2#E1 http://dlmf.nist.gov/8.2#E1]
-[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1] +[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:RegGamma {\displaystyle P\left(x;\alpha}] : Regularized gamma function of incomplete gamma function : [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
+[http://dlmf.nist.gov/8.2#E1 {\displaystyle \gamma}] : incomplete gamma function : [http://dlmf.nist.gov/8.2#E1 http://dlmf.nist.gov/8.2#E1]

<< [[Definition:Fibonacci|Definition:Fibonacci]]
[[Main_Page|Main Page]]
@@ -4986,9 +4940,9 @@ These are defined by == Symbols List == -[\theta\right)$ {\displaystyle Q\left(x;\alpha}] : Regularized gamma function of complementary incomplete gamma function : [\theta\right)$ \theta\right)$] [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
-[http://dlmf.nist.gov/8.2#E2 {\displaystyle \Gamma}] : incomplete gamma function {\displaystyle \Gamma} : [http://dlmf.nist.gov/8.2#E2 http://dlmf.nist.gov/8.2#E2]
-[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1] +[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:RegGamma {\displaystyle Q\left(x;\alpha}] : Regularized gamma function of complementary incomplete gamma function : [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
+[http://dlmf.nist.gov/8.2#E2 {\displaystyle \Gamma}] : incomplete gamma function : [http://dlmf.nist.gov/8.2#E2 http://dlmf.nist.gov/8.2#E2]

<< [[Definition:RegGammaP|Definition:RegGammaP]]
[[Main_Page|Main Page]]
@@ -5025,8 +4979,8 @@ These are defined by == Symbols List == -[0 {\displaystyle F\left(x}] : Gaussian distribution : [0 0] [1\right)$ 1\right)$] [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
-[http://dlmf.nist.gov/7.2#E1 {\displaystyle \mathrm{erf}}] : error function : [http://dlmf.nist.gov/7.2#E1 http://dlmf.nist.gov/7.2#E1] +[http://drmf.wmflabs.org/wiki/Definition:GaussDist {\displaystyle F\left(x}] : Gaussian distribution : [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
+[http://dlmf.nist.gov/7.2#E1 {\displaystyle \mathrm{erf}}] : error function : [http://dlmf.nist.gov/7.2#E1 http://dlmf.nist.gov/7.2#E1]

<< [[Definition:RegGammaQ|Definition:RegGammaQ]]
[[Main_Page|Main Page]]
@@ -5063,8 +5017,8 @@ These are defined by == Symbols List == -[0 {\displaystyle Q\left(x}] : Related to Gaussian distribution : [0 0] [1\right)$ 1\right)$] [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
-[http://dlmf.nist.gov/7.2#E2 {\displaystyle \mathrm{erfc}}] : complementary error function : [http://dlmf.nist.gov/7.2#E2 http://dlmf.nist.gov/7.2#E2] +[http://dlmf.nist.gov/7.2#E2 {\displaystyle \mathrm{erfc}}] : complementary error function : [http://dlmf.nist.gov/7.2#E2 http://dlmf.nist.gov/7.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:GaussDist {\displaystyle Q\left(x}] : Related to Gaussian distribution : [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]

<< [[Definition:GaussDistF|Definition:GaussDistF]]
[[Main_Page|Main Page]]
@@ -5101,9 +5055,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta]
+[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{log}}] : principle branch of natural logarithm : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
-[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1] +[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta]

<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
[[Main_Page|Main Page]]
@@ -5140,9 +5094,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta]
[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2] +[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]

<< [[Definition:RamanujanTauTheta|Definition:RamanujanTauTheta]]
[[Main_Page|Main Page]]
@@ -5183,8 +5137,8 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
[http://drmf.wmflabs.org/wiki/Definition:Sinc {\displaystyle \mathrm{sinc}{x}}] : sine cardinal function : [http://drmf.wmflabs.org/wiki/Definition:Sinc http://drmf.wmflabs.org/wiki/Definition:Sinc]
-[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
<< [[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]]
[[Main_Page|Main Page]]
diff --git a/main_page/src/main.py b/main_page/src/main.py index 9c2e117..2e4e42e 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -2,9 +2,11 @@ __status__ = "Development" __credits__ = ["Joon Bang", "Azeem Mohammed"] +import csv import time import mod_main -import symbols_list + +GLOSSARY_LOCATION = "new.Glossary.csv" def generate_html(tag_name, options, text, spacing=True): @@ -79,6 +81,97 @@ def update_headers(text, definitions): return output +def get_macro_name(macro): + macro_name = "" + for ch in macro: + if ch.isalpha(): + macro_name += ch + elif ch in ["@", "{", "["]: + break + + return macro_name + + +def get_symbols(text, glossary): + symbols = list() + for keyword in list(glossary): + for space in ["{", "@", "[", "\\", " "]: + if "\\" + keyword + space in text: + symbols.append(keyword) + + span_text = "" + for symbol in set(sorted(symbols)): + t = "" + link = glossary[symbol][-2] + meaning = list(glossary[symbol][1]) + + count = 0 + for i, ch in enumerate(meaning): + if ch == "$" and count % 2 == 0: + meaning[i] = "[" + link + " {\\displaystyle " + appearance + \ + "}] : " + ''.join(meaning) + " : [" + link + " " + link + "]
\n" + + return span_text[:-1] + + +def add_symbols_data(data): + glossary = dict() + with open(GLOSSARY_LOCATION, "rb") as csv_file: + glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') + for row in glossary_file: + glossary[get_macro_name(row[0])] = row + + pages = data[data.find("drmf_bof"):].split("drmf_eof")[:-1] + + print "Pages: " + str(len(pages)) + + result = "" + for page in pages: + # skip over non-definition pages + if "'''Definition:" not in page: + to_write = page + "drmf_eof\n" + result += to_write + continue + + page = page.replace("drmf_bof", "").strip("\n") + add_spacing = False + sflag2 = False + # remove data (to be regenerated later) + if page.find("== Symbols List ==") != -1: + to_write = page.split("== Symbols List ==")[0] + page = to_write + else: + add_spacing = True + if page.find("drmf_foot") == -1: + to_write = page + sflag2 = True + else: + to_write = page.split("
")[0] + page = to_write + + to_write = "drmf_bof\n" + to_write + if add_spacing: + to_write += "\n\n" + + to_write += "== Symbols List ==\n\n" + to_parse = page.split("defined by")[1].split("
")[0] + to_write += get_symbols(to_parse, glossary) + to_write += "\n
\ndrmf_eof\n\n" + if sflag2: + to_write += "\n" + result += to_write + + return result + + def create_backup(): with open("main_page.mmd") as current: local_time = time.asctime(time.localtime(time.time())).split() @@ -96,12 +189,12 @@ def main(): text = main_page.read() text, definitions = update_macro_list(text) - text = symbols_list.main(text) + text = add_symbols_data(text) text = update_headers(text, definitions) text = mod_main.main(text) # only create backup if program did not crash - create_backup() + # create_backup() with open("main_page.mmd", "w") as main_page: main_page.write(text) diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py index 196e22e..b44936c 100644 --- a/main_page/src/symbols_list.py +++ b/main_page/src/symbols_list.py @@ -10,10 +10,11 @@ def get_symbols(line): # (str) -> list """Gets all symbols on a line.""" + if line == "": + return [] + line = line.replace("\n", " ") sym_list = [] - if line == "": - return sym_list symbol = "" sym_flag = False @@ -26,14 +27,16 @@ def get_symbols(line): count += 1 arg_flag = True - if ch not in ["}", "]"] and arg_flag or ch.isalpha(): + if ch not in ["}", "]"] and (arg_flag or ch.isalpha()): symbol += ch + elif ch not in ["}", "]"]: sym_flag = False arg_flag = False sym_list.append(symbol) sym_list += (get_symbols(symbol)) symbol = "" + else: count -= 1 symbol += ch @@ -41,7 +44,7 @@ def get_symbols(line): p = "" else: p = line[i + 1] - if count == 0 and p != "{" and p != "[" and p != "@": + if count == 0 and p not in ["{", "[", "@"]: sym_flag = False sym_list.append(symbol) sym_list += (get_symbols(symbol)) @@ -92,6 +95,7 @@ def main(data): to_write += "== Symbols List ==\n\n" symbols = get_symbols((' '.join(page.split("\n")) + " ").replace("\n", " ")) + print symbols new_symbols = [] From 3584993b855f237f7fbceaf81619a4bc4d14d9fc Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 9 Aug 2016 15:27:19 -0400 Subject: [PATCH 202/402] Add tests for remove_inactive, remove_conditionalexpression, and remove_symbol functions in MathematicaToLaTeX --- eCF/data/IdentitiesTest.m | 4 +- eCF/src/MathematicaToLaTeX.py | 128 +++++++++++++++-------------- eCF/test/test_removal_functions.py | 50 +++++++++++ 3 files changed, 119 insertions(+), 63 deletions(-) diff --git a/eCF/data/IdentitiesTest.m b/eCF/data/IdentitiesTest.m index 64e8ed4..512c469 100644 --- a/eCF/data/IdentitiesTest.m +++ b/eCF/data/IdentitiesTest.m @@ -5,4 +5,6 @@ ConditionalExpression[Sinc[z] == (1 + Inactive[ContinuedFractionK][z^2/(2*k*(1 + 2*k)), 1 - z^2/(2*k*(1 + 2*k)), {k, 1, Infinity}])^(-1), Element[z, Complexes]] (* {"RiemannSiegelTheta", 1}*) -ConditionalExpression[RiemannSiegelTheta[z] == -(z*(Log[Pi] - PolyGamma[0, 1/4]))/2 - (z^3*PolyGamma[2, 1/4])/(48*(1 + Inactive[ContinuedFractionK][(z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), 1 - (z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), {k, 1, Infinity}])), Element[z, Complexes] && Abs[z] < 1/2] \ No newline at end of file +ConditionalExpression[RiemannSiegelTheta[z] == -(z*(Log[Pi] - PolyGamma[0, 1/4]))/2 - (z^3*PolyGamma[2, 1/4])/(48*(1 + Inactive[ContinuedFractionK][(z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), 1 - (z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), {k, 1, Infinity}])), Element[z, Complexes] && Abs[z] < 1/2] + +testInactive[testInactive[test]test]test \ No newline at end of file diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index f87b17d..7cbbe62 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -41,8 +41,9 @@ def find_surrounding(line, function, ex=(), start=0): - """finds the indices of the beginning and end of a function; this is the - main function that powers the converter. + """ + Finds the indices of the beginning and end of a function; this is the main + function that powers the converter. """ positions = [0, 0] line = line[start:] @@ -51,14 +52,13 @@ def find_surrounding(line, function, ex=(), start=0): if ex != '' and len(ex) >= 1: for e in ex: if (line.find(e) != -1 and - line.find(e) <= positions[0] and - line.find(e) + len(e) >= positions[0] + len( + line.find(e) <= positions[0] and + line.find(e) + len(e) >= positions[0] + len( function)): return [line.find(e) + len(e) + start, line.find(e) + len(e) + start] count = 0 - for j in range(positions[0] + len(function), len(line) + 1): if j == len(line) and count == 0: positions[1] = positions[0] @@ -79,8 +79,9 @@ def find_surrounding(line, function, ex=(), start=0): def arg_split(line, sep): - """Does the same thing as 'split', but does not split when the separator - is inside parentheses, brackets, or braces. Useful for nested statements. + """ + Does the same thing as 'split', but does not split when the separator is + inside parentheses, brackets, or braces. Useful for nested statements. """ l = list('([{') r = list(')]}') @@ -110,13 +111,14 @@ def arg_split(line, sep): def master_function(line, params): - """A master function, reads in the conversion templates from the - 'functions' file and performs the conversion. + """ + A master function, reads in the conversion templates from the 'functions' + file and performs the conversion. """ m, l, sep, ex = params[:5] sep = [i.split('-') for i in sep] - for _ in range(0, line.count(m)): + for _ in range(line.count(m)): try: pos except NameError: @@ -155,10 +157,8 @@ def master_function(line, params): def remove_inactive(line): - """Removes the 'Inactive' statement and its surrounding brakets, like in - the beginning of 'ConditionalExpression.' - """ - for _ in range(0, line.count('Inactive')): + """Removes 'Inactive' and its surrounding brackets.""" + for _ in range(line.count('Inactive')): pos = find_surrounding(line, 'Inactive') if pos[0] != pos[1]: line = line[:pos[0]] + line[pos[0] + 9:pos[1] - 1] + line[pos[1]:] @@ -167,8 +167,8 @@ def remove_inactive(line): def remove_conditionalexpression(line): - """Removes 'ConditionalExpression' and its surrounding brakets.""" - for _ in range(0, line.count('ConditionalExpression')): + """Removes 'ConditionalExpression' and its surrounding brackets.""" + for _ in range(line.count('ConditionalExpression')): pos = find_surrounding(line, 'ConditionalExpression') if pos[0] != pos[1]: line = line[:pos[0]] + line[pos[0] + 22:pos[1] - 1] + line[pos[1]:] @@ -177,8 +177,8 @@ def remove_conditionalexpression(line): def remove_symbol(line): - """Removes 'Symbol' and its surrounding brakets.""" - for _ in range(0, line.count('Symbol')): + """Removes 'Symbol' and its surrounding brackets.""" + for _ in range(line.count('Symbol')): pos = find_surrounding(line, 'Symbol') if pos[0] != pos[1]: line = line[:pos[0]] + line[pos[0] + 7:pos[1] - 1] + line[pos[1]:] @@ -187,10 +187,11 @@ def remove_symbol(line): def beta(line): - """Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, + """ + Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. """ - for _ in range(0, line.count('Beta')): + for _ in range(line.count('Beta')): try: pos except NameError: @@ -256,10 +257,9 @@ def carat(line): def cfk(line): """ - Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX - macro. + Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX macro. """ - for _ in range(0, line.count('ContinuedFractionK')): + for _ in range(line.count('ContinuedFractionK')): try: pos except NameError: @@ -289,7 +289,7 @@ def gamma(line): Converts Mathematica's 'Gamma' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. """ - for _ in range(0, line.count('Gamma')): + for _ in range(line.count('Gamma')): try: pos except NameError: @@ -326,10 +326,9 @@ def gamma(line): def integrate(line): """ - Converts Mathematica's 'Integrate' function to - the equivalent LaTeX macro. + Converts Mathematica's 'Integrate' function to the equivalent LaTeX macro. """ - for _ in range(0, line.count('Integrate')): + for _ in range(line.count('Integrate')): try: pos except NameError: @@ -350,11 +349,11 @@ def integrate(line): def legendrep(line): - """Converts Mathematica's 'LegendreP' function to the equivalent LaTeX - macro, taking into account the variations for the different number of - arguments. """ - for _ in range(0, line.count('LegendreP')): + Converts Mathematica's 'LegendreP' function to the equivalent LaTeX macro, + taking into account the variations for the different number of arguments. + """ + for _ in range(line.count('LegendreP')): try: pos except NameError: @@ -383,11 +382,11 @@ def legendrep(line): def legendreq(line): - """Converts Mathematica's 'LegendreQ' function to the equivalent LaTeX - macro, taking into account the variations for the different number of - arguments. """ - for _ in range(0, line.count('LegendreQ')): + Converts Mathematica's 'LegendreQ' function to the equivalent LaTeX macro, + taking into account the variations for the different number of arguments. + """ + for _ in range(line.count('LegendreQ')): try: pos except NameError: @@ -416,11 +415,11 @@ def legendreq(line): def polyeulergamma(line): - """Converts Mathematica's 'Polygamma' function to the equivalent LaTeX - macro, taking into account the variations for the different number of - arguments. """ - for _ in range(0, line.count('PolyGamma')): + Converts Mathematica's 'Polygamma' function to the equivalent LaTeX macro, + taking into account the variations for the different number of arguments. + """ + for _ in range(line.count('PolyGamma')): try: pos except NameError: @@ -443,10 +442,10 @@ def polyeulergamma(line): def product(line): - """Converts Mathematica's product sum function to the equivalent LaTeX - macro. """ - for _ in range(0, line.count('Product')): + Converts Mathematica's product sum function to the equivalent LaTeX macro. + """ + for _ in range(line.count('Product')): try: pos except NameError: @@ -467,10 +466,11 @@ def product(line): def qpochhammer(line): - """Converts Mathematica's 'QPochhammer' function to the equivalent LaTeX + """ + Converts Mathematica's 'QPochhammer' function to the equivalent LaTeX macro. """ - for _ in range(0, line.count('QPochhammer')): + for _ in range(line.count('QPochhammer')): try: pos except NameError: @@ -497,10 +497,10 @@ def qpochhammer(line): def summation(line): - """Converts Mathematica's summation function to the equivalent LaTeX - macro. """ - for _ in range(0, line.count('Sum')): + Converts Mathematica's summation function to the equivalent LaTeX macro. + """ + for _ in range(line.count('Sum')): try: pos except NameError: @@ -521,8 +521,9 @@ def summation(line): def constraint(line): - """Converts Mathematica's 'Element', 'NotElement', and 'Inequality' - functions to LaTeX formatting using \constraint{}. + """ + Converts Mathematica's 'Element', 'NotElement', and 'Inequality' functions + to LaTeX formatting using \constraint{}. """ sections = arg_split(line, ',') @@ -550,7 +551,7 @@ def constraint(line): latex_elements = ('Complex', 'Whole', 'NatNumber', 'Integer', 'Irrational', 'Real', 'Rational', 'Prime') - for _ in range(0, line.count('Element')): + for _ in range(line.count('Element')): try: pos1 @@ -567,7 +568,7 @@ def constraint(line): line = (line[:pos1[0]] + sep[0].replace('|', ',') + ' \\in \\' + sep[1] + line[pos1[1]:]) - for _ in range(0, line.count('NotElement')): + for _ in range(line.count('NotElement')): try: pos2 @@ -584,7 +585,7 @@ def constraint(line): line = (line[:pos2[0]] + sep[0].replace('|', ',') + ' \\notin \\' + sep[1] + line[pos2[1]:]) - for _ in range(0, line.count('Inequality')): + for _ in range(line.count('Inequality')): pos3 = find_surrounding(line, 'Inequality') line = (line[:pos3[0]] + ''.join(line[pos3[0] + 11:pos3[1] - 1].split(',')) + @@ -594,7 +595,8 @@ def constraint(line): def convert_fraction(line): - """Converts Mathematica fractions, which are only '/', to LaTeX + """ + Converts Mathematica fractions, which are only '/', to LaTeX \frac{}{}-ions. """ l = list('([{') @@ -641,7 +643,7 @@ def convert_fraction(line): # incorrectly change it to " )( / )( ", but there are no cases of # this happening yet, so I have not gone to fixing this yet. if (line[j + 1] == '(' and line[i - 1] == ')' and - line[i + 1] == '(' and line[k] == ')'): + line[i + 1] == '(' and line[k] == ')'): # ()/() line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + line[i + 2:k] + '}' + line[k + 1:]) @@ -665,7 +667,7 @@ def convert_fraction(line): def piecewise(line): """Converts Mathematica's piecewise function to LaTeX, using 'cases'.""" - for _ in range(0, line.count('Piecewise')): + for _ in range(line.count('Piecewise')): try: pos except NameError: @@ -729,8 +731,9 @@ def replace_operators(line): def replace_vars(line): - """Replaces the easy to convert variables in Mathematica to - its equivalent LaTeX code in the dictionary 'symbols'. + """ + Replaces the easy to convert variables in Mathematica to its equivalent + LaTeX code in the dictionary 'symbols'. """ for word in symbols: if symbols[word][0] == ' ': @@ -744,19 +747,20 @@ def replace_vars(line): def main(): - """Opens Mathematica file with identities and puts converted lines into + """ + Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ test = True with open(os.path.dirname(os.path.realpath(__file__)) + - '/../data/newIdentities.tex', 'w') as latex: + '/../data/newIdentities.tex', 'w') as latex: if test: to_open = 'IdentitiesTest.m' else: to_open = 'Identities.m' with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/' + - to_open, 'r') as mathematica: + to_open, 'r') as mathematica: latex.write('\n\\documentclass{article}\n\n' '\\usepackage{amsmath}\n' @@ -833,8 +837,8 @@ def main(): latex.write('\n\n\\end{document}\n') -with open(os.path.dirname(os.path.realpath(__file__)) + \ - '/../data/functions') as functions: +with open(os.path.dirname(os.path.realpath(__file__)) + + '/../data/functions') as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line in functions.read().split('\n') if (line != '' and '#' not in line)) diff --git a/eCF/test/test_removal_functions.py b/eCF/test/test_removal_functions.py index 3945a15..1803517 100644 --- a/eCF/test/test_removal_functions.py +++ b/eCF/test/test_removal_functions.py @@ -7,3 +7,53 @@ from MathematicaToLaTeX import remove_conditionalexpression from MathematicaToLaTeX import remove_symbol +BEFORE1 = ('Inactive[test]', + 'testInactive[test]test', + 'Inactive[testInactive[test]test]', + 'testInactive[testInactive[test]test]test') +BEFORE2 = ('ConditionalExpression[test]', + 'testConditionalExpression[test]test', + 'ConditionalExpression[testConditionalExpression[test]test]', + 'testConditionalExpression[testConditionalExpression[test]test]test') +BEFORE3 = ('Symbol[test]', + 'testSymbol[test]test', + 'Symbol[testSymbol[test]test]', + 'testSymbol[testSymbol[test]test]test') +AFTER = ('test', + 'testtesttest', + 'testtesttest', + 'testtesttesttesttest') + +class TestRemovalFunctions(TestCase): + + def test_single(self): + self.assertEqual(remove_inactive( + BEFORE1[0]), AFTER[0]) + self.assertEqual(remove_conditionalexpression( + BEFORE2[0]), AFTER[0]) + self.assertEqual(remove_symbol( + BEFORE3[0]), AFTER[0]) + + def test_single_withsurrounding(self): + self.assertEqual(remove_inactive( + BEFORE1[1]), AFTER[1]) + self.assertEqual(remove_conditionalexpression( + BEFORE2[1]), AFTER[1]) + self.assertEqual(remove_symbol( + BEFORE3[1]), AFTER[1]) + + def test_nested_inactive(self): + self.assertEqual(remove_inactive( + BEFORE1[2]), AFTER[2]) + self.assertEqual(remove_conditionalexpression( + BEFORE2[2]), AFTER[2]) + self.assertEqual(remove_symbol( + BEFORE3[2]), AFTER[2]) + + def test_nested_withsurrounding(self): + self.assertEqual(remove_inactive( + BEFORE1[3]), AFTER[3]) + self.assertEqual(remove_conditionalexpression( + BEFORE2[3]), AFTER[3]) + self.assertEqual(remove_symbol( + BEFORE3[3]), AFTER[3]) From c3cb6bd8d9e680786253d5300debf28f99cc7d00 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 9 Aug 2016 15:45:41 -0400 Subject: [PATCH 203/402] Add another test for arg_split function --- eCF/test/test_arg_split.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eCF/test/test_arg_split.py b/eCF/test/test_arg_split.py index 410c58d..a5a4961 100644 --- a/eCF/test/test_arg_split.py +++ b/eCF/test/test_arg_split.py @@ -28,3 +28,6 @@ def test_combined(self): before = 'a,(b,c),,[d,e],,,{fg,hi}' after = ['a', '(b,c)', '', '[d,e]', '', '', '{fg,hi}'] self.assertEqual(arg_split(before, ','), after) + + def test_empty(self): + self.assertEqual(arg_split('noseperator', ','), ['noseperator']) From 444169863e56c8ed2b8bce27e7f8cfead4179745 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 9 Aug 2016 16:07:05 -0400 Subject: [PATCH 204/402] Remove a few unused lines in MathematicaToLaTeX.py --- eCF/src/MathematicaToLaTeX.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 7cbbe62..0b634fb 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -91,10 +91,6 @@ def arg_split(line, sep): line = line + sep while i != end: - if i == end: - args.append(line) - break - if line[i] in l: count += 1 if line[i] in r: @@ -751,7 +747,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = True + test = False with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: From 015b40016a0a1b71915540da87a3ba92a2082c50 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 9 Aug 2016 16:40:11 -0400 Subject: [PATCH 205/402] Change string format from using the old percent symbol to the new and preferred braces --- eCF/src/MathematicaToLaTeX.py | 92 +++++++++++++++++------------------ 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 0b634fb..fa7e780 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -202,11 +202,11 @@ def beta(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 5:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\EulerBeta@{%s}{%s}' - % (args[0], args[1]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\EulerBeta@{{0}}{{1}}' + .format(args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\IncBeta{%s}@{%s}{%s}' - % (args[0], args[1], args[2]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\IncBeta{{0}}@{{1}}{{2}}' + .format(args[0], args[1], args[2]) + line[pos[1]:]) return line @@ -269,13 +269,13 @@ def cfk(line): args = arg_split(line[pos[0] + 19:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') if len(args) == 3: - line = (line[:pos[0]] + '\\CFK{%s}{%s}{\\infty}@{%s}{%s}' - % (moreargs[0], moreargs[1], args[0], args[1]) + - line[pos[1]:]) + line = (line[:pos[0]] + '\\CFK{{0}}{{1}}{2}@{{3}}{{4}}' + .format(moreargs[0], moreargs[1],'{\\infty}', + args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\CFK{%s}{%s}{\\infty}@{1}{%s}' - % (moreargs[0], moreargs[1], args[0]) + - line[pos[1]:]) + line = (line[:pos[0]] + '\\CFK{{0}}{{1}}{2}@{3}{{4}}' + .format(moreargs[0], moreargs[1], '{\\infty}', '{1}', + args[0]) + line[pos[1]:]) return line @@ -306,15 +306,15 @@ def gamma(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 6:pos[1] - 1], ',') if len(args) == 1: - line = (line[:pos[0]] + '\\EulerGamma@{%s}' - % args[0] + line[pos[1]:]) + line = (line[:pos[0]] + '\\EulerGamma@{{0}}' + .format(args[0]) + line[pos[1]:]) elif len(args) == 2: - line = (line[:pos[0]] + '\\IncGamma@{%s}{%s}' - % (args[0], args[1]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\IncGamma@{{0}}{{1}}' + .format(args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\Incgamma@{%s}{%s} - ' - % (args[0], args[1]) + '\\Incgamma@{%s}{%s}' - % (args[0], args[2]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\Incgamma@{{0}}{{1}} - ' + .format(args[0], args[1]) + '\\Incgamma@{{0}}{{1}}' + .format(args[0], args[2]) + line[pos[1]:]) return line.replace('Incgamma', 'IncGamma') # needed or the addition of an 'IncGamma' would screw up the rest @@ -337,8 +337,8 @@ def integrate(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') moreargs = arg_split(args[1][1:-1], ',') - line = (line[:pos[0]] + '\\int_{%s}^{%s}{%s}d{%s}' - % (moreargs[1], moreargs[2], args[0], moreargs[0]) + + line = (line[:pos[0]] + '\\int_{{1}}^{{2}}{{3}}d{{0}}' + .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) return line @@ -362,17 +362,17 @@ def legendrep(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\LegendreP{%s}@{%s}' - % (args[0], args[1]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\LegendreP{{0}}@{{1}}' + .format(args[0], args[1]) + line[pos[1]:]) else: # len(args) == 4 if args[2] in ('1', '2'): - line = (line[:pos[0]] + '\\FerrersP[%s]{%s}@{%s}' - % (args[1], args[0], args[3]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\FerrersP[{1}]{{0}}@{{2}}' + .format(args[0], args[1], args[3]) + line[pos[1]:]) else: # args[2] == 3 - line = (line[:pos[0]] + '\\LegendreP[%s]{%s}@{%s}' - % (args[1], args[0], args[3]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\LegendreP[{1}]{{0}}@{{2}}' + .format(args[0], args[1], args[3]) + line[pos[1]:]) return line @@ -395,17 +395,17 @@ def legendreq(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\LegendreQ{%s}@{%s}' - % (args[0], args[1]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\LegendreQ{{0}}@{{1}}' + .format(args[0], args[1]) + line[pos[1]:]) else: # len(args) == 4 if args[2] in ('1', '2'): - line = (line[:pos[0]] + '\\FerrersQ[%s]{%s}@{%s}' - % (args[1], args[0], args[3]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\FerrersQ[{1}]{{0}}@{{2}}' + .format(args[0], args[1], args[3]) + line[pos[1]:]) else: # args[2] == 3 - line = (line[:pos[0]] + '\\LegendreQ[%s]{%s}@{%s}' - % (args[1], args[0], args[3]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\LegendreQ[{1}]{{0}}@{{2}}' + .format(args[0], args[1], args[3]) + line[pos[1]:]) return line @@ -428,10 +428,10 @@ def polyeulergamma(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\polygamma{%s}@{%s}' - % (args[0], args[1]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\polygamma{{0}}@{{1}}' + .format(args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\digamma@{%s}' + line = (line[:pos[0]] + '\\digamma@{{0}}' % args[0] + '}' + line[pos[1]:]) return line @@ -454,8 +454,8 @@ def product(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 8:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') - line = (line[:pos[0]] + '\\Prod{%s}{%s}{%s}@{%s}' - % (moreargs[0], moreargs[1], moreargs[2], args[0]) + + line = (line[:pos[0]] + '\\Prod{{0}}{{1}}{{2}}@{{3}}' + .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) return line @@ -480,14 +480,14 @@ def qpochhammer(line): args = arg_split(line[pos[0] + 12:pos[1] - 1], ',') if len(args) == 1: - line = (line[:pos[0]] + '\\qPochhammer{%s}{%s}{\infty}' - % (args[0], args[0]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\qPochhammer{{0}}{{1}}{2}' + .format(args[0], args[0], '{\\infty}') + line[pos[1]:]) elif len(args) == 2: - line = (line[:pos[0]] + '\\qPochhammer{%s}{%s}{\infty}' - % (args[0], args[1]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\qPochhammer{{0}}{{1}}{2}' + .format(args[0], args[1], '{\\infty}') + line[pos[1]:]) else: # len(args) = 3 - line = (line[:pos[0]] + '\\qPochhammer{%s}{%s}{%s}' - % (args[0], args[1], args[2]) + line[pos[1]:]) + line = (line[:pos[0]] + '\\qPochhammer{{0}}{{1}}{{2}}' + .format(args[0], args[1], args[2]) + line[pos[1]:]) return line @@ -509,8 +509,8 @@ def summation(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 4:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') - line = (line[:pos[0]] + '\\Sum{%s}{%s}{%s}@{%s}' - % (moreargs[0], moreargs[1], moreargs[2], args[0]) + + line = (line[:pos[0]] + '\\Sum{{0}}{{1}}{{2}}@{{3}}' + .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) return line @@ -528,7 +528,7 @@ def constraint(line): constraints = arg_split(sections[-1].replace('&&', '&'), '&') - for i in range(len(constraints)): + for i, item, in enumerate(constraints): if i == 0: constraints[i] = ('\n% \\constraint{$' + constraints[i].replace('&', ' \\land ')) @@ -839,7 +839,7 @@ def main(): in functions.read().split('\n') if (line != '' and '#' not in line)) -for index in range(len(FUNCTION_CONVERSIONS)): +for index, item in enumerate(FUNCTION_CONVERSIONS): FUNCTION_CONVERSIONS[index][2] = \ tuple(arg_split(FUNCTION_CONVERSIONS[index][2][1:-1], ',')) From b3e1f50d6d9f91f290e25b90a7872dfca4dc83da Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 9 Aug 2016 16:41:40 -0400 Subject: [PATCH 206/402] Fix one line to use format --- eCF/src/MathematicaToLaTeX.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index fa7e780..dc9b16f 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -432,7 +432,7 @@ def polyeulergamma(line): .format(args[0], args[1]) + line[pos[1]:]) else: line = (line[:pos[0]] + '\\digamma@{{0}}' - % args[0] + '}' + line[pos[1]:]) + .format(args[0]) + '}' + line[pos[1]:]) return line From 681a22c67c99b3e57598d3361e727408770e4657 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 9 Aug 2016 16:43:25 -0400 Subject: [PATCH 207/402] Avoid unnecessary name repetition in equality comparison --- eCF/src/MathematicaToLaTeX.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index dc9b16f..de5e4a7 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -134,7 +134,7 @@ def master_function(line, params): args[0], args[1] = args[1], args[0] if m == 'LaguerreL' and len(args) == 3: args[0], args[1] = args[1], args[0] - if m == 'HypergeometricPFQ' or m == 'QHypergeometricPFQ': + if m in ('HypergeometricPFQ', 'QHypergeometricPFQ'): if args[1] == '{}': args.insert(0, 0) else: From b7dc5e03c5f993639d087a32e8fae7b9c7da3aa3 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 10 Aug 2016 10:00:46 -0400 Subject: [PATCH 208/402] Add test cases for Beta function --- eCF/src/MathematicaToLaTeX.py | 138 ++++++++++-------- eCF/test/test_arg_split.py | 2 +- eCF/test/test_removal_functions.py | 2 + .../test_single_macro_conversion_functions.py | 77 ++++++++++ 4 files changed, 159 insertions(+), 60 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index de5e4a7..fbf3211 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -144,9 +144,10 @@ def master_function(line, params): else: args.insert(0, len(arg_split(args[1][1:-1], ','))) - line = (line[:pos[0]] + l + - '%s'.join(sep[[len(y) for y in sep]. - index(len(args) + 1)]) + line[pos[1]:]) + line = (line[:pos[0]] + l + '%s'.join(sep[[len(y) for y in sep] + .index(len(args) + 1)]) + + line[pos[1]:]) + line %= tuple(args) return line @@ -182,35 +183,6 @@ def remove_symbol(line): return line -def beta(line): - """ - Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, - taking into account the variations for the different number of arguments. - """ - for _ in range(line.count('Beta')): - try: - pos - except NameError: - pos = find_surrounding(line, 'Beta', - ex=('BetaRegularized', '[Beta]')) - else: - pos = find_surrounding(line, 'Beta', - ex=('BetaRegularized', '[Beta]'), - start=pos[0] + (0, 9) - [(1, 0).index(pos[1] == pos[0])]) - - if pos[0] != pos[1]: - args = arg_split(line[pos[0] + 5:pos[1] - 1], ',') - if len(args) == 2: - line = (line[:pos[0]] + '\\EulerBeta@{{0}}{{1}}' - .format(args[0], args[1]) + line[pos[1]:]) - else: - line = (line[:pos[0]] + '\\IncBeta{{0}}@{{1}}{{2}}' - .format(args[0], args[1], args[2]) + line[pos[1]:]) - - return line - - def carat(line): """ Converts carats ('^') to ones with braces instead of parentheses. e.g: @@ -251,6 +223,35 @@ def carat(line): return line +def beta(line): + """ + Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, + taking into account the variations for the different number of arguments. + """ + for _ in range(line.count('Beta')): + try: + pos + except NameError: + pos = find_surrounding(line, 'Beta', + ex=('BetaRegularized', '[Beta]')) + else: + pos = find_surrounding(line, 'Beta', + ex=('BetaRegularized', '[Beta]'), + start=pos[0] + (0, 9) + [(1, 0).index(pos[1] == pos[0])]) + + if pos[0] != pos[1]: + args = arg_split(line[pos[0] + 5:pos[1] - 1], ',') + if len(args) == 2: + line = (line[:pos[0]] + '\\EulerBeta@{{{0}}}{{{1}}}' + .format(args[0], args[1]) + line[pos[1]:]) + else: + line = (line[:pos[0]] + '\\IncBeta{{{0}}}@{{{1}}}{{{2}}}' + .format(args[0], args[1], args[2]) + line[pos[1]:]) + + return line + + def cfk(line): """ Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX macro. @@ -269,11 +270,11 @@ def cfk(line): args = arg_split(line[pos[0] + 19:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') if len(args) == 3: - line = (line[:pos[0]] + '\\CFK{{0}}{{1}}{2}@{{3}}{{4}}' + line = (line[:pos[0]] + '\\CFK{{{0}}}{{{1}}}{2}@{{{3}}}{{{4}}}' .format(moreargs[0], moreargs[1],'{\\infty}', args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\CFK{{0}}{{1}}{2}@{3}{{4}}' + line = (line[:pos[0]] + '\\CFK{{{0}}}{{{1}}}{2}@{3}{{{4}}}' .format(moreargs[0], moreargs[1], '{\\infty}', '{1}', args[0]) + line[pos[1]:]) @@ -306,14 +307,14 @@ def gamma(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 6:pos[1] - 1], ',') if len(args) == 1: - line = (line[:pos[0]] + '\\EulerGamma@{{0}}' + line = (line[:pos[0]] + '\\EulerGamma@{{{0}}}' .format(args[0]) + line[pos[1]:]) elif len(args) == 2: - line = (line[:pos[0]] + '\\IncGamma@{{0}}{{1}}' + line = (line[:pos[0]] + '\\IncGamma@{{{0}}}{{{1}}}' .format(args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\Incgamma@{{0}}{{1}} - ' - .format(args[0], args[1]) + '\\Incgamma@{{0}}{{1}}' + line = (line[:pos[0]] + '\\Incgamma@{{{0}}}{{{1}}} - ' + .format(args[0], args[1]) + '\\Incgamma@{{{0}}}{{{1}}}' .format(args[0], args[2]) + line[pos[1]:]) return line.replace('Incgamma', 'IncGamma') @@ -337,7 +338,7 @@ def integrate(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') moreargs = arg_split(args[1][1:-1], ',') - line = (line[:pos[0]] + '\\int_{{1}}^{{2}}{{3}}d{{0}}' + line = (line[:pos[0]] + '\\int_{{{1}}}^{{{2}}}{{{3}}}d{{{0}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) @@ -362,16 +363,16 @@ def legendrep(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\LegendreP{{0}}@{{1}}' + line = (line[:pos[0]] + '\\LegendreP{{{0}}}@{{{1}}}' .format(args[0], args[1]) + line[pos[1]:]) else: # len(args) == 4 if args[2] in ('1', '2'): - line = (line[:pos[0]] + '\\FerrersP[{1}]{{0}}@{{2}}' + line = (line[:pos[0]] + '\\FerrersP[{1}]{{{0}}}@{{{2}}}' .format(args[0], args[1], args[3]) + line[pos[1]:]) else: # args[2] == 3 - line = (line[:pos[0]] + '\\LegendreP[{1}]{{0}}@{{2}}' + line = (line[:pos[0]] + '\\LegendreP[{1}]{{{0}}}@{{{2}}}' .format(args[0], args[1], args[3]) + line[pos[1]:]) return line @@ -395,16 +396,16 @@ def legendreq(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\LegendreQ{{0}}@{{1}}' + line = (line[:pos[0]] + '\\LegendreQ{{{0}}}@{{{1}}}' .format(args[0], args[1]) + line[pos[1]:]) else: # len(args) == 4 if args[2] in ('1', '2'): - line = (line[:pos[0]] + '\\FerrersQ[{1}]{{0}}@{{2}}' + line = (line[:pos[0]] + '\\FerrersQ[{1}]{{{0}}}@{{{2}}}' .format(args[0], args[1], args[3]) + line[pos[1]:]) else: # args[2] == 3 - line = (line[:pos[0]] + '\\LegendreQ[{1}]{{0}}@{{2}}' + line = (line[:pos[0]] + '\\LegendreQ[{1}]{{{0}}}@{{{2}}}' .format(args[0], args[1], args[3]) + line[pos[1]:]) return line @@ -428,10 +429,10 @@ def polyeulergamma(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 10:pos[1] - 1], ',') if len(args) == 2: - line = (line[:pos[0]] + '\\polygamma{{0}}@{{1}}' + line = (line[:pos[0]] + '\\polygamma{{{0}}}@{{{1}}}' .format(args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\digamma@{{0}}' + line = (line[:pos[0]] + '\\digamma@{{{0}}}' .format(args[0]) + '}' + line[pos[1]:]) return line @@ -454,7 +455,7 @@ def product(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 8:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') - line = (line[:pos[0]] + '\\Prod{{0}}{{1}}{{2}}@{{3}}' + line = (line[:pos[0]] + '\\Prod{{{0}}}{{{1}}}{{{2}}}@{{{3}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) @@ -480,13 +481,13 @@ def qpochhammer(line): args = arg_split(line[pos[0] + 12:pos[1] - 1], ',') if len(args) == 1: - line = (line[:pos[0]] + '\\qPochhammer{{0}}{{1}}{2}' + line = (line[:pos[0]] + '\\qPochhammer{{{0}}}{{{1}}}{2}' .format(args[0], args[0], '{\\infty}') + line[pos[1]:]) elif len(args) == 2: - line = (line[:pos[0]] + '\\qPochhammer{{0}}{{1}}{2}' + line = (line[:pos[0]] + '\\qPochhammer{{{0}}}{{{1}}}{2}' .format(args[0], args[1], '{\\infty}') + line[pos[1]:]) else: # len(args) = 3 - line = (line[:pos[0]] + '\\qPochhammer{{0}}{{1}}{{2}}' + line = (line[:pos[0]] + '\\qPochhammer{{{0}}}{{{1}}}{{{2}}}' .format(args[0], args[1], args[2]) + line[pos[1]:]) return line @@ -509,7 +510,7 @@ def summation(line): if pos[0] != pos[1]: args = arg_split(line[pos[0] + 4:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') - line = (line[:pos[0]] + '\\Sum{{0}}{{1}}{{2}}@{{3}}' + line = (line[:pos[0]] + '\\Sum{{{0}}}{{{1}}}{{{2}}}@{{{3}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) @@ -639,7 +640,7 @@ def convert_fraction(line): # incorrectly change it to " )( / )( ", but there are no cases of # this happening yet, so I have not gone to fixing this yet. if (line[j + 1] == '(' and line[i - 1] == ')' and - line[i + 1] == '(' and line[k] == ')'): + line[i + 1] == '(' and line[k] == ')'): # ()/() line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + line[i + 2:k] + '}' + line[k + 1:]) @@ -656,6 +657,28 @@ def convert_fraction(line): line = (line[:j + 1] + '\\frac{' + line[j + 1:i] + '}{' + line[i + 1:k + 1] + '}' + line[k + 1:]) + '''if (line[j + 1] == '(' and line[i - 1] == ')' and + line[i + 1] == '(' and line[k] == ')'): + # ()/() + line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + .format(line[:j + 1], line[j + 2:i - 1], + line[i + 2:k], line[k + 1:]) + elif line[j + 1] == '(' and line[i - 1] == ')': + # ()/-- + line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + .format(line[:j + 1], line[j + 2:i - 1], + line[i + 1:k + 1], line[k + 1:]) + elif line[i + 1] == '(' and line[k] == ')': + # --/() + line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + .format(line[:j + 1], line[j + 1:i], + line[i + 2:k], line[k + 1:]) + else: + # --/-- + line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + .format(line[:j + 1], line[j + 1:i], + line[i + 1:k + 1], line[k + 1:])''' + i += 1 return line @@ -798,8 +821,9 @@ def main(): for i in FUNCTION_CONVERSIONS: line = master_function(line, i) - line = beta(line) line = carat(line) + + line = beta(line) line = cfk(line) line = gamma(line) line = integrate(line) @@ -809,17 +833,13 @@ def main(): line = product(line) line = qpochhammer(line) line = summation(line) + line = convert_fraction(line) line = constraint(line) line = piecewise(line) line = replace_operators(line) line = replace_vars(line) - # create macros for: - # Sinc - # RamanujanTauTheta - # RiemannSiegelTheta - print(line) if test and line != '': diff --git a/eCF/test/test_arg_split.py b/eCF/test/test_arg_split.py index a5a4961..51b704f 100644 --- a/eCF/test/test_arg_split.py +++ b/eCF/test/test_arg_split.py @@ -29,5 +29,5 @@ def test_combined(self): after = ['a', '(b,c)', '', '[d,e]', '', '', '{fg,hi}'] self.assertEqual(arg_split(before, ','), after) - def test_empty(self): + def test_none(self): self.assertEqual(arg_split('noseperator', ','), ['noseperator']) diff --git a/eCF/test/test_removal_functions.py b/eCF/test/test_removal_functions.py index 1803517..eefbd21 100644 --- a/eCF/test/test_removal_functions.py +++ b/eCF/test/test_removal_functions.py @@ -7,6 +7,7 @@ from MathematicaToLaTeX import remove_conditionalexpression from MathematicaToLaTeX import remove_symbol + BEFORE1 = ('Inactive[test]', 'testInactive[test]test', 'Inactive[testInactive[test]test]', @@ -24,6 +25,7 @@ 'testtesttest', 'testtesttesttesttest') + class TestRemovalFunctions(TestCase): def test_single(self): diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index 722ba2e..833648d 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -14,3 +14,80 @@ from MathematicaToLaTeX import qpochhammer from MathematicaToLaTeX import summation + +class TestBeta(TestCase): + + def test_single(self): + self.assertEqual(beta('Beta[a,b]'), '\\EulerBeta@{a}{b}') + self.assertEqual(beta('--Beta[a,b]--'), '--\\EulerBeta@{a}{b}--') + self.assertEqual(beta('Beta[z,a,b]'), '\\IncBeta{z}@{a}{b}') + self.assertEqual(beta('--Beta[z,a,b]--'), '--\\IncBeta{z}@{a}{b}--') + self.assertEqual(beta('Beta[a,b]Beta[z,a,b]'), '\\EulerBeta@{a}{b}\\IncBeta{z}@{a}{b}') + self.assertEqual(beta('--Beta[a,b]--Beta[z,a,b]--'), '--\\EulerBeta@{a}{b}--\\IncBeta{z}@{a}{b}--') + + def test_nested(self): + self.assertEqual(beta('Beta[Beta[a,b],Beta[a,b]]'), '\\EulerBeta@{\\EulerBeta@{a}{b}}{\\EulerBeta@{a}{b}}') + self.assertEqual(beta('--Beta[Beta[a,b],Beta[a,b]]--'), '--\\EulerBeta@{\\EulerBeta@{a}{b}}{\\EulerBeta@{a}{b}}--') + self.assertEqual(beta('Beta[Beta[z,a,b],Beta[z,a,b],Beta[z,a,b]]'), '\\IncBeta{\\IncBeta{z}@{a}{b}}@{\\IncBeta{z}@{a}{b}}{\\IncBeta{z}@{a}{b}}') + self.assertEqual(beta('--Beta[Beta[z,a,b],Beta[z,a,b],Beta[z,a,b]]--'), '--\\IncBeta{\\IncBeta{z}@{a}{b}}@{\\IncBeta{z}@{a}{b}}{\\IncBeta{z}@{a}{b}}--') + + def test_exceptions(self): + self.assertEqual(beta('BetaRegularized[z,a,b]'), 'BetaRegularized[z,a,b]') + self.assertEqual(beta('\\[Beta]'), '\\[Beta]') + + def test_none(self): + self.assertEqual(beta('none'), 'none') + + +class TestCFK(TestCase): + + def test_none(self): + self.assertEqual(cfk('none'), 'none') + + +class TestGamma(TestCase): + + def test_none(self): + self.assertEqual(gamma('none'), 'none') + + +class TestIntegrate(TestCase): + + def test_none(self): + self.assertEqual(integrate('none'), 'none') + + +class TestLegendreP(TestCase): + + def test_none(self): + self.assertEqual(legendrep('none'), 'none') + + +class TestLegendreQ(TestCase): + + def test_none(self): + self.assertEqual(legendreq('none'), 'none') + + +class TestPolyEulergamma(TestCase): + + def test_none(self): + self.assertEqual(polyeulergamma('none'), 'none') + + +class TestProduct(TestCase): + + def test_none(self): + self.assertEqual(product('none'), 'none') + + +class TestQPochhammer(TestCase): + + def test_none(self): + self.assertEqual(qpochhammer('none'), 'none') + + +class TestSummation(TestCase): + + def test_none(self): + self.assertEqual(summation('none'), 'none') \ No newline at end of file From f7f953012c0271dfdc16bb58068c1f5f29143239 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 10 Aug 2016 10:16:22 -0400 Subject: [PATCH 209/402] Add test cases for cfk function --- eCF/src/MathematicaToLaTeX.py | 10 ++++++---- eCF/test/test_single_macro_conversion_functions.py | 13 +++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index fbf3211..0adedab 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -270,12 +270,14 @@ def cfk(line): args = arg_split(line[pos[0] + 19:pos[1] - 1], ',') moreargs = arg_split(args[-1][1:-1], ',') if len(args) == 3: - line = (line[:pos[0]] + '\\CFK{{{0}}}{{{1}}}{2}@{{{3}}}{{{4}}}' - .format(moreargs[0], moreargs[1],'{\\infty}', + line = (line[:pos[0]] + + '\\CFK{{{0}}}{{{1}}}{{{2}}}@{{{3}}}{{{4}}}' + .format(moreargs[0], moreargs[1], moreargs[2], args[0], args[1]) + line[pos[1]:]) else: - line = (line[:pos[0]] + '\\CFK{{{0}}}{{{1}}}{2}@{3}{{{4}}}' - .format(moreargs[0], moreargs[1], '{\\infty}', '{1}', + line = (line[:pos[0]] + + '\\CFK{{{0}}}{{{1}}}{{{2}}}@{{1}}{{{3}}}' + .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) return line diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index 833648d..f901f4d 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -41,6 +41,19 @@ def test_none(self): class TestCFK(TestCase): + def test_single(self): + self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{f}{g}') + self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{f}{g}--') + self.assertEqual(cfk('ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{1}{g}') + self.assertEqual(cfk('--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{1}{g}--') + self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{f}{g}\\CFK{i}{imin}{imax}@{1}{g}') + self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{f}{g}--\\CFK{i}{imin}{imax}@{1}{g}--') + + def test_nested(self): + self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{\\CFK{i}{imin}{imax}@{f}{g}}{\\CFK{i}{imin}{imax}@{f}{g}}') + self.assertEqual(cfk('--ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{\\CFK{i}{imin}{imax}@{f}{g}}{\\CFK{i}{imin}{imax}@{f}{g}}--') + self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{1}{\\CFK{i}{imin}{imax}@{1}{g}}') + def test_none(self): self.assertEqual(cfk('none'), 'none') From e088a4f5d8d3e7bf23601bb3f1c4ce4e475d389d Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 10 Aug 2016 13:23:25 -0400 Subject: [PATCH 210/402] Fix symbols list generation --- main_page/main_page.mmd | 578 ++++++++++++++++++++++------------------ main_page/src/main.py | 55 ++-- 2 files changed, 349 insertions(+), 284 deletions(-) diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd index 7484a68..0e87ea3 100644 --- a/main_page/main_page.mmd +++ b/main_page/main_page.mmd @@ -309,8 +309,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:sinc|Definition:sinc]]
[[Main_Page|Main Page]]
@@ -342,9 +342,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -378,8 +378,8 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]]
[[Main_Page|Main Page]]
@@ -423,8 +423,8 @@ and == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail {\displaystyle U_{n}}] : Al-Salam Ismail polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail http://drmf.wmflabs.org/wiki/Definition:AlSalamIsmail]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:AlSalamCarlitzII|Definition:AlSalamCarlitzII]]
[[Main_Page|Main Page]]
@@ -457,7 +457,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:AntiDer {\displaystyle \int f(x){\mathrm d}\!x}] : semantic antiderivative : [http://drmf.wmflabs.org/wiki/Definition:AntiDer http://drmf.wmflabs.org/wiki/Definition:AntiDer]
+[http://drmf.wmflabs.org/wiki/Definition:AntiDer {\displaystyle \int f(x){\mathrm d}\!x}] : semantic antiderivative : [http://drmf.wmflabs.org/wiki/Definition:AntiDer http://drmf.wmflabs.org/wiki/Definition:AntiDer]
<< [[Definition:AlSalamIsmail|Definition:AlSalamIsmail]]
[[Main_Page|Main Page]]
@@ -490,7 +490,7 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1]
-[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]
+[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters {\displaystyle y_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]
<< [[Definition:AntiDer|Definition:AntiDer]]
[[Main_Page|Main Page]]
@@ -522,8 +522,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta {\displaystyle \theta_{n}}] : Bessel polynomial with two parameters : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta]
-[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]
+[http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam {\displaystyle y_{n}}] : Bessel polynomial with two parameters {\displaystyle y_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam http://drmf.wmflabs.org/wiki/Definition:BesselPolyIIparam]
+[http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta {\displaystyle \theta_{n}}] : Bessel polynomial with two parameters {\displaystyle \theta_n} : [http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta http://drmf.wmflabs.org/wiki/Definition:BesselPolyTheta]
<< [[Definition:BesselPolyIIparam|Definition:BesselPolyIIparam]]
[[Main_Page|Main Page]]
@@ -555,8 +555,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big -Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:BesselPolyTheta|Definition:BesselPolyTheta]]
[[Main_Page|Main Page]]
@@ -588,8 +588,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:bigqJacobiIVparam|Definition:bigqJacobiIVparam]]
[[Main_Page|Main Page]]
@@ -621,8 +621,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:bigqLaguerre|Definition:bigqLaguerre]]
[[Main_Page|Main Page]]
@@ -656,8 +656,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT {\displaystyle T_{n}}] : Cigler -Chebyshev polynomial : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT]
-[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big -Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial with four parameters : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam http://drmf.wmflabs.org/wiki/Definition:bigqJacobiIVparam]
+[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT {\displaystyle T_{n}}] : Cigler {\displaystyle q}-Chebyshev polynomial {\displaystyle T} : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyT]
<< [[Definition:bigqLegendre|Definition:bigqLegendre]]
[[Main_Page|Main Page]]
@@ -690,7 +690,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU {\displaystyle U_{n}}] : Cigler -Chebyshev polynomial : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU]
+[http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU {\displaystyle U_{n}}] : Cigler {\displaystyle q}-Chebyshev polynomial {\displaystyle U} : [http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU http://drmf.wmflabs.org/wiki/Definition:CiglerqChebyU]
<< [[Definition:CiglerqChebyT|Definition:CiglerqChebyT]]
[[Main_Page|Main Page]]
@@ -722,8 +722,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:CiglerqChebyU|Definition:CiglerqChebyU]]
[[Main_Page|Main Page]]
@@ -756,9 +757,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:ctsbigqHermite|Definition:ctsbigqHermite]]
[[Main_Page|Main Page]]
@@ -791,9 +793,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:ctsdualqHahn|Definition:ctsdualqHahn]]
[[Main_Page|Main Page]]
@@ -830,7 +833,11 @@ with x=\cos@@{\theta}. == Symbols List == - +[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:ctsqHahn|Definition:ctsqHahn]]
[[Main_Page|Main Page]]
@@ -862,9 +869,10 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:ctsqJacobi|Definition:ctsqJacobi]]
[[Main_Page|Main Page]]
@@ -898,8 +906,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:ctsqLaguerre|Definition:ctsqLaguerre]]
[[Main_Page|Main Page]]
@@ -944,8 +953,10 @@ for m\ne n. == Symbols List == -[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
+[http://drmf.wmflabs.org/wiki/Definition:f {\displaystyle {f}}] : function : [http://drmf.wmflabs.org/wiki/Definition:f http://drmf.wmflabs.org/wiki/Definition:f]
[http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer {\displaystyle S^{(\alpha,\beta)}_{n}}] : Generalized Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer http://drmf.wmflabs.org/wiki/Definition:GenGegenbauer]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
+[http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
<< [[Definition:ctsqLegendre|Definition:ctsqLegendre]]
[[Main_Page|Main Page]]
@@ -995,7 +1006,8 @@ Page 156 of [[Bibliography#CHI|'''CHI''']]. == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:GenHermite {\displaystyle H_n^{\mu}}] : generalized Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:GenHermite http://drmf.wmflabs.org/wiki/Definition:GenHermite]
-[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
+[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27]
<< [[Definition:f|Definition:f]]
[[Main_Page|Main Page]]
@@ -1030,7 +1042,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre {\displaystyle l_{n}}] : Gottlieb-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre http://drmf.wmflabs.org/wiki/Definition:GottliebLaguerre]
-[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9]
+[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9]
<< [[Definition:GenHermite|Definition:GenHermite]]
[[Main_Page|Main Page]]
@@ -1064,9 +1076,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI {\displaystyle J^{(1)}_{q}}] : Jackson -Bessel function 1 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:Int {\displaystyle \int_{a}^{b}f(x){\mathrm d}\!x}] : semantic definite integral : [http://drmf.wmflabs.org/wiki/Definition:Int http://drmf.wmflabs.org/wiki/Definition:Int]
+[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI {\displaystyle J^{(1)}_{q}}] : Jackson {\displaystyle q}-Bessel function 1 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselI]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:GottliebLaguerre|Definition:GottliebLaguerre]]
[[Main_Page|Main Page]]
@@ -1100,9 +1113,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII {\displaystyle J^{(2)}_{q}}] : Jackson -Bessel function 2 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII {\displaystyle J^{(2)}_{q}}] : Jackson {\displaystyle q}-Bessel function 2 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselII]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:Int|Definition:Int]]
[[Main_Page|Main Page]]
@@ -1135,8 +1148,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little -Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII {\displaystyle J^{(3)}_{q}}] : Jackson/Hahn-Exton {\displaystyle q}-Bessel function 3 : [http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII http://drmf.wmflabs.org/wiki/Definition:JacksonqBesselIII]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:JacksonqBesselII|Definition:JacksonqBesselII]]
[[Main_Page|Main Page]]
@@ -1168,8 +1182,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:JacksonqBesselIII|Definition:JacksonqBesselIII]]
[[Main_Page|Main Page]]
@@ -1202,9 +1216,10 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:Lrselection {\displaystyle \left\{\begin{matrix}x\end{matrix}\right\}}] : bracketed generalization of {\displaystyle \pm} : [http://drmf.wmflabs.org/wiki/Definition:Lrselection http://drmf.wmflabs.org/wiki/Definition:Lrselection]
+[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:littleqLegendre|Definition:littleqLegendre]]
[[Main_Page|Main Page]]
@@ -1238,8 +1253,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI {\displaystyle {\widehat U}^{(\alpha)}_{n}}] : monic Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]
+[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI {\displaystyle {\widehat U}^{(\alpha)}_{n}}] : monic Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzI]
<< [[Definition:lrselection|Definition:lrselection]]
[[Main_Page|Main Page]]
@@ -1273,8 +1288,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII {\displaystyle {\widehat V}^{(n)}_{\alpha}}] : monic Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
+[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII {\displaystyle {\widehat V}^{(n)}_{\alpha}}] : monic Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:monicAlSalamCarlitzII]
<< [[Definition:monicAlSalamCarlitzI|Definition:monicAlSalamCarlitzI]]
[[Main_Page|Main Page]]
@@ -1308,8 +1323,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara]
+[http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicAlSalamChihara]
<< [[Definition:monicAlSalamCarlitzII|Definition:monicAlSalamCarlitzII]]
[[Main_Page|Main Page]]
@@ -1344,8 +1359,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.28#E1 {\displaystyle p_{n}}] : Askey-Wilson polynomial : [http://dlmf.nist.gov/18.28#E1 http://dlmf.nist.gov/18.28#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
[http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson {\displaystyle {\widehat p}_{n}}] : monic Askey-Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson http://drmf.wmflabs.org/wiki/Definition:monicAskeyWilson]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicAlSalamChihara|Definition:monicAlSalamChihara]]
[[Main_Page|Main Page]]
@@ -1379,8 +1394,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.34#E1 {\displaystyle y_{n}}] : Bessel polynomial : [http://dlmf.nist.gov/18.34#E1 http://dlmf.nist.gov/18.34#E1]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly {\displaystyle {\widehat y}_{n}}] : monic Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly http://drmf.wmflabs.org/wiki/Definition:monicBesselPoly]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicAskeyWilson|Definition:monicAskeyWilson]]
[[Main_Page|Main Page]]
@@ -1414,9 +1429,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi {\displaystyle {\widehat P}_{n}}] : monic big -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:bigqJacobi {\displaystyle P_{n}}] : big -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobi http://drmf.wmflabs.org/wiki/Definition:bigqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:bigqJacobi {\displaystyle P_{n}}] : big {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqJacobi http://drmf.wmflabs.org/wiki/Definition:bigqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi http://drmf.wmflabs.org/wiki/Definition:monicbigqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicBesselPoly|Definition:monicBesselPoly]]
[[Main_Page|Main Page]]
@@ -1450,9 +1465,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
-[http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre {\displaystyle {\widehat P}_{n}}] : monic big -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre {\displaystyle P_{n}}] : big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre http://drmf.wmflabs.org/wiki/Definition:bigqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicbigqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicbigqJacobi|Definition:monicbigqJacobi]]
[[Main_Page|Main Page]]
@@ -1486,9 +1501,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre {\displaystyle {\widehat P}_{n}}] : monic big -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:bigqLegendre {\displaystyle P_{n}}] : big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:bigqLegendre http://drmf.wmflabs.org/wiki/Definition:bigqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre {\displaystyle {\widehat P}_{n}}] : monic big {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre http://drmf.wmflabs.org/wiki/Definition:monicbigqLegendre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicbigqLaguerre|Definition:monicbigqLaguerre]]
[[Main_Page|Main Page]]
@@ -1524,7 +1539,7 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.19#T1.t1.r11 {\displaystyle C_{n}}] : Charlier polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r11 http://dlmf.nist.gov/18.19#T1.t1.r11]
-[http://drmf.wmflabs.org/wiki/Definition:monicCharlier {\displaystyle {\widehat C}_{n}}] : monic Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicCharlier http://drmf.wmflabs.org/wiki/Definition:monicCharlier]
+[http://drmf.wmflabs.org/wiki/Definition:monicCharlier {\displaystyle {\widehat C}_{n}}] : monic Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicCharlier http://drmf.wmflabs.org/wiki/Definition:monicCharlier]
<< [[Definition:monicbigqLegendre|Definition:monicbigqLegendre]]
[[Main_Page|Main Page]]
@@ -1560,7 +1575,7 @@ for n\ne 1 and \ChebyT{1}@{x}=\monicChebyT{1}@{x}=x. == Symbols List == [http://dlmf.nist.gov/18.3#T1.t1.r8 {\displaystyle T_{n}}] : Chebyshev polynomial of the first kind : [http://dlmf.nist.gov/18.3#T1.t1.r8 http://dlmf.nist.gov/18.3#T1.t1.r8]
-[http://drmf.wmflabs.org/wiki/Definition:monicChebyT {\displaystyle {\widehat T}_{n}}] : monic Chebyshev polynomial of the first kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyT http://drmf.wmflabs.org/wiki/Definition:monicChebyT]
+[http://drmf.wmflabs.org/wiki/Definition:monicChebyT {\displaystyle {\widehat T}_{n}}] : monic Chebyshev polynomial of the first kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyT http://drmf.wmflabs.org/wiki/Definition:monicChebyT]
<< [[Definition:monicCharlier|Definition:monicCharlier]]
[[Main_Page|Main Page]]
@@ -1595,7 +1610,7 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.3#T1.t1.r11 {\displaystyle U_{n}}] : Chebyshev polynomial of the second kind : [http://dlmf.nist.gov/18.3#T1.t1.r11 http://dlmf.nist.gov/18.3#T1.t1.r11]
-[http://drmf.wmflabs.org/wiki/Definition:monicChebyU {\displaystyle {\widehat U}_{n}}] : monic Chebyshev polynomial of the second kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyU http://drmf.wmflabs.org/wiki/Definition:monicChebyU]
+[http://drmf.wmflabs.org/wiki/Definition:monicChebyU {\displaystyle {\widehat U}_{n}}] : monic Chebyshev polynomial of the second kind : [http://drmf.wmflabs.org/wiki/Definition:monicChebyU http://drmf.wmflabs.org/wiki/Definition:monicChebyU]
<< [[Definition:monicChebyT|Definition:monicChebyT]]
[[Main_Page|Main Page]]
@@ -1629,8 +1644,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous big -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite {\displaystyle H_{n}}] : continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:ctsbigqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous big {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsbigqHermite]
<< [[Definition:monicChebyU|Definition:monicChebyU]]
[[Main_Page|Main Page]]
@@ -1665,7 +1680,7 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn {\displaystyle {\widehat S}_{n}}] : monic continuous dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn {\displaystyle {\widehat S}_{n}}] : monic continuous dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualHahn]
<< [[Definition:monicctsbigqHermite|Definition:monicctsbigqHermite]]
[[Main_Page|Main Page]]
@@ -1700,8 +1715,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsdualqHahn]
<< [[Definition:monicctsdualHahn|Definition:monicctsdualHahn]]
[[Main_Page|Main Page]]
@@ -1735,9 +1750,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsHahn {\displaystyle {\widehat p}_{n}}] : monic continuous Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsHahn http://drmf.wmflabs.org/wiki/Definition:monicctsHahn]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsHahn {\displaystyle {\widehat p}_{n}}] : monic continuous Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsHahn http://drmf.wmflabs.org/wiki/Definition:monicctsHahn]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicctsdualqHahn|Definition:monicctsdualqHahn]]
[[Main_Page|Main Page]]
@@ -1771,9 +1786,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn {\displaystyle {\widehat p}_{n}}] : monic continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn http://drmf.wmflabs.org/wiki/Definition:monicctsqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicctsHahn|Definition:monicctsHahn]]
[[Main_Page|Main Page]]
@@ -1807,8 +1822,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite {\displaystyle {\widehat H}_{n}}] : monic continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite http://drmf.wmflabs.org/wiki/Definition:monicctsqHermite]
<< [[Definition:monicctsqHahn|Definition:monicctsqHahn]]
[[Main_Page|Main Page]]
@@ -1843,9 +1858,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic continuous -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi {\displaystyle P^{(\alpha,\beta)}_{n}}] : continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi http://drmf.wmflabs.org/wiki/Definition:ctsqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic continuous {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi http://drmf.wmflabs.org/wiki/Definition:monicctsqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicctsqHermite|Definition:monicctsqHermite]]
[[Main_Page|Main Page]]
@@ -1879,9 +1894,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic continuous -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre {\displaystyle P^{(n)}_{\alpha}}] : continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:ctsqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic continuous {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicctsqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicctsqJacobi|Definition:monicctsqJacobi]]
[[Main_Page|Main Page]]
@@ -1915,9 +1930,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre {\displaystyle {\widehat P}_{n}}] : monic continuous -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre {\displaystyle P_{n}}] : continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre http://drmf.wmflabs.org/wiki/Definition:ctsqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre {\displaystyle {\widehat P}_{n}}] : monic continuous {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre http://drmf.wmflabs.org/wiki/Definition:monicctsqLegendre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicctsqLaguerre|Definition:monicctsqLaguerre]]
[[Main_Page|Main Page]]
@@ -1951,9 +1966,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra {\displaystyle {\widehat C}_{n}}] : monic continuous -ultraspherical/Rogers polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://dlmf.nist.gov/18.28#E13 {\displaystyle C_{n}}] : continuous -ultraspherical/Rogers polynomial : [http://dlmf.nist.gov/18.28#E13 http://dlmf.nist.gov/18.28#E13]
+[http://dlmf.nist.gov/18.28#E13 {\displaystyle C_{n}}] : continuous {\displaystyle q}-ultraspherical/Rogers polynomial : [http://dlmf.nist.gov/18.28#E13 http://dlmf.nist.gov/18.28#E13]
+[http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra {\displaystyle {\widehat C}_{n}}] : monic continuous {\displaystyle q}-ultraspherical/Rogers polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra http://drmf.wmflabs.org/wiki/Definition:monicctsqUltra]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicctsqLegendre|Definition:monicctsqLegendre]]
[[Main_Page|Main Page]]
@@ -1987,8 +2002,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete -Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
-[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI {\displaystyle {\widehat h}_{n}}] : monic discrete -Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
+[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI {\displaystyle {\widehat h}_{n}}] : monic discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteI]
<< [[Definition:monicctsqUltra|Definition:monicctsqUltra]]
[[Main_Page|Main Page]]
@@ -2022,8 +2037,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete -Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
-[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII {\displaystyle {\widehat \tilde{p}_{n}}}] : monic discrete -Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
+[http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII {\displaystyle {\widehat \tilde{p}_{n}}}] : monic discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII http://drmf.wmflabs.org/wiki/Definition:monicdiscrqHermiteII]
<< [[Definition:monicdiscrqHermiteI|Definition:monicdiscrqHermiteI]]
[[Main_Page|Main Page]]
@@ -2058,9 +2073,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.25#T1.t1.r5 {\displaystyle R_{n}}] : dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r5 http://dlmf.nist.gov/18.25#T1.t1.r5]
[http://drmf.wmflabs.org/wiki/Definition:monicdualHahn {\displaystyle {\widehat R}_{n}}] : monic dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualHahn http://drmf.wmflabs.org/wiki/Definition:monicdualHahn]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicdiscrqHermiteII|Definition:monicdiscrqHermiteII]]
[[Main_Page|Main Page]]
@@ -2094,9 +2109,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn {\displaystyle {\widehat R}_{n}}] : monic dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn {\displaystyle {\widehat R}_{n}}] : monic dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn http://drmf.wmflabs.org/wiki/Definition:monicdualqHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicdualHahn|Definition:monicdualHahn]]
[[Main_Page|Main Page]]
@@ -2130,9 +2145,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicdualqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicdualqHahn|Definition:monicdualqHahn]]
[[Main_Page|Main Page]]
@@ -2166,9 +2181,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#T1.t1.r3 {\displaystyle Q_{n}}] : Hahn polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r3 http://dlmf.nist.gov/18.19#T1.t1.r3]
[http://drmf.wmflabs.org/wiki/Definition:monicHahn {\displaystyle {\widehat Q}_{n}}] : monic Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHahn http://drmf.wmflabs.org/wiki/Definition:monicHahn]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicdualqKrawtchouk|Definition:monicdualqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2202,8 +2217,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/18.3#T1.t1.r28 {\displaystyle H_{n}}] : Hermite polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r28 http://dlmf.nist.gov/18.3#T1.t1.r28]
-[http://drmf.wmflabs.org/wiki/Definition:monicHermite {\displaystyle {\widehat H}_{n}}] : monic Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHermite http://drmf.wmflabs.org/wiki/Definition:monicHermite]
+[http://dlmf.nist.gov/18.3#T1.t1.r28 {\displaystyle H_{n}}] : Hermite polynomial {\displaystyle H_n} : [http://dlmf.nist.gov/18.3#T1.t1.r28 http://dlmf.nist.gov/18.3#T1.t1.r28]
+[http://drmf.wmflabs.org/wiki/Definition:monicHermite {\displaystyle {\widehat H}_{n}}] : monic Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicHermite http://drmf.wmflabs.org/wiki/Definition:monicHermite]
<< [[Definition:monicHahn|Definition:monicHahn]]
[[Main_Page|Main Page]]
@@ -2239,8 +2254,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://drmf.wmflabs.org/wiki/Definition:monicJacobi {\displaystyle {\widehat P}^{(\alpha,\beta)}_{n}}] : monic Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicJacobi http://drmf.wmflabs.org/wiki/Definition:monicJacobi]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicHermite|Definition:monicHermite]]
[[Main_Page|Main Page]]
@@ -2276,7 +2291,7 @@ These are defined by [http://dlmf.nist.gov/18.19#T1.t1.r6 {\displaystyle K_{n}}] : Krawtchouk polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r6 http://dlmf.nist.gov/18.19#T1.t1.r6]
[http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicKrawtchouk]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:monicJacobi|Definition:monicJacobi]]
[[Main_Page|Main Page]]
@@ -2310,8 +2325,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicLaguerre {\displaystyle {\widehat L}^{\alpha}_n}] : monic Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLaguerre http://drmf.wmflabs.org/wiki/Definition:monicLaguerre]
[http://dlmf.nist.gov/18.3#T1.t1.r27 {\displaystyle L_n^{(\alpha)}}] : Laguerre (or generalized Laguerre) polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r27 http://dlmf.nist.gov/18.3#T1.t1.r27]
+[http://drmf.wmflabs.org/wiki/Definition:monicLaguerre {\displaystyle {\widehat L}^{\alpha}_n}] : monic Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLaguerre http://drmf.wmflabs.org/wiki/Definition:monicLaguerre]
<< [[Definition:monicKrawtchouk|Definition:monicKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2346,9 +2361,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly {\displaystyle {\widehat P}_{n}}] : monic Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
[http://dlmf.nist.gov/18.3#T1.t1.r25 {\displaystyle P_{n}}] : Legendre polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r25 http://dlmf.nist.gov/18.3#T1.t1.r25]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly {\displaystyle {\widehat P}_{n}}] : monic Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly http://drmf.wmflabs.org/wiki/Definition:monicLegendrePoly]
<< [[Definition:monicLaguerre|Definition:monicLaguerre]]
[[Main_Page|Main Page]]
@@ -2382,10 +2397,10 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
-[http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi {\displaystyle {\widehat p}_{n}}] : monic little -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:littleqJacobi {\displaystyle p_{n}}] : little -Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqJacobi http://drmf.wmflabs.org/wiki/Definition:littleqJacobi]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqJacobi {\displaystyle p_{n}}] : little {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqJacobi http://drmf.wmflabs.org/wiki/Definition:littleqJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi http://drmf.wmflabs.org/wiki/Definition:moniclittleqJacobi]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicLegendrePoly|Definition:monicLegendrePoly]]
[[Main_Page|Main Page]]
@@ -2418,7 +2433,10 @@ These are defined by == Symbols List == - +[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Laguerre/Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:moniclittleqJacobi|Definition:moniclittleqJacobi]]
[[Main_Page|Main Page]]
@@ -2452,10 +2470,10 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
-[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre {\displaystyle {\widehat p}_{n}}] : monic little -Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLegendre {\displaystyle p_{n}}] : little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLegendre http://drmf.wmflabs.org/wiki/Definition:littleqLegendre]
+[http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre {\displaystyle {\widehat p}_{n}}] : monic little {\displaystyle q}-Legendre polynomial : [http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre http://drmf.wmflabs.org/wiki/Definition:moniclittleqLegendre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:moniclittleqLaguerre|Definition:moniclittleqLaguerre]]
[[Main_Page|Main Page]]
@@ -2489,9 +2507,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicMeixner {\displaystyle {\widehat M}_{n}}] : monic Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixner http://drmf.wmflabs.org/wiki/Definition:monicMeixner]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#T1.t1.r9 {\displaystyle M_{n}}] : Meixner polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r9 http://dlmf.nist.gov/18.19#T1.t1.r9]
+[http://drmf.wmflabs.org/wiki/Definition:monicMeixner {\displaystyle {\widehat M}_{n}}] : monic Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixner http://drmf.wmflabs.org/wiki/Definition:monicMeixner]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:moniclittleqLegendre|Definition:moniclittleqLegendre]]
[[Main_Page|Main Page]]
@@ -2526,9 +2544,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek]
[http://dlmf.nist.gov/18.19#P3.p1 {\displaystyle P^{(\alpha)}_{n}}] : Meixner-Pollaczek polynomial : [http://dlmf.nist.gov/18.19#P3.p1 http://dlmf.nist.gov/18.19#P3.p1]
-[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
+[http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek {\displaystyle {\widehat P}^{(\alpha)}_{n}}] : monic Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicMeixnerPollaczek]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
<< [[Definition:monicMeixner|Definition:monicMeixner]]
[[Main_Page|Main Page]]
@@ -2563,7 +2581,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi {\displaystyle {\widehat P}_{n}}] : monic pseudo-Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi http://drmf.wmflabs.org/wiki/Definition:monicpseudoJacobi]
-[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]
<< [[Definition:monicMeixnerPollaczek|Definition:monicMeixnerPollaczek]]
[[Main_Page|Main Page]]
@@ -2597,10 +2615,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : -Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:monicqBessel {\displaystyle {\widehat y}_{n}}] : monic -Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqBessel http://drmf.wmflabs.org/wiki/Definition:monicqBessel]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:monicqBessel {\displaystyle {\widehat y}_{n}}] : monic {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqBessel http://drmf.wmflabs.org/wiki/Definition:monicqBessel]
+[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicpseudoJacobi|Definition:monicpseudoJacobi]]
[[Main_Page|Main Page]]
@@ -2635,9 +2653,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicqCharlier {\displaystyle {\widehat C}_{n}}] : monic {\displaystyle q}-Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqCharlier http://drmf.wmflabs.org/wiki/Definition:monicqCharlier]
+[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicqBesselPoly|Definition:monicqBesselPoly]]
[[Main_Page|Main Page]]
@@ -2671,9 +2690,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk {\displaystyle {\widehat K}_{n}}] : monic {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicqCharlier|Definition:monicqCharlier]]
[[Main_Page|Main Page]]
@@ -2707,9 +2726,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre {\displaystyle {\widehat L}^{(\alpha)}_{n}}] : monic -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre]
-[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre {\displaystyle {\widehat L}^{(\alpha)}_{n}}] : monic {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre http://drmf.wmflabs.org/wiki/Definition:monicqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicqKrawtchouk|Definition:monicqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2742,9 +2761,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqMeixner {\displaystyle {\widehat M}_{n}}] : monic -Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixner http://drmf.wmflabs.org/wiki/Definition:monicqMeixner]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : -Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
+[http://drmf.wmflabs.org/wiki/Definition:monicqMeixner {\displaystyle {\widehat M}_{n}}] : monic {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixner http://drmf.wmflabs.org/wiki/Definition:monicqMeixner]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicqLaguerre|Definition:monicqLaguerre]]
[[Main_Page|Main Page]]
@@ -2778,9 +2797,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek {\displaystyle {\widehat P}_{n}}] : monic -Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : -Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
+[http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek {\displaystyle {\widehat P}_{n}}] : monic {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:monicqMeixnerPollaczek]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicqMeixner|Definition:monicqMeixner]]
[[Main_Page|Main Page]]
@@ -2815,9 +2834,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : -Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
-[http://drmf.wmflabs.org/wiki/Definition:monicqRacah {\displaystyle {\widehat R}_{n}}] : monic -Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqRacah http://drmf.wmflabs.org/wiki/Definition:monicqRacah]
+[http://drmf.wmflabs.org/wiki/Definition:monicqRacah {\displaystyle {\widehat R}_{n}}] : monic {\displaystyle q}-Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqRacah http://drmf.wmflabs.org/wiki/Definition:monicqRacah]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : {\displaystyle q}-Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
<< [[Definition:monicqMeixnerPollaczek|Definition:monicqMeixnerPollaczek]]
[[Main_Page|Main Page]]
@@ -2851,9 +2870,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk {\displaystyle {\widehat K^{\mathrm{qtm}}}_{n}}] : monic quantum -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk {\displaystyle {\widehat K^{\mathrm{qtm}}}_{n}}] : monic quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicqtmqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
<< [[Definition:monicqRacah|Definition:monicqRacah]]
[[Main_Page|Main Page]]
@@ -2888,9 +2907,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
[http://drmf.wmflabs.org/wiki/Definition:monicRacah {\displaystyle {\widehat R}_{n}}] : monic Racah polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicRacah http://drmf.wmflabs.org/wiki/Definition:monicRacah]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
<< [[Definition:monicqtmqKrawtchouk|Definition:monicqtmqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -2924,9 +2943,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
[http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert {\displaystyle {\widehat S}_{n}}] : monic Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert http://drmf.wmflabs.org/wiki/Definition:monicStieltjesWigert]
-[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
<< [[Definition:monicRacah|Definition:monicRacah]]
[[Main_Page|Main Page]]
@@ -2961,8 +2980,8 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:monicUltra {\displaystyle {\widehat C}^{\mu}_{n}}] : monic ultraspherical/Gegenbauer polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicUltra http://drmf.wmflabs.org/wiki/Definition:monicUltra]
-[http://dlmf.nist.gov/18.3#T1.t1.r5 {\displaystyle C^{\mu}_{n}}] : ultraspherical/Gegenbauer polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r5 http://dlmf.nist.gov/18.3#T1.t1.r5]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/18.3#T1.t1.r5 {\displaystyle C^{\mu}_{n}}] : ultraspherical/Gegenbauer polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r5 http://dlmf.nist.gov/18.3#T1.t1.r5]
<< [[Definition:monicStieltjesWigert|Definition:monicStieltjesWigert]]
[[Main_Page|Main Page]]
@@ -2996,9 +3015,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://drmf.wmflabs.org/wiki/Definition:monicWilson {\displaystyle {\widehat W}_{n}}] : monic Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicWilson http://drmf.wmflabs.org/wiki/Definition:monicWilson]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
<< [[Definition:monicUltra|Definition:monicUltra]]
[[Main_Page|Main Page]]
@@ -3028,8 +3047,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:NeumannFactor {\displaystyle \epsilon_{m}}] : Neumann factor : [http://drmf.wmflabs.org/wiki/Definition:NeumannFactor http://drmf.wmflabs.org/wiki/Definition:NeumannFactor]
[http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 {\displaystyle \delta_{m,n}}] : Kronecker delta : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r4]
+[http://drmf.wmflabs.org/wiki/Definition:NeumannFactor {\displaystyle \epsilon_{m}}] : Neumann factor : [http://drmf.wmflabs.org/wiki/Definition:NeumannFactor http://drmf.wmflabs.org/wiki/Definition:NeumannFactor]
<< [[Definition:monicWilson|Definition:monicWilson]]
[[Main_Page|Main Page]]
@@ -3061,8 +3080,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde {\displaystyle {\tilde S}_{n}}] : normalized continuous dual Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde]
+[http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde {\displaystyle {\tilde S}_{n}}] : normalized continuous dual Hahn polynomial {\displaystyle {\tilde S}} : [http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde http://drmf.wmflabs.org/wiki/Definition:normctsdualHahnStilde]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:NeumannFactor|Definition:NeumannFactor]]
[[Main_Page|Main Page]]
@@ -3094,9 +3113,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde]
[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsHahnptilde]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:normctsdualHahnStilde|Definition:normctsdualHahnStilde]]
[[Main_Page|Main Page]]
@@ -3135,7 +3154,7 @@ where [http://dlmf.nist.gov/18.3#T1.t1.r3 {\displaystyle P^{(\alpha,\beta)}_{n}}] : Jacobi polynomial : [http://dlmf.nist.gov/18.3#T1.t1.r3 http://dlmf.nist.gov/18.3#T1.t1.r3]
[http://drmf.wmflabs.org/wiki/Definition:normJacobiR {\displaystyle R^{(\alpha,\beta)}_{n}}] : normalized Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:normJacobiR http://drmf.wmflabs.org/wiki/Definition:normJacobiR]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:normctsHahnptilde|Definition:normctsHahnptilde]]
[[Main_Page|Main Page]]
@@ -3170,9 +3189,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
+[http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde {\displaystyle {\tilde W}_{n}}] : normalized Wilson polynomial {\displaystyle {\tilde W}} : [http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde {\displaystyle {\tilde W}_{n}}] : normalized Wilson polynomial : [http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde http://drmf.wmflabs.org/wiki/Definition:normWilsonWtilde]
+[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
<< [[Definition:normJacobiR|Definition:normJacobiR]]
[[Main_Page|Main Page]]
@@ -3207,7 +3226,8 @@ These are defined by [http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
-[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]
+[http://drmf.wmflabs.org/wiki/Definition:poly {\displaystyle {p}_{n}}] : polynomial : [http://drmf.wmflabs.org/wiki/Definition:poly http://drmf.wmflabs.org/wiki/Definition:poly]
+[http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi {\displaystyle P_{n}}] : pseudo Jacobi polynomial : [http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi http://drmf.wmflabs.org/wiki/Definition:pseudoJacobi]
<< [[Definition:normWilsonWtilde|Definition:normWilsonWtilde]]
[[Main_Page|Main Page]]
@@ -3239,8 +3259,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : -Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qBessel {\displaystyle y_{n}}] : {\displaystyle q}-Bessel polynomial : [http://drmf.wmflabs.org/wiki/Definition:qBessel http://drmf.wmflabs.org/wiki/Definition:qBessel]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:poly|Definition:poly]]
[[Main_Page|Main Page]]
@@ -3272,8 +3292,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qCharlier {\displaystyle C_{n}}] : -Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:qCharlier http://drmf.wmflabs.org/wiki/Definition:qCharlier]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qCharlier {\displaystyle C_{n}}] : {\displaystyle q}-Charlier polynomial : [http://drmf.wmflabs.org/wiki/Definition:qCharlier http://drmf.wmflabs.org/wiki/Definition:qCharlier]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:qBesselPoly|Definition:qBesselPoly]]
[[Main_Page|Main Page]]
@@ -3305,8 +3325,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#E4 {\displaystyle \Gamma_{q}}] : -gamma function : [http://dlmf.nist.gov/5.18#E4 http://dlmf.nist.gov/5.18#E4]
-[http://drmf.wmflabs.org/wiki/Definition:qDigamma {\displaystyle \psi_{q}}] : -digamma function : [http://drmf.wmflabs.org/wiki/Definition:qDigamma http://drmf.wmflabs.org/wiki/Definition:qDigamma]
+[http://drmf.wmflabs.org/wiki/Definition:qDigamma {\displaystyle \psi_{q}}] : {\displaystyle q}-digamma function : [http://drmf.wmflabs.org/wiki/Definition:qDigamma http://drmf.wmflabs.org/wiki/Definition:qDigamma]
+[http://dlmf.nist.gov/5.18#E4 {\displaystyle \Gamma_{q}}] : {\displaystyle q}-gamma function : [http://dlmf.nist.gov/5.18#E4 http://dlmf.nist.gov/5.18#E4]
<< [[Definition:qCharlier|Definition:qCharlier]]
[[Main_Page|Main Page]]
@@ -3347,8 +3367,8 @@ Equation (2.1.11) of [[Bibliography#GaR|'''GaR''']]. == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qHyperrWs {\displaystyle {{}_{r+1}W_{r}}}] : very-well-poised basic hypergeometric (or -hypergeometric) function : [http://drmf.wmflabs.org/wiki/Definition:qHyperrWs http://drmf.wmflabs.org/wiki/Definition:qHyperrWs]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qHyperrWs {\displaystyle {{}_{r+1}W_{r}}}] : very-well-poised basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://drmf.wmflabs.org/wiki/Definition:qHyperrWs http://drmf.wmflabs.org/wiki/Definition:qHyperrWs]
<< [[Definition:qDigamma|Definition:qDigamma]]
[[Main_Page|Main Page]]
@@ -3382,10 +3402,12 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/4.2#E19 {\displaystyle \mathrm{exp}}] : exponential function : [http://dlmf.nist.gov/4.2#E19 http://dlmf.nist.gov/4.2#E19]
+[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:qHyperrWs|Definition:qHyperrWs]]
[[Main_Page|Main Page]]
@@ -3419,9 +3441,11 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/4.2#E19 {\displaystyle \mathrm{exp}}] : exponential function : [http://dlmf.nist.gov/4.2#E19 http://dlmf.nist.gov/4.2#E19]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:qExpKLS|Definition:qExpKLS]]
[[Main_Page|Main Page]]
@@ -3454,9 +3478,11 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qcosKLS {\displaystyle \mathrm{cos}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qcosKLS http://drmf.wmflabs.org/wiki/Definition:qcosKLS]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
+[http://drmf.wmflabs.org/wiki/Definition:qcosKLS {\displaystyle \mathrm{cos}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \cos} function used in KLS: {\displaystyle \cos_q} : [http://drmf.wmflabs.org/wiki/Definition:qcosKLS http://drmf.wmflabs.org/wiki/Definition:qcosKLS]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:qexpKLS|Definition:qexpKLS]]
[[Main_Page|Main Page]]
@@ -3487,8 +3513,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : -Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixner {\displaystyle M_{n}}] : {\displaystyle q}-Meixner polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixner http://drmf.wmflabs.org/wiki/Definition:qMeixner]
<< [[Definition:qcosKLS|Definition:qcosKLS]]
[[Main_Page|Main Page]]
@@ -3521,8 +3547,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk {\displaystyle K_{n}}] : {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qKrawtchouk]
<< [[Definition:qMeixner|Definition:qMeixner]]
[[Main_Page|Main Page]]
@@ -3556,9 +3582,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:monicqHahn {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqHahn http://drmf.wmflabs.org/wiki/Definition:monicqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:qKrawtchouk|Definition:qKrawtchouk]]
[[Main_Page|Main Page]]
@@ -3592,7 +3618,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:dualqHahn {\displaystyle R_{n}}] : dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqHahn http://drmf.wmflabs.org/wiki/Definition:dualqHahn]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:monicqHahn|Definition:monicqHahn]]
[[Main_Page|Main Page]]
@@ -3624,8 +3651,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk {\displaystyle K_{n}}] : dual {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:dualqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:dualqHahn|Definition:dualqHahn]]
[[Main_Page|Main Page]]
@@ -3656,8 +3683,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little -Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre {\displaystyle p_{n}}] : little {\displaystyle q}-Laguerre / Wall polynomial : [http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre http://drmf.wmflabs.org/wiki/Definition:littleqLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:dualqKrawtchouk|Definition:dualqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -3691,10 +3718,12 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qsinKLS {\displaystyle \mathrm{sin}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qsinKLS http://drmf.wmflabs.org/wiki/Definition:qsinKLS]
[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
+[http://drmf.wmflabs.org/wiki/Definition:qexpKLS {\displaystyle \mathrm{e}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{e}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qexpKLS http://drmf.wmflabs.org/wiki/Definition:qexpKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:qsinKLS {\displaystyle \mathrm{sin}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \sin} function used in KLS: {\displaystyle \sin_q} : [http://drmf.wmflabs.org/wiki/Definition:qsinKLS http://drmf.wmflabs.org/wiki/Definition:qsinKLS]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:littleqLaguerre|Definition:littleqLaguerre]]
[[Main_Page|Main Page]]
@@ -3728,11 +3757,13 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
-[http://drmf.wmflabs.org/wiki/Definition:qSinKLS {\displaystyle \mathrm{Sin}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qSinKLS http://drmf.wmflabs.org/wiki/Definition:qSinKLS]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
+[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:qSinKLS {\displaystyle \mathrm{Sin}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \sin} function used in KLS: {\displaystyle \mathrm{Sin}_q} : [http://drmf.wmflabs.org/wiki/Definition:qSinKLS http://drmf.wmflabs.org/wiki/Definition:qSinKLS]
+[http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:qsinKLS|Definition:qsinKLS]]
[[Main_Page|Main Page]]
@@ -3766,11 +3797,13 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:qCosKLS {\displaystyle \mathrm{Cos}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qCosKLS http://drmf.wmflabs.org/wiki/Definition:qCosKLS]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/4.14#E2 {\displaystyle \mathrm{cos}}] : cosine function : [http://dlmf.nist.gov/4.14#E2 http://dlmf.nist.gov/4.14#E2]
[http://dlmf.nist.gov/1.9.i {\displaystyle \mathrm{i}}] : imaginary unit : [http://dlmf.nist.gov/1.9.i http://dlmf.nist.gov/1.9.i]
-[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : -analogue of the function used in KLS: : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://drmf.wmflabs.org/wiki/Definition:qCosKLS {\displaystyle \mathrm{Cos}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \cos} function used in KLS: {\displaystyle \mathrm{Cos}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qCosKLS http://drmf.wmflabs.org/wiki/Definition:qCosKLS]
+[http://drmf.wmflabs.org/wiki/Definition:qExpKLS {\displaystyle \mathrm{E}_{q}}] : {\displaystyle q}-analogue of the {\displaystyle \exp} function used in KLS: {\displaystyle \mathrm{E}_{q}} : [http://drmf.wmflabs.org/wiki/Definition:qExpKLS http://drmf.wmflabs.org/wiki/Definition:qExpKLS]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:qSinKLS|Definition:qSinKLS]]
[[Main_Page|Main Page]]
@@ -3803,8 +3836,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
-[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/18.25#T1.t1.r2 {\displaystyle W_{n}}] : Wilson polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r2 http://dlmf.nist.gov/18.25#T1.t1.r2]
<< [[Definition:qCosKLS|Definition:qCosKLS]]
[[Main_Page|Main Page]]
@@ -3841,7 +3874,7 @@ with N a nonnegative integer. == Symbols List == [http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
-[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
+[http://dlmf.nist.gov/18.25#T1.t1.r4 {\displaystyle R_{n}}] : Racah polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r4 http://dlmf.nist.gov/18.25#T1.t1.r4]
<< [[Definition:Wilson|Definition:Wilson]]
[[Main_Page|Main Page]]
@@ -3873,9 +3906,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.25#T1.t1.r3 {\displaystyle S_{n}}] : continuous dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r3 http://dlmf.nist.gov/18.25#T1.t1.r3]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:Racah|Definition:Racah]]
[[Main_Page|Main Page]]
@@ -3908,9 +3941,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
-[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
[http://dlmf.nist.gov/18.19#P2.p1 {\displaystyle p_{n}}] : continuous Hahn polynomial : [http://dlmf.nist.gov/18.19#P2.p1 http://dlmf.nist.gov/18.19#P2.p1]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
+[http://dlmf.nist.gov/5.2#iii {\displaystyle (a)_n}] : Pochhammer symbol : [http://dlmf.nist.gov/5.2#iii http://dlmf.nist.gov/5.2#iii]
<< [[Definition:ctsdualHahn|Definition:ctsdualHahn]]
[[Main_Page|Main Page]]
@@ -3941,8 +3974,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.19#T1.t1.r3 {\displaystyle Q_{n}}] : Hahn polynomial : [http://dlmf.nist.gov/18.19#T1.t1.r3 http://dlmf.nist.gov/18.19#T1.t1.r3]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:ctsHahn|Definition:ctsHahn]]
[[Main_Page|Main Page]]
@@ -3975,8 +4008,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
[http://dlmf.nist.gov/18.25#T1.t1.r5 {\displaystyle R_{n}}] : dual Hahn polynomial : [http://dlmf.nist.gov/18.25#T1.t1.r5 http://dlmf.nist.gov/18.25#T1.t1.r5]
+[http://dlmf.nist.gov/16.2#E1 {\displaystyle {{}_{p}F_{q}}}] : generalized hypergeometric function : [http://dlmf.nist.gov/16.2#E1 http://dlmf.nist.gov/16.2#E1]
<< [[Definition:Hahn|Definition:Hahn]]
[[Main_Page|Main Page]]
@@ -4008,8 +4041,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : -Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/18.28#E19 {\displaystyle R_{n}}] : {\displaystyle q}-Racah polynomial : [http://dlmf.nist.gov/18.28#E19 http://dlmf.nist.gov/18.28#E19]
<< [[Definition:dualHahn|Definition:dualHahn]]
[[Main_Page|Main Page]]
@@ -4041,9 +4074,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
-[http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous dual -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn {\displaystyle p_{n}}] : continuous dual {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn http://drmf.wmflabs.org/wiki/Definition:ctsdualqHahn]
+[http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous dual {\displaystyle q}-Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsdualqHahnptilde]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:qRacah|Definition:qRacah]]
[[Main_Page|Main Page]]
@@ -4076,9 +4109,10 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde]
-[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHahn {\displaystyle p_{n}}] : continuous {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHahn http://drmf.wmflabs.org/wiki/Definition:ctsqHahn]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde {\displaystyle {\tilde p}_{n}}] : normalized continuous {\displaystyle q}-Hahn polynomial {\displaystyle {\tilde p}} : [http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde http://drmf.wmflabs.org/wiki/Definition:normctsqHahnptilde]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:normctsdualqHahnptilde|Definition:normctsdualqHahnptilde]]
[[Main_Page|Main Page]]
@@ -4109,8 +4143,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : -Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://drmf.wmflabs.org/wiki/Definition:qHahn {\displaystyle Q_{n}}] : {\displaystyle q}-Hahn polynomial : [http://drmf.wmflabs.org/wiki/Definition:qHahn http://drmf.wmflabs.org/wiki/Definition:qHahn]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:normctsqHahnptilde|Definition:normctsqHahnptilde]]
[[Main_Page|Main Page]]
@@ -4143,9 +4177,10 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara {\displaystyle Q_{n}}] : Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara http://drmf.wmflabs.org/wiki/Definition:AlSalamChihara]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:qHahn|Definition:qHahn]]
[[Main_Page|Main Page]]
@@ -4178,9 +4213,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/23.1 {\displaystyle Q_{n}}] : -inverse Al-Salam-Chihara polynomial : [http://dlmf.nist.gov/23.1 http://dlmf.nist.gov/23.1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/23.1 {\displaystyle Q_{n}}] : {\displaystyle q}-inverse Al-Salam-Chihara polynomial : [http://dlmf.nist.gov/23.1 http://dlmf.nist.gov/23.1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:AlSalamChihara|Definition:AlSalamChihara]]
[[Main_Page|Main Page]]
@@ -4212,7 +4247,7 @@ x\monicqinvAlSalamChihara{n}@@{x}{a}{b}{q^{-1}=:\monicqinvAlSalamChihara{n+1}@@{ == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic -inverse Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara]
+[http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara {\displaystyle {\widehat Q}_{n}}] : monic {\displaystyle q}-inverse Al-Salam-Chihara polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara http://drmf.wmflabs.org/wiki/Definition:monicqinvAlSalamChihara]
<< [[Definition:qinvAlSalamChihara|Definition:qinvAlSalamChihara]]
[[Main_Page|Main Page]]
@@ -4245,9 +4280,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
-[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
+[http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk {\displaystyle \widehat{K}^{\mathrm{Aff}}_{n}}] : monic affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:monicAffqKrawtchouk]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicqinvAlSalamChihara|Definition:monicqinvAlSalamChihara]]
[[Main_Page|Main Page]]
@@ -4279,9 +4314,10 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : -Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek {\displaystyle P_{n}}] : {\displaystyle q}-Meixner-Pollaczek polynomial : [http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek http://drmf.wmflabs.org/wiki/Definition:qMeixnerPollaczek]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:monicAffqKrawtchouk|Definition:monicAffqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -4314,8 +4350,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum -Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk {\displaystyle K^{\mathrm{qtm}}_{n}}] : quantum {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:qtmqKrawtchouk]
<< [[Definition:qMeixnerPollaczek|Definition:qMeixnerPollaczek]]
[[Main_Page|Main Page]]
@@ -4351,9 +4387,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : -Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:qLaguerre {\displaystyle L_n^{(\alpha)}}] : {\displaystyle q}-Laguerre polynomial : [http://drmf.wmflabs.org/wiki/Definition:qLaguerre http://drmf.wmflabs.org/wiki/Definition:qLaguerre]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
<< [[Definition:qtmqKrawtchouk|Definition:qtmqKrawtchouk]]
[[Main_Page|Main Page]]
@@ -4385,8 +4421,9 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous -Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://drmf.wmflabs.org/wiki/Definition:ctsqHermite {\displaystyle H_{n}}] : continuous {\displaystyle q}-Hermite polynomial : [http://drmf.wmflabs.org/wiki/Definition:ctsqHermite http://drmf.wmflabs.org/wiki/Definition:ctsqHermite]
+[http://dlmf.nist.gov/4.2.E11 {\displaystyle \mathrm{e}}] : the base of the natural logarithm : [http://dlmf.nist.gov/4.2.E11 http://dlmf.nist.gov/4.2.E11]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
<< [[Definition:qLaguerre|Definition:qLaguerre]]
[[Main_Page|Main Page]]
@@ -4418,9 +4455,9 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or -hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : -Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i]
-[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
+[http://dlmf.nist.gov/5.18#i {\displaystyle (a;q)_n}] : {\displaystyle q}-Pochhammer symbol : [http://dlmf.nist.gov/5.18#i http://dlmf.nist.gov/5.18#i] [http://dlmf.nist.gov/17.2#SS1.p1 http://dlmf.nist.gov/17.2#SS1.p1]
+[http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert {\displaystyle S_{n}}] : Stieltjes-Wigert polynomial : [http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert http://drmf.wmflabs.org/wiki/Definition:StieltjesWigert]
<< [[Definition:ctsqHermite|Definition:ctsqHermite]]
[[Main_Page|Main Page]]
@@ -4452,8 +4489,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete -Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI {\displaystyle U^{(n)}_{\alpha}}] : Al-Salam-Carlitz I polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzI]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI {\displaystyle h_{n}}] : discrete {\displaystyle q}-Hermite I polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI http://drmf.wmflabs.org/wiki/Definition:discrqHermiteI]
<< [[Definition:StieltjesWigert|Definition:StieltjesWigert]]
[[Main_Page|Main Page]]
@@ -4486,7 +4523,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
-[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete -Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
+[http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII {\displaystyle \tilde{h}_{n}}] : discrete {\displaystyle q}-Hermite II polynomial : [http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII http://drmf.wmflabs.org/wiki/Definition:discrqHermiteII]
<< [[Definition:discrqHermiteI|Definition:discrqHermiteI]]
[[Main_Page|Main Page]]
@@ -4525,8 +4562,10 @@ Equation (2), Section 2.21 of [[Bibliography#FI|'''FI''']]. == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants {\displaystyle \gamma_{n}}] : Stieltjes constants : [http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants]
+[http://dlmf.nist.gov/5.2#E3 {\displaystyle \gamma}] : Euler's (Euler-Mascheroni) constant : [http://dlmf.nist.gov/5.2#E3 http://dlmf.nist.gov/5.2#E3]
[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants {\displaystyle \gamma_{n}}] : Stieltjes constants : [http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants http://drmf.wmflabs.org/wiki/Definition:StieltjesConstants]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:discrqHermiteII|Definition:discrqHermiteII]]
[[Main_Page|Main Page]]
@@ -4560,8 +4599,9 @@ These are defined by == Symbols List == +[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
-[http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS]
+[http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS {\displaystyle S_{n}] : Nielsen generalized polylogarithm function : [http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS http://drmf.wmflabs.org/wiki/Definition:PolylogarithmS]
<< [[Definition:StieltjesConstants|Definition:StieltjesConstants]]
[[Main_Page|Main Page]]
@@ -4597,6 +4637,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:HarmonicNumber {\displaystyle H_{n}^{r}}] : Harmonic number : [http://drmf.wmflabs.org/wiki/Definition:HarmonicNumber http://drmf.wmflabs.org/wiki/Definition:HarmonicNumber]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:PolylogarithmS|Definition:PolylogarithmS]]
[[Main_Page|Main Page]]
@@ -4630,7 +4671,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:LucasL {\displaystyle L_{n}}] : Lucas polynomial : [http://drmf.wmflabs.org/wiki/Definition:LucasL http://drmf.wmflabs.org/wiki/Definition:LucasL]
+[http://drmf.wmflabs.org/wiki/Definition:LucasL {\displaystyle L_{n}}] : Lucas polynomial : [http://drmf.wmflabs.org/wiki/Definition:LucasL http://drmf.wmflabs.org/wiki/Definition:LucasL]
<< [[Definition:HarmonicNumber|Definition:HarmonicNumber]]
[[Main_Page|Main Page]]
@@ -4665,6 +4706,7 @@ These are defined by == Symbols List == [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi {\displaystyle \Phi}] : Hurwitz-Lerch's transcendent : [http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi http://drmf.wmflabs.org/wiki/Definition:HurwitzLerchPhi]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:LucasL|Definition:LucasL]]
[[Main_Page|Main Page]]
@@ -4697,7 +4739,7 @@ These are defined by == Symbols List == - +[http://drmf.wmflabs.org/wiki/Definition:GoldenRatio {\displaystyle \phi}] : The golden ratio : [http://drmf.wmflabs.org/wiki/Definition:GoldenRatio http://drmf.wmflabs.org/wiki/Definition:GoldenRatio]
<< [[Definition:HurwitzLerchPhi|Definition:HurwitzLerchPhi]]
[[Main_Page|Main Page]]
@@ -4731,8 +4773,8 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/13.14#E3 {\displaystyle W_{\kappa,\mu}}] : Whittaker function : [http://dlmf.nist.gov/13.14#E3 http://dlmf.nist.gov/13.14#E3]
-[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi]
+[http://drmf.wmflabs.org/wiki/Definition:WhitPsi {\displaystyle \Psi_{\alpha,\beta}}] : Whittaker function {\displaystyle \Psi_{\alpha;\beta}} : [http://drmf.wmflabs.org/wiki/Definition:WhitPsi http://drmf.wmflabs.org/wiki/Definition:WhitPsi]
+[http://dlmf.nist.gov/13.14#E3 {\displaystyle W_{\kappa,\mu}}] : Whittaker function {\displaystyle W_{\kappa;\mu}} : [http://dlmf.nist.gov/13.14#E3 http://dlmf.nist.gov/13.14#E3]
<< [[Definition:GoldenRatio|Definition:GoldenRatio]]
[[Main_Page|Main Page]]
@@ -4765,7 +4807,8 @@ These are defined by == Symbols List == - +[http://drmf.wmflabs.org/wiki/Definition:GompertzConstant {\displaystyle G}] : Gompertz's constant : [http://drmf.wmflabs.org/wiki/Definition:GompertzConstant http://drmf.wmflabs.org/wiki/Definition:GompertzConstant]
+[http://dlmf.nist.gov/1.4#iv {\displaystyle \int}] : integral : [http://dlmf.nist.gov/1.4#iv http://dlmf.nist.gov/1.4#iv]
<< [[Definition:WhitPsi|Definition:WhitPsi]]
[[Main_Page|Main Page]]
@@ -4799,6 +4842,9 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16 {\displaystyle \left\lfloor a\right\rfloor}] : floor : [http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16 http://dlmf.nist.gov/front/introduction#Sx4.p1.t1.r16]
+[http://drmf.wmflabs.org/wiki/Definition:GoldenRatio {\displaystyle \phi}] : The golden ratio : [http://drmf.wmflabs.org/wiki/Definition:GoldenRatio http://drmf.wmflabs.org/wiki/Definition:GoldenRatio]
+[http://drmf.wmflabs.org/wiki/Definition:RabbitConstant {\displaystyle \rho}] : rabbit constant : [http://drmf.wmflabs.org/wiki/Definition:RabbitConstant http://drmf.wmflabs.org/wiki/Definition:RabbitConstant]
+[http://drmf.wmflabs.org/wiki/Definition:sum {\displaystyle \Sigma}] : sum : [http://drmf.wmflabs.org/wiki/Definition:sum http://drmf.wmflabs.org/wiki/Definition:sum]
<< [[Definition:GompertzConstant|Definition:GompertzConstant]]
[[Main_Page|Main Page]]
@@ -4831,7 +4877,7 @@ These are defined by == Symbols List == -[http://dlmf.nist.gov/26.11#E5 {\displaystyle F_{n}}] : Fibonacci number : [http://dlmf.nist.gov/26.11#E5 http://dlmf.nist.gov/26.11#E5]
+[http://dlmf.nist.gov/26.11#E5 {\displaystyle F_{n}}] : Fibonacci number : [http://dlmf.nist.gov/26.11#E5 http://dlmf.nist.gov/26.11#E5]
<< [[Definition:rabbitConstant|Definition:rabbitConstant]]
[[Main_Page|Main Page]]
@@ -4864,7 +4910,7 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci]
+[http://drmf.wmflabs.org/wiki/Definition:Fibonacci {\displaystyle F_{n}{(x)}}] : Fibonacci polynomial : [http://drmf.wmflabs.org/wiki/Definition:Fibonacci http://drmf.wmflabs.org/wiki/Definition:Fibonacci]
<< [[Definition:FibonacciNumber|Definition:FibonacciNumber]]
[[Main_Page|Main Page]]
@@ -4902,8 +4948,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-[http://drmf.wmflabs.org/wiki/Definition:RegGamma {\displaystyle P\left(x;\alpha}] : Regularized gamma function of incomplete gamma function : [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
-[http://dlmf.nist.gov/8.2#E1 {\displaystyle \gamma}] : incomplete gamma function : [http://dlmf.nist.gov/8.2#E1 http://dlmf.nist.gov/8.2#E1]
+[http://dlmf.nist.gov/8.2#E1 {\displaystyle \gamma}] : incomplete gamma function {\displaystyle \gamma} : [http://dlmf.nist.gov/8.2#E1 http://dlmf.nist.gov/8.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:RegGamma {\displaystyle P\left(x;\alpha}] : Regularized gamma function of incomplete gamma function : [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
<< [[Definition:Fibonacci|Definition:Fibonacci]]
[[Main_Page|Main Page]]
@@ -4941,8 +4987,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-[http://drmf.wmflabs.org/wiki/Definition:RegGamma {\displaystyle Q\left(x;\alpha}] : Regularized gamma function of complementary incomplete gamma function : [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
-[http://dlmf.nist.gov/8.2#E2 {\displaystyle \Gamma}] : incomplete gamma function : [http://dlmf.nist.gov/8.2#E2 http://dlmf.nist.gov/8.2#E2]
+[http://dlmf.nist.gov/8.2#E2 {\displaystyle \Gamma}] : incomplete gamma function {\displaystyle \Gamma} : [http://dlmf.nist.gov/8.2#E2 http://dlmf.nist.gov/8.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:RegGamma {\displaystyle Q\left(x;\alpha}] : Regularized gamma function of complementary incomplete gamma function : [http://drmf.wmflabs.org/wiki/Definition:RegGamma http://drmf.wmflabs.org/wiki/Definition:RegGamma]
<< [[Definition:RegGammaP|Definition:RegGammaP]]
[[Main_Page|Main Page]]
@@ -4979,8 +5025,8 @@ These are defined by == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:GaussDist {\displaystyle F\left(x}] : Gaussian distribution : [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
[http://dlmf.nist.gov/7.2#E1 {\displaystyle \mathrm{erf}}] : error function : [http://dlmf.nist.gov/7.2#E1 http://dlmf.nist.gov/7.2#E1]
+[http://drmf.wmflabs.org/wiki/Definition:GaussDist {\displaystyle F\left(x}] : Gaussian distribution : [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
<< [[Definition:RegGammaQ|Definition:RegGammaQ]]
[[Main_Page|Main Page]]
@@ -5018,7 +5064,7 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/7.2#E2 {\displaystyle \mathrm{erfc}}] : complementary error function : [http://dlmf.nist.gov/7.2#E2 http://dlmf.nist.gov/7.2#E2]
-[http://drmf.wmflabs.org/wiki/Definition:GaussDist {\displaystyle Q\left(x}] : Related to Gaussian distribution : [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
+[http://drmf.wmflabs.org/wiki/Definition:GaussDist {\displaystyle Q\left(x}] : Related to Gaussian distribution : [http://drmf.wmflabs.org/wiki/Definition:GaussDist http://drmf.wmflabs.org/wiki/Definition:GaussDist]
<< [[Definition:GaussDistF|Definition:GaussDistF]]
[[Main_Page|Main Page]]
@@ -5057,7 +5103,7 @@ These are defined by [http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{log}}] : principle branch of natural logarithm : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
-[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta]
+[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta]
<< [[Definition:GaussDistQ|Definition:GaussDistQ]]
[[Main_Page|Main Page]]
@@ -5095,8 +5141,8 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta]
[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta]
<< [[Definition:RamanujanTauTheta|Definition:RamanujanTauTheta]]
[[Main_Page|Main Page]]
@@ -5138,7 +5184,7 @@ These are defined by == Symbols List == [http://dlmf.nist.gov/4.14#E1 {\displaystyle \mathrm{sin}}] : sine function : [http://dlmf.nist.gov/4.14#E1 http://dlmf.nist.gov/4.14#E1]
-[http://drmf.wmflabs.org/wiki/Definition:Sinc {\displaystyle \mathrm{sinc}{x}}] : sine cardinal function : [http://drmf.wmflabs.org/wiki/Definition:Sinc http://drmf.wmflabs.org/wiki/Definition:Sinc]
+[http://drmf.wmflabs.org/wiki/Definition:Sinc {\displaystyle \mathrm{sinc}{x}}] : sine cardinal function : [http://drmf.wmflabs.org/wiki/Definition:Sinc http://drmf.wmflabs.org/wiki/Definition:Sinc]
<< [[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]]
[[Main_Page|Main Page]]
diff --git a/main_page/src/main.py b/main_page/src/main.py index 2e4e42e..3d5bb35 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -84,7 +84,7 @@ def update_headers(text, definitions): def get_macro_name(macro): macro_name = "" for ch in macro: - if ch.isalpha(): + if ch.isalpha() or ch == "\\": macro_name += ch elif ch in ["@", "{", "["]: break @@ -92,34 +92,54 @@ def get_macro_name(macro): return macro_name +def find_all(pattern, string): + """Yields all positions of where pattern is present in string.""" + + i = string.find(pattern) + while i != -1: + yield i + i = string.find(pattern, i + 1) + + def get_symbols(text, glossary): - symbols = list() - for keyword in list(glossary): - for space in ["{", "@", "[", "\\", " "]: - if "\\" + keyword + space in text: - symbols.append(keyword) + symbols = set() + + for keyword in glossary: + for index in find_all(keyword, text): + # if the macro is present in the text + if index != -1: + index += len(keyword) # now index of next character + + if index >= len(text) or not text[index].isalpha(): + symbols.add(keyword) span_text = "" - for symbol in set(sorted(symbols)): - t = "" - link = glossary[symbol][-2] + for symbol in sorted(symbols, key=str.lower): + links = list() + for cell in glossary[symbol]: + if "http://" in cell or "https://" in cell: + links.append(cell) + + id_link = links[0] + links = ["[" + link + " " + link + "]" for link in links] + meaning = list(glossary[symbol][1]) count = 0 for i, ch in enumerate(meaning): if ch == "$" and count % 2 == 0: - meaning[i] = "[" + link + " {\\displaystyle " + appearance + \ - "}] : " + ''.join(meaning) + " : [" + link + " " + link + "]
\n" + span_text += "[" + id_link + " {\\displaystyle " + appearance + \ + "}] : " + ''.join(meaning) + " : " + " ".join(links) + "
\n" - return span_text[:-1] + return span_text[:-7] # slice off the extra br and endline def add_symbols_data(data): @@ -145,7 +165,7 @@ def add_symbols_data(data): add_spacing = False sflag2 = False # remove data (to be regenerated later) - if page.find("== Symbols List ==") != -1: + if "== Symbols List ==" in page: to_write = page.split("== Symbols List ==")[0] page = to_write else: @@ -162,8 +182,7 @@ def add_symbols_data(data): to_write += "\n\n" to_write += "== Symbols List ==\n\n" - to_parse = page.split("defined by")[1].split("
")[0] - to_write += get_symbols(to_parse, glossary) + to_write += get_symbols(page, glossary) to_write += "\n
\ndrmf_eof\n\n" if sflag2: to_write += "\n" @@ -194,7 +213,7 @@ def main(): text = mod_main.main(text) # only create backup if program did not crash - # create_backup() + create_backup() with open("main_page.mmd", "w") as main_page: main_page.write(text) From 7968ea50769e6c108c7f9f20f92d57c364544665 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 10 Aug 2016 14:06:19 -0400 Subject: [PATCH 211/402] Add test for Gamma, Integrate, LegendreP, LegendreQ, PolyEulerGamma, Product, QPochhammer, and Summation functions --- eCF/.gitignore | 1 + eCF/data/IdentitiesTest.m | 11 +- eCF/src/MathematicaToLaTeX.py | 22 ++-- .../test_single_macro_conversion_functions.py | 115 ++++++++++++++++++ 4 files changed, 128 insertions(+), 21 deletions(-) diff --git a/eCF/.gitignore b/eCF/.gitignore index 13bc7e0..a695525 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -3,6 +3,7 @@ other/ src/test.txt data/Identities.* data/newIdentities.* +data/IdentitiesTest.m IdentitiesTest.txt README_Glossary x.log diff --git a/eCF/data/IdentitiesTest.m b/eCF/data/IdentitiesTest.m index 512c469..a064cfc 100644 --- a/eCF/data/IdentitiesTest.m +++ b/eCF/data/IdentitiesTest.m @@ -1,10 +1 @@ -(* {"RamanujanTauTheta", 1}*) -ConditionalExpression[RamanujanTauTheta[z] == (z*(137/60 - EulerGamma - Log[2*Pi]))/(1 + Inactive[ContinuedFractionK][((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), 1 - ((-1)^k*z^2*PolyGamma[2*k, 6])/((1 + 2*k)!*(KroneckerDelta[1 - k]*Log[2*Pi] + ((-1)^k*PolyGamma[2*(-1 + k), 6])/(-1 + 2*k)!)), {k, 1, Infinity}]), Element[z, Complexes] && Abs[z] < 1] - -(* {"Sinc", 1}*) -ConditionalExpression[Sinc[z] == (1 + Inactive[ContinuedFractionK][z^2/(2*k*(1 + 2*k)), 1 - z^2/(2*k*(1 + 2*k)), {k, 1, Infinity}])^(-1), Element[z, Complexes]] - -(* {"RiemannSiegelTheta", 1}*) -ConditionalExpression[RiemannSiegelTheta[z] == -(z*(Log[Pi] - PolyGamma[0, 1/4]))/2 - (z^3*PolyGamma[2, 1/4])/(48*(1 + Inactive[ContinuedFractionK][(z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), 1 - (z^2*PolyGamma[2*(1 + k), 1/4])/(8*(3 + 5*k + 2*k^2)*PolyGamma[2*k, 1/4]), {k, 1, Infinity}])), Element[z, Complexes] && Abs[z] < 1/2] - -testInactive[testInactive[test]test]test \ No newline at end of file +QPochhammer[QPochhammer[q]] \ No newline at end of file diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 0adedab..beb0364 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -293,16 +293,16 @@ def gamma(line): pos except NameError: pos = find_surrounding(line, 'Gamma', - ex=('PolyGamma', 'CapitalGamma', - 'PolyGamma', 'LogGamma', 'EulerGamma', - 'IncGamma', 'Gamma]', 'GammaQ', - 'GammaRegularized', 'StieltjesGamma')) + ex=('PolyGamma', 'CapitalGamma', 'LogGamma', + 'EulerGamma', 'IncGamma', 'Gamma]', + 'GammaQ', 'GammaRegularized', + 'StieltjesGamma')) else: pos = find_surrounding(line, 'Gamma', - ex=('PolyGamma', 'CapitalGamma', - 'PolyGamma', 'LogGamma', 'EulerGamma', - 'IncGamma', 'Gamma]', 'GammaQ', - 'GammaRegularized', 'StieltjesGamma'), + ex=('PolyGamma', 'CapitalGamma', 'LogGamma', + 'EulerGamma', 'IncGamma', 'Gamma]', + 'GammaQ', 'GammaRegularized', + 'StieltjesGamma'), start=pos[0] + (0, 11) [(1, 0).index(pos[1] == pos[0])]) @@ -435,7 +435,7 @@ def polyeulergamma(line): .format(args[0], args[1]) + line[pos[1]:]) else: line = (line[:pos[0]] + '\\digamma@{{{0}}}' - .format(args[0]) + '}' + line[pos[1]:]) + .format(args[0]) + line[pos[1]:]) return line @@ -526,7 +526,7 @@ def constraint(line): """ sections = arg_split(line, ',') - if len(sections) == 1: + if len(sections) in (1, 0): return line constraints = arg_split(sections[-1].replace('&&', '&'), '&') @@ -772,7 +772,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = False + test = True with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index f901f4d..ace02b8 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -60,47 +60,162 @@ def test_none(self): class TestGamma(TestCase): + def test_single(self): + self.assertEqual(gamma('Gamma[z]'), '\\EulerGamma@{z}') + self.assertEqual(gamma('--Gamma[z]--'), '--\\EulerGamma@{z}--') + self.assertEqual(gamma('Gamma[a,z]'), '\\IncGamma@{a}{z}') + self.assertEqual(gamma('--Gamma[a,z]--'), '--\\IncGamma@{a}{z}--') + self.assertEqual(gamma('Gamma[a,z0,z1]'), '\\IncGamma@{a}{z0} - \\IncGamma@{a}{z1}') + self.assertEqual(gamma('--Gamma[a,z0,z1]--'), '--\\IncGamma@{a}{z0} - \\IncGamma@{a}{z1}--') + + def test_nested(self): + self.assertEqual(gamma('Gamma[Gamma[z]]'), '\\EulerGamma@{\\EulerGamma@{z}}') + self.assertEqual(gamma('--Gamma[Gamma[z]]--'), '--\\EulerGamma@{\\EulerGamma@{z}}--') + self.assertEqual(gamma('Gamma[Gamma[a,z],Gamma[a,z]]'), '\\IncGamma@{\\IncGamma@{a}{z}}{\\IncGamma@{a}{z}}') + self.assertEqual(gamma('--Gamma[Gamma[a,z],Gamma[a,z]]--'), '--\\IncGamma@{\\IncGamma@{a}{z}}{\\IncGamma@{a}{z}}--') + + def test_exceptions(self): + self.assertEqual(gamma('PolyGamma[n,z]'), 'PolyGamma[n,z]') + self.assertEqual(gamma('\\[CapitalGamma]'), '\\[CapitalGamma]') + self.assertEqual(gamma('LogGamma[z]'), 'LogGamma[z]') + self.assertEqual(gamma('EulerGamma'), 'EulerGamma') + self.assertEqual(gamma('\\IncGamma@{a}{b}'), '\\IncGamma@{a}{b}') + self.assertEqual(gamma('\\[Gamma]'), '\\[Gamma]') + self.assertEqual(gamma('\\GammaQ@{a}{z}'), '\\GammaQ@{a}{z}') + self.assertEqual(gamma('GammaRegularized[a,z]'), 'GammaRegularized[a,z]') + self.assertEqual(gamma('StieltjesGamma[k]'), 'StieltjesGamma[k]') + def test_none(self): self.assertEqual(gamma('none'), 'none') class TestIntegrate(TestCase): + def test_single(self): + self.assertEqual(integrate('Integrate[f,{x,xmin,xmax}]'), '\\int_{xmin}^{xmax}{f}d{x}') + self.assertEqual(integrate('--Integrate[f,{x,xmin,xmax}]--'), '--\\int_{xmin}^{xmax}{f}d{x}--') + + def test_nested(self): + self.assertEqual(integrate('Integrate[Integrate[f,{x,xmin,xmax}],{Integrate[f,{x,xmin,xmax}],xmin,xmax}]'), '\\int_{xmin}^{xmax}{\\int_{xmin}^{xmax}{f}d{x}}d{\\int_{xmin}^{xmax}{f}d{x}}') + self.assertEqual(integrate('--Integrate[Integrate[f,{x,xmin,xmax}],{Integrate[f,{x,xmin,xmax}],xmin,xmax}]--'), '--\\int_{xmin}^{xmax}{\\int_{xmin}^{xmax}{f}d{x}}d{\\int_{xmin}^{xmax}{f}d{x}}--') + def test_none(self): self.assertEqual(integrate('none'), 'none') class TestLegendreP(TestCase): + def test_single(self): + self.assertEqual(legendrep('LegendreP[n,x]'), '\\LegendreP{n}@{x}') + self.assertEqual(legendrep('--LegendreP[n,x]--'), '--\\LegendreP{n}@{x}--') + self.assertEqual(legendrep('LegendreP[n,m,1,x]'), '\\FerrersP[m]{n}@{x}') + self.assertEqual(legendrep('--LegendreP[n,m,1,x]--'), '--\\FerrersP[m]{n}@{x}--') + self.assertEqual(legendrep('LegendreP[n,m,2,x]'), '\\FerrersP[m]{n}@{x}') + self.assertEqual(legendrep('--LegendreP[n,m,2,x]--'), '--\\FerrersP[m]{n}@{x}--') + self.assertEqual(legendrep('LegendreP[n,m,3,x]'), '\\LegendreP[m]{n}@{x}') + self.assertEqual(legendrep('--LegendreP[n,m,3,x]--'), '--\\LegendreP[m]{n}@{x}--') + + def test_nested(self): + self.assertEqual(legendrep('LegendreP[LegendreP[n,x],LegendreP[n,x]]'), '\\LegendreP{\\LegendreP{n}@{x}}@{\\LegendreP{n}@{x}}') + self.assertEqual(legendrep('--LegendreP[LegendreP[n,x],LegendreP[n,x]]--'), '--\\LegendreP{\\LegendreP{n}@{x}}@{\\LegendreP{n}@{x}}--') + self.assertEqual(legendrep('LegendreP[LegendreP[n,m,1,x],LegendreP[n,m,1,x],1,LegendreP[n,m,1,x]]'), '\\FerrersP[\\FerrersP[m]{n}@{x}]{\\FerrersP[m]{n}@{x}}@{\\FerrersP[m]{n}@{x}}') + self.assertEqual(legendrep('--LegendreP[LegendreP[n,m,1,x],LegendreP[n,m,1,x],1,LegendreP[n,m,1,x]]--'), '--\\FerrersP[\\FerrersP[m]{n}@{x}]{\\FerrersP[m]{n}@{x}}@{\\FerrersP[m]{n}@{x}}--') + self.assertEqual(legendrep('LegendreP[LegendreP[n,m,3,x],LegendreP[n,m,3,x],3,LegendreP[n,m,3,x]]'), '\\LegendreP[\\LegendreP[m]{n}@{x}]{\\LegendreP[m]{n}@{x}}@{\\LegendreP[m]{n}@{x}}') + self.assertEqual(legendrep('--LegendreP[LegendreP[n,m,3,x],LegendreP[n,m,3,x],3,LegendreP[n,m,3,x]]--'), '--\\LegendreP[\\LegendreP[m]{n}@{x}]{\\LegendreP[m]{n}@{x}}@{\\LegendreP[m]{n}@{x}}--') + def test_none(self): self.assertEqual(legendrep('none'), 'none') class TestLegendreQ(TestCase): + def test_single(self): + self.assertEqual(legendreq('LegendreQ[n,x]'), '\\LegendreQ{n}@{x}') + self.assertEqual(legendreq('--LegendreQ[n,x]--'), '--\\LegendreQ{n}@{x}--') + self.assertEqual(legendreq('LegendreQ[n,m,1,x]'), '\\FerrersQ[m]{n}@{x}') + self.assertEqual(legendreq('--LegendreQ[n,m,1,x]--'), '--\\FerrersQ[m]{n}@{x}--') + self.assertEqual(legendreq('LegendreQ[n,m,2,x]'), '\\FerrersQ[m]{n}@{x}') + self.assertEqual(legendreq('--LegendreQ[n,m,2,x]--'), '--\\FerrersQ[m]{n}@{x}--') + self.assertEqual(legendreq('LegendreQ[n,m,3,x]'), '\\LegendreQ[m]{n}@{x}') + self.assertEqual(legendreq('--LegendreQ[n,m,3,x]--'), '--\\LegendreQ[m]{n}@{x}--') + + def test_nested(self): + self.assertEqual(legendreq('LegendreQ[LegendreQ[n,x],LegendreQ[n,x]]'), '\\LegendreQ{\\LegendreQ{n}@{x}}@{\\LegendreQ{n}@{x}}') + self.assertEqual(legendreq('--LegendreQ[LegendreQ[n,x],LegendreQ[n,x]]--'), '--\\LegendreQ{\\LegendreQ{n}@{x}}@{\\LegendreQ{n}@{x}}--') + self.assertEqual(legendreq('LegendreQ[LegendreQ[n,m,1,x],LegendreQ[n,m,1,x],1,LegendreQ[n,m,1,x]]'), '\\FerrersQ[\\FerrersQ[m]{n}@{x}]{\\FerrersQ[m]{n}@{x}}@{\\FerrersQ[m]{n}@{x}}') + self.assertEqual(legendreq('--LegendreQ[LegendreQ[n,m,1,x],LegendreQ[n,m,1,x],1,LegendreQ[n,m,1,x]]--'), '--\\FerrersQ[\\FerrersQ[m]{n}@{x}]{\\FerrersQ[m]{n}@{x}}@{\\FerrersQ[m]{n}@{x}}--') + self.assertEqual(legendreq('LegendreQ[LegendreQ[n,m,3,x],LegendreQ[n,m,3,x],3,LegendreQ[n,m,3,x]]'), '\\LegendreQ[\\LegendreQ[m]{n}@{x}]{\\LegendreQ[m]{n}@{x}}@{\\LegendreQ[m]{n}@{x}}') + self.assertEqual(legendreq('--LegendreQ[LegendreQ[n,m,3,x],LegendreQ[n,m,3,x],3,LegendreQ[n,m,3,x]]--'), '--\\LegendreQ[\\LegendreQ[m]{n}@{x}]{\\LegendreQ[m]{n}@{x}}@{\\LegendreQ[m]{n}@{x}}--') + def test_none(self): self.assertEqual(legendreq('none'), 'none') class TestPolyEulergamma(TestCase): + def test_single(self): + self.assertEqual(polyeulergamma('PolyGamma[z]'), '\\digamma@{z}') + self.assertEqual(polyeulergamma('--PolyGamma[z]--'), '--\\digamma@{z}--') + self.assertEqual(polyeulergamma('PolyGamma[n,z]'), '\\polygamma{n}@{z}') + self.assertEqual(polyeulergamma('--PolyGamma[n,z]--'), '--\\polygamma{n}@{z}--') + self.assertEqual(polyeulergamma('PolyGamma[z]PolyGamma[n,z]'), '\\digamma@{z}\\polygamma{n}@{z}') + self.assertEqual(polyeulergamma('--PolyGamma[z]--PolyGamma[n,z]--'), '--\\digamma@{z}--\\polygamma{n}@{z}--') + + def test_nested(self): + self.assertEqual(polyeulergamma('PolyGamma[PolyGamma[z]]'), '\\digamma@{\\digamma@{z}}') + self.assertEqual(polyeulergamma('--PolyGamma[PolyGamma[z]]--'), '--\\digamma@{\\digamma@{z}}--') + self.assertEqual(polyeulergamma('PolyGamma[PolyGamma[n,z],PolyGamma[n,z]]'), '\\polygamma{\\polygamma{n}@{z}}@{\\polygamma{n}@{z}}') + self.assertEqual(polyeulergamma('--PolyGamma[PolyGamma[n,z],PolyGamma[n,z]]--'), '--\\polygamma{\\polygamma{n}@{z}}@{\\polygamma{n}@{z}}--') + def test_none(self): self.assertEqual(polyeulergamma('none'), 'none') class TestProduct(TestCase): + def test_single(self): + self.assertEqual(product('Product[f,{i,imin,imax}]'), '\\Prod{i}{imin}{imax}@{f}') + self.assertEqual(product('--Product[f,{i,imin,imax}]--'), '--\\Prod{i}{imin}{imax}@{f}--') + + def test_nested(self): + self.assertEqual(product('Product[Product[f,{i,imin,imax}],{Product[f,{i,imin,imax}],imin,imax}]'), '\\Prod{\\Prod{i}{imin}{imax}@{f}}{imin}{imax}@{\\Prod{i}{imin}{imax}@{f}}') + self.assertEqual(product('--Product[Product[f,{i,imin,imax}],{Product[f,{i,imin,imax}],imin,imax}]--'), '--\\Prod{\\Prod{i}{imin}{imax}@{f}}{imin}{imax}@{\\Prod{i}{imin}{imax}@{f}}--') + def test_none(self): self.assertEqual(product('none'), 'none') class TestQPochhammer(TestCase): + def test_single(self): + self.assertEqual(qpochhammer('QPochhammer[a,q,n]'), '\\qPochhammer{a}{q}{n}') + self.assertEqual(qpochhammer('--QPochhammer[a,q,n]--'), '--\\qPochhammer{a}{q}{n}--') + self.assertEqual(qpochhammer('QPochhammer[a,q]'), '\\qPochhammer{a}{q}{\\infty}') + self.assertEqual(qpochhammer('--QPochhammer[a,q]--'), '--\\qPochhammer{a}{q}{\\infty}--') + self.assertEqual(qpochhammer('QPochhammer[q]'), '\\qPochhammer{q}{q}{\\infty}') + self.assertEqual(qpochhammer('--QPochhammer[q]--'), '--\\qPochhammer{q}{q}{\\infty}--') + self.assertEqual(qpochhammer('QPochhammer[a,q,n]QPochhammer[a,q]QPochhammer[q]'), '\\qPochhammer{a}{q}{n}\\qPochhammer{a}{q}{\\infty}\\qPochhammer{q}{q}{\\infty}') + self.assertEqual(qpochhammer('--QPochhammer[a,q,n]--QPochhammer[a,q]--QPochhammer[q]--'), '--\\qPochhammer{a}{q}{n}--\\qPochhammer{a}{q}{\\infty}--\\qPochhammer{q}{q}{\\infty}--') + + def test_nested(self): + self.assertEqual(qpochhammer('QPochhammer[QPochhammer[q],QPochhammer[q],QPochhammer[q]]'), '\\qPochhammer{\\qPochhammer{q}{q}{\\infty}}{\\qPochhammer{q}{q}{\\infty}}{\\qPochhammer{q}{q}{\\infty}}') + self.assertEqual(qpochhammer('--QPochhammer[QPochhammer[q],QPochhammer[q],QPochhammer[q]]--'), '--\\qPochhammer{\\qPochhammer{q}{q}{\\infty}}{\\qPochhammer{q}{q}{\\infty}}{\\qPochhammer{q}{q}{\\infty}}--') + self.assertEqual(qpochhammer('QPochhammer[QPochhammer[q],QPochhammer[q]]'), '\\qPochhammer{\\qPochhammer{q}{q}{\\infty}}{\\qPochhammer{q}{q}{\\infty}}{\\infty}') + self.assertEqual(qpochhammer('--QPochhammer[QPochhammer[q],QPochhammer[q]]--'), '--\\qPochhammer{\\qPochhammer{q}{q}{\\infty}}{\\qPochhammer{q}{q}{\\infty}}{\\infty}--') + def test_none(self): self.assertEqual(qpochhammer('none'), 'none') class TestSummation(TestCase): + def test_single(self): + self.assertEqual(summation('Sum[f,{i,imin,imax}]'), '\\Sum{i}{imin}{imax}@{f}') + self.assertEqual(summation('--Sum[f,{i,imin,imax}]--'), '--\\Sum{i}{imin}{imax}@{f}--') + + def test_nested(self): + self.assertEqual(summation('Sum[Sum[f,{i,imin,imax}],{Sum[f,{i,imin,imax}],imin,imax}]'), '\\Sum{\\Sum{i}{imin}{imax}@{f}}{imin}{imax}@{\\Sum{i}{imin}{imax}@{f}}') + self.assertEqual(summation('--Sum[Sum[f,{i,imin,imax}],{Sum[f,{i,imin,imax}],imin,imax}]--'), '--\\Sum{\\Sum{i}{imin}{imax}@{f}}{imin}{imax}@{\\Sum{i}{imin}{imax}@{f}}--') + def test_none(self): self.assertEqual(summation('none'), 'none') \ No newline at end of file From 4c81613c6c208979c78cd7858deac084c0fccfe4 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 10 Aug 2016 14:13:05 -0400 Subject: [PATCH 212/402] Remove IdentitiesTest.m --- eCF/data/IdentitiesTest.m | 1 - 1 file changed, 1 deletion(-) delete mode 100644 eCF/data/IdentitiesTest.m diff --git a/eCF/data/IdentitiesTest.m b/eCF/data/IdentitiesTest.m deleted file mode 100644 index a064cfc..0000000 --- a/eCF/data/IdentitiesTest.m +++ /dev/null @@ -1 +0,0 @@ -QPochhammer[QPochhammer[q]] \ No newline at end of file From bb95b565a1a4a33e2d35ac9b9a78dccca5105d3e Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 10 Aug 2016 14:58:58 -0400 Subject: [PATCH 213/402] Add tests for replace_operators function --- eCF/src/MathematicaToLaTeX.py | 11 ++++++--- eCF/test/test_replace_operators.py | 39 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index beb0364..81c8510 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -534,10 +534,10 @@ def constraint(line): for i, item, in enumerate(constraints): if i == 0: constraints[i] = ('\n% \\constraint{$' + - constraints[i].replace('&', ' \\land ')) + item.replace('&', ' \\land ')) else: constraints[i] = ('\n% & $' + - constraints[i].replace('&', ' \\land ')) + item.replace('&', ' \\land ')) if i == len(constraints) - 1: constraints[i] += '$}' else: @@ -740,6 +740,11 @@ def replace_operators(line): line = line.replace('&', ' \\land ') line = line.replace(' ', ' ') line += parts[1] + else: + line = line.replace('(', '\\left( ') + line = line.replace(')', ' \\right)') + line = line.replace('&', ' \\land ') + line = line.replace(' ', ' ') line = line.replace('"a"', 'a') line = line.replace('Catalan', '\\CatalansConstant') @@ -772,7 +777,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = True + test = False with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: diff --git a/eCF/test/test_replace_operators.py b/eCF/test/test_replace_operators.py index b07ce81..ee87043 100644 --- a/eCF/test/test_replace_operators.py +++ b/eCF/test/test_replace_operators.py @@ -5,3 +5,42 @@ from unittest import TestCase from MathematicaToLaTeX import replace_operators + +class TestReplaceOperators(TestCase): + + def test_without_percent(self): + self.assertEqual(replace_operators('=='), ' = ') + self.assertEqual(replace_operators('||'), ' \\lor ') + self.assertEqual(replace_operators('>='), ' \\geq ') + self.assertEqual(replace_operators('<='), ' \\leq ') + self.assertEqual(replace_operators('LessEqual'), ' \\leq ') + self.assertEqual(replace_operators('Less'), ' < ') + self.assertEqual(replace_operators('>'), ' > ') + self.assertEqual(replace_operators('<'), ' < ') + self.assertEqual(replace_operators('='), ' = ') + self.assertEqual(replace_operators('^'), ' ^ ') + self.assertEqual(replace_operators('*'), ' ') + self.assertEqual(replace_operators('+'), ' + ') + self.assertEqual(replace_operators('-'), ' - ') + self.assertEqual(replace_operators(','), ', ') + self.assertEqual(replace_operators('('), '\\left( ') + self.assertEqual(replace_operators(')'), ' \\right)') + self.assertEqual(replace_operators('&'), ' \\land ') + self.assertEqual(replace_operators(' '), ' ') + self.assertEqual(replace_operators('"a"'), 'a') + + def test_constants(self): + self.assertEqual(replace_operators('Catalan'), '\\CatalansConstant') + self.assertEqual(replace_operators('GoldenRatio'), '\\GoldenRatio') + self.assertEqual(replace_operators('Pi'), '\\pi') + self.assertEqual(replace_operators('CalculateData`Private`nu'), '\\text{CalculateData`Private`nu}') + + def test_with_percent(self): + self.assertEqual(replace_operators('(%('), '\\left( %(') + self.assertEqual(replace_operators(')%)'), ' \\right)%)') + self.assertEqual(replace_operators('&%&'), ' \\land %&') + self.assertEqual(replace_operators(' % '), ' % ') + + def test_none(self): + self.assertEqual(replace_operators(''), '') + self.assertEqual(replace_operators('%'), '%') \ No newline at end of file From 0d1515d749467f312cb9d8604314654de4add01c Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 11 Aug 2016 10:50:07 -0400 Subject: [PATCH 214/402] Consolidate all code into one file --- main_page/src/add_definition.py | 4 +- main_page/src/main.py | 151 ++++++++++++++--- main_page/src/mod_main.py | 115 ------------- main_page/src/symbols_list.py | 278 -------------------------------- 4 files changed, 131 insertions(+), 417 deletions(-) delete mode 100644 main_page/src/mod_main.py delete mode 100644 main_page/src/symbols_list.py diff --git a/main_page/src/add_definition.py b/main_page/src/add_definition.py index 41c4d7c..bc7bc77 100644 --- a/main_page/src/add_definition.py +++ b/main_page/src/add_definition.py @@ -9,8 +9,8 @@ def main(): result = "drmf_bof\n" + \ "'''Definition:" + macro_name + "'''\n" + \ "The LaTeX DLMF and DRMF macro '''\\" + macro_name + "''' represents the " + macro_name + ".\n\n" + \ - "These are defined by \n\n" + \ - "\n\n{\\displaystyle\n\n" + definition + "\n\n}\n\n
\n\ndrmf_eof\n" + "These are defined by \n" + \ + "{\\displaystyle\n" + definition + "\n}\n
\n\ndrmf_eof\n" with open("main_page.mmd", "a") as main_page: main_page.write("\n" + result) diff --git a/main_page/src/main.py b/main_page/src/main.py index 3d5bb35..940e063 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -4,7 +4,6 @@ import csv import time -import mod_main GLOSSARY_LOCATION = "new.Glossary.csv" @@ -21,6 +20,82 @@ def generate_html(tag_name, options, text, spacing=True): return result +def get_macro_name(macro): + macro_name = "" + for ch in macro: + if ch.isalpha() or ch == "\\": + macro_name += ch + elif ch in ["@", "{", "["]: + break + + return macro_name + + +def find_all(pattern, string): + """Yields all positions of where pattern is present in string.""" + + i = string.find(pattern) + while i != -1: + yield i + i = string.find(pattern, i + 1) + + +def remove_optional_params(string): + parse = True + text = "" + for ch in string: + if parse and ch == "[": + parse = False + elif parse: + text += ch + else: + if ch == "]": + parse = True + + return text + + +def find_all_positions(entry): + macro = entry[0] + category = entry[3].split("|", 1)[0] + keys = entry[3].split("|", 1)[1].split(":") + result = [] + + for key in keys: + if key in ["F", "FO", "O", "O1"]: + result.append(macro.split("@", 1)[0]) + if macro.count("@") > 0 and key == "O": + result.append(macro) + + if key == "FnO": # remove optional parameters + string = macro + if macro.count("@") > 0: + string = string[:string.find("@")] + result.append(remove_optional_params(string)) + + if key in ["P", "PO", "PnO"]: + result.append(macro.replace("@@", "@")) + + if key == "PnO": # remove optional parameters + result[-1] = remove_optional_params(result[-1]) + + if key in ["nP", "nPO", "PS", "O2"]: + result.append(macro) + + if key == "nPnO": # remove optional paramters + result.append(remove_optional_params(macro)) + + if "fo" in key: + result.append(macro.replace("@@@", "@" * int(key[2]))) + + return sorted(result, key=lambda x: x.count("@")), category + + +def macro_match(macro, entry): + """Determines whether the entry refers to the macro.""" + return macro in entry and (len(macro) == len(entry) or not entry[len(macro)].isalpha()) + + def update_macro_list(text): lines = text.split("\n") definitions = list() @@ -81,26 +156,6 @@ def update_headers(text, definitions): return output -def get_macro_name(macro): - macro_name = "" - for ch in macro: - if ch.isalpha() or ch == "\\": - macro_name += ch - elif ch in ["@", "{", "["]: - break - - return macro_name - - -def find_all(pattern, string): - """Yields all positions of where pattern is present in string.""" - - i = string.find(pattern) - while i != -1: - yield i - i = string.find(pattern, i + 1) - - def get_symbols(text, glossary): symbols = set() @@ -191,6 +246,58 @@ def add_symbols_data(data): return result +def add_usage(lines): + with open("categories.txt") as cats: + categories = cats.readlines() + + to_write = "" + i = 0 + + while True: + n = lines.find("'''Definition:", i) + if n == -1: + break + + macro_name = lines[n:].split("'''")[1][11:] + left = lines.find("'''\\", n) + right = lines.find("'''", left + len("'''\\")) + + if lines[left:right].find("{") != -1: + lines = lines[:left] + "'''\\" + macro_name + lines[right:] + + if lines.find("\nThis macro is in the category of", n) < lines.find("'''Definition:", n + len( + "'''Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: + p = lines.find("\nThis macro is in the category of", n) + else: + p = lines.find(".\n", n) + 1 + to_write += lines[i:p].rstrip() + "\n\n" + + calls = [] + glossary = csv.reader(open(GLOSSARY_LOCATION, 'rb'), delimiter=',', quotechar='\"') + for entry in glossary: + if macro_match("\\" + macro_name, entry[0]): + macro_calls, category = find_all_positions(entry) + calls += macro_calls + + for line in categories: + key, meaning = line.split(" - ") + if key == category: + category_text = "This macro is in the category of " + meaning + break + + text = category_text + "\nIn math mode, this macro can be called in the following way" + "s" * ( + len(calls) > 1) + ":\n\n" + + for call in calls: + text += ":'''" + call + "'''" + " produces {\\displaystyle " + call + "}
\n" + + # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + to_write += text + "\n" + i = lines.find("These are defined by", p) + + return to_write + lines[i:] + + def create_backup(): with open("main_page.mmd") as current: local_time = time.asctime(time.localtime(time.time())).split() @@ -210,7 +317,7 @@ def main(): text, definitions = update_macro_list(text) text = add_symbols_data(text) text = update_headers(text, definitions) - text = mod_main.main(text) + text = add_usage(text) # only create backup if program did not crash create_backup() diff --git a/main_page/src/mod_main.py b/main_page/src/mod_main.py deleted file mode 100644 index 7d6d40c..0000000 --- a/main_page/src/mod_main.py +++ /dev/null @@ -1,115 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" -__credits__ = ["Joon Bang", "Azeem Mohammed"] - -import csv - -GLOSSARY_LOCATION = "new.Glossary.csv" - - -def remove_optional_params(string): - parse = True - text = "" - for ch in string: - if parse and ch == "[": - parse = False - elif parse: - text += ch - else: - if ch == "]": - parse = True - - return text - - -def find_all_positions(entry): - macro = entry[0] - category = entry[3].split("|", 1)[0] - keys = entry[3].split("|", 1)[1].split(":") - result = [] - - for key in keys: - if key in ["F", "FO", "O", "O1"]: - result.append(macro.split("@", 1)[0]) - if macro.count("@") > 0 and key == "O": - result.append(macro) - - if key == "FnO": # remove optional parameters - string = macro - if macro.count("@") > 0: - string = string[:string.find("@")] - result.append(remove_optional_params(string)) - - if key in ["P", "PO", "PnO"]: - result.append(macro.replace("@@", "@")) - - if key == "PnO": # remove optional parameters - result[-1] = remove_optional_params(result[-1]) - - if key in ["nP", "nPO", "PS", "O2"]: - result.append(macro) - - if key == "nPnO": # remove optional paramters - result.append(remove_optional_params(macro)) - - if "fo" in key: - result.append(macro.replace("@@@", "@" * int(key[2]))) - - return sorted(result, key=lambda x: x.count("@")), category - - -def macro_match(macro, entry): - """Determines whether the entry refers to the macro.""" - return macro in entry and (len(macro) == len(entry) or not entry[len(macro)].isalpha()) - - -def main(lines): - lines = lines.replace("The LaTeX DLMF macro '''\\", "The LaTeX DLMF and DRMF macro '''\\") - to_write = "" - i = 0 - - with open("categories.txt") as cats: - categories = cats.readlines() - - while True: - n = lines.find("'''Definition:", i) - if n == -1: - break - - macro_name = lines[n + len("'''Definition:"):lines.find("'''", n + len("'''Definition:"))] - r = lines.find("'''\\", n) - q = lines.find("'''", r + len("'''\\")) - if lines[r:q].find("{") != -1: - lines = lines[0:r] + "'''\\" + macro_name + lines[q:] - - if lines.find("\nThis macro is in the category of", n) < lines.find("'''Definition:", n + len( - "'''Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: - p = lines.find("\nThis macro is in the category of", n) - else: - p = lines.find(".\n", n) + 1 - to_write += lines[i:p].rstrip() + "\n\n" - - calls = [] - glossary = csv.reader(open(GLOSSARY_LOCATION, 'rb'), delimiter=',', quotechar='\"') - for entry in glossary: - if macro_match("\\" + macro_name, entry[0]): - macro_calls, category = find_all_positions(entry) - calls += macro_calls - - for line in categories: - key, meaning = line.split(" - ") - if key == category: - category_text = "This macro is in the category of " + meaning - break - - text = category_text + "\nIn math mode, this macro can be called in the following way" + "s" * ( - len(calls) > 1) + ":\n\n" - - for call in calls: - text += ":'''" + call + "'''" + " produces {\\displaystyle " + call + "}
\n" - - # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... - to_write += text + "\n" - i = lines.find("These are defined by", p) - - return to_write + lines[i:] diff --git a/main_page/src/symbols_list.py b/main_page/src/symbols_list.py deleted file mode 100644 index b44936c..0000000 --- a/main_page/src/symbols_list.py +++ /dev/null @@ -1,278 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" -__credits__ = ["Joon Bang", "Azeem Mohammed"] - -import csv - -GLOSSARY_LOCATION = "new.Glossary.csv" - - -def get_symbols(line): - # (str) -> list - """Gets all symbols on a line.""" - if line == "": - return [] - - line = line.replace("\n", " ") - sym_list = [] - - symbol = "" - sym_flag = False - arg_flag = False - count = 0 - - for i, ch in enumerate(line): - if sym_flag: - if ch == ["{", "["]: - count += 1 - arg_flag = True - - if ch not in ["}", "]"] and (arg_flag or ch.isalpha()): - symbol += ch - - elif ch not in ["}", "]"]: - sym_flag = False - arg_flag = False - sym_list.append(symbol) - sym_list += (get_symbols(symbol)) - symbol = "" - - else: - count -= 1 - symbol += ch - if i + 1 == len(line): - p = "" - else: - p = line[i + 1] - if count == 0 and p not in ["{", "[", "@"]: - sym_flag = False - sym_list.append(symbol) - sym_list += (get_symbols(symbol)) - arg_flag = False - symbol = "" - - elif ch == "\\": - sym_flag = True - - sym_list.append(symbol) - sym_list += get_symbols(symbol) - return sym_list - - -def main(data): - pages = data[data.find("drmf_bof"):].split("drmf_eof")[:-1] - - print "Pages: " + str(len(pages)) - - result = "" - for page in pages: - # skip over non-definition pages - if "'''Definition:" not in page: - to_write = page + "drmf_eof\n" - result += to_write - continue - - page = page.replace("drmf_bof", "").strip("\n") - add_spacing = False - sflag2 = False - # remove data (to be regenerated later) - if page.find("== Symbols List ==") != -1: - to_write = page.split("== Symbols List ==")[0] - page = to_write - else: - add_spacing = True - if page.find("drmf_foot") == -1: - to_write = page - sflag2 = True - else: - to_write = page.split("
")[0] - page = to_write - - to_write = "drmf_bof\n" + to_write - if add_spacing: - to_write += "\n\n" - - to_write += "== Symbols List ==\n\n" - - symbols = get_symbols((' '.join(page.split("\n")) + " ").replace("\n", " ")) - print symbols - - new_symbols = [] - - for symbol in symbols: - flag_a = True - flag_b = True - c_n = 0 - c_c = 0 - arg_count = 0 - - for ch in symbol: - if ch.isalpha() and flag_a: - c_n += 1 - else: - flag_a = False - if ch in ["{", "["]: - c_c += 1 - if ch in ["}", "]"]: - c_c -= 1 - if c_c == 0: - arg_count += 1 - noA = symbol[:c_n] - - for y in new_symbols: - c_n = 0 - c_c = 0 - arg_count = 0 - flag_a = True - for ch in y: - if ch.isalpha() and flag_a: - c_n += 1 - else: - flag_a = False - if ch in ["{", "["]: - c_c += 1 - if ch in ["}", "]"]: - c_c -= 1 - if c_c == 0: - arg_count += 1 - - if y[:c_n].strip() == noA.strip(): - flag_b = False - break - - if flag_b: - new_symbols.append(symbol) - - new_symbols.reverse() - final_symbols = [] - - for i in xrange(len(new_symbols) - 1, -1, -1): - symbolPar = "\\" + new_symbols[i] - arg_count = 0 - par_count = 0 - parFlag = False - c_c = 0 - for ch in symbolPar: - if ch == "@": - parFlag = True - elif ch.isalpha(): - c_n += 1 - elif ch in ["{", "["]: - c_c += 1 - elif ch in ["}", "]"]: - c_c -= 1 - if c_c == 0: - if parFlag: - par_count += 1 - else: - arg_count += 1 - - if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: - if symbolPar.find("[") == -1: - symbol = symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): - symbol = symbolPar[0:symbolPar.find("[")] - else: - symbol = symbolPar[0:symbolPar.find("{")] - else: - symbol = symbolPar - gFlag = False - checkFlag = False - get = False - - glossary = csv.reader(open(GLOSSARY_LOCATION, "rb"), delimiter=',', quotechar='\"') - - preG = "" - symbol = symbol.strip("}").strip("]") - for S in glossary: - G = S - arg_count = 0 - par_count = 0 - parFlag = False - c_c = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 - for ch in G[0]: - if ch == "@": - parFlag = True - elif ch.isalpha(): - c_n += 1 - else: - if ch in ["{", "["]: - c_c += 1 - if ch in ["}", "]"]: - c_c -= 1 - if c_c == 0: - if parFlag: - par_count += 1 - else: - arg_count += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): - checkFlag = True - get = True - preG = S - elif checkFlag: - checkFlag = False - get = True - - if get: - G = preG - - if symbolPar.find("@") != -1: - Q = symbolPar[:symbolPar.find("@")] - else: - Q = symbolPar - - arg_list = [] - if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in xrange(len(symbol), len(Q)): - if Q[o] == "}" or ch == "]": - arg_list.append(ap) - ap = "" - elif Q[o] != "{" and ch != "[": - ap += Q[o] - - websiteF = "" - web1 = G[5] - for t in xrange(5, len(G)): - if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - - p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" - new2 = "" - mathF = True - p2 = G[1] - for k in p2: - if k == "$": - if mathF: - new2 += "{\\displaystyle " - else: - new2 += "}" - mathF = not mathF - else: - new2 += k - p2 = new2 - final_symbols.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - - if not gFlag: - new_symbols.pop(i) - - gFlag = True - for y in final_symbols: - if gFlag: - gFlag = False - to_write += ("[" + y) - else: - to_write += ("
\n[" + y) - - to_write += "\n
\ndrmf_eof\n\n" - if sflag2: - to_write += "\n" - result += to_write - - return result From 106bdd9393138a1c3ffab42ba71916df2e26a522 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 11:26:31 -0400 Subject: [PATCH 215/402] Change convert_fraction function to use better string formatting --- eCF/src/MathematicaToLaTeX.py | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 81c8510..286092a 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -642,25 +642,7 @@ def convert_fraction(line): # incorrectly change it to " )( / )( ", but there are no cases of # this happening yet, so I have not gone to fixing this yet. if (line[j + 1] == '(' and line[i - 1] == ')' and - line[i + 1] == '(' and line[k] == ')'): - # ()/() - line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + - line[i + 2:k] + '}' + line[k + 1:]) - elif line[j + 1] == '(' and line[i - 1] == ')': - # ()/-- - line = (line[:j + 1] + '\\frac{' + line[j + 2:i - 1] + '}{' + - line[i + 1:k + 1] + '}' + line[k + 1:]) - elif line[i + 1] == '(' and line[k] == ')': - # --/() - line = (line[:j + 1] + '\\frac{' + line[j + 1:i] + '}{' + - line[i + 2:k] + '}' + line[k + 1:]) - else: - # --/-- - line = (line[:j + 1] + '\\frac{' + line[j + 1:i] + '}{' + - line[i + 1:k + 1] + '}' + line[k + 1:]) - - '''if (line[j + 1] == '(' and line[i - 1] == ')' and - line[i + 1] == '(' and line[k] == ')'): + line[i + 1] == '(' and line[k] == ')'): # ()/() line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ .format(line[:j + 1], line[j + 2:i - 1], @@ -679,7 +661,7 @@ def convert_fraction(line): # --/-- line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ .format(line[:j + 1], line[j + 1:i], - line[i + 1:k + 1], line[k + 1:])''' + line[i + 1:k + 1], line[k + 1:]) i += 1 @@ -860,8 +842,8 @@ def main(): latex.write('\n\n\\end{document}\n') -with open(os.path.dirname(os.path.realpath(__file__)) + - '/../data/functions') as functions: +with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/functions') \ + as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line in functions.read().split('\n') if (line != '' and '#' not in line)) From 6a91131ed11454668651719adb38a4e347dd4687 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 11 Aug 2016 12:52:35 -0400 Subject: [PATCH 216/402] Add unit tests --- .travis.yml | 2 +- main_page/src/add_definition.py | 2 +- main_page/src/functions.py | 294 +++++++++++++++++ main_page/src/main.py | 310 +----------------- main_page/test/__init__.py | 0 .../test/add_symbols_data_tests/exp.1.txt | 26 ++ .../test/add_symbols_data_tests/res.1.txt | 39 +++ main_page/test/add_usage_tests/exp.1.txt | 30 ++ main_page/test/add_usage_tests/res.1.txt | 38 +++ main_page/test/macro_list_tests/exp.1.txt | 13 + main_page/test/macro_list_tests/res.1.txt | 18 + main_page/test/test_functions.py | 64 ++++ main_page/test/update_headers_tests/exp.1.txt | 28 ++ main_page/test/update_headers_tests/res.1.txt | 45 +++ 14 files changed, 606 insertions(+), 303 deletions(-) create mode 100644 main_page/src/functions.py create mode 100644 main_page/test/__init__.py create mode 100644 main_page/test/add_symbols_data_tests/exp.1.txt create mode 100644 main_page/test/add_symbols_data_tests/res.1.txt create mode 100644 main_page/test/add_usage_tests/exp.1.txt create mode 100644 main_page/test/add_usage_tests/res.1.txt create mode 100644 main_page/test/macro_list_tests/exp.1.txt create mode 100644 main_page/test/macro_list_tests/res.1.txt create mode 100644 main_page/test/test_functions.py create mode 100644 main_page/test/update_headers_tests/exp.1.txt create mode 100644 main_page/test/update_headers_tests/res.1.txt diff --git a/.travis.yml b/.travis.yml index dd5c68f..7b43807 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex + nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex main_page after_success: coveralls diff --git a/main_page/src/add_definition.py b/main_page/src/add_definition.py index bc7bc77..2d0bb5e 100644 --- a/main_page/src/add_definition.py +++ b/main_page/src/add_definition.py @@ -12,7 +12,7 @@ def main(): "These are defined by \n" + \ "{\\displaystyle\n" + definition + "\n}\n
\n\ndrmf_eof\n" - with open("main_page.mmd", "a") as main_page: + with open("main_page/main_page.mmd", "a") as main_page: main_page.write("\n" + result) print "\n" + result diff --git a/main_page/src/functions.py b/main_page/src/functions.py new file mode 100644 index 0000000..67abba4 --- /dev/null +++ b/main_page/src/functions.py @@ -0,0 +1,294 @@ +__author__ = "Joon Bang" +__status__ = "Development" + +import csv + +GLOSSARY_LOCATION = "main_page/new.Glossary.csv" + + +def generate_html(tag_name, options, text, spacing=True): + result = "<" + tag_name + if options != "": + result += " " + options + result += ">\n" + text + "\n\n" + + if not spacing: + return result.replace("\n", " ")[:-1] + "\n" + + return result + + +def get_macro_name(macro): + macro_name = "" + for ch in macro: + if ch.isalpha() or ch == "\\": + macro_name += ch + elif ch in ["@", "{", "["]: + break + + return macro_name + + +def find_all(pattern, string): + """Yields all positions of where pattern is present in string.""" + + i = string.find(pattern) + while i != -1: + yield i + i = string.find(pattern, i + 1) + + +def remove_optional_params(string): + parse = True + text = "" + for ch in string: + if parse and ch == "[": + parse = False + elif parse: + text += ch + else: + if ch == "]": + parse = True + + return text + + +def find_all_positions(entry): + macro = entry[0] + category = entry[3].split("|", 1)[0] + keys = entry[3].split("|", 1)[1].split(":") + result = [] + + for key in keys: + if key in ["F", "FO", "O", "O1"]: + result.append(macro.split("@", 1)[0]) + if macro.count("@") > 0 and key == "O": + result.append(macro) + + if key == "FnO": # remove optional parameters + string = macro + if macro.count("@") > 0: + string = string[:string.find("@")] + result.append(remove_optional_params(string)) + + if key in ["P", "PO", "PnO"]: + result.append(macro.replace("@@", "@")) + + if key == "PnO": # remove optional parameters + result[-1] = remove_optional_params(result[-1]) + + if key in ["nP", "nPO", "PS", "O2"]: + result.append(macro) + + if key == "nPnO": # remove optional paramters + result.append(remove_optional_params(macro)) + + if "fo" in key: + result.append(macro.replace("@@@", "@" * int(key[2]))) + + return sorted(result, key=lambda x: x.count("@")), category + + +def macro_match(macro, entry): + """Determines whether the entry refers to the macro.""" + return macro in entry and (len(macro) == len(entry) or not entry[len(macro)].isalpha()) + + +def update_macro_list(text): + lines = text.split("\n") + definitions = list() + + for line in lines: + if "'''Definition:" in line: + macro = line.split("'''")[1][11:] + element = "* [[Definition:" + macro + "|" + macro + "]]" + definitions.append(element) + + def_contents = generate_html("div", "style=\"-moz-column-count:2; column-count:2;-webkit-column-count:2\"", + "\n".join(definitions)) + + start = text.find("== Definition Pages ==") + end = text.find("= Copyright =") + + return text[:start + 23] + "\n" + def_contents + "\n" + text[end:], definitions + + +def update_headers(text, definitions): + pages = text.split("drmf_eof")[:-1] + + macros = list() + formatted = list() + for definition in definitions: + macros.append("Definition:" + definition.split("|")[1][:-2]) + formatted.append("[[" + macros[-1].replace(" ", "_") + "|" + macros[-1] + "]]") + + output = "" + + i = 0 + for page in pages: + if "'''Definition:" not in page: + output += page + "drmf_eof\n" + continue + + # remove drmf_bof and definition header to prevent redundancy + page = page[page.find(macros[i]) + len(macros[i]) + 3:] + + if "
" in page: + page = page[page.find(">>
\n
") + len(">>
\n
"):] + + if "
" in page: + page = page[:page.find("
")] + + nav_section = generate_html("div", "id=\"alignleft\"", "<< " + formatted[i - 1], spacing=False) + \ + generate_html("div", "id=\"aligncenter\"", "[[Main_Page|Main Page]]", spacing=False) + \ + generate_html("div", "id=\"alignright\"", formatted[(i + 1) % len(formatted)] + " >>", + spacing=False)[:-1] + + header = generate_html("div", "id=\"drmf_head\"", nav_section)[:-1] + footer = generate_html("div", "id=\"drmf_foot\"", nav_section)[:-1] + + output += "drmf_bof\n" + "'''" + macros[i] + "'''\n" + header + page[:-1] + footer + "\ndrmf_eof\n" + + i += 1 + + return output + + +def get_symbols(text, glossary): + symbols = set() + + for keyword in glossary: + for index in find_all(keyword, text): + # if the macro is present in the text + if index != -1: + index += len(keyword) # now index of next character + + if index >= len(text) or not text[index].isalpha(): + symbols.add(keyword) + + span_text = "" + for symbol in sorted(symbols, key=str.lower): + links = list() + for cell in glossary[symbol]: + if "http://" in cell or "https://" in cell: + links.append(cell) + + id_link = links[0] + links = ["[" + link + " " + link + "]" for link in links] + + meaning = list(glossary[symbol][1]) + + count = 0 + for i, ch in enumerate(meaning): + if ch == "$" and count % 2 == 0: + meaning[i] = "{\\displaystyle " + count += 1 + elif ch == "$": + meaning[i] = "}" + count += 1 + + appearance = glossary[symbol][4].strip("$") + + span_text += "[" + id_link + " {\\displaystyle " + appearance + \ + "}] : " + ''.join(meaning) + " : " + " ".join(links) + "
\n" + + return span_text[:-7] # slice off the extra br and endline + + +def add_symbols_data(data): + glossary = dict() + with open(GLOSSARY_LOCATION, "rb") as csv_file: + glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') + for row in glossary_file: + glossary[get_macro_name(row[0])] = row + + pages = data[data.find("drmf_bof"):].split("drmf_eof")[:-1] + + print "Pages: " + str(len(pages)) + + result = "" + for page in pages: + # skip over non-definition pages + if "'''Definition:" not in page: + result += page + "drmf_eof\n" + continue + + page = page.replace("drmf_bof", "").strip("\n") + add_spacing = False + # remove data (to be regenerated later) + if "== Symbols List ==" in page: + to_write = page.split("== Symbols List ==")[0] + page = to_write + else: + add_spacing = True + if page.find("drmf_foot") == -1: + to_write = page + else: + to_write = page.split("
")[0].rstrip("\n") + page = to_write + + to_write = "drmf_bof\n" + to_write + if add_spacing: + to_write += "\n\n" + + to_write += "== Symbols List ==\n\n" + to_write += get_symbols(page, glossary) + to_write += "\n
\ndrmf_eof\n" + result += to_write + + return result + + +def add_usage(lines): + with open("main_page/categories.txt") as cats: + categories = cats.readlines() + + to_write = "" + i = 0 + + while True: + n = lines.find("'''Definition:", i) + if n == -1: + break + + macro_name = lines[n:].split("'''")[1][11:] + left = lines.find("'''\\", n) + right = lines.find("'''", left + len("'''\\")) + + if lines[left:right].find("{") != -1: + lines = lines[:left] + "'''\\" + macro_name + lines[right:] + + if lines.find("\nThis macro is in the category of", n) < lines.find("'''Definition:", n + len( + "'''Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: + p = lines.find("\nThis macro is in the category of", n) + else: + p = lines.find(".\n", n) + 1 + + to_write += lines[i:p].rstrip() + "\n\n" + + calls = [] + glossary = csv.reader(open(GLOSSARY_LOCATION, 'rb'), delimiter=',', quotechar='\"') + for entry in glossary: + if macro_match("\\" + macro_name, entry[0]): + macro_calls, category = find_all_positions(entry) + calls += macro_calls + + for line in categories: + key, meaning = line.split(" - ") + if key == category: + category_text = "This macro is in the category of " + meaning + break + else: + category_text = "This macro is in the category of integer valued functions.\n" + + text = category_text + "\nIn math mode, this macro can be called in the following way" + "s" * ( + len(calls) > 1) + ":\n\n" + + for call in calls: + text += ":'''" + call + "'''" + " produces {\\displaystyle " + call + "}
\n" + + # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + to_write += text + "\n" + i = lines.find("These are defined by", p) + + return to_write + lines[i:] diff --git a/main_page/src/main.py b/main_page/src/main.py index 940e063..096b4db 100644 --- a/main_page/src/main.py +++ b/main_page/src/main.py @@ -2,307 +2,15 @@ __status__ = "Development" __credits__ = ["Joon Bang", "Azeem Mohammed"] -import csv import time - -GLOSSARY_LOCATION = "new.Glossary.csv" - - -def generate_html(tag_name, options, text, spacing=True): - result = "<" + tag_name - if options != "": - result += " " + options - result += ">\n" + text + "\n\n" - - if not spacing: - return result.replace("\n", " ")[:-1] + "\n" - - return result - - -def get_macro_name(macro): - macro_name = "" - for ch in macro: - if ch.isalpha() or ch == "\\": - macro_name += ch - elif ch in ["@", "{", "["]: - break - - return macro_name - - -def find_all(pattern, string): - """Yields all positions of where pattern is present in string.""" - - i = string.find(pattern) - while i != -1: - yield i - i = string.find(pattern, i + 1) - - -def remove_optional_params(string): - parse = True - text = "" - for ch in string: - if parse and ch == "[": - parse = False - elif parse: - text += ch - else: - if ch == "]": - parse = True - - return text - - -def find_all_positions(entry): - macro = entry[0] - category = entry[3].split("|", 1)[0] - keys = entry[3].split("|", 1)[1].split(":") - result = [] - - for key in keys: - if key in ["F", "FO", "O", "O1"]: - result.append(macro.split("@", 1)[0]) - if macro.count("@") > 0 and key == "O": - result.append(macro) - - if key == "FnO": # remove optional parameters - string = macro - if macro.count("@") > 0: - string = string[:string.find("@")] - result.append(remove_optional_params(string)) - - if key in ["P", "PO", "PnO"]: - result.append(macro.replace("@@", "@")) - - if key == "PnO": # remove optional parameters - result[-1] = remove_optional_params(result[-1]) - - if key in ["nP", "nPO", "PS", "O2"]: - result.append(macro) - - if key == "nPnO": # remove optional paramters - result.append(remove_optional_params(macro)) - - if "fo" in key: - result.append(macro.replace("@@@", "@" * int(key[2]))) - - return sorted(result, key=lambda x: x.count("@")), category - - -def macro_match(macro, entry): - """Determines whether the entry refers to the macro.""" - return macro in entry and (len(macro) == len(entry) or not entry[len(macro)].isalpha()) - - -def update_macro_list(text): - lines = text.split("\n") - definitions = list() - - for line in lines: - if "'''Definition:" in line: - macro = line.split("'''")[1][11:] - element = "* [[Definition:" + macro + "|" + macro + "]]" - definitions.append(element) - - def_contents = generate_html("div", "style=\"-moz-column-count:2; column-count:2;-webkit-column-count:2\"", - "\n".join(definitions)) - - start = text.find("== Definition Pages ==") - end = text.find("= Copyright =") - - return text[:start + 23] + "\n" + def_contents + "\n" + text[end:], definitions - - -def update_headers(text, definitions): - pages = text.split("drmf_eof")[:-1] - - macros = list() - formatted = list() - for definition in definitions: - macros.append("Definition:" + definition.split("|")[1][:-2]) - formatted.append("[[" + macros[-1].replace(" ", "_") + "|" + macros[-1] + "]]") - - output = "" - - i = 0 - for page in pages: - if "'''Definition:" not in page: - output += page + "drmf_eof\n" - continue - - # remove drmf_bof and definition header to prevent redundancy - page = page[page.find(macros[i]) + len(macros[i]) + 3:] - - if "
" in page: - page = page[page.find(">>
\n
") + len(">>
\n
"):] - - if "
" in page: - page = page[:page.find("
")] - - nav_section = generate_html("div", "id=\"alignleft\"", "<< " + formatted[i - 1], spacing=False) + \ - generate_html("div", "id=\"aligncenter\"", "[[Main_Page|Main Page]]", spacing=False) + \ - generate_html("div", "id=\"alignright\"", formatted[(i + 1) % len(formatted)] + " >>", - spacing=False)[:-1] - - header = generate_html("div", "id=\"drmf_head\"", nav_section)[:-1] - footer = generate_html("div", "id=\"drmf_foot\"", nav_section)[:-1] - - output += "drmf_bof\n" + "'''" + macros[i] + "'''\n" + header + page[:-1] + footer + "\ndrmf_eof\n" - - i += 1 - - return output - - -def get_symbols(text, glossary): - symbols = set() - - for keyword in glossary: - for index in find_all(keyword, text): - # if the macro is present in the text - if index != -1: - index += len(keyword) # now index of next character - - if index >= len(text) or not text[index].isalpha(): - symbols.add(keyword) - - span_text = "" - for symbol in sorted(symbols, key=str.lower): - links = list() - for cell in glossary[symbol]: - if "http://" in cell or "https://" in cell: - links.append(cell) - - id_link = links[0] - links = ["[" + link + " " + link + "]" for link in links] - - meaning = list(glossary[symbol][1]) - - count = 0 - for i, ch in enumerate(meaning): - if ch == "$" and count % 2 == 0: - meaning[i] = "{\\displaystyle " - count += 1 - elif ch == "$": - meaning[i] = "}" - count += 1 - - appearance = glossary[symbol][4].strip("$") - - span_text += "[" + id_link + " {\\displaystyle " + appearance + \ - "}] : " + ''.join(meaning) + " : " + " ".join(links) + "
\n" - - return span_text[:-7] # slice off the extra br and endline - - -def add_symbols_data(data): - glossary = dict() - with open(GLOSSARY_LOCATION, "rb") as csv_file: - glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') - for row in glossary_file: - glossary[get_macro_name(row[0])] = row - - pages = data[data.find("drmf_bof"):].split("drmf_eof")[:-1] - - print "Pages: " + str(len(pages)) - - result = "" - for page in pages: - # skip over non-definition pages - if "'''Definition:" not in page: - to_write = page + "drmf_eof\n" - result += to_write - continue - - page = page.replace("drmf_bof", "").strip("\n") - add_spacing = False - sflag2 = False - # remove data (to be regenerated later) - if "== Symbols List ==" in page: - to_write = page.split("== Symbols List ==")[0] - page = to_write - else: - add_spacing = True - if page.find("drmf_foot") == -1: - to_write = page - sflag2 = True - else: - to_write = page.split("
")[0] - page = to_write - - to_write = "drmf_bof\n" + to_write - if add_spacing: - to_write += "\n\n" - - to_write += "== Symbols List ==\n\n" - to_write += get_symbols(page, glossary) - to_write += "\n
\ndrmf_eof\n\n" - if sflag2: - to_write += "\n" - result += to_write - - return result - - -def add_usage(lines): - with open("categories.txt") as cats: - categories = cats.readlines() - - to_write = "" - i = 0 - - while True: - n = lines.find("'''Definition:", i) - if n == -1: - break - - macro_name = lines[n:].split("'''")[1][11:] - left = lines.find("'''\\", n) - right = lines.find("'''", left + len("'''\\")) - - if lines[left:right].find("{") != -1: - lines = lines[:left] + "'''\\" + macro_name + lines[right:] - - if lines.find("\nThis macro is in the category of", n) < lines.find("'''Definition:", n + len( - "'''Definition:") + 1) and lines.find("\nThis macro is in the category of", n) != -1: - p = lines.find("\nThis macro is in the category of", n) - else: - p = lines.find(".\n", n) + 1 - to_write += lines[i:p].rstrip() + "\n\n" - - calls = [] - glossary = csv.reader(open(GLOSSARY_LOCATION, 'rb'), delimiter=',', quotechar='\"') - for entry in glossary: - if macro_match("\\" + macro_name, entry[0]): - macro_calls, category = find_all_positions(entry) - calls += macro_calls - - for line in categories: - key, meaning = line.split(" - ") - if key == category: - category_text = "This macro is in the category of " + meaning - break - - text = category_text + "\nIn math mode, this macro can be called in the following way" + "s" * ( - len(calls) > 1) + ":\n\n" - - for call in calls: - text += ":'''" + call + "'''" + " produces {\\displaystyle " + call + "}
\n" - - # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... - to_write += text + "\n" - i = lines.find("These are defined by", p) - - return to_write + lines[i:] +import functions def create_backup(): - with open("main_page.mmd") as current: + with open("main_page/main_page.mmd") as current: local_time = time.asctime(time.localtime(time.time())).split() local_time = "_" + '_'.join(local_time[1:3] + local_time[3:][::-1]) - with open("backups/main_page" + local_time + ".mmd.bak", "w") as backup: + with open("main_page/backups/main_page" + local_time + ".mmd.bak", "w") as backup: backup.write(current.read()) @@ -311,18 +19,18 @@ def main(): return # read contents - with open("main_page.mmd") as main_page: + with open("main_page/main_page.mmd") as main_page: text = main_page.read() - text, definitions = update_macro_list(text) - text = add_symbols_data(text) - text = update_headers(text, definitions) - text = add_usage(text) + text, definitions = functions.update_macro_list(text) + text = functions.add_symbols_data(text) + text = functions.update_headers(text, definitions) + text = functions.add_usage(text) # only create backup if program did not crash create_backup() - with open("main_page.mmd", "w") as main_page: + with open("main_page/main_page.mmd", "w") as main_page: main_page.write(text) diff --git a/main_page/test/__init__.py b/main_page/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/main_page/test/add_symbols_data_tests/exp.1.txt b/main_page/test/add_symbols_data_tests/exp.1.txt new file mode 100644 index 0000000..7e5ab7c --- /dev/null +++ b/main_page/test/add_symbols_data_tests/exp.1.txt @@ -0,0 +1,26 @@ +drmf_bof +'''Main Page''' +drmf_eof +drmf_bof +'''Definition:Definition1''' + +\AlSalamCarlitzII{a}{n}@{x}{q}:=(-a)^nq^{-\binom{n}{2}}\,\qHyperrphis{2}{0}@@{q^{-n},x}{-}{q}{\frac{q^n}{a}} + +== Symbols List == + +drmf_eof +drmf_bof +'''Definition:Definition2''' + +\RiemannSiegelTheta@{t}:=\arg\left[\EulerGamma@{\frac{1}{4}+\frac{1}{2}it}\right]-\frac{1}{2}t\ln\pi + +
+
+ +drmf_eof +drmf_bof +'''Definition:Definition3''' + +\RamanujanTauTheta@{z}:=-\log\left(2\pi\right)z-\frac{i}{2}\left(\log\EulerGamma@{6+iz}-\log{\EulerGamma@{6-iz}}\right) + +drmf_eof diff --git a/main_page/test/add_symbols_data_tests/res.1.txt b/main_page/test/add_symbols_data_tests/res.1.txt new file mode 100644 index 0000000..11bfbae --- /dev/null +++ b/main_page/test/add_symbols_data_tests/res.1.txt @@ -0,0 +1,39 @@ +drmf_bof +'''Main Page''' +drmf_eof +drmf_bof +'''Definition:Definition1''' + +\AlSalamCarlitzII{a}{n}@{x}{q}:=(-a)^nq^{-\binom{n}{2}}\,\qHyperrphis{2}{0}@@{q^{-n},x}{-}{q}{\frac{q^n}{a}} + +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
+[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
+[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +
+drmf_eof +drmf_bof +'''Definition:Definition2''' + +\RiemannSiegelTheta@{t}:=\arg\left[\EulerGamma@{\frac{1}{4}+\frac{1}{2}it}\right]-\frac{1}{2}t\ln\pi + +== Symbols List == + +[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta] +
+drmf_eof +drmf_bof +'''Definition:Definition3''' + +\RamanujanTauTheta@{z}:=-\log\left(2\pi\right)z-\frac{i}{2}\left(\log\EulerGamma@{6+iz}-\log{\EulerGamma@{6-iz}}\right) + +== Symbols List == + +[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{log}}] : principle branch of natural logarithm : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
+[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta] +
+drmf_eof diff --git a/main_page/test/add_usage_tests/exp.1.txt b/main_page/test/add_usage_tests/exp.1.txt new file mode 100644 index 0000000..0b3d64b --- /dev/null +++ b/main_page/test/add_usage_tests/exp.1.txt @@ -0,0 +1,30 @@ +drmf_bof +'''Main Page''' +drmf_eof +drmf_bof +'''Definition:normctsdualqHahnptilde''' +The LaTeX DLMF and DRMF macro '''\normctsdualqHahnptilde''' represents the normctsdualqHahnptilde. + +These are defined by +{\displaystyle +{\tilde p}_n(x):=\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}=\frac{a^n\ctsdualqHahn{n}@{x}{a}{b}{c}{q}}{\qPochhammer{ab,ac}{q}{n}} +} +
+drmf_eof +drmf_bof +'''Definition:GaussDistQ''' +The LaTeX DLMF and DRMF macro '''\GaussDistQ''' represents the GaussDistQ. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\GaussDistQ''' produces {\displaystyle \GaussDistQ}
+:'''\GaussDistQ@{x}''' produces {\displaystyle \GaussDistQ@{x}}
+ +These are defined by +{\displaystyle +\GaussDistQ@{x}:=\frac{1}{2}\erfc@{\frac{x}{\sqrt{2}}} +} +
+drmf_eof diff --git a/main_page/test/add_usage_tests/res.1.txt b/main_page/test/add_usage_tests/res.1.txt new file mode 100644 index 0000000..6b5407e --- /dev/null +++ b/main_page/test/add_usage_tests/res.1.txt @@ -0,0 +1,38 @@ +drmf_bof +'''Main Page''' +drmf_eof +drmf_bof +'''Definition:normctsdualqHahnptilde''' +The LaTeX DLMF and DRMF macro '''\normctsdualqHahnptilde''' represents the normctsdualqHahnptilde. + +This macro is in the category of polynomials. + +In math mode, this macro can be called in the following ways: + +:'''\normctsdualqHahnptilde{n}''' produces {\displaystyle \normctsdualqHahnptilde{n}}
+:'''\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}''' produces {\displaystyle \normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}}
+:'''\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q}''' produces {\displaystyle \normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q}}
+ +These are defined by +{\displaystyle +{\tilde p}_n(x):=\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}=\frac{a^n\ctsdualqHahn{n}@{x}{a}{b}{c}{q}}{\qPochhammer{ab,ac}{q}{n}} +} +
+drmf_eof +drmf_bof +'''Definition:GaussDistQ''' +The LaTeX DLMF and DRMF macro '''\GaussDistQ''' represents the GaussDistQ. + +This macro is in the category of integer valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\GaussDistQ''' produces {\displaystyle \GaussDistQ}
+:'''\GaussDistQ@{x}''' produces {\displaystyle \GaussDistQ@{x}}
+ +These are defined by +{\displaystyle +\GaussDistQ@{x}:=\frac{1}{2}\erfc@{\frac{x}{\sqrt{2}}} +} +
+drmf_eof diff --git a/main_page/test/macro_list_tests/exp.1.txt b/main_page/test/macro_list_tests/exp.1.txt new file mode 100644 index 0000000..89f50fe --- /dev/null +++ b/main_page/test/macro_list_tests/exp.1.txt @@ -0,0 +1,13 @@ +drmf_bof + +== Definition Pages == + += Copyright = + +drmf_eof +drmf_bof +'''Definition:Definition1''' +drmf_eof +drmf_bof +'''Definition:Definition2''' +drmf_eof diff --git a/main_page/test/macro_list_tests/res.1.txt b/main_page/test/macro_list_tests/res.1.txt new file mode 100644 index 0000000..bfd0dbc --- /dev/null +++ b/main_page/test/macro_list_tests/res.1.txt @@ -0,0 +1,18 @@ +drmf_bof + +== Definition Pages == + +
+* [[Definition:Definition1|Definition1]] +* [[Definition:Definition2|Definition2]] +
+ += Copyright = + +drmf_eof +drmf_bof +'''Definition:Definition1''' +drmf_eof +drmf_bof +'''Definition:Definition2''' +drmf_eof diff --git a/main_page/test/test_functions.py b/main_page/test/test_functions.py new file mode 100644 index 0000000..f2a4d1c --- /dev/null +++ b/main_page/test/test_functions.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +__author__ = "Joon Bang" +__status__ = "Development" + +from unittest import TestCase +import src.functions as m + +update_macro_list_test_cases = [ + { + "exp": open("main_page/test/macro_list_tests/exp.1.txt").read(), + "res": ( + open("main_page/test/macro_list_tests/res.1.txt").read(), + ["* [[Definition:Definition1|Definition1]]", "* [[Definition:Definition2|Definition2]]"] + ) + } +] + +update_headers_test_cases = [ + { + "exp": open("main_page/test/update_headers_tests/exp.1.txt").read(), + "def": ["* [[Definition:Definition1|Definition1]]", "* [[Definition:Definition2|Definition2]]", + "* [[Definition:Definition3|Definition3]]"], + "res": open("main_page/test/update_headers_tests/res.1.txt").read() + } +] + +add_symbols_data_test_cases = [ + { + "exp": open("main_page/test/add_symbols_data_tests/exp.1.txt").read(), + "res": open("main_page/test/add_symbols_data_tests/res.1.txt").read() + } +] + +add_usage_test_cases = [ + { + "exp": open("main_page/test/add_usage_tests/exp.1.txt").read(), + "res": open("main_page/test/add_usage_tests/res.1.txt").read() + } +] + + +class TestUpdateMacroList(TestCase): + def test_update_macro_list(self): + for case in update_macro_list_test_cases: + self.assertEqual(m.update_macro_list(case["exp"]), case["res"]) + + +class TestUpdateHeaders(TestCase): + def test_update_headers(self): + for case in update_headers_test_cases: + self.assertEqual(m.update_headers(case["exp"], case["def"]), case["res"]) + + +class TestAddSymbolsData(TestCase): + def test_add_symbols_data(self): + for case in add_symbols_data_test_cases: + self.assertEqual(m.add_symbols_data(case["exp"]), case["res"]) + + +class TestAddUsage(TestCase): + def test_add_usage(self): + for case in add_usage_test_cases: + self.assertEqual(m.add_usage(case["exp"]), case["res"]) diff --git a/main_page/test/update_headers_tests/exp.1.txt b/main_page/test/update_headers_tests/exp.1.txt new file mode 100644 index 0000000..09cfcb8 --- /dev/null +++ b/main_page/test/update_headers_tests/exp.1.txt @@ -0,0 +1,28 @@ +drmf_bof +'''Main Page''' +drmf_eof +drmf_bof +'''Definition:Definition1''' +
+
>>
+
+Definition1 Text. +
+
+
+drmf_eof +drmf_bof +'''Definition:Definition2''' +
+
>>
+
+Definition2 Text. +
+
+
+drmf_eof +drmf_bof +'''Definition:Definition3''' +Definition3 Text. +
+drmf_eof diff --git a/main_page/test/update_headers_tests/res.1.txt b/main_page/test/update_headers_tests/res.1.txt new file mode 100644 index 0000000..ea47d21 --- /dev/null +++ b/main_page/test/update_headers_tests/res.1.txt @@ -0,0 +1,45 @@ +drmf_bof +'''Main Page''' +drmf_eof +drmf_bof +'''Definition:Definition1''' +
+
<< [[Definition:Definition3|Definition:Definition3]]
+
[[Main_Page|Main Page]]
+
[[Definition:Definition2|Definition:Definition2]] >>
+
+Definition1 Text. +
+
<< [[Definition:Definition3|Definition:Definition3]]
+
[[Main_Page|Main Page]]
+
[[Definition:Definition2|Definition:Definition2]] >>
+
+drmf_eof +drmf_bof +'''Definition:Definition2''' +
+
<< [[Definition:Definition1|Definition:Definition1]]
+
[[Main_Page|Main Page]]
+
[[Definition:Definition3|Definition:Definition3]] >>
+
+Definition2 Text. +
+
<< [[Definition:Definition1|Definition:Definition1]]
+
[[Main_Page|Main Page]]
+
[[Definition:Definition3|Definition:Definition3]] >>
+
+drmf_eof +drmf_bof +'''Definition:Definition3''' +
+
<< [[Definition:Definition2|Definition:Definition2]]
+
[[Main_Page|Main Page]]
+
[[Definition:Definition1|Definition:Definition1]] >>
+
+Definition3 Text. +
+
<< [[Definition:Definition2|Definition:Definition2]]
+
[[Main_Page|Main Page]]
+
[[Definition:Definition1|Definition:Definition1]] >>
+
+drmf_eof From 272ed9aefcdfb533c8f16f3d56a30e2ea94048ed Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 14:15:28 -0400 Subject: [PATCH 217/402] Update .gitignore, add tests for carat function --- eCF/.gitignore | 3 +++ eCF/src/MathematicaToLaTeX.py | 2 +- eCF/test/test_carat.py | 24 ++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/eCF/.gitignore b/eCF/.gitignore index a695525..9eb163b 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -4,6 +4,9 @@ src/test.txt data/Identities.* data/newIdentities.* data/IdentitiesTest.m +src/Glossary.csv +src/new.Glossary.csv +src/new.Glossary.updated.csv IdentitiesTest.txt README_Glossary x.log diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 286092a..5e3ac96 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -193,7 +193,7 @@ def carat(line): """ l = list('([{') r = list(')]}') - sign = list('*/+-=,') + sign = list('*/+-=, ') i = 0 while i != len(line): diff --git a/eCF/test/test_carat.py b/eCF/test/test_carat.py index 1cdc8d8..6edcfe9 100644 --- a/eCF/test/test_carat.py +++ b/eCF/test/test_carat.py @@ -5,3 +5,27 @@ from unittest import TestCase from MathematicaToLaTeX import carat + +class TestCarat(TestCase): + + def test_seperate(self): + self.assertEqual(carat('a^b'), 'a^{b}') + self.assertEqual(carat('a^b*c'), 'a^{b}*c') + self.assertEqual(carat('a^b/c'), 'a^{b}/c') + self.assertEqual(carat('a^b+c'), 'a^{b}+c') + self.assertEqual(carat('a^b-c'), 'a^{b}-c') + self.assertEqual(carat('a^b=c'), 'a^{b}=c') + self.assertEqual(carat('a^b,c'), 'a^{b},c') + self.assertEqual(carat('a^b c'), 'a^{b} c') + + def test_parentheses(self): + self.assertEqual(carat('a^(b+c)'), 'a^{b+c}') + self.assertEqual(carat('a^(b+c)*d'), 'a^{(b+c)}*d') + self.assertEqual(carat('a^(b+c)/d'), 'a^{(b+c)}/d') + self.assertEqual(carat('a^(b+c)+d'), 'a^{(b+c)}+d') + self.assertEqual(carat('a^(b+c)-d'), 'a^{(b+c)}-d') + self.assertEqual(carat('a^(b+c)=d'), 'a^{(b+c)}=d') + self.assertEqual(carat('a^(b+c),d'), 'a^{(b+c)},d') + + def test_none(self): + self.assertEqual(carat('nocarat'), 'nocarat') From d5ab83dd4eb62a56c3e562d3596ebb24db40feeb Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 14:17:35 -0400 Subject: [PATCH 218/402] Remove pythonTest.py --- eCF/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/eCF/.gitignore b/eCF/.gitignore index 9eb163b..7f9c223 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -7,6 +7,7 @@ data/IdentitiesTest.m src/Glossary.csv src/new.Glossary.csv src/new.Glossary.updated.csv +src/pythonTest.py IdentitiesTest.txt README_Glossary x.log From 923ace05efd75c1b0e184a4eda560833f104d3cf Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 14:20:27 -0400 Subject: [PATCH 219/402] Remove pythonTest.py --- eCF/src/pythonTest.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 eCF/src/pythonTest.py diff --git a/eCF/src/pythonTest.py b/eCF/src/pythonTest.py deleted file mode 100644 index e69de29..0000000 From e6579815a9753d184b90ae102a494ca8c86d0d2b Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 16:14:24 -0400 Subject: [PATCH 220/402] Fix error with constraint function and change ContinuedFractionK to appear with parentheses around the fraction --- eCF/src/MathematicaToLaTeX.py | 13 +++++++++---- eCF/test/test_constraint.py | 9 +++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 5e3ac96..c58a88e 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -227,6 +227,11 @@ def beta(line): """ Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. + + :type line: str + :param line: line to be converted + :rtype: str + :returns: converted line """ for _ in range(line.count('Beta')): try: @@ -271,12 +276,12 @@ def cfk(line): moreargs = arg_split(args[-1][1:-1], ',') if len(args) == 3: line = (line[:pos[0]] + - '\\CFK{{{0}}}{{{1}}}{{{2}}}@{{{3}}}{{{4}}}' + '\\CFK{{{0}}}{{{1}}}{{{2}}}@@{{{3}}}{{{4}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0], args[1]) + line[pos[1]:]) else: line = (line[:pos[0]] + - '\\CFK{{{0}}}{{{1}}}{{{2}}}@{{1}}{{{3}}}' + '\\CFK{{{0}}}{{{1}}}{{{2}}}@@{{1}}{{{3}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) @@ -719,13 +724,13 @@ def replace_operators(line): line = parts[0] line = line.replace('(', '\\left( ') line = line.replace(')', ' \\right)') - line = line.replace('&', ' \\land ') + #line = line.replace('&', ' \\land ') line = line.replace(' ', ' ') line += parts[1] else: line = line.replace('(', '\\left( ') line = line.replace(')', ' \\right)') - line = line.replace('&', ' \\land ') + #line = line.replace('&', ' \\land ') line = line.replace(' ', ' ') line = line.replace('"a"', 'a') diff --git a/eCF/test/test_constraint.py b/eCF/test/test_constraint.py index 34330f8..f22fd6a 100644 --- a/eCF/test/test_constraint.py +++ b/eCF/test/test_constraint.py @@ -5,3 +5,12 @@ from unittest import TestCase from MathematicaToLaTeX import constraint +class TestConstraint(TestCase): + +\ + def test_single(self): + + def test_multiple(self): + + def test_none(self): + self.assertEqual(constraint('noconstraint'), 'noconstraint') From 55c2c323d629ccb1631f42fb306e862a35404f72 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 16:15:35 -0400 Subject: [PATCH 221/402] Remove two unused lines in replace_operators function --- eCF/src/MathematicaToLaTeX.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index c58a88e..4bc54e9 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -724,13 +724,11 @@ def replace_operators(line): line = parts[0] line = line.replace('(', '\\left( ') line = line.replace(')', ' \\right)') - #line = line.replace('&', ' \\land ') line = line.replace(' ', ' ') line += parts[1] else: line = line.replace('(', '\\left( ') line = line.replace(')', ' \\right)') - #line = line.replace('&', ' \\land ') line = line.replace(' ', ' ') line = line.replace('"a"', 'a') From 9a81f55a87b99df4729604485c54262c5aaf0a71 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 11 Aug 2016 16:42:55 -0400 Subject: [PATCH 222/402] Add some tests for constraint function --- eCF/src/MathematicaToLaTeX.py | 2 +- eCF/test/test_constraint.py | 12 ++++++++++-- eCF/test/test_replace_operators.py | 2 -- .../test_single_macro_conversion_functions.py | 18 +++++++++--------- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 4bc54e9..7d753a4 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -762,7 +762,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = False + test = True with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: diff --git a/eCF/test/test_constraint.py b/eCF/test/test_constraint.py index f22fd6a..8b433c4 100644 --- a/eCF/test/test_constraint.py +++ b/eCF/test/test_constraint.py @@ -5,12 +5,20 @@ from unittest import TestCase from MathematicaToLaTeX import constraint + class TestConstraint(TestCase): -\ def test_single(self): + self.assertEqual(constraint('text,Element[z,Complexes]'), 'text\n% \constraint{$z \in \Complex$}') + self.assertEqual(constraint('text,Element[z,Wholes]'), 'text\n% \constraint{$z \in \Whole$}') + self.assertEqual(constraint('text,Element[z,Naturals]'), 'text\n% \constraint{$z \in \NatNumber$}') + self.assertEqual(constraint('text,Element[z,Integers]'), 'text\n% \constraint{$z \in \Integer$}') + self.assertEqual(constraint('text,Element[z,Irrationals]'), 'text\n% \constraint{$z \in \Irrational$}') + self.assertEqual(constraint('text,Element[z,Reals]'), 'text\n% \constraint{$z \in \Real$}') + self.assertEqual(constraint('text,Element[z,Rational]'), 'text\n% \constraint{$z \in \Rational$}') + self.assertEqual(constraint('text,Element[z,Primes]'), 'text\n% \constraint{$z \in \Prime$}') - def test_multiple(self): + # def test_multiple(self): def test_none(self): self.assertEqual(constraint('noconstraint'), 'noconstraint') diff --git a/eCF/test/test_replace_operators.py b/eCF/test/test_replace_operators.py index ee87043..d8eaf3e 100644 --- a/eCF/test/test_replace_operators.py +++ b/eCF/test/test_replace_operators.py @@ -25,7 +25,6 @@ def test_without_percent(self): self.assertEqual(replace_operators(','), ', ') self.assertEqual(replace_operators('('), '\\left( ') self.assertEqual(replace_operators(')'), ' \\right)') - self.assertEqual(replace_operators('&'), ' \\land ') self.assertEqual(replace_operators(' '), ' ') self.assertEqual(replace_operators('"a"'), 'a') @@ -38,7 +37,6 @@ def test_constants(self): def test_with_percent(self): self.assertEqual(replace_operators('(%('), '\\left( %(') self.assertEqual(replace_operators(')%)'), ' \\right)%)') - self.assertEqual(replace_operators('&%&'), ' \\land %&') self.assertEqual(replace_operators(' % '), ' % ') def test_none(self): diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index ace02b8..4ea7693 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -42,17 +42,17 @@ def test_none(self): class TestCFK(TestCase): def test_single(self): - self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{f}{g}') - self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{f}{g}--') - self.assertEqual(cfk('ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{1}{g}') - self.assertEqual(cfk('--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{1}{g}--') - self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{f}{g}\\CFK{i}{imin}{imax}@{1}{g}') - self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{f}{g}--\\CFK{i}{imin}{imax}@{1}{g}--') + self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{f}{g}') + self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{f}{g}--') + self.assertEqual(cfk('ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{1}{g}') + self.assertEqual(cfk('--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{1}{g}--') + self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{f}{g}\\CFK{i}{imin}{imax}@@{1}{g}') + self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{f}{g}--\\CFK{i}{imin}{imax}@@{1}{g}--') def test_nested(self): - self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{\\CFK{i}{imin}{imax}@{f}{g}}{\\CFK{i}{imin}{imax}@{f}{g}}') - self.assertEqual(cfk('--ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@{\\CFK{i}{imin}{imax}@{f}{g}}{\\CFK{i}{imin}{imax}@{f}{g}}--') - self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@{1}{\\CFK{i}{imin}{imax}@{1}{g}}') + self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{\\CFK{i}{imin}{imax}@@{f}{g}}{\\CFK{i}{imin}{imax}@@{f}{g}}') + self.assertEqual(cfk('--ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{\\CFK{i}{imin}{imax}@@{f}{g}}{\\CFK{i}{imin}{imax}@@{f}{g}}--') + self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{1}{\\CFK{i}{imin}{imax}@@{1}{g}}') def test_none(self): self.assertEqual(cfk('none'), 'none') From f38bee3b7963b693d517f946aa59c206188e9aca Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 11:16:25 -0400 Subject: [PATCH 223/402] Add entry for Binet function --- main_page/main_page.mmd | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/main_page/main_page.mmd b/main_page/main_page.mmd index 0e87ea3..7cbe107 100644 --- a/main_page/main_page.mmd +++ b/main_page/main_page.mmd @@ -228,6 +228,7 @@ For more information see [http://link.springer.com/chapter/10.1007%2F978-3-319-0 * [[Definition:RamanujanTauTheta|RamanujanTauTheta]] * [[Definition:RiemannSiegelTheta|RiemannSiegelTheta]] * [[Definition:sinc|sinc]] +* [[Definition:Binet|Binet]]
= Copyright = @@ -285,7 +286,7 @@ drmf_eof drmf_bof '''Definition:AffqKrawtchouk'''
-
<< [[Definition:sinc|Definition:sinc]]
+
<< [[Definition:Binet|Definition:Binet]]
[[Main_Page|Main Page]]
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
@@ -312,7 +313,7 @@ These are defined by [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk {\displaystyle K^{\mathrm{Aff}}_{n}}] : affine {\displaystyle q}-Krawtchouk polynomial : [http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk http://drmf.wmflabs.org/wiki/Definition:AffqKrawtchouk]
[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1]
-
<< [[Definition:sinc|Definition:sinc]]
+
<< [[Definition:Binet|Definition:Binet]]
[[Main_Page|Main Page]]
[[Definition:AlSalamCarlitzI|Definition:AlSalamCarlitzI]] >>
@@ -5154,7 +5155,7 @@ drmf_bof
<< [[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]]
[[Main_Page|Main Page]]
-
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
[[Definition:Binet|Definition:Binet]] >>
The LaTeX DLMF and DRMF macro '''\sinc''' represents the sinc. @@ -5188,6 +5189,40 @@ These are defined by
<< [[Definition:RiemannSiegelTheta|Definition:RiemannSiegelTheta]]
[[Main_Page|Main Page]]
+
[[Definition:Binet|Definition:Binet]] >>
+
+drmf_eof +drmf_bof +'''Definition:Binet''' +
+
<< [[Definition:sinc|Definition:sinc]]
+
[[Main_Page|Main Page]]
+
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
+
+The LaTeX DLMF and DRMF macro '''\Binet''' represents the Binet. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following ways: + +:'''\Binet''' produces {\displaystyle \Binet}
+:'''\Binet@{z}''' produces {\displaystyle \Binet@{z}}
+ +These are defined by +{\displaystyle +\Binet@{z}:=\ln@{\EulerGamma@{z}}-\left(z-\frac{1}{2}\right)\ln@{z}+z-\ln@{\sqrt{2\cpi}} +} +
+ +== Symbols List == + +[http://drmf.wmflabs.org/wiki/Definition:Binet {\displaystyle J\left(x\right)}] : Binet function : [http://drmf.wmflabs.org/wiki/Definition:Binet http://drmf.wmflabs.org/wiki/Definition:Binet]
+[http://dlmf.nist.gov/5.19.E4 {\displaystyle \pi}] : ratio of a circle's circumference to its diameter : [http://dlmf.nist.gov/5.19.E4 http://dlmf.nist.gov/5.19.E4]
+[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
+[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2] +
+
<< [[Definition:sinc|Definition:sinc]]
+
[[Main_Page|Main Page]]
[[Definition:AffqKrawtchouk|Definition:AffqKrawtchouk]] >>
drmf_eof From d81dd01c05fde96347a9cd12d417b82933257bbe Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 12 Aug 2016 11:22:36 -0400 Subject: [PATCH 224/402] Finish tests for constraint function --- eCF/.gitignore | 1 + eCF/src/MathematicaToLaTeX.py | 2 +- eCF/test/test_constraint.py | 158 +++++++++++++++++++++++++++++++--- 3 files changed, 148 insertions(+), 13 deletions(-) diff --git a/eCF/.gitignore b/eCF/.gitignore index 7f9c223..e6caac9 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -4,6 +4,7 @@ src/test.txt data/Identities.* data/newIdentities.* data/IdentitiesTest.m +data/References.txt src/Glossary.csv src/new.Glossary.csv src/new.Glossary.updated.csv diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 7d753a4..4bc54e9 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -762,7 +762,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = True + test = False with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: diff --git a/eCF/test/test_constraint.py b/eCF/test/test_constraint.py index 8b433c4..c881a08 100644 --- a/eCF/test/test_constraint.py +++ b/eCF/test/test_constraint.py @@ -8,17 +8,151 @@ class TestConstraint(TestCase): - def test_single(self): - self.assertEqual(constraint('text,Element[z,Complexes]'), 'text\n% \constraint{$z \in \Complex$}') - self.assertEqual(constraint('text,Element[z,Wholes]'), 'text\n% \constraint{$z \in \Whole$}') - self.assertEqual(constraint('text,Element[z,Naturals]'), 'text\n% \constraint{$z \in \NatNumber$}') - self.assertEqual(constraint('text,Element[z,Integers]'), 'text\n% \constraint{$z \in \Integer$}') - self.assertEqual(constraint('text,Element[z,Irrationals]'), 'text\n% \constraint{$z \in \Irrational$}') - self.assertEqual(constraint('text,Element[z,Reals]'), 'text\n% \constraint{$z \in \Real$}') - self.assertEqual(constraint('text,Element[z,Rational]'), 'text\n% \constraint{$z \in \Rational$}') - self.assertEqual(constraint('text,Element[z,Primes]'), 'text\n% \constraint{$z \in \Prime$}') - - # def test_multiple(self): + def test_element_singlevar(self): + self.assertEqual(constraint('text,Element[a,Complexes]'), + 'text\n' + '% \constraint{$a \in \Complex$}') + self.assertEqual(constraint('text,Element[a,Wholes]'), + 'text\n' + '% \constraint{$a \in \Whole$}') + self.assertEqual(constraint('text,Element[a,Naturals]'), + 'text\n' + '% \constraint{$a \in \\NatNumber$}') + self.assertEqual(constraint('text,Element[a,Integers]'), + 'text\n' + '% \constraint{$a \in \Integer$}') + self.assertEqual(constraint('text,Element[a,Irrationals]'), + 'text\n' + '% \constraint{$a \in \Irrational$}') + self.assertEqual(constraint('text,Element[a,Reals]'), + 'text\n' + '% \constraint{$a \in \Real$}') + self.assertEqual(constraint('text,Element[a,Rational]'), + 'text\n' + '% \constraint{$a \in \Rational$}') + self.assertEqual(constraint('text,Element[a,Primes]'), + 'text\n' + '% \constraint{$a \in \Prime$}') + + def test_element_multivar(self): + self.assertEqual(constraint('text,Element[a|b|c|d,Complexes]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Complex$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Wholes]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Whole$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Naturals]'), + 'text\n' + '% \constraint{$a,b,c,d \in \\NatNumber$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Integers]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Integer$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Irrationals]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Irrational$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Reals]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Real$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Rational]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Rational$}') + self.assertEqual(constraint('text,Element[a|b|c|d,Primes]'), + 'text\n' + '% \constraint{$a,b,c,d \in \Prime$}') + + def test_notelement_singlevar(self): + self.assertEqual(constraint('text,NotElement[a,Complexes]'), + 'text\n' + '% \\constraint{$a \\notin \\Complex$}') + self.assertEqual(constraint('text,NotElement[a,Wholes]'), + 'text\n' + '% \\constraint{$a \\notin \\Whole$}') + self.assertEqual(constraint('text,NotElement[a,Naturals]'), + 'text\n' + '% \\constraint{$a \\notin \\NatNumber$}') + self.assertEqual(constraint('text,NotElement[a,Integers]'), + 'text\n' + '% \\constraint{$a \\notin \\Integer$}') + self.assertEqual(constraint('text,NotElement[a,Irrationals]'), + 'text\n' + '% \\constraint{$a \\notin \\Irrational$}') + self.assertEqual(constraint('text,NotElement[a,Reals]'), + 'text\n' + '% \\constraint{$a \\notin \\Real$}') + self.assertEqual(constraint('text,NotElement[a,Rational]'), + 'text\n' + '% \\constraint{$a \\notin \\Rational$}') + self.assertEqual(constraint('text,NotElement[a,Primes]'), + 'text\n' + '% \\constraint{$a \\notin \\Prime$}') + + def test_notelement_multivar(self): + self.assertEqual(constraint('text,NotElement[a|b|c|d,Complexes]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Complex$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Wholes]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Whole$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Naturals]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\NatNumber$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Integers]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Integer$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Irrationals]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Irrational$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Reals]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Real$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Rational]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Rational$}') + self.assertEqual(constraint('text,NotElement[a|b|c|d,Primes]'), + 'text\n' + '% \\constraint{$a,b,c,d \\notin \\Prime$}') + + def test_inequality(self): + self.assertEqual(constraint('text,Inequality[a,Less,b,LessEqual,c]'), + 'text\n' + '% \\constraint{$aLessbLessEqualc$}') + + def test_multiple(self): + self.assertEqual(constraint('text,Element[a,Complexes]&&Element[b,Wholes]'), + 'text\n' + '% \\constraint{$a \\in \\Complex$\n' + '% & $b \\in \\Whole$}') + self.assertEqual(constraint('text,Element[a,Complexes]&&Element[b,Wholes]&&Element[c,Naturals]'), + 'text\n' + '% \\constraint{$a \\in \\Complex$\n' + '% & $b \\in \\Whole$\n' + '% & $c \\in \\NatNumber$}') + + self.assertEqual(constraint('text,NotElement[a,Complexes]&&NotElement[b,Wholes]'), + 'text\n' + '% \\constraint{$a \\notin \\Complex$\n' + '% & $b \\notin \\Whole$}') + self.assertEqual(constraint('text,NotElement[a,Complexes]&&NotElement[b,Wholes]&&NotElement[c,Naturals]'), + 'text\n' + '% \\constraint{$a \\notin \\Complex$\n' + '% & $b \\notin \\Whole$\n' + '% & $c \\notin \\NatNumber$}') + + self.assertEqual(constraint('text,Inequality[a,Less,b]&&Inequality[b,Less,c]'), + 'text\n' + '% \\constraint{$aLessb$\n' + '% & $bLessc$}') + self.assertEqual(constraint('text,Inequality[a,Less,b]&&Inequality[b,Less,c]&&Inequality[c,Less,d]'), + 'text\n' + '% \\constraint{$aLessb$\n' + '% & $bLessc$\n' + '% & $cLessd$}') + + self.assertEqual(constraint('text,Element[a|b|c,Complexes]&&NotElement[d|e|f,Primes]&&Inequality[g,Less,h,Less,i]'), + 'text\n' + '% \\constraint{$a,b,c \\in \\Complex$\n' + '% & $d,e,f \\notin \\Prime$\n' + '% & $gLesshLessi$}') def test_none(self): - self.assertEqual(constraint('noconstraint'), 'noconstraint') + self.assertEqual(constraint('noconstraint'), 'noconstraint') \ No newline at end of file From c9fb6969ab937aee3d2fcdc882ced761b2f937d1 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 11:57:18 -0400 Subject: [PATCH 225/402] Add fake new.Glossary.csv to fix unit tests --- main_page/new.Glossary.csv | 3 ++ main_page/src/functions.py | 5 +- .../test/add_symbols_data_tests/exp.1.txt | 12 ++--- .../test/add_symbols_data_tests/res.1.txt | 25 ++++------ main_page/test/add_usage_tests/exp.1.txt | 39 ++++++++++----- main_page/test/add_usage_tests/res.1.txt | 47 ++++++++++++------- 6 files changed, 79 insertions(+), 52 deletions(-) create mode 100644 main_page/new.Glossary.csv diff --git a/main_page/new.Glossary.csv b/main_page/new.Glossary.csv new file mode 100644 index 0000000..30db2f0 --- /dev/null +++ b/main_page/new.Glossary.csv @@ -0,0 +1,3 @@ +\DefinitionOne@{x},sample definition 1,sample-definition-1,F|P,$\mathrm{Def1}{x}$,http://fake-hyperlink.com/Definition1, +\DefinitionTwo@{x},sample definition 2,sample-definition-2,F|P,$\mathrm{Def2}{x}$,http://fake-hyperlink.com/Definition2, +\DefinitionTwoTwo,sample definition 22,sample-definition-22,C|P,$\mathrm{twenty two}$,http://fake-hyperlink.com/Definition22, \ No newline at end of file diff --git a/main_page/src/functions.py b/main_page/src/functions.py index 67abba4..23b54c8 100644 --- a/main_page/src/functions.py +++ b/main_page/src/functions.py @@ -26,6 +26,8 @@ def get_macro_name(macro): elif ch in ["@", "{", "["]: break + print macro_name + return macro_name @@ -204,8 +206,6 @@ def add_symbols_data(data): pages = data[data.find("drmf_bof"):].split("drmf_eof")[:-1] - print "Pages: " + str(len(pages)) - result = "" for page in pages: # skip over non-definition pages @@ -288,6 +288,7 @@ def add_usage(lines): text += ":'''" + call + "'''" + " produces {\\displaystyle " + call + "}
\n" # Now add the multiple ways \macroname{n}@... produces \macroname{n}@... + print text to_write += text + "\n" i = lines.find("These are defined by", p) diff --git a/main_page/test/add_symbols_data_tests/exp.1.txt b/main_page/test/add_symbols_data_tests/exp.1.txt index 7e5ab7c..aba079a 100644 --- a/main_page/test/add_symbols_data_tests/exp.1.txt +++ b/main_page/test/add_symbols_data_tests/exp.1.txt @@ -2,25 +2,25 @@ drmf_bof '''Main Page''' drmf_eof drmf_bof -'''Definition:Definition1''' +'''Definition:DefinitionOne''' -\AlSalamCarlitzII{a}{n}@{x}{q}:=(-a)^nq^{-\binom{n}{2}}\,\qHyperrphis{2}{0}@@{q^{-n},x}{-}{q}{\frac{q^n}{a}} +\DefinitionOne@{x}:=\DefinitionTwo@{x}+1 == Symbols List == drmf_eof drmf_bof -'''Definition:Definition2''' +'''Definition:DefinitionTwo''' -\RiemannSiegelTheta@{t}:=\arg\left[\EulerGamma@{\frac{1}{4}+\frac{1}{2}it}\right]-\frac{1}{2}t\ln\pi +\DefinitionTwo@{x}:=\frac{6}{127}
drmf_eof drmf_bof -'''Definition:Definition3''' +'''Definition:DefinitionTwoTwo''' -\RamanujanTauTheta@{z}:=-\log\left(2\pi\right)z-\frac{i}{2}\left(\log\EulerGamma@{6+iz}-\log{\EulerGamma@{6-iz}}\right) +\DefinitionTwoTwo:=22 drmf_eof diff --git a/main_page/test/add_symbols_data_tests/res.1.txt b/main_page/test/add_symbols_data_tests/res.1.txt index 11bfbae..a494846 100644 --- a/main_page/test/add_symbols_data_tests/res.1.txt +++ b/main_page/test/add_symbols_data_tests/res.1.txt @@ -2,38 +2,33 @@ drmf_bof '''Main Page''' drmf_eof drmf_bof -'''Definition:Definition1''' +'''Definition:DefinitionOne''' -\AlSalamCarlitzII{a}{n}@{x}{q}:=(-a)^nq^{-\binom{n}{2}}\,\qHyperrphis{2}{0}@@{q^{-n},x}{-}{q}{\frac{q^n}{a}} +\DefinitionOne@{x}:=\DefinitionTwo@{x}+1 == Symbols List == -[http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII {\displaystyle V^{(n)}_{\alpha}}] : Al-Salam-Carlitz II polynomial : [http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII http://drmf.wmflabs.org/wiki/Definition:AlSalamCarlitzII]
-[http://dlmf.nist.gov/1.2#E1 {\displaystyle \binom{n}{k}}] : binomial coefficient : [http://dlmf.nist.gov/1.2#E1 http://dlmf.nist.gov/1.2#E1] [http://dlmf.nist.gov/26.3#SS1.p1 http://dlmf.nist.gov/26.3#SS1.p1]
-[http://dlmf.nist.gov/17.4#E1 {\displaystyle {{}_{r}\phi_{s}}}] : basic hypergeometric (or {\displaystyle q}-hypergeometric) function : [http://dlmf.nist.gov/17.4#E1 http://dlmf.nist.gov/17.4#E1] +[http://fake-hyperlink.com/Definition1 {\displaystyle \mathrm{Def1}{x}}] : sample definition 1 : [http://fake-hyperlink.com/Definition1 http://fake-hyperlink.com/Definition1]
+[http://fake-hyperlink.com/Definition2 {\displaystyle \mathrm{Def2}{x}}] : sample definition 2 : [http://fake-hyperlink.com/Definition2 http://fake-hyperlink.com/Definition2]
drmf_eof drmf_bof -'''Definition:Definition2''' +'''Definition:DefinitionTwo''' -\RiemannSiegelTheta@{t}:=\arg\left[\EulerGamma@{\frac{1}{4}+\frac{1}{2}it}\right]-\frac{1}{2}t\ln\pi +\DefinitionTwo@{x}:=\frac{6}{127} == Symbols List == -[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{ln}}] : principal branch of logarithm function : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
-[http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta {\displaystyle \vartheta{t}}] : Riemann-Siegel theta function : [http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta http://drmf.wmflabs.org/wiki/Definition:RiemannSiegelTheta] +[http://fake-hyperlink.com/Definition2 {\displaystyle \mathrm{Def2}{x}}] : sample definition 2 : [http://fake-hyperlink.com/Definition2 http://fake-hyperlink.com/Definition2]
drmf_eof drmf_bof -'''Definition:Definition3''' +'''Definition:DefinitionTwoTwo''' -\RamanujanTauTheta@{z}:=-\log\left(2\pi\right)z-\frac{i}{2}\left(\log\EulerGamma@{6+iz}-\log{\EulerGamma@{6-iz}}\right) +\DefinitionTwoTwo:=22 == Symbols List == -[http://dlmf.nist.gov/5.2#E1 {\displaystyle \Gamma}] : Euler's gamma function : [http://dlmf.nist.gov/5.2#E1 http://dlmf.nist.gov/5.2#E1]
-[http://dlmf.nist.gov/4.2#E2 {\displaystyle \mathrm{log}}] : principle branch of natural logarithm : [http://dlmf.nist.gov/4.2#E2 http://dlmf.nist.gov/4.2#E2]
-[http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta {\displaystyle \tau\theta{z}}] : Ramanujan tau theta function : [http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta http://drmf.wmflabs.org/wiki/Definition:RamanujanTauTheta] +[http://fake-hyperlink.com/Definition22 {\displaystyle \mathrm{twenty two}}] : sample definition 22 : [http://fake-hyperlink.com/Definition22 http://fake-hyperlink.com/Definition22]
drmf_eof diff --git a/main_page/test/add_usage_tests/exp.1.txt b/main_page/test/add_usage_tests/exp.1.txt index 0b3d64b..ad1e151 100644 --- a/main_page/test/add_usage_tests/exp.1.txt +++ b/main_page/test/add_usage_tests/exp.1.txt @@ -2,29 +2,44 @@ drmf_bof '''Main Page''' drmf_eof drmf_bof -'''Definition:normctsdualqHahnptilde''' -The LaTeX DLMF and DRMF macro '''\normctsdualqHahnptilde''' represents the normctsdualqHahnptilde. +'''Definition:DefinitionOne''' +The LaTeX DLMF and DRMF macro '''\DefinitionOne''' represents the DefinitionOne. + +This macro is in the category of real or complex valued functions. + +In math mode, this macro can be called in the following way: + +:'''\DefinitionOne@{x}''' produces {\displaystyle \DefinitionOne@{x}}
These are defined by -{\displaystyle -{\tilde p}_n(x):=\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}=\frac{a^n\ctsdualqHahn{n}@{x}{a}{b}{c}{q}}{\qPochhammer{ab,ac}{q}{n}} +\displaystyle{ +\DefinitionOne@{x}:=\DefinitionTwo@{x}+1 }
drmf_eof drmf_bof -'''Definition:GaussDistQ''' -The LaTeX DLMF and DRMF macro '''\GaussDistQ''' represents the GaussDistQ. +'''Definition:DefinitionTwo''' +The LaTeX DLMF and DRMF macro '''\DefinitionTwo''' represents the DefinitionTwo. -This macro is in the category of integer valued functions. +This macro is in the category of real or complex valued functions. -In math mode, this macro can be called in the following ways: +In math mode, this macro can be called in the following way: -:'''\GaussDistQ''' produces {\displaystyle \GaussDistQ}
-:'''\GaussDistQ@{x}''' produces {\displaystyle \GaussDistQ@{x}}
+:'''\DefinitionTwo@{x}''' produces {\displaystyle \DefinitionTwo@{x}}
These are defined by -{\displaystyle -\GaussDistQ@{x}:=\frac{1}{2}\erfc@{\frac{x}{\sqrt{2}}} +\displaystyle{ +\DefinitionTwo@{x}:=\frac{6}{127} }
drmf_eof +drmf_bof +'''Definition:DefinitionTwoTwo''' +The LaTeX DLMF and DRMF macro '''\DefinitionTwoTwo''' represents the DefinitionTwoTwo. + +These are defined by +\displaystyle{ +\DefinitionTwoTwo:=22 +
+ +drmf_eof diff --git a/main_page/test/add_usage_tests/res.1.txt b/main_page/test/add_usage_tests/res.1.txt index 6b5407e..2ce81ca 100644 --- a/main_page/test/add_usage_tests/res.1.txt +++ b/main_page/test/add_usage_tests/res.1.txt @@ -2,37 +2,50 @@ drmf_bof '''Main Page''' drmf_eof drmf_bof -'''Definition:normctsdualqHahnptilde''' -The LaTeX DLMF and DRMF macro '''\normctsdualqHahnptilde''' represents the normctsdualqHahnptilde. +'''Definition:DefinitionOne''' +The LaTeX DLMF and DRMF macro '''\DefinitionOne''' represents the DefinitionOne. -This macro is in the category of polynomials. +This macro is in the category of real or complex valued functions. -In math mode, this macro can be called in the following ways: +In math mode, this macro can be called in the following way: -:'''\normctsdualqHahnptilde{n}''' produces {\displaystyle \normctsdualqHahnptilde{n}}
-:'''\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}''' produces {\displaystyle \normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}}
-:'''\normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q}''' produces {\displaystyle \normctsdualqHahnptilde{n}@@{x}{a}{b}{c}{q}}
+:'''\DefinitionOne@{x}''' produces {\displaystyle \DefinitionOne@{x}}
These are defined by -{\displaystyle -{\tilde p}_n(x):=\normctsdualqHahnptilde{n}@{x}{a}{b}{c}{q}=\frac{a^n\ctsdualqHahn{n}@{x}{a}{b}{c}{q}}{\qPochhammer{ab,ac}{q}{n}} +\displaystyle{ +\DefinitionOne@{x}:=\DefinitionTwo@{x}+1 }
drmf_eof drmf_bof -'''Definition:GaussDistQ''' -The LaTeX DLMF and DRMF macro '''\GaussDistQ''' represents the GaussDistQ. +'''Definition:DefinitionTwo''' +The LaTeX DLMF and DRMF macro '''\DefinitionTwo''' represents the DefinitionTwo. -This macro is in the category of integer valued functions. +This macro is in the category of real or complex valued functions. -In math mode, this macro can be called in the following ways: +In math mode, this macro can be called in the following way: -:'''\GaussDistQ''' produces {\displaystyle \GaussDistQ}
-:'''\GaussDistQ@{x}''' produces {\displaystyle \GaussDistQ@{x}}
+:'''\DefinitionTwo@{x}''' produces {\displaystyle \DefinitionTwo@{x}}
These are defined by -{\displaystyle -\GaussDistQ@{x}:=\frac{1}{2}\erfc@{\frac{x}{\sqrt{2}}} +\displaystyle{ +\DefinitionTwo@{x}:=\frac{6}{127} }
drmf_eof +drmf_bof +'''Definition:DefinitionTwoTwo''' +The LaTeX DLMF and DRMF macro '''\DefinitionTwoTwo''' represents the DefinitionTwoTwo. + +This macro is in the category of constants. + +In math mode, this macro can be called in the following way: + +:'''\DefinitionTwoTwo''' produces {\displaystyle \DefinitionTwoTwo}
+ +These are defined by +\displaystyle{ +\DefinitionTwoTwo:=22 +
+ +drmf_eof From c7f5932fd199b68f5e8adf8142b9348e153d1ec5 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 12:05:21 -0400 Subject: [PATCH 226/402] Rename new.Glossary.csv to fake.Glossary.csv --- main_page/src/functions.py | 8 ++++---- main_page/{new.Glossary.csv => test/fake.Glossary.csv} | 0 main_page/test/test_functions.py | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) rename main_page/{new.Glossary.csv => test/fake.Glossary.csv} (100%) diff --git a/main_page/src/functions.py b/main_page/src/functions.py index 23b54c8..c680e84 100644 --- a/main_page/src/functions.py +++ b/main_page/src/functions.py @@ -197,9 +197,9 @@ def get_symbols(text, glossary): return span_text[:-7] # slice off the extra br and endline -def add_symbols_data(data): +def add_symbols_data(data,glossary_location=GLOSSARY_LOCATION): glossary = dict() - with open(GLOSSARY_LOCATION, "rb") as csv_file: + with open(glossary_location, "rb") as csv_file: glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') for row in glossary_file: glossary[get_macro_name(row[0])] = row @@ -239,7 +239,7 @@ def add_symbols_data(data): return result -def add_usage(lines): +def add_usage(lines,glossary_location=GLOSSARY_LOCATION): with open("main_page/categories.txt") as cats: categories = cats.readlines() @@ -267,7 +267,7 @@ def add_usage(lines): to_write += lines[i:p].rstrip() + "\n\n" calls = [] - glossary = csv.reader(open(GLOSSARY_LOCATION, 'rb'), delimiter=',', quotechar='\"') + glossary = csv.reader(open(glossary_location, 'rb'), delimiter=',', quotechar='\"') for entry in glossary: if macro_match("\\" + macro_name, entry[0]): macro_calls, category = find_all_positions(entry) diff --git a/main_page/new.Glossary.csv b/main_page/test/fake.Glossary.csv similarity index 100% rename from main_page/new.Glossary.csv rename to main_page/test/fake.Glossary.csv diff --git a/main_page/test/test_functions.py b/main_page/test/test_functions.py index f2a4d1c..7e712f5 100644 --- a/main_page/test/test_functions.py +++ b/main_page/test/test_functions.py @@ -55,10 +55,12 @@ def test_update_headers(self): class TestAddSymbolsData(TestCase): def test_add_symbols_data(self): for case in add_symbols_data_test_cases: - self.assertEqual(m.add_symbols_data(case["exp"]), case["res"]) + self.assertEqual(m.add_symbols_data(case["exp"], glossary_location="main_page/test/fake.Glossary.csv"), + case["res"]) class TestAddUsage(TestCase): def test_add_usage(self): for case in add_usage_test_cases: - self.assertEqual(m.add_usage(case["exp"]), case["res"]) + self.assertEqual(m.add_usage(case["exp"], glossary_location="main_page/test/fake.Glossary.csv"), + case["res"]) From 1ae0b291e44b62b0330d642d23c1564fa109374e Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 12:24:14 -0400 Subject: [PATCH 227/402] Add docstrings and parameter/return types --- main_page/src/functions.py | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/main_page/src/functions.py b/main_page/src/functions.py index c680e84..618eb8a 100644 --- a/main_page/src/functions.py +++ b/main_page/src/functions.py @@ -7,6 +7,8 @@ def generate_html(tag_name, options, text, spacing=True): + # (str, str, str(, bool)) -> str + """Generates an html tag, with optional html parameters.""" result = "<" + tag_name if options != "": result += " " + options @@ -19,6 +21,8 @@ def generate_html(tag_name, options, text, spacing=True): def get_macro_name(macro): + # (str) -> str + """Obtains the macro name.""" macro_name = "" for ch in macro: if ch.isalpha() or ch == "\\": @@ -26,13 +30,12 @@ def get_macro_name(macro): elif ch in ["@", "{", "["]: break - print macro_name - return macro_name def find_all(pattern, string): - """Yields all positions of where pattern is present in string.""" + # (str, str) -> generator + """Finds all instances of pattern in string.""" i = string.find(pattern) while i != -1: @@ -41,6 +44,8 @@ def find_all(pattern, string): def remove_optional_params(string): + # (str) -> str + """Removes optional parameters from a LaTeX semantic macro.""" parse = True text = "" for ch in string: @@ -55,7 +60,9 @@ def remove_optional_params(string): return text -def find_all_positions(entry): +def get_all_variants(entry): + # (str) -> str + """Returns string containing info on all variants of a macro.""" macro = entry[0] category = entry[3].split("|", 1)[0] keys = entry[3].split("|", 1)[1].split(":") @@ -92,11 +99,14 @@ def find_all_positions(entry): def macro_match(macro, entry): + # (str, str) -> bool """Determines whether the entry refers to the macro.""" return macro in entry and (len(macro) == len(entry) or not entry[len(macro)].isalpha()) def update_macro_list(text): + # (str) -> str + """Updates the list of macros found in the main page of main_page.mmd.""" lines = text.split("\n") definitions = list() @@ -116,6 +126,8 @@ def update_macro_list(text): def update_headers(text, definitions): + # (str, list) -> str + """Updates the headers used for navigation for every page.""" pages = text.split("drmf_eof")[:-1] macros = list() @@ -157,6 +169,8 @@ def update_headers(text, definitions): def get_symbols(text, glossary): + # (str, dict) -> str + """Generates span text based on symbols present in text.""" symbols = set() for keyword in glossary: @@ -197,7 +211,9 @@ def get_symbols(text, glossary): return span_text[:-7] # slice off the extra br and endline -def add_symbols_data(data,glossary_location=GLOSSARY_LOCATION): +def add_symbols_data(data, glossary_location=GLOSSARY_LOCATION): + # (str(, str)) -> str + """Adds list of symbols present in page under symbols list section.""" glossary = dict() with open(glossary_location, "rb") as csv_file: glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') @@ -239,7 +255,9 @@ def add_symbols_data(data,glossary_location=GLOSSARY_LOCATION): return result -def add_usage(lines,glossary_location=GLOSSARY_LOCATION): +def add_usage(lines, glossary_location=GLOSSARY_LOCATION): + # (str(, str)) -> str + """Adds the macro category information and calling sequences.""" with open("main_page/categories.txt") as cats: categories = cats.readlines() @@ -270,7 +288,7 @@ def add_usage(lines,glossary_location=GLOSSARY_LOCATION): glossary = csv.reader(open(glossary_location, 'rb'), delimiter=',', quotechar='\"') for entry in glossary: if macro_match("\\" + macro_name, entry[0]): - macro_calls, category = find_all_positions(entry) + macro_calls, category = get_all_variants(entry) calls += macro_calls for line in categories: From 3d5caa471e13d3b54e1b825a5d6e1b7aeea56900 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 18 Apr 2016 17:31:12 -0400 Subject: [PATCH 228/402] Hardcoded in a fix for the paragraph placement --- KLSadd_insertion/src/updateChapters.py | 279 ++++++++----------------- 1 file changed, 88 insertions(+), 191 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index f072dc6..c364b29 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -1,7 +1,3 @@ -__author__ = "Rahul Shah" -__status__ = "Development" -__credits__ = ["Rahul Shah", "Edward Bian"] - """ Rahul Shah self-taught python don't kill me I know its bad @@ -21,199 +17,130 @@ -rewrite for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) Current update status: incomplete Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter - -Edward Bian -Currently under heavy modification; sections may not work and/or look inefficient/confusing """ -# start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files -# also keep track of which chapter each one is in +#start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files +#also keep track of which chapter each one is in -# variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over -# chapNums is needed to know which file to open (9 or 14) -# mathPeople is just the name for the sections that are used, like Wilson, -# Racah, etc. I know some are not people, its just a var name +#variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over +#chapNums is needed to know which file to open (9 or 14) +#mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name +#yes I like lists chapNums = [] paras = [] -klsparas = [] mathPeople = [] -newCommands = [] # used to hold the indexes of the commands -ref9II = [] # Hold section search indexes -ref14II = [] -ref9III = [] # Holds all indexes -ref14III = [] -specref9 = [] -specref14 = [] -comms = "" # holds the ACTUAL STRINGS of the commands -# 2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. -# Currently only works with chapter 9, ask Dr. Cohl to help port your -# chapter 14 output file into a pdf - +newCommands = [] #used to hold the indexes of the commands +comms = "" #holds the ACTUAL STRINGS of the commands +#2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. +#Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf def prepareForPDF(chap): footmiscIndex = 0 index = 0 for word in chap: - index += 1 + index+=1 if("footmisc" in word): - footmiscIndex += index - # edits the chapter string sent to include hyperref, xparse, and cite packages + footmiscIndex+= index + #edits the chapter string sent to include hyperref, xparse, and cite packages #str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" - chap.insert( - footmiscIndex, - "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") + chap.insert(footmiscIndex, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") return chap -# 2/18/16 this method reads in relevant commands that are in KLSadd.tex -# and returns them as a list - +#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list def getCommands(kls): index = 0 for word in kls: - index += 1 + index+=1 if("smallskipamount" in word): - newCommands.append(index - 1) + newCommands.append(index-1) if("mybibitem[1]" in word): newCommands.append(index) comms = kls[newCommands[0]:newCommands[1]] return comms -# 2/18/16 this method addresses the goal of hardcoding in the necessary -# commands to let the chapter files run as pdf's. Currently only works -# with chapter 9 - +#2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 def insertCommands(kls, chap, cms): - # reads in the newCommands[] and puts them in chap - # the index of the "begin document" keyphrase, this is where the new - # commands need to be inserted. - beginIndex = -1 - # find index of begin document in KLSadd + #reads in the newCommands[] and puts them in chap + beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. + #find index of begin document in KLSadd index = 0 for word in kls: - index += 1 + index+=1 if("begin{document}" in word): beginIndex += index tempIndex = 0 for i in cms: - chap.insert(beginIndex + tempIndex, i) - tempIndex += 1 + chap.insert(beginIndex+tempIndex,i) + tempIndex +=1 return chap -# method to find the indices of the reference paragraphs - - +#method to find the indices of the reference paragraphs def findReferences(chapter): references = [] index = -1 - # chaptercheck designates which chapter is being searched for references chaptercheck = 0 + #chaptercheck designates which chapter is being searched for references if chapticker == 0: chaptercheck = str(9) elif chapticker == 1: chaptercheck = str(14) - # canAdd tells the program whether the next section is a reference canAdd = False + #canAdd tells the program whether the next section is a reference for word in chapter: - index += 1 - # check sections and subsections + index+=1 + #check sections and subsections if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): - w = word[word.find("{") + 1: word.find("}")] - ws = word[word.find("{") + 1: word.find("~")] + w = word[word.find("{")+1: word.find("}")] + ws = word[word.find("{")+1: word.find("~")] for unit in mathPeople: - subunit = unit[unit.find(" ") + 1: unit.find("#")] - # System of checks that verifies if section is in chapter - if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len( - subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)): + subunit = unit[unit.find(" ")+1: unit.find("#")] + if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)): canAdd = True - if chapticker == 0: - ref9II.append(index) - ref9III.append(index) - elif chapticker == 1: - ref14II.append(index) - ref14III.append(index) - if("\\subsection*{References}" in word) and (canAdd): - # Appends valid locations + #System of checks that verifies if section is in chapter + if("\\subsection*{References}" in word) and (canAdd == True): references.append(index) - if chapticker == 0: - ref9II.append(index) - ref9III.append(index) - elif chapticker == 1: - ref14II.append(index) - ref14III.append(index) canAdd = False - if ("subsection*{" in word and "References" not in word): - if chapticker == 0: - ref9III.append(index) - elif chapticker == 1: - ref14III.append(index) - print(ref9II) - print (ref14II) - print(ref9III) - print(ref14III) + #Appends valid locations return references - -def referencePlacer(chap, references, p, kls, refII, refIII, specref): - # count is used to represent the values in count - count = 0 - # Tells which chapter it's on - designator = 0 +#method to change file string(actually a list right now), returns string to be written to file +#If you write a method that changes something, it is preffered that you call the method in here +def fixChapter(chap, references, p, kls): + #chap is the file string(actually a list), references is the specific references for the file, + #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list + count = 0 #count is used to represent the values in count + designator = 0 #Tells which chapter it's on if chapticker2 == 0: designator = "9." elif chapticker2 == 1: designator = "14." for i in references: - # Place before References paragraph + #Place before References paragraph word1 = str(p[count]) - if (designator in word1[word1.find( - "\\subsection*{") + 1: word1.find("}")]): - chap[i - 2] += "%Begin KLSadd additions" - chap[i - 2] += p[count] - chap[i - 2] += "%End of KLSadd additions" + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + chap[i-2] += "%Begin KLSadd additions" + chap[i-2] += p[count] + chap[i-2] += "%End of KLSadd additions" count += 1 else: - while (designator not in word1[word1.find( - "\\subsection*{") + 1: word1.find("}")]): + while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): word1 = str(p[count]) - if (designator in word1[word1.find( - "\\subsection*{") + 1: word1.find("}")]): + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): chap[i - 2] += "%Begin KLSadd additions" chap[i - 2] += p[count] chap[i - 2] += "%End of KLSadd additions" count += 1 else: - count += 1 - - -def referencePlacerII(chap, references, p, kls, refII, refIII, specref): - if chapticker2 == 0: - designator = "9." - elif chapticker2 == 1: - designator = "14." - count = 0 - sectionnuma = specref[0] - sectionnumb = specref[1] - for i in specref: - pass - - -# method to change file string(actually a list right now), returns string to be written to file -# If you write a method that changes something, it is preffered that you -# call the method in here -def fixChapter(chap, references, p, kls, refII, refIII, specref): - # chap is the file string(actually a list), references is the specific references for the file, - # and p is the paras variable(not sure if needed) kls is the KLSadd.tex as - # a list - referencePlacer(chap, references, p, kls, refII, refIII, specref) + count+=1 + #Unfinished code segment that inserts the collected paras into the chapter chap = prepareForPDF(chap) cms = getCommands(kls) - chap = insertCommands(kls, chap, cms) + chap = insertCommands(kls,chap, cms) commentticker = 0 - # Hard coded command remover for word in chap: - word2 = chap[chap.index(word) - 1] + word2 = chap[chap.index(word)-1] if ("\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2): if ("\\newcommand\\half{\\frac12}" in word): wordtoadd = "%" + word @@ -228,108 +155,78 @@ def fixChapter(chap, references, p, kls, refII, refIII, specref): wordtoadd = "%" + word chap[commentticker] = wordtoadd commentticker += 1 + #Hard coded command remover ticker1 = 0 - # Formatting to make the Latex file run while ticker1 < len(chap): if ('\\myciteKLS' in chap[ticker1]): chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') ticker1 += 1 + #Formatting to make the Latex file run return chap -# open the KLSadd file to do things with +#open the KLSadd file to do things with with open("KLSadd.tex", "r") as add: - # store the file as a string + #store the file as a string addendum = add.readlines() - # Makes sections look like other sections for word in addendum: if ("paragraph{" in word): lenword = len(word) - 1 - temp = word[0:word.find( - "{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] + temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] addendum[addendum.index(word)] = temp if ("subsubsection*{" in word): lenword = len(word) - 1 - addendum[addendum.index(word)] = word[0:word.find( - "{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] + addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] + #Font processing index = 0 indexes = [] - # Designates sections that need stuff added - # get the index for word in addendum: - index += 1 + index+=1 if("." in word and "\\subsection*{" in word): if ("9." in word): chapNums.append(9) - name = word[word.find("{") + 1: word.find("}")] + name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") - specref9.append(index - 1) if("14." in word): chapNums.append(14) - name = word[word.find("{") + 1: word.find("}")] + name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") - specref14.append(index - 1) - indexes.append(index - 1) - if ("paragraph{" in word) and (index > 313): - klsparas.append(index - 1) - print(indexes) - print(specref9) - print(specref14) - print(klsparas) - print(mathPeople) - # now indexes holds all of the places there is a section - # using these indexes, get all of the words in between and add that to the - # paras[] - for i in range(len(indexes) - 1): - box = ''.join(addendum[indexes[i]: indexes[i + 1] - 1]) + #Designates sections that need stuff added + #get the index + indexes.append(index-1) + #now indexes holds all of the places there is a section + #using these indexes, get all of the words in between and add that to the paras[] + for i in range(len(indexes)-1): + box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(box) box2 = ''.join(addendum[indexes[35]: 2245]) paras.append(box2) - # paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate - # section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable - # we can use the section names to place the relevant paragraphs in the - # right place + #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate + #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable + #we can use the section names to place the relevant paragraphs in the right place - # as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section - # parse both files 9 and 14 as strings + #as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section + #parse both files 9 and 14 as strings - # chapter 9 + #chapter 9 with open("chap09.tex", "r") as ch9: - entire9 = ch9.readlines() # reads in as a list of strings + entire9 = ch9.readlines() #reads in as a list of strings ch9.close() - # chapter 14 + #chapter 14 with open("chap14.tex", "r") as ch14: entire14 = ch14.readlines() ch14.close() - # call the findReferences method to find the index of the References paragraph in the two file strings - # two variables for the references lists one for chapter 9 one for chapter - # 14 + #call the findReferences method to find the index of the References paragraph in the two file strings + #two variables for the references lists one for chapter 9 one for chapter 14 chapticker = 0 references9 = findReferences(entire9) chapticker += 1 references14 = findReferences(entire14) - # call the fixChapter method to get a list with the addendum paragraphs - # added in + #call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join( - fixChapter( - entire9, - references9, - paras, - addendum, - ref9II, - ref9III, - specref9)) + str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) chapticker2 += 1 - str14 = ''.join( - fixChapter( - entire14, - references14, - paras, - addendum, - ref14II, - ref14III, - specref14)) + str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -339,10 +236,10 @@ def fixChapter(chap, references, p, kls, refII, refIII, specref): """ -# write to files -# new output files for safety -with open("updated9.tex", "w") as temp9: +#write to files +#new output files for safety +with open("updated9.tex","w") as temp9: temp9.write(str9) with open("updated14.tex", "w") as temp14: - temp14.write(str14) + temp14.write(str14) \ No newline at end of file From a3487ebe7b2ac0a2e431690b68d5f120c918e1f7 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Wed, 4 May 2016 17:41:42 -0400 Subject: [PATCH 229/402] New indexes --- KLSadd_insertion/src/updateChapters.py | 112 ++++++++++++++++++------- 1 file changed, 84 insertions(+), 28 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index c364b29..6867c00 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -17,6 +17,9 @@ -rewrite for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) Current update status: incomplete Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter + +Edward Bian +Currently under heavy modification; sections may not work and/or look inefficient/confusing """ #start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files @@ -25,11 +28,17 @@ #variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over #chapNums is needed to know which file to open (9 or 14) #mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name -#yes I like lists chapNums = [] paras = [] +klsparas = [] mathPeople = [] newCommands = [] #used to hold the indexes of the commands +ref9II = [] #Hold section search indexes +ref14II = [] +ref9III = [] #Holds all indexes +ref14III = [] +specref9 = [] +specref14 = [] comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf @@ -80,14 +89,14 @@ def insertCommands(kls, chap, cms): def findReferences(chapter): references = [] index = -1 - chaptercheck = 0 #chaptercheck designates which chapter is being searched for references + chaptercheck = 0 if chapticker == 0: chaptercheck = str(9) elif chapticker == 1: chaptercheck = str(14) - canAdd = False #canAdd tells the program whether the next section is a reference + canAdd = False for word in chapter: index+=1 #check sections and subsections @@ -96,49 +105,88 @@ def findReferences(chapter): ws = word[word.find("{")+1: word.find("~")] for unit in mathPeople: subunit = unit[unit.find(" ")+1: unit.find("#")] + # System of checks that verifies if section is in chapter if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)): canAdd = True - #System of checks that verifies if section is in chapter + if chapticker == 0: + ref9II.append(index) + ref9III.append(index) + elif chapticker == 1: + ref14II.append(index) + ref14III.append(index) if("\\subsection*{References}" in word) and (canAdd == True): + # Appends valid locations references.append(index) + if chapticker == 0: + ref9II.append(index) + ref9III.append(index) + elif chapticker == 1: + ref14II.append(index) + ref14III.append(index) canAdd = False - #Appends valid locations + if ("subsection*{" in word and "References" not in word): + if chapticker == 0: + ref9III.append(index) + elif chapticker == 1: + ref14III.append(index) + print(ref9II) + print (ref14II) + print(ref9III) + print(ref14III) return references -#method to change file string(actually a list right now), returns string to be written to file -#If you write a method that changes something, it is preffered that you call the method in here -def fixChapter(chap, references, p, kls): - #chap is the file string(actually a list), references is the specific references for the file, - #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list - count = 0 #count is used to represent the values in count - designator = 0 #Tells which chapter it's on +def referencePlacer(chap, references, p, kls,refII,refIII,specref): + # count is used to represent the values in count + count = 0 + # Tells which chapter it's on + designator = 0 if chapticker2 == 0: designator = "9." elif chapticker2 == 1: designator = "14." for i in references: - #Place before References paragraph + # Place before References paragraph word1 = str(p[count]) - if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): - chap[i-2] += "%Begin KLSadd additions" - chap[i-2] += p[count] - chap[i-2] += "%End of KLSadd additions" + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): + chap[i - 2] += "%Begin KLSadd additions" + chap[i - 2] += p[count] + chap[i - 2] += "%End of KLSadd additions" count += 1 else: - while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): word1 = str(p[count]) - if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}") ]): + if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): chap[i - 2] += "%Begin KLSadd additions" chap[i - 2] += p[count] chap[i - 2] += "%End of KLSadd additions" count += 1 else: - count+=1 - #Unfinished code segment that inserts the collected paras into the chapter + count += 1 + +def referencePlacerII(chap, references, p, kls,refII,refIII,specref): + if chapticker2 == 0: + designator = "9." + elif chapticker2 == 1: + designator = "14." + count = 0 + sectionnuma = specref[0] + sectionnumb = specref[1] + for i in specref: + pass + + + +#method to change file string(actually a list right now), returns string to be written to file +#If you write a method that changes something, it is preffered that you call the method in here +def fixChapter(chap, references, p, kls,refII,refIII,specref): + #chap is the file string(actually a list), references is the specific references for the file, + #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list + referencePlacer(chap, references, p, kls, refII,refIII,specref) chap = prepareForPDF(chap) cms = getCommands(kls) chap = insertCommands(kls,chap, cms) commentticker = 0 + # Hard coded command remover for word in chap: word2 = chap[chap.index(word)-1] if ("\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2): @@ -155,19 +203,19 @@ def fixChapter(chap, references, p, kls): wordtoadd = "%" + word chap[commentticker] = wordtoadd commentticker += 1 - #Hard coded command remover ticker1 = 0 + # Formatting to make the Latex file run while ticker1 < len(chap): if ('\\myciteKLS' in chap[ticker1]): chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') ticker1 += 1 - #Formatting to make the Latex file run return chap #open the KLSadd file to do things with with open("KLSadd.tex", "r") as add: #store the file as a string addendum = add.readlines() + #Makes sections look like other sections for word in addendum: if ("paragraph{" in word): lenword = len(word) - 1 @@ -176,9 +224,10 @@ def fixChapter(chap, references, p, kls): if ("subsubsection*{" in word): lenword = len(word) - 1 addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] - #Font processing index = 0 indexes = [] + # Designates sections that need stuff added + # get the index for word in addendum: index+=1 if("." in word and "\\subsection*{" in word): @@ -186,13 +235,20 @@ def fixChapter(chap, references, p, kls): chapNums.append(9) name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") + specref9.append(index-1) if("14." in word): chapNums.append(14) name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") - #Designates sections that need stuff added - #get the index + specref14.append(index - 1) indexes.append(index-1) + if ("paragraph{" in word) and (index > 313): + klsparas.append(index-1) + print(indexes) + print(specref9) + print(specref14) + print(klsparas) + print(mathPeople) #now indexes holds all of the places there is a section #using these indexes, get all of the words in between and add that to the paras[] for i in range(len(indexes)-1): @@ -224,9 +280,9 @@ def fixChapter(chap, references, p, kls): references14 = findReferences(entire14) #call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fixChapter(entire9, references9, paras, addendum)) + str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9)) chapticker2 += 1 - str14 = ''.join(fixChapter(entire14, references14, paras, addendum)) + str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From cde28cdda75affcb17e477889998bd11f508fd6f Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 5 Jul 2016 13:29:54 -0400 Subject: [PATCH 230/402] Fixes for Hypergeometric Representation and non working other functions --- KLSadd_insertion/src/updateChapters.py | 380 +++++++++++++++++++++++-- 1 file changed, 355 insertions(+), 25 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 6867c00..dfa760b 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -30,19 +30,220 @@ #mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name chapNums = [] paras = [] -klsparas = [] + +#klsaddparas contains the locations of everything with "paragraph{" in KLSadd, these are the subsections that need to be sorted +klsaddparas = [] mathPeople = [] newCommands = [] #used to hold the indexes of the commands + +#ref9II holds the beginnings and ends of each chapter 9 section, provided and area to search ref9II = [] #Hold section search indexes + +#ref14II holds the beginnings and ends of each chapter 14 section, provided and area to search ref14II = [] + +#ref9III holds all subsections in each chapter 9 section along with the what ref9II holds ref9III = [] #Holds all indexes + +#ref14III holds all subsections in each chapter 14 section along with the what ref14II holds ref14III = [] + +#specref9 is the KLS indexes that go in chapter 9 specref9 = [] + +#specref14 is the KLS indexes that in chapter 14 specref14 = [] + +sectorschap = [] +sectorskls = [] +insertindices = [] +insertloc = [] +irrelevant = ["Relations","Functions","Transform","In","For","To","Is","And","Of","relations","functions","transform","in","for","to","is","and","of"] + +check = [] +check2 = [] + comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. #Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf +#5/5/16 this method implements the Hypergeometric paragraphs into relevant sections for practicality +# Later versions should attempt to: fix paragraphs with variations on this name like +# Basic Hypergeometric Representation, q-Hypergeometric Representation + +def HyperGeoFix(kls, chap): + canAdd = False + # keep track of sections and subsections from chap + hyperHeaders = [] + hyperSubs = [] + index = 0 + + #using Edward's reference paragraphs! + #now get the section names of all of the KLSadd + kHyperHeader = [] + kHyperSub = [] + index = 0 + for i in kls: + index +=1 + line = str(i) + if "\\subsection" in line: + temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) + if "hypergeometric representation" in line.lower(): + for i in klsaddparas: + if index < i: + klsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + kHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment + kHyperHeader.append(temp)#append the name of subsection + kHyperHeader[8] = "Discrete $q$-Hermite~II" + print(kHyperHeader) + print(len(kHyperHeader)) + print(kHyperSub) + print(len(kHyperSub)) + print(klsaddparas) + kHypIndex = 0 + offset = 0 + if len(check) == 0: + tempref = ref9III + global check + print(len(check)) + print(check) + check.append("honhonhonbaguetteouioui") + else: + tempref = ref14III + offset = 4 + print("baguette") + print(tempref) + for d in range(0, len(tempref)): # check every section and subsection line + i = tempref[d] + line = str(chap[i]) + if "\\section{" in line or "\subsection{" in line: + if "\\subsection{" in line: + temp = line[12:line.find("}", 7)] + else: + temp = line[9:line.find("}", 7)] + if "hypergeometric representation" in line.lower(): + hyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + + if temp in kHyperHeader: + try: + chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: }" + chap[tempref[d + 1] - 2] += kHyperSub[kHypIndex + offset] + print(kHyperSub[kHypIndex + offset]) + #print(chap[tempref[d + 1] - 2]) + kHypIndex+=1 + print(kHypIndex) + except IndexError: + print("QED") + +def SpecialValue(kls, chap): + canAdd = False + # keep track of sections and subsections from chap + svhyperHeaders = [] + svhyperSubs = [] + index = 0 + + # using Edward's reference paragraphs! + # now get the section names of all of the KLSadd + svkHyperHeader = [] + svkHyperSub = [] + index = 0 + for i in kls: + index +=1 + line = str(i) + if "\\subsection" in line: + temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) + if "special value" in line.lower(): + for i in klsaddparas: + if index < i: + svklsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[svklsloc]]) + svkHyperSub.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + svkHyperHeader.append(temp) # append the name of subsection + print("svk") + print(svkHyperHeader) + svkHypIndex = 0 + offset = 0 + if len(check2) == 0: + tempref = ref9III + check2.append("test") + else: + tempref = ref14III + offset = 6 + for d in range(0, len(tempref)): # check every section and subsection line + i = tempref[d] + line = str(chap[i]) + if "\\section{" in line or "\\subsection{" in line: + if "\\subsection{" in line: + temp = line[12:line.find("}", 7)] + else: + temp = line[9:line.find("}", 7)] + if "hypergeometric representation" in line.lower(): + svhyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection + svhyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + if temp in svkHyperHeader: + chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum Special Value: }" + chap[tempref[d + 1] - 2] += svkHyperSub[svkHypIndex + offset] + svkHypIndex += 1 + +def LimRelFix(kls, chap): + canAdd = False + # keep track of sections and subsections from chap + hyperHeaders = [] + hyperSubs = [] + index = 0 + + #using Edward's reference paragraphs! + #now get the section names of all of the KLSadd + limrelHyperHeader = [] + limrelHyperSub = [] + index = 0 + for i in kls: + index +=1 + line = str(i) + if "\\subsection" in line: + temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) + if "limit relations" in line.lower(): + for i in klsaddparas: + if index < i: + klsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + limrelHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment + limrelHyperHeader.append(temp)#append the name of subsection + + limrelHypIndex = 0 + offset = 0 + if len(check) == 0: + tempref = ref9III + check.append("test") + else: + tempref = ref14III + offset = 2 + for d in range(0, len(tempref)): # check every section and subsection line + i = tempref[d] + line = str(chap[i]) + if "\\section{" in line or "\\subsection{" in line: + if "\\subsection{" in line: + temp = line[12:line.find("}", 7)] + else: + temp = line[9:line.find("}", 7)] + #print(temp) + if "limit relations" in line.lower(): + hyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + + if temp in limrelHyperHeader: + #print(temp) + chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum Limit Relations: }" + chap[tempref[d + 1] - 2] += limrelHyperSub[limrelHypIndex + offset] + limrelHypIndex+=1 + #print(limrelHyperSub) + #print(limrelHyperHeader) + def prepareForPDF(chap): footmiscIndex = 0 index = 0 @@ -99,6 +300,7 @@ def findReferences(chapter): canAdd = False for word in chapter: index+=1 + specialdetector = 1 #check sections and subsections if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): w = word[word.find("{")+1: word.find("}")] @@ -106,7 +308,7 @@ def findReferences(chapter): for unit in mathPeople: subunit = unit[unit.find(" ")+1: unit.find("#")] # System of checks that verifies if section is in chapter - if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)): + if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)) and ("Hypergeometric representation" not in w) and ("Special value" not in w): canAdd = True if chapticker == 0: ref9II.append(index) @@ -114,6 +316,7 @@ def findReferences(chapter): elif chapticker == 1: ref14II.append(index) ref14III.append(index) + specialdetector = 0 if("\\subsection*{References}" in word) and (canAdd == True): # Appends valid locations references.append(index) @@ -129,13 +332,28 @@ def findReferences(chapter): ref9III.append(index) elif chapticker == 1: ref14III.append(index) - print(ref9II) - print (ref14II) - print(ref9III) - print(ref14III) + if "\\section{" in word and specialdetector == 1 and chaptercheck == "14": + w2 = word[word.find("{") + 1: word.find("}")] + if "Bessel" not in w2: + ref14III.append(index) + besselcheck = 1 + bqlegendrecheck = 2 + for i in ref9III: + if i == 2646: + besselcheck = 0 + if besselcheck == 1: + ref9III.insert(230, 2646) + for i in ref14III: + if i == 1217: + bqlegendrecheck -= 1 + if bqlegendrecheck > 0: + ref14III.insert(87, 1217) + ref14III.append(3053) + ref14III.append(2554) + return references -def referencePlacer(chap, references, p, kls,refII,refIII,specref): +def referencePlacer(chap, references, p, kls,refII,refIII,specref,klsaddparas): # count is used to represent the values in count count = 0 # Tells which chapter it's on @@ -163,25 +381,127 @@ def referencePlacer(chap, references, p, kls,refII,refIII,specref): else: count += 1 -def referencePlacerII(chap, references, p, kls,refII,refIII,specref): +def referencePlacerII(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectorskls,sectorschap,insertindices,insertloc): if chapticker2 == 0: designator = "9." elif chapticker2 == 1: designator = "14." count = 0 - sectionnuma = specref[0] - sectionnumb = specref[1] - for i in specref: - pass + count2 = 0 + count3 = 0 + secchaploc = 0 + secklsloc = 0 + sectionnuma = specref[count] + sectionnumb = specref[count+1] + sectionnumc = refII[count2] + sectionnumd = refII[count2 + 1] + while count < len(specref)-1: + for word in klsaddparas: + if word <> "@": + if word > sectionnuma and word < sectionnumb: + lenwordII = len(kls[word])-1 + #That 29 is where the KLS formatting ends + if "subsub" in kls[word]: + temp = kls[word][34: lenwordII] + else: + temp = kls[word][29 : lenwordII] + #with open("keywords.tex", "a") as log: + # log.write(temp + " Location: " + str(word) + "\n") + #log.close() + #print(temp) + #print(word) + sectorskls = temp.split(' ') + for i in sectorskls: + for a in irrelevant: + if i == a: + sectorskls[sectorskls.index(i)] = "@@" + i == "@@" + #print(sectorskls) + while count2 < len(refII) - 1: + for word2 in refIII: + if word2 > sectionnumc and word2 < sectionnumd and word2 <> "@": + lenwordIII = len(chap[word2])-3 + # That 13 is where the KLS formatting ends + if "subsub" in chap[word2]: + temp2 = chap[word2][16: lenwordIII] + else: + temp2 = chap[word2][13: lenwordIII] + #if designator == "14.": + # with open("keywords.tex", "a") as log: + # log.write(temp2 + " Location: " + str(word2) + "\n") + # log.close() + sectorschap = temp2.split(' ') + for i in sectorschap: + for a in irrelevant: + if i == a: + i == "@@" + #print("temp2") + #print(temp2) + #print(word2) + ticker1 = 1 + for i in sectorskls: + for j in sectorschap: + if (i in j) or (j in i): + if ticker1 == 1: + try: + locationdata = klsaddparas[klsaddparas.index(word)],"+" + moredata = str(klsaddparas[klsaddparas.index(word)]) + insertindices.append(locationdata) + insertloc.append(refIII[refIII.index(word2)+1]) + evenmoredata = str(refIII[refIII.index(word2)+1]) + with open("keywordsII.tex", "a") as log: + log.write("Pair "+"\n") + log.write(moredata + "\n") + log.write(evenmoredata+"\n") + log.close() + klsaddparas[klsaddparas.index(word)] = "@" + refIII[refIII.index(word2)] = "@" + ticker1 = 0 + except ValueError: + pass + count2 += 1 + sectionnumc = refII[count2] + if count2 + 1 == len(refII): + sectionnumd = refII[count2] + else: + sectionnumd = refII[count2 + 1] + count2 = 0 + count += 1 + sectionnuma = specref[count] + if count + 1 == len(specref): + sectionnumb = specref[count] + else: + sectionnumb = specref[count + 1] + #print(insertindices) + #print(insertloc) + #print(klsaddparas) + #print(refIII) #method to change file string(actually a list right now), returns string to be written to file #If you write a method that changes something, it is preffered that you call the method in here -def fixChapter(chap, references, p, kls,refII,refIII,specref): +def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectorskls,sectorschap,insertindices,insertloc): #chap is the file string(actually a list), references is the specific references for the file, #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list - referencePlacer(chap, references, p, kls, refII,refIII,specref) + chapticker3 = 0 + + HyperGeoFix(kls, chap) + + global check + print(len(check)) + #check = [] + + SpecialValue(kls,chap) + + #global check + #print(len(check)) + #check = [] + + #LimRelFix(kls, chap) + + referencePlacer(chap, references, p, kls, refII,refIII,specref,klsaddparas) + #referencePlacerII(chap, references, p, kls, refII, refIII, specref, klsaddparas,sectorskls,sectorschap,insertindices,insertloc) chap = prepareForPDF(chap) cms = getCommands(kls) chap = insertCommands(kls,chap, cms) @@ -212,7 +532,7 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref): return chap #open the KLSadd file to do things with -with open("KLSadd.tex", "r") as add: +with open("KLSadd(3).tex", "r") as add: #store the file as a string addendum = add.readlines() #Makes sections look like other sections @@ -240,15 +560,20 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref): chapNums.append(14) name = word[word.find("{") + 1: word.find("}") ] mathPeople.append(name + "#") + if len(specref14) == 0: + specref9.append(index - 1) specref14.append(index - 1) indexes.append(index-1) if ("paragraph{" in word) and (index > 313): - klsparas.append(index-1) - print(indexes) - print(specref9) - print(specref14) - print(klsparas) - print(mathPeople) + klsaddparas.append(index-1) + if ("subsub" in word) and (index > 313): + klsaddparas.append(index - 1) + klsaddparas.append(2246) + #print(indexes) + #print(specref9) + #print(specref14) + #print(klsaddparas) + #print(mathPeople) #now indexes holds all of the places there is a section #using these indexes, get all of the words in between and add that to the paras[] for i in range(len(indexes)-1): @@ -276,14 +601,19 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref): #two variables for the references lists one for chapter 9 one for chapter 14 chapticker = 0 references9 = findReferences(entire9) + print(ref14III) + print("memes") chapticker += 1 references14 = findReferences(entire14) + print(ref14III) + print("memes") #call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9)) + str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9,klsaddparas,sectorskls,sectorschap,insertindices,insertloc)) chapticker2 += 1 - str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14)) - + str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14,klsaddparas,sectorskls,sectorschap,insertindices,insertloc)) + #print(insertindices) + #print(insertloc) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part @@ -298,4 +628,4 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref): temp9.write(str9) with open("updated14.tex", "w") as temp14: - temp14.write(str14) \ No newline at end of file + temp14.write(str14) From eeb7e59bf0805dcf5d4bd9f593f8a6ced8c60e88 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 5 Jul 2016 16:25:33 -0400 Subject: [PATCH 231/402] Special Value and HyperGeo for 9 and 14 fixed --- KLSadd_insertion/src/updateChapters.py | 73 ++++---------------------- 1 file changed, 11 insertions(+), 62 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index dfa760b..f17e62f 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -109,7 +109,7 @@ def HyperGeoFix(kls, chap): global check print(len(check)) print(check) - check.append("honhonhonbaguetteouioui") + check.append("Words") else: tempref = ref14III offset = 4 @@ -129,7 +129,7 @@ def HyperGeoFix(kls, chap): if temp in kHyperHeader: try: - chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: }" + chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Hypergeometric Representation}" chap[tempref[d + 1] - 2] += kHyperSub[kHypIndex + offset] print(kHyperSub[kHypIndex + offset]) #print(chap[tempref[d + 1] - 2]) @@ -172,7 +172,7 @@ def SpecialValue(kls, chap): check2.append("test") else: tempref = ref14III - offset = 6 + offset = 8 for d in range(0, len(tempref)): # check every section and subsection line i = tempref[d] line = str(chap[i]) @@ -185,65 +185,10 @@ def SpecialValue(kls, chap): svhyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection svhyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare if temp in svkHyperHeader: - chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum Special Value: }" + chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Special Value}" chap[tempref[d + 1] - 2] += svkHyperSub[svkHypIndex + offset] svkHypIndex += 1 -def LimRelFix(kls, chap): - canAdd = False - # keep track of sections and subsections from chap - hyperHeaders = [] - hyperSubs = [] - index = 0 - - #using Edward's reference paragraphs! - #now get the section names of all of the KLSadd - limrelHyperHeader = [] - limrelHyperSub = [] - index = 0 - for i in kls: - index +=1 - line = str(i) - if "\\subsection" in line: - temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) - if "limit relations" in line.lower(): - for i in klsaddparas: - if index < i: - klsloc = klsaddparas.index(i) - break - t = ''.join(kls[index: klsaddparas[klsloc]]) - limrelHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment - limrelHyperHeader.append(temp)#append the name of subsection - - limrelHypIndex = 0 - offset = 0 - if len(check) == 0: - tempref = ref9III - check.append("test") - else: - tempref = ref14III - offset = 2 - for d in range(0, len(tempref)): # check every section and subsection line - i = tempref[d] - line = str(chap[i]) - if "\\section{" in line or "\\subsection{" in line: - if "\\subsection{" in line: - temp = line[12:line.find("}", 7)] - else: - temp = line[9:line.find("}", 7)] - #print(temp) - if "limit relations" in line.lower(): - hyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection - hyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare - - if temp in limrelHyperHeader: - #print(temp) - chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum Limit Relations: }" - chap[tempref[d + 1] - 2] += limrelHyperSub[limrelHypIndex + offset] - limrelHypIndex+=1 - #print(limrelHyperSub) - #print(limrelHyperHeader) - def prepareForPDF(chap): footmiscIndex = 0 index = 0 @@ -347,9 +292,7 @@ def findReferences(chapter): if i == 1217: bqlegendrecheck -= 1 if bqlegendrecheck > 0: - ref14III.insert(87, 1217) - ref14III.append(3053) - ref14III.append(2554) + pass return references @@ -605,6 +548,9 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors print("memes") chapticker += 1 references14 = findReferences(entire14) + ref14III.insert(88, 1217) + ref14III.insert(244, 3053) + ref14III.insert(198, 2554) print(ref14III) print("memes") #call the fixChapter method to get a list with the addendum paragraphs added in @@ -629,3 +575,6 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors with open("updated14.tex", "w") as temp14: temp14.write(str14) +print(ref14III) +print(ref14III[87]) + From 1861c633d198c755f9ee3fd1c8d0f76188e158d1 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Wed, 6 Jul 2016 16:23:34 -0400 Subject: [PATCH 232/402] Fix for Limit Relations --- KLSadd_insertion/src/updateChapters.py | 95 +++++++++++++++++++------- 1 file changed, 70 insertions(+), 25 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index f17e62f..c8775ec 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -62,6 +62,7 @@ check = [] check2 = [] +check3 = [] comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. @@ -97,24 +98,14 @@ def HyperGeoFix(kls, chap): kHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment kHyperHeader.append(temp)#append the name of subsection kHyperHeader[8] = "Discrete $q$-Hermite~II" - print(kHyperHeader) - print(len(kHyperHeader)) - print(kHyperSub) - print(len(kHyperSub)) - print(klsaddparas) kHypIndex = 0 offset = 0 if len(check) == 0: tempref = ref9III - global check - print(len(check)) - print(check) check.append("Words") else: tempref = ref14III offset = 4 - print("baguette") - print(tempref) for d in range(0, len(tempref)): # check every section and subsection line i = tempref[d] line = str(chap[i]) @@ -131,13 +122,15 @@ def HyperGeoFix(kls, chap): try: chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Hypergeometric Representation}" chap[tempref[d + 1] - 2] += kHyperSub[kHypIndex + offset] - print(kHyperSub[kHypIndex + offset]) #print(chap[tempref[d + 1] - 2]) kHypIndex+=1 - print(kHypIndex) except IndexError: - print("QED") + print("Warning! Code has encountered some sort of error involving section identification for 'Hypergeometric Representation'. Problems may occur.") + #print(kHyperHeader) + #print(hyperHeaders) + #print(kHyperSub) + #print(hyperSubs) def SpecialValue(kls, chap): canAdd = False # keep track of sections and subsections from chap @@ -163,8 +156,6 @@ def SpecialValue(kls, chap): t = ''.join(kls[index: klsaddparas[svklsloc]]) svkHyperSub.append(t) # append the whole paragraph, pray every paragraph ends with a % comment svkHyperHeader.append(temp) # append the name of subsection - print("svk") - print(svkHyperHeader) svkHypIndex = 0 offset = 0 if len(check2) == 0: @@ -183,12 +174,73 @@ def SpecialValue(kls, chap): temp = line[9:line.find("}", 7)] if "hypergeometric representation" in line.lower(): svhyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection - svhyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + svhyperHeaders.append(temp) #appends the name of the section the hypergeo subsection is in so we can compare if temp in svkHyperHeader: chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Special Value}" chap[tempref[d + 1] - 2] += svkHyperSub[svkHypIndex + offset] svkHypIndex += 1 +def LimRelFix(kls, chap): + canAdd = False + lrhyperHeaders = [] + lrhyperSubs = [] + index = 0 + + lrkHyperHeader = [] + lrkHyperSub = [] + index = 0 + for i in kls: + index +=1 + line = str(i) + if "\\subsection" in line: + temp = line[line.find(" ", 12)+1: line.find("}", 12)] + if "limit relation" in line.lower(): + for i in klsaddparas: + if index < i: + klsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + lrkHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment + lrkHyperHeader.append(temp)#append the name of subsection + print(lrkHyperHeader) + lrkHyperHeader[0] = "Pseudo Jacobi" + print(lrkHyperHeader) + print(lrkHyperSub) + lrkHypIndex = 0 + offset = 0 + if len(check3) == 0: + tempref = ref9III + check3.append("Words") + else: + tempref = ref14III + offset = 1 + print("baguetteII") + print(tempref) + for d in range(0, len(tempref)): # check every section and subsection line + i = tempref[d] + line = str(chap[i]) + if "\\section{" in line or "\subsection{" in line: + if "\\subsection{" in line: + temp = line[12:line.find("}", 7)] + else: + temp = line[9:line.find("}", 7)] + if "limit relation" in line.lower(): + lrhyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection + lrhyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + + if temp in lrkHyperHeader: + try: + chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Limit Relation(s)}" + chap[tempref[d + 1] - 2] += lrkHyperSub[lrkHypIndex + offset] + print(lrkHyperSub[lrkHypIndex + offset]) + #print(chap[tempref[d + 1] - 2]) + lrkHypIndex+=1 + print(lrkHypIndex) + except IndexError: + print("Warning! Code has encountered some sort of error involving section identification for 'Limit Relations'. Problems may occur.") + print(lrhyperHeaders) + print(lrhyperSubs) + def prepareForPDF(chap): footmiscIndex = 0 index = 0 @@ -441,7 +493,7 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors #print(len(check)) #check = [] - #LimRelFix(kls, chap) + LimRelFix(kls, chap) referencePlacer(chap, references, p, kls, refII,refIII,specref,klsaddparas) #referencePlacerII(chap, references, p, kls, refII, refIII, specref, klsaddparas,sectorskls,sectorschap,insertindices,insertloc) @@ -544,22 +596,17 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors #two variables for the references lists one for chapter 9 one for chapter 14 chapticker = 0 references9 = findReferences(entire9) - print(ref14III) - print("memes") chapticker += 1 references14 = findReferences(entire14) ref14III.insert(88, 1217) ref14III.insert(244, 3053) ref14III.insert(198, 2554) - print(ref14III) - print("memes") #call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9,klsaddparas,sectorskls,sectorschap,insertindices,insertloc)) chapticker2 += 1 str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14,klsaddparas,sectorskls,sectorschap,insertindices,insertloc)) - #print(insertindices) - #print(insertloc) + """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part @@ -575,6 +622,4 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors with open("updated14.tex", "w") as temp14: temp14.write(str14) -print(ref14III) -print(ref14III[87]) From ba5956f6c2c2a7c0614dd592d0b4705dbab9bec2 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 2 Aug 2016 11:35:07 -0400 Subject: [PATCH 233/402] General Chapter Sorter --- KLSadd_insertion/src/updateChapters.py | 328 ++++++++++++++++--------- 1 file changed, 213 insertions(+), 115 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index c8775ec..1c397ea 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -63,6 +63,14 @@ check = [] check2 = [] check3 = [] +check4 = [] +klslist = [] +klslistII = [] +klslistIII = [] + +w, h = 2, 9999 +sorterIIIcheck = [[0 for x in range(w)] for y in range(h)] +print(sorterIIIcheck) comms = "" #holds the ACTUAL STRINGS of the commands #2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. @@ -71,6 +79,184 @@ #5/5/16 this method implements the Hypergeometric paragraphs into relevant sections for practicality # Later versions should attempt to: fix paragraphs with variations on this name like # Basic Hypergeometric Representation, q-Hypergeometric Representation +def NewKeywords(kls): + for i in kls: + if kls.index(i) > 313: + if ("paragraph{") in i: + lenword = len(i) - 1 + temp = i[i.find("{") + 1: lenword-1] + klslist.append(temp) + klslistII.append(temp+'\n') + if ("subsubsection*{") in i: + lenword = len(i) - 1 + temp = i[i.find("{") + 1: lenword - 1] + klslist.append(temp) + klslistII.append(temp + '\n') + print(klslist) + i = 0 + while i < len(klslist): + if ("reference" in klslist[i].lower()) or ("hypergeometric representation" in klslist[i].lower()) or ("limit relation" in klslist[i].lower()) or ("special value" in klslist[i].lower()): + del klslist[i] + else: + i += 1 + liststr = ''.join(klslistII) + with open("keywordsIII.tex", "w") as kw: + kw.write(liststr) + for i in klslist: + add = True + for j in klslistIII: + if i == j: + add = False + if add == True: + klslistIII.append(i) + print(klslist) + liststr2 = '\n'.join(klslistIII) + with open("trunckeywords.tex", "w") as kw: + kw.write(liststr2) + print(klslistIII) + print(klslistIII.index("Orthogonality")) + #del klslistIII[35] + print(klslistIII) +""" +--------------------------------------------------------- +""" +def FixChapterIII(kls,chap,word,sortloc): + canAdd = False + # keep track of sections and subsections from chap + hyperHeadersIII = [] + hyperSubsIII = [] + index = 0 + sep1 = 0 + nameIII = word.lower() + if nameIII == "orthogonality": + sep1 = 1 + #print(nameIII) + #using Edward's reference paragraphs! + #now get the section names of all of the KLSadd + kHyperHeaderIII = [] + kHyperSubIII = [] + index = 0 + for i in kls: + index +=1 + line = str(i) + if "\\subsection" in line: + temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) + if sep1 == 0: + if nameIII in line.lower() and kls.index(i) > 313 and "\\paragraph{" in line: + #print(i) + #print(kls.index(i)) + for i in klsaddparas: + if index < i: + klsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + kHyperSubIII.append(t)#append the whole paragraph, pray every paragraph ends with a % comment + kHyperHeaderIII.append(temp)#append the name of subsection + else: + if nameIII in line.lower() and kls.index(i) > 313 and "\\paragraph{" in line and "orthogonality relation" not in line.lower(): + # print(i) + # print(kls.index(i)) + for i in klsaddparas: + if index < i: + klsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + kHyperSubIII.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + kHyperHeaderIII.append(temp) # append the name of subsection + kHypIndexIII = 0 + offset = 0 + + i = 0 + while i < len(kHyperHeaderIII): + try: + if kHyperHeaderIII[i] == kHyperHeaderIII[i+1]: + kHyperSubIII[i+1] = kHyperSubIII[i] + "\paragraph{\\bf KLS Addendum: " + word + "}\n" + kHyperSubIII[i+1] + kHyperHeaderIII[i] = "memes" + kHyperSubIII[i] = "memes" + else: + i += 1 + except IndexError: + i += 1 + a = 0 + #print(kHyperHeaderIII) + #print(kHyperSubIII) + while a < len(kHyperHeaderIII): + if kHyperHeaderIII[a] == "memes": + del kHyperHeaderIII[a] + del kHyperSubIII[a] + else: + a += 1 + #print(kHyperSubIII) + #print(len(kHyperSubIII)) + #print(kHyperHeaderIII) + #print(len(kHyperHeaderIII)) + global sorterIIIcheck + #print(sortloc) + chap9 = 0 + if sorterIIIcheck[sortloc][0] == 0: + tempref = ref9III + sorterIIIcheck[sortloc][0] += 1 + chap9 = 1 + else: + tempref = ref14III + offset = sorterIIIcheck[sortloc][1] + print("offset") + print(offset) + if sep1 == 1: + offset = 8 + for d in range(0, len(tempref)): # check every section and subsection line + i = tempref[d] + line = str(chap[i]) + if "\\section{" in line or "\\subsection{" in line: + if "\\subsection{" in line: + temp = line[12:line.find("}", 7)] + else: + temp = line[9:line.find("}", 7)] + if sep1 == 0: + if nameIII in line.lower(): + hyperSubsIII.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyperHeadersIII.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + + if temp in kHyperHeaderIII: + try: + chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" + chap[tempref[d + 1] - 1] += kHyperSubIII[kHypIndexIII + offset] + if chap9 == 1: + sorterIIIcheck[sortloc][1] += 1 + #print(chap[tempref[d + 1] - 2]) + kHypIndexIII+=1 + except IndexError: + print("Warning! Code has encountered some sort of error involving section identification for '" + nameIII + "'. Problems may occur.") + print("If you see this message, bad things are happening.") + else: + if nameIII in line.lower() and "orthogonality relation" not in line: + hyperSubsIII.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyperHeadersIII.append( + temp) # appends the name of the section the hypergeo subsection is in so we can compare + + if temp in kHyperHeaderIII: + try: + chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" + chap[tempref[d + 1] - 1] += kHyperSubIII[kHypIndexIII + offset] + # print(chap[tempref[d + 1] - 2]) + kHypIndexIII += 1 + except IndexError: + print("Warning! Code has encountered some sort of error involving section identification for '" + nameIII + "'. Problems may occur.") + print("If you see this message, bad things are happening.") + + if len(hyperHeadersIII) != 0 and len(hyperSubsIII) != 0: + print("Chapter Values:") + print(word) + print(kHyperHeaderIII) + print(hyperHeadersIII) + print(len(hyperHeadersIII)) + #print(kHyperSubIII) + print(kHyperSubIII) + print(hyperSubsIII) + print(len)(hyperSubsIII) + print("End") + print("sortloc") + print(sorterIIIcheck[sortloc][1]) def HyperGeoFix(kls, chap): canAdd = False @@ -126,6 +312,7 @@ def HyperGeoFix(kls, chap): kHypIndex+=1 except IndexError: print("Warning! Code has encountered some sort of error involving section identification for 'Hypergeometric Representation'. Problems may occur.") + print("If you see this message, bad things are happening.") #print(kHyperHeader) #print(hyperHeaders) @@ -156,6 +343,8 @@ def SpecialValue(kls, chap): t = ''.join(kls[index: klsaddparas[svklsloc]]) svkHyperSub.append(t) # append the whole paragraph, pray every paragraph ends with a % comment svkHyperHeader.append(temp) # append the name of subsection + print(svkHyperHeader) + print(svkHyperSub) svkHypIndex = 0 offset = 0 if len(check2) == 0: @@ -202,10 +391,7 @@ def LimRelFix(kls, chap): t = ''.join(kls[index: klsaddparas[klsloc]]) lrkHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment lrkHyperHeader.append(temp)#append the name of subsection - print(lrkHyperHeader) lrkHyperHeader[0] = "Pseudo Jacobi" - print(lrkHyperHeader) - print(lrkHyperSub) lrkHypIndex = 0 offset = 0 if len(check3) == 0: @@ -214,8 +400,6 @@ def LimRelFix(kls, chap): else: tempref = ref14III offset = 1 - print("baguetteII") - print(tempref) for d in range(0, len(tempref)): # check every section and subsection line i = tempref[d] line = str(chap[i]) @@ -232,14 +416,10 @@ def LimRelFix(kls, chap): try: chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Limit Relation(s)}" chap[tempref[d + 1] - 2] += lrkHyperSub[lrkHypIndex + offset] - print(lrkHyperSub[lrkHypIndex + offset]) - #print(chap[tempref[d + 1] - 2]) lrkHypIndex+=1 - print(lrkHypIndex) except IndexError: print("Warning! Code has encountered some sort of error involving section identification for 'Limit Relations'. Problems may occur.") - print(lrhyperHeaders) - print(lrhyperSubs) + print("If you see this message, bad things are happening.") def prepareForPDF(chap): footmiscIndex = 0 @@ -376,124 +556,33 @@ def referencePlacer(chap, references, p, kls,refII,refIII,specref,klsaddparas): else: count += 1 -def referencePlacerII(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectorskls,sectorschap,insertindices,insertloc): - if chapticker2 == 0: - designator = "9." - elif chapticker2 == 1: - designator = "14." - count = 0 - count2 = 0 - count3 = 0 - secchaploc = 0 - secklsloc = 0 - sectionnuma = specref[count] - sectionnumb = specref[count+1] - sectionnumc = refII[count2] - sectionnumd = refII[count2 + 1] - while count < len(specref)-1: - for word in klsaddparas: - if word <> "@": - if word > sectionnuma and word < sectionnumb: - - lenwordII = len(kls[word])-1 - #That 29 is where the KLS formatting ends - if "subsub" in kls[word]: - temp = kls[word][34: lenwordII] - else: - temp = kls[word][29 : lenwordII] - #with open("keywords.tex", "a") as log: - # log.write(temp + " Location: " + str(word) + "\n") - #log.close() - #print(temp) - #print(word) - sectorskls = temp.split(' ') - for i in sectorskls: - for a in irrelevant: - if i == a: - sectorskls[sectorskls.index(i)] = "@@" - i == "@@" - #print(sectorskls) - - while count2 < len(refII) - 1: - for word2 in refIII: - if word2 > sectionnumc and word2 < sectionnumd and word2 <> "@": - lenwordIII = len(chap[word2])-3 - # That 13 is where the KLS formatting ends - if "subsub" in chap[word2]: - temp2 = chap[word2][16: lenwordIII] - else: - temp2 = chap[word2][13: lenwordIII] - #if designator == "14.": - # with open("keywords.tex", "a") as log: - # log.write(temp2 + " Location: " + str(word2) + "\n") - # log.close() - sectorschap = temp2.split(' ') - for i in sectorschap: - for a in irrelevant: - if i == a: - i == "@@" - #print("temp2") - #print(temp2) - #print(word2) - ticker1 = 1 - for i in sectorskls: - for j in sectorschap: - if (i in j) or (j in i): - if ticker1 == 1: - try: - locationdata = klsaddparas[klsaddparas.index(word)],"+" - moredata = str(klsaddparas[klsaddparas.index(word)]) - insertindices.append(locationdata) - insertloc.append(refIII[refIII.index(word2)+1]) - evenmoredata = str(refIII[refIII.index(word2)+1]) - with open("keywordsII.tex", "a") as log: - log.write("Pair "+"\n") - log.write(moredata + "\n") - log.write(evenmoredata+"\n") - log.close() - klsaddparas[klsaddparas.index(word)] = "@" - refIII[refIII.index(word2)] = "@" - ticker1 = 0 - except ValueError: - pass - count2 += 1 - sectionnumc = refII[count2] - if count2 + 1 == len(refII): - sectionnumd = refII[count2] - else: - sectionnumd = refII[count2 + 1] - count2 = 0 - count += 1 - sectionnuma = specref[count] - if count + 1 == len(specref): - sectionnumb = specref[count] - else: - sectionnumb = specref[count + 1] - #print(insertindices) - #print(insertloc) - #print(klsaddparas) - #print(refIII) - #method to change file string(actually a list right now), returns string to be written to file #If you write a method that changes something, it is preffered that you call the method in here -def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectorskls,sectorschap,insertindices,insertloc): +def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectorskls,sectorschap,insertindices,insertloc,klslist): #chap is the file string(actually a list), references is the specific references for the file, #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list chapticker3 = 0 - HyperGeoFix(kls, chap) + #HyperGeoFix(kls, chap) global check print(len(check)) #check = [] - SpecialValue(kls,chap) + #SpecialValue(kls,chap) #global check #print(len(check)) #check = [] - LimRelFix(kls, chap) + #LimRelFix(kls, chap) + sortloc = 0 + #FixChapterII(kls,chap,klslist) + bob = ['Uniqueness of orthogonality measure'] + for i in klslistIII: + #print(i) + FixChapterIII(kls, chap, i, sortloc) + sortloc += 1 referencePlacer(chap, references, p, kls, refII,refIII,specref,klsaddparas) #referencePlacerII(chap, references, p, kls, refII, refIII, specref, klsaddparas,sectorskls,sectorschap,insertindices,insertloc) @@ -530,6 +619,7 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors with open("KLSadd(3).tex", "r") as add: #store the file as a string addendum = add.readlines() + NewKeywords(addendum) #Makes sections look like other sections for word in addendum: if ("paragraph{" in word): @@ -563,6 +653,8 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors klsaddparas.append(index-1) if ("subsub" in word) and (index > 313): klsaddparas.append(index - 1) + if ("\subsection*{" in word) and (index > 313): + klsaddparas.append(index - 1) klsaddparas.append(2246) #print(indexes) #print(specref9) @@ -603,9 +695,13 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors ref14III.insert(198, 2554) #call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9,klsaddparas,sectorskls,sectorschap,insertindices,insertloc)) + str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9,klsaddparas,sectorskls,sectorschap,insertindices,insertloc,klslist)) + #with open("updated9.tex", "w") as temp9: + # temp9.write(str9) + #print("dignsakfibasjksdjhsfs") + #check4.append("memes") chapticker2 += 1 - str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14,klsaddparas,sectorskls,sectorschap,insertindices,insertloc)) + str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14,klsaddparas,sectorskls,sectorschap,insertindices,insertloc,klslist)) """ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -622,4 +718,6 @@ def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectors with open("updated14.tex", "w") as temp14: temp14.write(str14) - +print(klsaddparas) +print(sorterIIIcheck) +print(ref9III) \ No newline at end of file From c0e4db90bb12c21c0c0c758034079d10df4cc182 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 11 Aug 2016 16:48:14 -0400 Subject: [PATCH 234/402] Now cleaned and with better section sorter --- KLSadd_insertion/src/updateChapters.py | 990 ++++++++++++------------- 1 file changed, 459 insertions(+), 531 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 1c397ea..4dc9f89 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -1,209 +1,197 @@ -""" -Rahul Shah -self-taught python don't kill me I know its bad -2/5/16 -Re-write of linetest.py so people other than me can read it -This project was/is being written to streamline the update process of the book used -for the online repository, updated via the KLSadd addendum file which only affects chapters -9 and 14 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -NOTE! AS OF 2/26/16 THIS FILE IS NOT YET UPDATED TO THE FULL CAPACITY OF THE PREVIOUS FILE. IF FURTHER DEVELOPMENT IS NEEDED, REFER TO THE -linetest.py FILE IF THIS FILE DOES NOT ADDRESS THE NEW/EXTRA GOALS. This means that XCITE PARSE etc HAS NOT BEEN ADDED -Additional goals (already addressed in linetest.py): --insert correct usepackages --insert correct commands found in KLSadd.tex to chapter files --insert editor's initials into sections (ie %RS: begin addition, %RS: end addition) -Additional goals (not already addressed in linetest.py): --rewrite for "smarter" edits (ex. add new limit relations straight to the limit relations section in the section itself, not at the end) -Current update status: incomplete -Goals:change the book chapter files to include paragraphs from the addendum, and after that insert some edits so they are intelligently integrated into the chapter - -Edward Bian -Currently under heavy modification; sections may not work and/or look inefficient/confusing -""" - -#start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files -#also keep track of which chapter each one is in - -#variables: chapNums for the chapter number each section belongs to paras will hold the sections that will be copied over -#chapNums is needed to know which file to open (9 or 14) -#mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. I know some are not people, its just a var name -chapNums = [] +__author__ = "Rahul Shah" +__status__ = "Development" +__credits__ = ["Rahul Shah", "Edward Bian"] + +# start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files +# also keep track of which chapter each one is in + + +# chapNums is needed to know which file to open (9 or 14) +# mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. +chap_nums = [] paras = [] -#klsaddparas contains the locations of everything with "paragraph{" in KLSadd, these are the subsections that need to be sorted +# klsaddparas contains the locations of things with "paragraph{" in KLSadd, these are subsections that need to be sorted klsaddparas = [] -mathPeople = [] -newCommands = [] #used to hold the indexes of the commands +math_people = [] +new_commands = [] # used to hold the indexes of the commands -#ref9II holds the beginnings and ends of each chapter 9 section, provided and area to search -ref9II = [] #Hold section search indexes +# ref9II holds the beginnings and ends of each chapter 9 section, provided and area to search +ref9_2 = [] -#ref14II holds the beginnings and ends of each chapter 14 section, provided and area to search -ref14II = [] +# ref14II holds the beginnings and ends of each chapter 14 section, provided and area to search +ref14_2 = [] -#ref9III holds all subsections in each chapter 9 section along with the what ref9II holds -ref9III = [] #Holds all indexes +# ref9III holds all subsections in each chapter 9 section along with the what ref9II holds +ref9_3 = [] -#ref14III holds all subsections in each chapter 14 section along with the what ref14II holds -ref14III = [] +# ref14III holds all subsections in each chapter 14 section along with the what ref14II holds +ref14_3 = [] -#specref9 is the KLS indexes that go in chapter 9 +# specref9 is the KLS indexes that go in chapter 9 specref9 = [] -#specref14 is the KLS indexes that in chapter 14 +# specref14 is the KLS indexes that in chapter 14 specref14 = [] -sectorschap = [] -sectorskls = [] -insertindices = [] -insertloc = [] -irrelevant = ["Relations","Functions","Transform","In","For","To","Is","And","Of","relations","functions","transform","in","for","to","is","and","of"] - check = [] check2 = [] check3 = [] -check4 = [] -klslist = [] -klslistII = [] -klslistIII = [] +kls_list = [] +sortmatch = [] -w, h = 2, 9999 +w, h = 3, 9999 sorterIIIcheck = [[0 for x in range(w)] for y in range(h)] -print(sorterIIIcheck) -comms = "" #holds the ACTUAL STRINGS of the commands -#2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. -#Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf +sortmatch_2 = [] -#5/5/16 this method implements the Hypergeometric paragraphs into relevant sections for practicality + +# 2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. +# Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf + +# 5/5/16 this method implements the Hypergeometric paragraphs into relevant sections for practicality # Later versions should attempt to: fix paragraphs with variations on this name like # Basic Hypergeometric Representation, q-Hypergeometric Representation -def NewKeywords(kls): + + +def new_keywords(kls): + """ + This section checks through the Addendum and identifies words that are valid keywords of sections + It then takes that list and removes duplicates, as well as printing the output to another file. + + :param kls: The addendum that provides the words. + :return: Inputs results into a global list. + """ + + kls_list_chap = [] for i in kls: if kls.index(i) > 313: - if ("paragraph{") in i: - lenword = len(i) - 1 - temp = i[i.find("{") + 1: lenword-1] - klslist.append(temp) - klslistII.append(temp+'\n') - if ("subsubsection*{") in i: - lenword = len(i) - 1 - temp = i[i.find("{") + 1: lenword - 1] - klslist.append(temp) - klslistII.append(temp + '\n') - print(klslist) + if "paragraph{" in i or "subsubsection*{" in i: + kls_list.append(i[i.find("{") + 1: len(i) - 2]) + i = 0 - while i < len(klslist): - if ("reference" in klslist[i].lower()) or ("hypergeometric representation" in klslist[i].lower()) or ("limit relation" in klslist[i].lower()) or ("special value" in klslist[i].lower()): - del klslist[i] + while i < len(kls_list): + if "reference" in kls_list[i].lower() or "limit relation" in kls_list[i].lower(): + + del kls_list[i] else: i += 1 - liststr = ''.join(klslistII) - with open("keywordsIII.tex", "w") as kw: - kw.write(liststr) - for i in klslist: + kls_list.append("Limit Relation") + for i in kls_list: add = True - for j in klslistIII: + for j in kls_list_chap: if i == j: add = False - if add == True: - klslistIII.append(i) - print(klslist) - liststr2 = '\n'.join(klslistIII) + if add: + kls_list_chap.append(i) + liststr2 = '\n'.join(kls_list_chap) with open("trunckeywords.tex", "w") as kw: kw.write(liststr2) - print(klslistIII) - print(klslistIII.index("Orthogonality")) - #del klslistIII[35] - print(klslistIII) -""" ---------------------------------------------------------- -""" -def FixChapterIII(kls,chap,word,sortloc): - canAdd = False - # keep track of sections and subsections from chap - hyperHeadersIII = [] - hyperSubsIII = [] - index = 0 + print kls_list_chap + return kls_list_chap + + +def fix_chapter_sort(kls, chap, word, sortloc): + """ + This function sorts through the input files and identifies and places sections from the addendum after their + respective subsections in the chapter. + + :param kls: The addendum where the sections to be inserted are found. + :param chap: The destination of inserted sections. + :param word: The keyword that is being processed. + :param sortloc: The location in the list of words, of the word being sorted. + :return: This function outputs the processed chapter into a larger function for further processing. + """ + hyper_headers_chap = [] + hyper_subs_chap = [] + sep1 = 0 - nameIII = word.lower() - if nameIII == "orthogonality": + name_chap = word.lower() + if name_chap == "orthogonality": sep1 = 1 - #print(nameIII) - #using Edward's reference paragraphs! - #now get the section names of all of the KLSadd - kHyperHeaderIII = [] - kHyperSubIII = [] + elif name_chap == "special value": + sep1 = 2 + + khyper_header_chap = [] + k_hyper_sub_chap = [] index = 0 + for i in kls: - index +=1 + index += 1 line = str(i) if "\\subsection" in line: - temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) + temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) + if sep1 == 0: - if nameIII in line.lower() and kls.index(i) > 313 and "\\paragraph{" in line: - #print(i) - #print(kls.index(i)) + if name_chap in line.lower() and kls.index(i) > 313 and ("\\paragraph{" in line or + "\\subsubsection*{" in line): for i in klsaddparas: if index < i: klsloc = klsaddparas.index(i) break t = ''.join(kls[index: klsaddparas[klsloc]]) - kHyperSubIII.append(t)#append the whole paragraph, pray every paragraph ends with a % comment - kHyperHeaderIII.append(temp)#append the name of subsection - else: - if nameIII in line.lower() and kls.index(i) > 313 and "\\paragraph{" in line and "orthogonality relation" not in line.lower(): - # print(i) - # print(kls.index(i)) + k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + khyper_header_chap.append(temp) # append the name of subsection + elif sep1 == 1: + if name_chap in line.lower() and kls.index(i) > 313 and ("\\paragraph{" in line or + "\\subsubsection*{" in line) and "orthogonality relation" not in line.lower(): for i in klsaddparas: if index < i: klsloc = klsaddparas.index(i) break t = ''.join(kls[index: klsaddparas[klsloc]]) - kHyperSubIII.append(t) # append the whole paragraph, pray every paragraph ends with a % comment - kHyperHeaderIII.append(temp) # append the name of subsection - kHypIndexIII = 0 + k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + khyper_header_chap.append(temp) # append the name of subsection + elif sep1 == 2: + if name_chap in line.lower() and kls.index(i) > 313 and ("\\paragraph{" in line or + "\\subsubsection*{" in line): + for i in klsaddparas: + if index < i: + klsloc = klsaddparas.index(i) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + khyper_header_chap.append(temp) # append the name of subsection + for i in khyper_header_chap: + if i == "Pseudo Jacobi (or Routh-Romanovski)": + khyper_header_chap[khyper_header_chap.index(i)] = "Pseudo Jacobi" + k_hyp_index_iii = 0 offset = 0 i = 0 - while i < len(kHyperHeaderIII): + while i < len(khyper_header_chap): try: - if kHyperHeaderIII[i] == kHyperHeaderIII[i+1]: - kHyperSubIII[i+1] = kHyperSubIII[i] + "\paragraph{\\bf KLS Addendum: " + word + "}\n" + kHyperSubIII[i+1] - kHyperHeaderIII[i] = "memes" - kHyperSubIII[i] = "memes" + if khyper_header_chap[i] == khyper_header_chap[i+1]: + k_hyper_sub_chap[i + 1] = k_hyper_sub_chap[i] + "\paragraph{\\bf KLS Addendum: " + \ + word + "}\n" + k_hyper_sub_chap[i + 1] + khyper_header_chap[i] = "memes" + k_hyper_sub_chap[i] = "memes" else: i += 1 except IndexError: i += 1 + a = 0 - #print(kHyperHeaderIII) - #print(kHyperSubIII) - while a < len(kHyperHeaderIII): - if kHyperHeaderIII[a] == "memes": - del kHyperHeaderIII[a] - del kHyperSubIII[a] + while a < len(khyper_header_chap): + if khyper_header_chap[a] == "memes": + del khyper_header_chap[a] + del k_hyper_sub_chap[a] else: a += 1 - #print(kHyperSubIII) - #print(len(kHyperSubIII)) - #print(kHyperHeaderIII) - #print(len(kHyperHeaderIII)) + global sorterIIIcheck - #print(sortloc) chap9 = 0 + if sorterIIIcheck[sortloc][0] == 0: - tempref = ref9III + tempref = ref9_3 sorterIIIcheck[sortloc][0] += 1 chap9 = 1 else: - tempref = ref14III + tempref = ref14_3 offset = sorterIIIcheck[sortloc][1] - print("offset") - print(offset) if sep1 == 1: offset = 8 + for d in range(0, len(tempref)): # check every section and subsection line i = tempref[d] line = str(chap[i]) @@ -212,315 +200,226 @@ def FixChapterIII(kls,chap,word,sortloc): temp = line[12:line.find("}", 7)] else: temp = line[9:line.find("}", 7)] + if sep1 == 0: - if nameIII in line.lower(): - hyperSubsIII.append([tempref[d + 1]]) # appends the index for the line before following subsection - hyperHeadersIII.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare + if name_chap in line.lower(): + hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in - if temp in kHyperHeaderIII: + if temp in khyper_header_chap: try: chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" - chap[tempref[d + 1] - 1] += kHyperSubIII[kHypIndexIII + offset] + chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] if chap9 == 1: sorterIIIcheck[sortloc][1] += 1 - #print(chap[tempref[d + 1] - 2]) - kHypIndexIII+=1 + k_hyp_index_iii += 1 except IndexError: - print("Warning! Code has encountered some sort of error involving section identification for '" + nameIII + "'. Problems may occur.") - print("If you see this message, bad things are happening.") - else: - if nameIII in line.lower() and "orthogonality relation" not in line: - hyperSubsIII.append([tempref[d + 1]]) # appends the index for the line before following subsection - hyperHeadersIII.append( - temp) # appends the name of the section the hypergeo subsection is in so we can compare + print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") + elif sep1 == 1: + if name_chap in line.lower() and "orthogonality relation" not in line: + hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in - if temp in kHyperHeaderIII: + if temp in khyper_header_chap: try: chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" - chap[tempref[d + 1] - 1] += kHyperSubIII[kHypIndexIII + offset] - # print(chap[tempref[d + 1] - 2]) - kHypIndexIII += 1 + chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] + k_hyp_index_iii += 1 except IndexError: - print("Warning! Code has encountered some sort of error involving section identification for '" + nameIII + "'. Problems may occur.") - print("If you see this message, bad things are happening.") - - if len(hyperHeadersIII) != 0 and len(hyperSubsIII) != 0: - print("Chapter Values:") - print(word) - print(kHyperHeaderIII) - print(hyperHeadersIII) - print(len(hyperHeadersIII)) - #print(kHyperSubIII) - print(kHyperSubIII) - print(hyperSubsIII) - print(len)(hyperSubsIII) - print("End") - print("sortloc") - print(sorterIIIcheck[sortloc][1]) - -def HyperGeoFix(kls, chap): - canAdd = False - # keep track of sections and subsections from chap - hyperHeaders = [] - hyperSubs = [] - index = 0 + print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") + elif sep1 == 2: + if "hypergeometric representation" in line.lower(): + hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection + hyper_headers_chap.append( + temp) # appends the name of the section the hypergeo subsection is in so we can compare - #using Edward's reference paragraphs! - #now get the section names of all of the KLSadd - kHyperHeader = [] - kHyperSub = [] - index = 0 - for i in kls: - index +=1 - line = str(i) - if "\\subsection" in line: - temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) - if "hypergeometric representation" in line.lower(): - for i in klsaddparas: - if index < i: - klsloc = klsaddparas.index(i) - break - t = ''.join(kls[index: klsaddparas[klsloc]]) - kHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment - kHyperHeader.append(temp)#append the name of subsection - kHyperHeader[8] = "Discrete $q$-Hermite~II" - kHypIndex = 0 - offset = 0 - if len(check) == 0: - tempref = ref9III - check.append("Words") - else: - tempref = ref14III - offset = 4 - for d in range(0, len(tempref)): # check every section and subsection line - i = tempref[d] - line = str(chap[i]) - if "\\section{" in line or "\subsection{" in line: - if "\\subsection{" in line: - temp = line[12:line.find("}", 7)] - else: - temp = line[9:line.find("}", 7)] - if "hypergeometric representation" in line.lower(): - hyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection - hyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare - - if temp in kHyperHeader: - try: - chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Hypergeometric Representation}" - chap[tempref[d + 1] - 2] += kHyperSub[kHypIndex + offset] - #print(chap[tempref[d + 1] - 2]) - kHypIndex+=1 - except IndexError: - print("Warning! Code has encountered some sort of error involving section identification for 'Hypergeometric Representation'. Problems may occur.") - print("If you see this message, bad things are happening.") - - #print(kHyperHeader) - #print(hyperHeaders) - #print(kHyperSub) - #print(hyperSubs) -def SpecialValue(kls, chap): - canAdd = False - # keep track of sections and subsections from chap - svhyperHeaders = [] - svhyperSubs = [] - index = 0 + if temp in khyper_header_chap: + try: + chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: Special Value }" + chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] + k_hyp_index_iii += 1 + except IndexError: + print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") + + if len(hyper_headers_chap) != 0: + print "Stuff for checking" + print k_hyper_sub_chap + print khyper_header_chap + print hyper_headers_chap + print word + sortmatch.append(word) + sortmatch_2.append(k_hyper_sub_chap) + sorterIIIcheck[sortloc][2] = word + + +def cutwords(word_to_find, word_to_search_in): + """ + This function checks through the outputs of later sections and removes duplicates, so that the output file does + not have duplicates. + + IN DEVELOPMENT + + :param word_to_find: Word that is being found + :param word_to_search_in: The big word that is being searched + :return: The big word without the word that was searched for + """ + a = word_to_find + b = word_to_search_in + precheck = 1 + checkloop = False + if a in b: + if "\paragraph{\large\bf KLSadd: " or "\subsubsection*{\large\bf KLSadd: " in b: + while checkloop == False: + if "\\paragraph{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)]: + cut = b[:b.find(a) - precheck] + b[b.find(a) + len(a):] + checkloop = True + return cut + elif "\\subsubsection*{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)]: + cut = b[:b.find(a) - precheck] + b[b.find(a) + len(a):] + checkloop = True + return cut + else: + print "ding2" + precheck += 1 - # using Edward's reference paragraphs! - # now get the section names of all of the KLSadd - svkHyperHeader = [] - svkHyperSub = [] - index = 0 - for i in kls: - index +=1 - line = str(i) - if "\\subsection" in line: - temp = line[line.find(" ", 12)+1: line.find("}", 12)] #get just the name (like mathpeople) - if "special value" in line.lower(): - for i in klsaddparas: - if index < i: - svklsloc = klsaddparas.index(i) - break - t = ''.join(kls[index: klsaddparas[svklsloc]]) - svkHyperSub.append(t) # append the whole paragraph, pray every paragraph ends with a % comment - svkHyperHeader.append(temp) # append the name of subsection - print(svkHyperHeader) - print(svkHyperSub) - svkHypIndex = 0 - offset = 0 - if len(check2) == 0: - tempref = ref9III - check2.append("test") + else: + cut = b[:b.find(a)] + b[b.find(a) + len(a):] + return cut else: - tempref = ref14III - offset = 8 - for d in range(0, len(tempref)): # check every section and subsection line - i = tempref[d] - line = str(chap[i]) - if "\\section{" in line or "\\subsection{" in line: - if "\\subsection{" in line: - temp = line[12:line.find("}", 7)] - else: - temp = line[9:line.find("}", 7)] - if "hypergeometric representation" in line.lower(): - svhyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection - svhyperHeaders.append(temp) #appends the name of the section the hypergeo subsection is in so we can compare - if temp in svkHyperHeader: - chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Special Value}" - chap[tempref[d + 1] - 2] += svkHyperSub[svkHypIndex + offset] - svkHypIndex += 1 - -def LimRelFix(kls, chap): - canAdd = False - lrhyperHeaders = [] - lrhyperSubs = [] - index = 0 + return b - lrkHyperHeader = [] - lrkHyperSub = [] - index = 0 - for i in kls: - index +=1 - line = str(i) - if "\\subsection" in line: - temp = line[line.find(" ", 12)+1: line.find("}", 12)] - if "limit relation" in line.lower(): - for i in klsaddparas: - if index < i: - klsloc = klsaddparas.index(i) - break - t = ''.join(kls[index: klsaddparas[klsloc]]) - lrkHyperSub.append(t)#append the whole paragraph, pray every paragraph ends with a % comment - lrkHyperHeader.append(temp)#append the name of subsection - lrkHyperHeader[0] = "Pseudo Jacobi" - lrkHypIndex = 0 - offset = 0 - if len(check3) == 0: - tempref = ref9III - check3.append("Words") - else: - tempref = ref14III - offset = 1 - for d in range(0, len(tempref)): # check every section and subsection line - i = tempref[d] - line = str(chap[i]) - if "\\section{" in line or "\subsection{" in line: - if "\\subsection{" in line: - temp = line[12:line.find("}", 7)] - else: - temp = line[9:line.find("}", 7)] - if "limit relation" in line.lower(): - lrhyperSubs.append([tempref[d + 1]]) # appends the index for the line before following subsection - lrhyperHeaders.append(temp) # appends the name of the section the hypergeo subsection is in so we can compare - - if temp in lrkHyperHeader: - try: - chap[tempref[d + 1] - 2] += "\paragraph{\\bf KLS Addendum: Limit Relation(s)}" - chap[tempref[d + 1] - 2] += lrkHyperSub[lrkHypIndex + offset] - lrkHypIndex+=1 - except IndexError: - print("Warning! Code has encountered some sort of error involving section identification for 'Limit Relations'. Problems may occur.") - print("If you see this message, bad things are happening.") - -def prepareForPDF(chap): - footmiscIndex = 0 +def prepare_for_PDF(chap): + """ + Edits the chapter string sent to include hyperref, xparse, and cite packages + + :param chap: The chapter (9 or 14) that is being processed + :return: + """ + foot_misc_index = 0 index = 0 for word in chap: - index+=1 - if("footmisc" in word): - footmiscIndex+= index - #edits the chapter string sent to include hyperref, xparse, and cite packages - #str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" - chap.insert(footmiscIndex, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") + index += 1 + if "footmisc" in word: + foot_misc_index += index + # str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + chap.insert(foot_misc_index, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") return chap -#2/18/16 this method reads in relevant commands that are in KLSadd.tex and returns them as a list -def getCommands(kls): +def get_commands(kls): + """ + this method reads in relevant commands that are in KLSadd.tex and returns them as a list + + :param kls: The addendum is the source of what is being found + :return: + """ index = 0 for word in kls: - index+=1 - if("smallskipamount" in word): - newCommands.append(index-1) - if("mybibitem[1]" in word): - newCommands.append(index) - comms = kls[newCommands[0]:newCommands[1]] - return comms - -#2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. Currently only works with chapter 9 - -def insertCommands(kls, chap, cms): - #reads in the newCommands[] and puts them in chap - beginIndex = -1 #the index of the "begin document" keyphrase, this is where the new commands need to be inserted. - #find index of begin document in KLSadd + index += 1 + if "smallskipamount" in word: + new_commands.append(index - 1) + if "mybibitem[1]" in word: + new_commands.append(index) + return kls[new_commands[0]:new_commands[1]] + + +# 2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. +# Currently only works with chapter 9 +def insert_commands(kls, chap, cms): + """ + Inserts commands identified in previous functions. + + :param kls: Addendum to look through + :param chap: The chapter that is receiving commands (9 or 14) + :param cms: Commands to be inserted + :return: + """ + # reads in the newCommands[] and puts them in chap + begin_index = -1 # the index of the "begin document" keyphrase, this is where the new commands need to be inserted. + # find index of begin document in KLSadd index = 0 + for word in kls: - index+=1 - if("begin{document}" in word): - beginIndex += index + index += 1 + if "begin{document}" in word: + begin_index += index tempIndex = 0 + for i in cms: - chap.insert(beginIndex+tempIndex,i) - tempIndex +=1 + chap.insert(begin_index + tempIndex, i) + tempIndex += 1 return chap -#method to find the indices of the reference paragraphs -def findReferences(chapter): + +# method to find the indices of the reference paragraphs +def find_references(chapter,chapticker): + """ + This function searches the chapters and locates potential destinations of additions from the addendum. + It puts these destinations in a list. + + :param chapter: The chapter being searched. + :param chapticker: Which chapter is being searched (9 or 14). + :return: List of references. + """ references = [] index = -1 - #chaptercheck designates which chapter is being searched for references + # chaptercheck designates which chapter is being searched for references chaptercheck = 0 if chapticker == 0: chaptercheck = str(9) elif chapticker == 1: chaptercheck = str(14) - #canAdd tells the program whether the next section is a reference - canAdd = False + # canAdd tells the program whether the next section is a reference + canadd = False + for word in chapter: - index+=1 + index += 1 specialdetector = 1 - #check sections and subsections + # check sections and subsections if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): w = word[word.find("{")+1: word.find("}")] ws = word[word.find("{")+1: word.find("~")] - for unit in mathPeople: + for unit in math_people: subunit = unit[unit.find(" ")+1: unit.find("#")] # System of checks that verifies if section is in chapter - if ((w in subunit) or (ws in subunit)) and (chaptercheck in unit) and (len(w) == len(subunit)) or (("Pseudo Jacobi" in w) and ("Pseudo Jacobi (or Routh-Romanovski)" in subunit)) and ("Hypergeometric representation" not in w) and ("Special value" not in w): - canAdd = True + if (w in subunit or ws in subunit) and (chaptercheck in unit) and len(w) == len(subunit) or\ + ("Pseudo Jacobi" in w and "Pseudo Jacobi (or Routh-Romanovski)" in subunit): + canadd = True if chapticker == 0: - ref9II.append(index) - ref9III.append(index) + ref9_2.append(index) + ref9_3.append(index) elif chapticker == 1: - ref14II.append(index) - ref14III.append(index) + ref14_2.append(index) + ref14_3.append(index) specialdetector = 0 - if("\\subsection*{References}" in word) and (canAdd == True): + if"\\subsection*{References}" in word and canadd: # Appends valid locations references.append(index) if chapticker == 0: - ref9II.append(index) - ref9III.append(index) + ref9_2.append(index) + ref9_3.append(index) elif chapticker == 1: - ref14II.append(index) - ref14III.append(index) - canAdd = False - if ("subsection*{" in word and "References" not in word): + ref14_2.append(index) + ref14_3.append(index) + canadd = False + if "subsection*{" in word and "References" not in word: if chapticker == 0: - ref9III.append(index) + ref9_3.append(index) elif chapticker == 1: - ref14III.append(index) + ref14_3.append(index) if "\\section{" in word and specialdetector == 1 and chaptercheck == "14": w2 = word[word.find("{") + 1: word.find("}")] if "Bessel" not in w2: - ref14III.append(index) + ref14_3.append(index) besselcheck = 1 bqlegendrecheck = 2 - for i in ref9III: + + for i in ref9_3: if i == 2646: besselcheck = 0 if besselcheck == 1: - ref9III.insert(230, 2646) - for i in ref14III: + ref9_3.insert(230, 2646) + for i in ref14_3: if i == 1217: bqlegendrecheck -= 1 if bqlegendrecheck > 0: @@ -528,7 +427,17 @@ def findReferences(chapter): return references -def referencePlacer(chap, references, p, kls,refII,refIII,specref,klsaddparas): + +def reference_placer(chap, references, p, chapticker2): + """ + Places identified additions from the addendum into the chapter. + + :param chap: Chapter receiving the additions. + :param references: List containing references + :param p: List containing additions to be added. + :param chapticker2: Which chapter is being searched (9 or 14). + :return: + """ # count is used to represent the values in count count = 0 # Tells which chapter it's on @@ -537,18 +446,19 @@ def referencePlacer(chap, references, p, kls,refII,refIII,specref,klsaddparas): designator = "9." elif chapticker2 == 1: designator = "14." + for i in references: # Place before References paragraph word1 = str(p[count]) - if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): + if designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: chap[i - 2] += "%Begin KLSadd additions" chap[i - 2] += p[count] chap[i - 2] += "%End of KLSadd additions" count += 1 else: - while (designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): + while designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: word1 = str(p[count]) - if (designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]): + if designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: chap[i - 2] += "%Begin KLSadd additions" chap[i - 2] += p[count] chap[i - 2] += "%End of KLSadd additions" @@ -556,168 +466,186 @@ def referencePlacer(chap, references, p, kls,refII,refIII,specref,klsaddparas): else: count += 1 -#method to change file string(actually a list right now), returns string to be written to file -#If you write a method that changes something, it is preffered that you call the method in here -def fixChapter(chap, references, p, kls,refII,refIII,specref,klsaddparas,sectorskls,sectorschap,insertindices,insertloc,klslist): - #chap is the file string(actually a list), references is the specific references for the file, - #and p is the paras variable(not sure if needed) kls is the KLSadd.tex as a list - chapticker3 = 0 - - #HyperGeoFix(kls, chap) - global check - print(len(check)) - #check = [] +# method to change file string(actually a list right now), returns string to be written to file +# If you write a method that changes something, it is preffered that you call the method in here +def fix_chapter(chap, references, p, kls, kls_list_all, chapticker2): + """ + Removes specific lines stopping the latex file from converting into python, as well as running the + functions responsible for sorting sections and placing the correct additions in the correct places - #SpecialValue(kls,chap) + :param chap: Chapter being processed. + :param references: List containing references (used in reference placer). + :param p: List containing additions to be added. + :param kls: The addendum that contains sections to be added (not processed). + :param kls_list_all: List of all identified keywords, fed into the chapter sorter. + :param chapticker2: Which chapter is being searched (9 or 14). + :return: + """ - #global check - #print(len(check)) - #check = [] - - #LimRelFix(kls, chap) sortloc = 0 - #FixChapterII(kls,chap,klslist) - bob = ['Uniqueness of orthogonality measure'] - for i in klslistIII: - #print(i) - FixChapterIII(kls, chap, i, sortloc) + + for i in kls_list_all: + fix_chapter_sort(kls, chap, i, sortloc) sortloc += 1 - referencePlacer(chap, references, p, kls, refII,refIII,specref,klsaddparas) - #referencePlacerII(chap, references, p, kls, refII, refIII, specref, klsaddparas,sectorskls,sectorschap,insertindices,insertloc) - chap = prepareForPDF(chap) - cms = getCommands(kls) - chap = insertCommands(kls,chap, cms) + for a in range(len(p)-1): + for b in sortmatch_2: + for c in b: + with open("compare.tex", "a") as spook: + spook.write(p[a]) + spook.write("NEXT: ") + print c + print "pause" + print a + print "l0" + print len(c) + print "l1" + print a + print p[a] + p[a] = cutwords(c, p[a]) + print("l2") + + + reference_placer(chap, references, p, chapticker2) + chap = prepare_for_PDF(chap) + cms = get_commands(kls) + chap = insert_commands(kls, chap, cms) commentticker = 0 + # Hard coded command remover for word in chap: word2 = chap[chap.index(word)-1] - if ("\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2): - if ("\\newcommand\\half{\\frac12}" in word): + if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2: + if "\\newcommand\\half{\\frac12}" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd - elif ("\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word): + elif "\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd - elif ("\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word): + elif "\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd - elif ("\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word): + elif "\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd commentticker += 1 + ticker1 = 0 # Formatting to make the Latex file run while ticker1 < len(chap): - if ('\\myciteKLS' in chap[ticker1]): + if '\\myciteKLS' in chap[ticker1]: chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') ticker1 += 1 return chap -#open the KLSadd file to do things with -with open("KLSadd(3).tex", "r") as add: - #store the file as a string - addendum = add.readlines() - NewKeywords(addendum) - #Makes sections look like other sections - for word in addendum: - if ("paragraph{" in word): - lenword = len(word) - 1 - temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] - addendum[addendum.index(word)] = temp - if ("subsubsection*{" in word): - lenword = len(word) - 1 - addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] - index = 0 - indexes = [] - # Designates sections that need stuff added - # get the index - for word in addendum: - index+=1 - if("." in word and "\\subsection*{" in word): - if ("9." in word): - chapNums.append(9) - name = word[word.find("{") + 1: word.find("}") ] - mathPeople.append(name + "#") - specref9.append(index-1) - if("14." in word): - chapNums.append(14) - name = word[word.find("{") + 1: word.find("}") ] - mathPeople.append(name + "#") - if len(specref14) == 0: - specref9.append(index - 1) - specref14.append(index - 1) - indexes.append(index-1) - if ("paragraph{" in word) and (index > 313): - klsaddparas.append(index-1) - if ("subsub" in word) and (index > 313): - klsaddparas.append(index - 1) - if ("\subsection*{" in word) and (index > 313): - klsaddparas.append(index - 1) - klsaddparas.append(2246) - #print(indexes) - #print(specref9) - #print(specref14) - #print(klsaddparas) - #print(mathPeople) - #now indexes holds all of the places there is a section - #using these indexes, get all of the words in between and add that to the paras[] - for i in range(len(indexes)-1): - box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) - paras.append(box) - box2 = ''.join(addendum[indexes[35]: 2245]) - paras.append(box2) - #paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate - #section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable - #we can use the section names to place the relevant paragraphs in the right place - - #as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section - #parse both files 9 and 14 as strings - - #chapter 9 - with open("chap09.tex", "r") as ch9: - entire9 = ch9.readlines() #reads in as a list of strings - ch9.close() - - #chapter 14 - with open("chap14.tex", "r") as ch14: - entire14 = ch14.readlines() - ch14.close() - #call the findReferences method to find the index of the References paragraph in the two file strings - #two variables for the references lists one for chapter 9 one for chapter 14 - chapticker = 0 - references9 = findReferences(entire9) - chapticker += 1 - references14 = findReferences(entire14) - ref14III.insert(88, 1217) - ref14III.insert(244, 3053) - ref14III.insert(198, 2554) - #call the fixChapter method to get a list with the addendum paragraphs added in - chapticker2 = 0 - str9 = ''.join(fixChapter(entire9, references9, paras, addendum,ref9II,ref9III,specref9,klsaddparas,sectorskls,sectorschap,insertindices,insertloc,klslist)) - #with open("updated9.tex", "w") as temp9: - # temp9.write(str9) - #print("dignsakfibasjksdjhsfs") - #check4.append("memes") - chapticker2 += 1 - str14 = ''.join(fixChapter(entire14, references14, paras, addendum,ref14II,ref14III,specref14,klsaddparas,sectorskls,sectorschap,insertindices,insertloc,klslist)) - -""" -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part -is where the lists representing the words/strings in the chapter are joined together and updated as a string! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -""" - - -#write to files -#new output files for safety -with open("updated9.tex","w") as temp9: - temp9.write(str9) - -with open("updated14.tex", "w") as temp14: - temp14.write(str14) -print(klsaddparas) -print(sorterIIIcheck) -print(ref9III) \ No newline at end of file + +def main(): + """ + Runs all of the other functions and outputs their results into an output file as well as putting together the list + of additions that is fed into fix_chapter. + + :return: + """ + # open the KLSadd file to do things with + with open("KLSadd(3).tex", "r") as add: + # store the file as a string + addendum = add.readlines() + kls_list_all = new_keywords(addendum) + # Makes sections look like other sections + + for word in addendum: + if "paragraph{" in word: + lenword = len(word) - 1 + temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] + addendum[addendum.index(word)] = temp + if "subsubsection*{" in word: + lenword = len(word) - 1 + addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + \ + word[word.find("{") + 1: lenword] + index = 0 + indexes = [] + + # Designates sections that need stuff added + # get the index + for word in addendum: + index += 1 + if "." in word and "\\subsection*{" in word: + if "9." in word: + chap_nums.append(9) + name = word[word.find("{") + 1: word.find("}")] + math_people.append(name + "#") + specref9.append(index-1) + if "14." in word: + chap_nums.append(14) + name = word[word.find("{") + 1: word.find("}")] + math_people.append(name + "#") + if len(specref14) == 0: + specref9.append(index - 1) + specref14.append(index - 1) + indexes.append(index-1) + if "paragraph{" in word and index > 313: + klsaddparas.append(index-1) + if "subsub" in word and index > 313: + klsaddparas.append(index - 1) + if "\subsection*{" in word and index > 313: + klsaddparas.append(index - 1) + klsaddparas.append(2246) + print(indexes) + # now indexes holds all of the places there is a section + # using these indexes, get all of the words in between and add that to the paras[] + for i in range(len(indexes)-1): + box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) + paras.append(box) + print(box) + box2 = ''.join(addendum[indexes[35]: 2245]) + paras.append(box2) + + + # paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate + # section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable + # we can use the section names to place the relevant paragraphs in the right place + + # as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section + # parse both files 9 and 14 as strings + + # chapter 9 + with open("chap09.tex", "r") as ch9: + entire9 = ch9.readlines() # reads in as a list of strings + + # chapter 14 + with open("chap14.tex", "r") as ch14: + entire14 = ch14.readlines() + + # call the findReferences method to find the index of the References paragraph in the two file strings + # two variables for the references lists one for chapter 9 one for chapter 14 + chapticker = 0 + references9 = find_references(entire9, chapticker) + chapticker += 1 + references14 = find_references(entire14, chapticker) + ref14_3.insert(88, 1217) + ref14_3.insert(244, 3053) + ref14_3.insert(198, 2554) + + # call the fixChapter method to get a list with the addendum paragraphs added in + chapticker2 = 0 + str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2)) + + chapticker2 += 1 + str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2)) + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part + # is where the lists representing the words/strings in the chapter are joined together and updated as a string! + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + # write to files + # new output files for safety + with open("updated9.tex", "w") as temp9: + temp9.write(str9) + + with open("updated14.tex", "w") as temp14: + temp14.write(str14) + +if __name__ == '__main__': + main() \ No newline at end of file From 51ff4e71f7c1779b3ddf9fb1c40beaae15c99486 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 15 Aug 2016 11:17:43 -0400 Subject: [PATCH 235/402] Refactor directories and decancerify --- KLSadd_insertion/README.md | 105 +++++++ .../{src/KLSadd.pdf => data/KLSaddII.pdf} | Bin 414643 -> 414643 bytes .../{src/KLSadd.tex => data/KLSaddII.tex} | 2 +- KLSadd_insertion/{src => data}/KoLeSw.pdf | Bin KLSadd_insertion/src/__init__.py | 0 KLSadd_insertion/src/linetest.py | 278 +++++++++--------- KLSadd_insertion/src/updateChapters.py | 63 ++-- KLSadd_insertion/test/test_fix_chapter.py | 0 KLSadd_insertion/test/test_new_keywords.py | 6 + KLSadd_insertion/updateChaptersRoadMap.txt | 97 ------ 10 files changed, 288 insertions(+), 263 deletions(-) rename KLSadd_insertion/{src/KLSadd.pdf => data/KLSaddII.pdf} (99%) rename KLSadd_insertion/{src/KLSadd.tex => data/KLSaddII.tex} (99%) rename KLSadd_insertion/{src => data}/KoLeSw.pdf (100%) create mode 100644 KLSadd_insertion/src/__init__.py create mode 100644 KLSadd_insertion/test/test_fix_chapter.py create mode 100644 KLSadd_insertion/test/test_new_keywords.py delete mode 100644 KLSadd_insertion/updateChaptersRoadMap.txt diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index 71ad1ef..f08662d 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -15,5 +15,110 @@ NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file **THIS MEANS YOU SHOULD NOT RUN updateChapters.py OR linetest.py FROM YOUR GIT DIRECTORY. THE CHAPTER FILES ARE NOT PUBLIC DOMAIN, DO NOT COMMIT THEM! COPY THE FILES OVER INTO A SEPERATE DIRECTORY AND THEN COPY THEM BACK OVER WHEN YOU ARE READY TO COMMIT** +This is a roadmap of updateChapters.py. It will help explain every piece of code and exactly how everything works in relation to each other. + + +_______________________________________________________________________________ + + +First: the files + + - KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be *inserted* into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf + + - chap09.tex and chap14.tex: these are chapter files. These are LATEX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections + + - updateChapters.py: this is our code. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. + + - linetest.py: this abomination of code is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. + + - newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what the output to updateChapters.py should be like!!!!!!! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Next: the specifications + +Toward the end of every section in the chapter file, there is a subsection called "References". It basically just contains a bunch of references to sources and other papers. Every paragraph in every subsection in KLSadd.tex must be put *before* the "References" subsection in the corresponding section in the chapter file. For example: +**These aren't real sections, obviously, just an example** + +in chap09.tex: +```latex +\section{Dogs}\index{Dog polynomials} +\subsection*{Hypergeometric dogs} +blah blah blah +\subsection*{References} +\cite{Dogs101} +``` + +in KLSadd.tex: + +```latex +\subsection*{9.15 Dogs} +\paragraph{Beagles} +The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric +in $a,b,c,d$. +``` + +So in the chapter 9 file, section 15 "Dogs", before the References subsection, we need to add in the Beagles paragraph. HOWEVER, there are some changes that need to be made before we insert. The easiest change is adding a comment that tells us something was inserted. We just append something like "%RS insertion begin" and "%RS insertion complete" before and after, respectively, the Beagles paragraph when we insert. Another change is adding \large\bf before the paragraph name. This changes the size and format so it looks prettier. So the heading in this example would be: + +```latex +\paragraph{\large\bf Beagles} +``` + +**It is important to note that these changes are currently (3/25/16) unimplemented in updateChapters.py and only exist in linetest.py, if you want to see how the output to updateChapters.py should look, look at newtempchap09.tex** + +So after updateChapters.py is called, the chapter 9 file should look like this: + +```latex +\section{Dogs}\index{Dog polynomials} +\subsection*{Hypergeometric dogs} +blah blah blah +%RS insertion begin +\paragraph{\large\bf Beagles} +The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric +in $a,b,c,d$. +%RS insertion complete +\subsection*{References} +\cite{Dogs101} +``` + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The variables: + +These are the variables in the beginning + +-chapNums: chapNums is a list, denoted by the [], that holds the chapter number (in this case it's either a 9 or a 14) that corresponds to where a section in KLSadd should go + +-paras: holds all of the text in the paragraphs of KLSadd.tex. This is the list that gets read when its time to insert paragraphs into the chapter file. Every element is a loooong string + +-mathPeople: this holds the *name* of every section in KLSadd. It stores names like Wilson, Racah, Dual Hahn, etc. In our example with the Dogs above, it would hold "Dogs". This is useful to finding where to insert the correct paragraph + +-newCommands: this is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LATEX files into PDF files and they need to be copied over into both chapter files + +-comms: holds the actual strings of the commands found from the line numbers stored in newCommands + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The methods: + +-prepareForPDF(chap): this method inserts some packages needed by LATEX files to be turned into pdf files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. + +-getCommands(kls): takes the KLSadd.tex as a string as a parameter and stores the special commands in the comms variable mentioned earlier + +-insertCommands(kls, chap, cms): kls is KLSadd.tex, chap is a chapter file string, cms is a list of commands, it is the comms variable. This method returns the chap with the special commands inserted in place + +-findReferences(str): takes a string representation of a chapter file. Returns a list of the line numbers of the "References" subsections. This references variable is used as an index as to where the paragraphs in paras should be inserted + +-fixChapter(chap, references, p, kls): takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +At this point, the code is like 90% comments. The big chunk at the bottom under the "with open..." can be explained through the comments. + +As a quick rundown: + +The chapters and KLSadd are turned into Strings and passed through the fixChapter methods. + +Then the strings are written into seperate updated chapter files. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +However, its broken. Inserted text comes in random places between paragraphs and sometimes stuff isn't added. This shouldn't be that hard to fix but it will require combing through the code a lot of times and changing little things here and there until everything works. As a last ditch effort, we can always resort to using linetext.py and adding stuff in from there. diff --git a/KLSadd_insertion/src/KLSadd.pdf b/KLSadd_insertion/data/KLSaddII.pdf similarity index 99% rename from KLSadd_insertion/src/KLSadd.pdf rename to KLSadd_insertion/data/KLSaddII.pdf index c0562e08dde4eec14d3e67b54f20dbaa5f694ed5..c903e54b27ce6517a9d4e62c3c7f8fa955b90a63 100644 GIT binary patch delta 185 zcmdnITypbr$%Yoj7N!>F7M2#)Eo_apjONpuY}u4~EDQ_{&5X^A40R1mrf;-m6Gs)f zV#^k)VXmMNk{Y4llUbIkU}Ruurm2u!kXVvYoSLXmmReMtnV+X%re~yQv^~&{?K!8j tsjG>hlbNBbse!YL0nltWQ&(3*Am7r>(ag}?*w{|NhLDo&)gEjX+yJx3F%JL$ delta 185 zcmdnITypbr$%Yoj7N!>F7M2#)Eo_apjAqlDY}u4~42_Ho4UJ8W%ybP*r*E`n6Gs)f zV#^k)VWyxFk{Y4llUbIkU}Ruus;Q7&kXVvYoSLXmmReMtnV+X%re~yQxINI0?K!8j vnW>YBlckBFiJ7C3qmzr1iIJ&=o1>Ylg}I5dqm!wnoq`P^CEKe#*etjKwHGl> diff --git a/KLSadd_insertion/src/KLSadd.tex b/KLSadd_insertion/data/KLSaddII.tex similarity index 99% rename from KLSadd_insertion/src/KLSadd.tex rename to KLSadd_insertion/data/KLSaddII.tex index e8de6df..f9f3e63 100644 --- a/KLSadd_insertion/src/KLSadd.tex +++ b/KLSadd_insertion/data/KLSaddII.tex @@ -2634,4 +2634,4 @@ \subsection*{14.29 Discrete $q$-Hermite II} email: }{\tt T.H.Koornwinder@uva.nl} \end{quote} \end{footnotesize} -\end{document} +\end{document} \ No newline at end of file diff --git a/KLSadd_insertion/src/KoLeSw.pdf b/KLSadd_insertion/data/KoLeSw.pdf similarity index 100% rename from KLSadd_insertion/src/KoLeSw.pdf rename to KLSadd_insertion/data/KoLeSw.pdf diff --git a/KLSadd_insertion/src/__init__.py b/KLSadd_insertion/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/KLSadd_insertion/src/linetest.py b/KLSadd_insertion/src/linetest.py index ebdc7d9..19de78a 100644 --- a/KLSadd_insertion/src/linetest.py +++ b/KLSadd_insertion/src/linetest.py @@ -1,10 +1,7 @@ -__author__ = "Rahul Shah" -__status__ = "Development" - """ TODO: Rewrite the whole thing so another human being can read it jeez this is like my handwriting; it's nonsense to everyone but me -This started out as a test file but I just kept writing it +This started out as a test file but I just kept writing it and writing it and writing it and now its the project @@ -17,151 +14,152 @@ sections = [] mathPeople = [] newCommands = [] -# can you tell I like lists? +#can you tell I like lists? name = "" -temp = "" +temp = "" with open("KLSadd.tex", "r") as file: - entireFile = file.readlines() - for word in entireFile: - index += 1 - if("smallskipamount" in word): - newCommands.append(index - 1) - if("mybibitem[1]" in word): - newCommands.append(index) - # 1/27/16 RS added \large\bf KLSadd: to make KLSadd additions appear - # like the other paragraphs - if("paragraph{" in word): - temp = word[0:word.find( - "{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: word.find("}") + 1] - entireFile[ - entireFile.index(word): entireFile.index(word) + - 1] = temp - if("\\subsection*{" in word and "." in word): - subsections.append(index) - headings.append(word) - name = word[word.find(" ") + 1:word.find("}")] - mathPeople.append(name) - name = "" - # 1/29/16 get all of the new commands - comms = ''.join(entireFile[newCommands[0]:newCommands[1]]) - paras = [] - for i in range(len(subsections) - 1): - str = ''.join(entireFile[subsections[i]: subsections[i + 1] - 1]) - paras.append(str) - sec = "" - for f in headings: - for i in f: - try: - int(i) - sec += i - except: - pass - if("." in i): - sec += i - sections.append(sec) - + entireFile = file.readlines() + for word in entireFile: + index+=1 + if("smallskipamount" in word): + newCommands.append(index-1) + if("mybibitem[1]" in word): + newCommands.append(index) + #1/27/16 RS added \large\bf KLSadd: to make KLSadd additions appear like the other paragraphs + if("paragraph{" in word): + temp = word[0:word.find("{")+ 1] + "\large\\bf KLSadd: " + word[word.find("{")+ 1: word.find("}")+1] + entireFile[entireFile.index(word): entireFile.index(word)+1] = temp + if("\\subsection*{" in word and "." in word): + subsections.append(index) + headings.append(word) + name = word[word.find(" ")+1:word.find("}")] + mathPeople.append(name) + name = "" + #1/29/16 get all of the new commands + comms = ''.join(entireFile[newCommands[0]:newCommands[1]]) + paras = [] + for i in range(len(subsections)-1): + str = ''.join(entireFile[subsections[i]: subsections[i+1]-1]) + paras.append(str) sec = "" - # sections now holds all sections + for f in headings: + for i in f: + try: + int(i) + sec += i + except: + pass + if("." in i): + sec+=i + sections.append(sec) + + sec = "" + #sections now holds all sections - numFile = "" - filenums = [] - for s in sections: numFile = "" - if("." in s[0:2]): - numFile = s[0] - else: - numFile = s[0:2] - filenums.append(int(numFile)) - # filenums now has the file numbers like 1,9,14,etc + filenums = [] + for s in sections: + numFile = "" + if("." in s[0:2]): + numFile = s[0] + else: + numFile = s[0:2] + filenums.append(int(numFile)) + #filenums now has the file numbers like 1,9,14,etc + + #SO python is nothing like java, I have to read in the entire chapter + #file and then change it and THEN put it back into the chapter file + + #chapter 9 + with open("tempchap9.tex", "r") as ch9: + entire9 = ch9.readlines() + ch9.close() + #chapter 14 + with open("tempchap14.tex", "r") as ch14: + entire14 = ch14.readlines() + ch14.close() + + references9 = [] + footmiscIndex = 0 + index = 0 + beginIndex9= -1 + #now I have a list of the names, only store indices + #of the paragraph if its in a section with these names + #TODO make a method to do this + canAdd = False + for word in entire9: + index+=1 + if("begin{document}" in word): + beginIndex9 += index + if("footmisc" in word): + footmiscIndex+= index + #need to check subsection and section because + #KLSadd also fixes some subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1:word.find("}")] + if(w in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references9.append(index) + canAdd = False + canAdd = False + references14 = [] + index = 0 + footmiscIndex14 = 0 + beginIndex14 = -1 + for word in entire14: + index+=1 + if("begin{document}" in word): + beginIndex14 += index + if("footmisc" in word): + footmiscIndex14+= index + #need to check subsection and section because + #KLSadd also fixes some subsections + if("section{" in word or "subsection*{" in word): + w = word[word.find("{")+1:word.find("}")] + if(w in mathPeople): + canAdd = True + if("\\subsection*{References}" in word and canAdd == True): + references14.append(index) + canAdd = False + #references9 is now full of indexes to put fixed paragraphs + + #TODO make into a method + with open("newtempchap09.tex", "w") as temp9: + count = 0 - # SO python is nothing like java, I have to read in the entire chapter - # file and then change it and THEN put it back into the chapter file + #1/29/16 add hyperref, xparse, cite packages after the footmisc package + entire9[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + #1/29/16 add in the newcommands from KLSadd.tex + entire9[beginIndex9-1] += comms + #1/27/16 add \large\bf KLSadd: after every paragraph{ + for i in references9: + entire9[i-3] += "% RS: add begin" + entire9[i-3] += paras[count] + entire9[i-3] += "% RS: add end" + count+=1 + entire9[i-1] += paras[count] - # chapter 9 - with open("tempchap9.tex", "r") as ch9: - entire9 = ch9.readlines() - ch9.close() - # chapter 14 - with open("tempchap14.tex", "r") as ch14: - entire14 = ch14.readlines() - ch14.close() + + str = ''.join(entire9) + temp9.write(str) + - references9 = [] - footmiscIndex = 0 - index = 0 - beginIndex9 = -1 - # now I have a list of the names, only store indices - # of the paragraph if its in a section with these names - # TODO make a method to do this - canAdd = False - for word in entire9: - index += 1 - if("begin{document}" in word): - beginIndex9 += index - if("footmisc" in word): - footmiscIndex += index - # need to check subsection and section because - # KLSadd also fixes some subsections - if("section{" in word or "subsection*{" in word): - w = word[word.find("{") + 1:word.find("}")] - if(w in mathPeople): - canAdd = True - if("\\subsection*{References}" in word and canAdd): - references9.append(index) - canAdd = False - canAdd = False - references14 = [] - index = 0 - footmiscIndex14 = 0 - beginIndex14 = -1 - for word in entire14: - index += 1 - if("begin{document}" in word): - beginIndex14 += index - if("footmisc" in word): - footmiscIndex14 += index - # need to check subsection and section because - # KLSadd also fixes some subsections - if("section{" in word or "subsection*{" in word): - w = word[word.find("{") + 1:word.find("}")] - if(w in mathPeople): - canAdd = True - if("\\subsection*{References}" in word and canAdd): - references14.append(index) - canAdd = False - # references9 is now full of indexes to put fixed paragraphs - # TODO make into a method - with open("newtempchap09.tex", "w") as temp9: - count = 0 + #works, as far as I know, huzzah + #references14 is now full of indexes to put fixed paragraphs + with open("newtempchap14.tex", "w") as temp14: + entire14[footmiscIndex14] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" + entire14[beginIndex14 -3] += comms + for i in references14: + entire14[i-3] += " RS: add begin" + entire14[i-3] += paras[count] + #entire14[i-3] += "% RS: add end" + count+=1 + str = ''.join(entire14) + temp14.write(str) + - # 1/29/16 add hyperref, xparse, cite packages after the footmisc - # package - entire9[ - footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" - # 1/29/16 add in the newcommands from KLSadd.tex - entire9[beginIndex9 - 1] += comms - # 1/27/16 add \large\bf KLSadd: after every paragraph{ - for i in references9: - entire9[i - 3] += "% RS: add begin" - entire9[i - 3] += paras[count] - entire9[i - 3] += "% RS: add end" - count += 1 - entire9[i - 1] += paras[count] + - str = ''.join(entire9) - temp9.write(str) - # works, as far as I know, huzzah - # references14 is now full of indexes to put fixed paragraphs - with open("newtempchap14.tex", "w") as temp14: - entire14[ - footmiscIndex14] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" - entire14[beginIndex14 - 3] += comms - for i in references14: - entire14[i - 3] += " RS: add begin" - entire14[i - 3] += paras[count] - #entire14[i-3] += "% RS: add end" - count += 1 - str = ''.join(entire14) - temp14.write(str) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 4dc9f89..a188d3a 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -1,7 +1,14 @@ +import os + __author__ = "Rahul Shah" __status__ = "Development" __credits__ = ["Rahul Shah", "Edward Bian"] +# Path to data directory +DATA_DIR = os.path.dirname(os.path.realpath(__file__)) + "/../data/" + + + # start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files # also keep track of which chapter each one is in @@ -45,7 +52,8 @@ sortmatch_2 = [] - +test = "memesbananashgvlksrjc%/n" +print test[-2] # 2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. # Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf @@ -84,10 +92,6 @@ def new_keywords(kls): add = False if add: kls_list_chap.append(i) - liststr2 = '\n'.join(kls_list_chap) - with open("trunckeywords.tex", "w") as kw: - kw.write(liststr2) - print kls_list_chap return kls_list_chap @@ -272,14 +276,11 @@ def cutwords(word_to_find, word_to_search_in): while checkloop == False: if "\\paragraph{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)]: cut = b[:b.find(a) - precheck] + b[b.find(a) + len(a):] - checkloop = True return cut elif "\\subsubsection*{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)]: cut = b[:b.find(a) - precheck] + b[b.find(a) + len(a):] - checkloop = True return cut else: - print "ding2" precheck += 1 else: @@ -352,7 +353,7 @@ def insert_commands(kls, chap, cms): # method to find the indices of the reference paragraphs -def find_references(chapter,chapticker): +def find_references(chapter, chapticker): """ This function searches the chapters and locates potential destinations of additions from the addendum. It puts these destinations in a list. @@ -492,20 +493,32 @@ def fix_chapter(chap, references, p, kls, kls_list_all, chapticker2): for a in range(len(p)-1): for b in sortmatch_2: for c in b: - with open("compare.tex", "a") as spook: + with open(DATA_DIR + "compare.tex", "a") as spook: spook.write(p[a]) spook.write("NEXT: ") - print c - print "pause" - print a - print "l0" - print len(c) - print "l1" - print a - print p[a] + if "%" == c[-2]: + c = c[:-3] + #print "memes" + #print c + elif "%" == c[-1]: + c = c[:-2] + #print "extramemes" + #print c + if "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in c: + print "memes" + print c + print "memes" + if "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in p[a]: + print "extramemes" + print p[a] + print "extramemes" + #if "9.1 Wilson" in p[a]: + # print "l2" + # print c + # print "pause" + # print p[a] + # print "l2" p[a] = cutwords(c, p[a]) - print("l2") - reference_placer(chap, references, p, chapticker2) chap = prepare_for_PDF(chap) @@ -548,7 +561,7 @@ def main(): :return: """ # open the KLSadd file to do things with - with open("KLSadd(3).tex", "r") as add: + with open(DATA_DIR + "KLSaddII.tex", "r") as add: # store the file as a string addendum = add.readlines() kls_list_all = new_keywords(addendum) @@ -610,11 +623,11 @@ def main(): # parse both files 9 and 14 as strings # chapter 9 - with open("chap09.tex", "r") as ch9: + with open(DATA_DIR + "chap09.tex", "r") as ch9: entire9 = ch9.readlines() # reads in as a list of strings # chapter 14 - with open("chap14.tex", "r") as ch14: + with open(DATA_DIR + "chap14.tex", "r") as ch14: entire14 = ch14.readlines() # call the findReferences method to find the index of the References paragraph in the two file strings @@ -641,10 +654,10 @@ def main(): # write to files # new output files for safety - with open("updated9.tex", "w") as temp9: + with open(DATA_DIR + "updated9.tex", "w") as temp9: temp9.write(str9) - with open("updated14.tex", "w") as temp14: + with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) if __name__ == '__main__': diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py new file mode 100644 index 0000000..e69de29 diff --git a/KLSadd_insertion/test/test_new_keywords.py b/KLSadd_insertion/test/test_new_keywords.py new file mode 100644 index 0000000..45e5add --- /dev/null +++ b/KLSadd_insertion/test/test_new_keywords.py @@ -0,0 +1,6 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import \ No newline at end of file diff --git a/KLSadd_insertion/updateChaptersRoadMap.txt b/KLSadd_insertion/updateChaptersRoadMap.txt deleted file mode 100644 index e89b864..0000000 --- a/KLSadd_insertion/updateChaptersRoadMap.txt +++ /dev/null @@ -1,97 +0,0 @@ -This is a roadmap of updateChapters.py. It will help explain every piece of code and exactly how everything works in relation to each other. - - -_______________________________________________________________________________ - - -First: the files - ->KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be *inserted* into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf - ->chap09.tex and chap14.tex: these are chapter files. These are LATEX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections - ->updateChapters.py: this is our code. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. - ->linetest.py: this abomination of code is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. - ->newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what the output to updateChapters.py should be like!!!!!!! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Next: the specifications - -Toward the end of every section in the chapter file, there is a subsection called "References". It basically just contains a bunch of references to sources and other papers. Every paragraph in every subsection in KLSadd.tex must be put *before* the "References" subsection in the corresponding section in the chapter file. For example: -**These aren't real sections, obviously, just an example** - -in chap09.tex: ->\section{Dogs}\index{Dog polynomials} ->\subsection*{Hypergeometric dogs} ->blah blah blah ->\subsection*{References} ->\cite{Dogs101} - -in KLSadd.tex: ->\subsection*{9.15 Dogs} ->\paragraph{Beagles} ->The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric ->in $a,b,c,d$. - -So in the chapter 9 file, section 15 "Dogs", before the References subsection, we need to add in the Beagles paragraph. HOWEVER, there are some changes that need to be made before we insert. The easiest change is adding a comment that tells us something was inserted. We just append something like "%RS insertion begin" and "%RS insertion complete" before and after, respectively, the Beagles paragraph when we insert. Another change is adding \large\bf before the paragraph name. This changes the size and format so it looks prettier. So the heading in this example would be: - ->\paragraph{\large\bf Beagles} - -**It is important to note that these changes are currently (3/25/16) unimplemented in updateChapters.py and only exist in linetest.py, if you want to see how the output to updateChapters.py should look, look at newtempchap09.tex** - -So after updateChapters.py is called, the chapter 9 file should look like this: - ->\section{Dogs}\index{Dog polynomials} ->\subsection*{Hypergeometric dogs} ->blah blah blah ->%RS insertion begin ->\paragraph{\large\bf Beagles} ->The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric ->in $a,b,c,d$. ->%RS insertion complete ->\subsection*{References} ->\cite{Dogs101} - - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The variables: - -These are the variables in the beginning - --chapNums: chapNums is a list, denoted by the [], that holds the chapter number (in this case it's either a 9 or a 14) that corresponds to where a section in KLSadd should go - --paras: holds all of the text in the paragraphs of KLSadd.tex. This is the list that gets read when its time to insert paragraphs into the chapter file. Every element is a loooong string - --mathPeople: this holds the *name* of every section in KLSadd. It stores names like Wilson, Racah, Dual Hahn, etc. In our example with the Dogs above, it would hold "Dogs". This is useful to finding where to insert the correct paragraph - --newCommands: this is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LATEX files into PDF files and they need to be copied over into both chapter files - --comms: holds the actual strings of the commands found from the line numbers stored in newCommands - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The methods: - --prepareForPDF(chap): this method inserts some packages needed by LATEX files to be turned into pdf files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. - --getCommands(kls): takes the KLSadd.tex as a string as a parameter and stores the special commands in the comms variable mentioned earlier - --insertCommands(kls, chap, cms): kls is KLSadd.tex, chap is a chapter file string, cms is a list of commands, it is the comms variable. This method returns the chap with the special commands inserted in place - --findReferences(str): takes a string representation of a chapter file. Returns a list of the line numbers of the "References" subsections. This references variable is used as an index as to where the paragraphs in paras should be inserted - --fixChapter(chap, references, p, kls): takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -At this point, the code is like 90% comments. The big chunk at the bottom under the "with open..." can be explained through the comments. - -As a quick rundown: - -The chapters and KLSadd are turned into Strings and passed through the fixChapter methods. - -Then the strings are written into seperate updated chapter files. - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -However, its broken. Inserted text comes in random places between paragraphs and sometimes stuff isn't added. This shouldn't be that hard to fix but it will require combing through the code a lot of times and changing little things here and there until everything works. As a last ditch effort, we can always resort to using linetext.py and adding stuff in from there. From b80bbc03c99373584143c5ffd48154f5dd117d70 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 15 Aug 2016 11:52:48 -0400 Subject: [PATCH 236/402] Update .travis.yml with KLSadd_insertion --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dd5c68f..0dac659 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex + nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex KLSadd_insertion after_success: coveralls From eff1e484e185b82e29b31ebea71dc9ebb4e5ea6f Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Mon, 15 Aug 2016 13:08:59 -0400 Subject: [PATCH 237/402] Add tests for piecewise function --- eCF/src/MathematicaToLaTeX.py | 2 +- eCF/test/test_piecewise.py | 46 +++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 4bc54e9..7d753a4 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -762,7 +762,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = False + test = True with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: diff --git a/eCF/test/test_piecewise.py b/eCF/test/test_piecewise.py index 5775dde..7ee6298 100644 --- a/eCF/test/test_piecewise.py +++ b/eCF/test/test_piecewise.py @@ -5,3 +5,49 @@ from unittest import TestCase from MathematicaToLaTeX import piecewise +class TestPiecewise(TestCase): + + def test_single(self): + self.assertEqual(piecewise( + 'Piecewise[{{var,cond}}]'), + '{\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}}') + self.assertEqual(piecewise( + '--Piecewise[{{var,cond}}]--'), + '--{\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}}--') + self.assertEqual(piecewise( + 'Piecewise[{{var,cond}},0]'), + '{\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}}') + self.assertEqual(piecewise( + '--Piecewise[{{var,cond}},0]--'), + '--{\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}}--') + self.assertEqual(piecewise( + 'Piecewise[{{var,cond}},num]'), + '{\\begin{cases} var & cond \\\\ num & \\text{True} \\end{cases}}') + self.assertEqual(piecewise( + '--Piecewise[{{var,cond}},num]--'), + '--{\\begin{cases} var & cond \\\\ num & \\text{True} \\end{cases}}--') + + def test_multiple(self): + self.assertEqual(piecewise( + 'Piecewise[{{var1,cond1},{var2,cond2}},0]'), + '{\\begin{cases} var1 & cond1 \\\\ var2 & cond2 \\\\ 0 & \\text{True} \\end{cases}}') + self.assertEqual(piecewise( + '--Piecewise[{{var1,cond1},{var2,cond2}},0]--'), + '--{\\begin{cases} var1 & cond1 \\\\ var2 & cond2 \\\\ 0 & \\text{True} \\end{cases}}--') + self.assertEqual(piecewise( + 'Piecewise[{{var1,cond1},{var2,cond2},{var3,cond3}},0]'), + '{\\begin{cases} var1 & cond1 \\\\ var2 & cond2 \\\\ var3 & cond3 \\\\ 0 & \\text{True} \\end{cases}}') + self.assertEqual(piecewise( + '--Piecewise[{{var1,cond1},{var2,cond2},{var3,cond3}},0]--'), + '--{\\begin{cases} var1 & cond1 \\\\ var2 & cond2 \\\\ var3 & cond3 \\\\ 0 & \\text{True} \\end{cases}}--') + + def test_nested(self): + self.assertEqual(piecewise( + 'Piecewise[{{Piecewise[{{var,Piecewise[{{var,cond}}]}}],Piecewise[{{var,cond}}]}}]'), + '{\\begin{cases} {\\begin{cases} var & {\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}} \\\\ 0 & \\text{True} \\end{cases}} & {\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}} \\\\ 0 & \\text{True} \\end{cases}}') + self.assertEqual(piecewise( + '--Piecewise[{{Piecewise[{{var,Piecewise[{{var,cond}}]}}],Piecewise[{{var,cond}}]}}]--'), + '--{\\begin{cases} {\\begin{cases} var & {\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}} \\\\ 0 & \\text{True} \\end{cases}} & {\\begin{cases} var & cond \\\\ 0 & \\text{True} \\end{cases}} \\\\ 0 & \\text{True} \\end{cases}}--') + + def test_none(self): + self.assertEqual(piecewise('nopiecewise'), 'nopiecewise') From f6d3a29590ed5d8243c1705e41c9a26701493fae Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Mon, 15 Aug 2016 14:48:19 -0400 Subject: [PATCH 238/402] Increase coverage (1) --- main_page/test/add_usage_tests/res.1.txt | 8 ++++++-- main_page/test/fake.Glossary.csv | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/main_page/test/add_usage_tests/res.1.txt b/main_page/test/add_usage_tests/res.1.txt index 2ce81ca..b4d2586 100644 --- a/main_page/test/add_usage_tests/res.1.txt +++ b/main_page/test/add_usage_tests/res.1.txt @@ -7,8 +7,10 @@ The LaTeX DLMF and DRMF macro '''\DefinitionOne''' represents the DefinitionOne. This macro is in the category of real or complex valued functions. -In math mode, this macro can be called in the following way: +In math mode, this macro can be called in the following ways: +:'''\DefinitionOne''' produces {\displaystyle \DefinitionOne}
+:'''\DefinitionOne@{x}''' produces {\displaystyle \DefinitionOne@{x}}
:'''\DefinitionOne@{x}''' produces {\displaystyle \DefinitionOne@{x}}
These are defined by @@ -23,8 +25,10 @@ The LaTeX DLMF and DRMF macro '''\DefinitionTwo''' represents the DefinitionTwo. This macro is in the category of real or complex valued functions. -In math mode, this macro can be called in the following way: +In math mode, this macro can be called in the following ways: +:'''\DefinitionTwo''' produces {\displaystyle \DefinitionTwo}
+:'''\DefinitionTwo@{x}''' produces {\displaystyle \DefinitionTwo@{x}}
:'''\DefinitionTwo@{x}''' produces {\displaystyle \DefinitionTwo@{x}}
These are defined by diff --git a/main_page/test/fake.Glossary.csv b/main_page/test/fake.Glossary.csv index 30db2f0..3e367dd 100644 --- a/main_page/test/fake.Glossary.csv +++ b/main_page/test/fake.Glossary.csv @@ -1,3 +1,3 @@ -\DefinitionOne@{x},sample definition 1,sample-definition-1,F|P,$\mathrm{Def1}{x}$,http://fake-hyperlink.com/Definition1, -\DefinitionTwo@{x},sample definition 2,sample-definition-2,F|P,$\mathrm{Def2}{x}$,http://fake-hyperlink.com/Definition2, +\DefinitionOne@{x},sample definition 1,sample-definition-1,F|F:P:nP,$\mathrm{Def1}{x}$,http://fake-hyperlink.com/Definition1, +\DefinitionTwo@{x},sample definition 2,sample-definition-2,F|FnO:PnO:nPnO,$\mathrm{Def2}{x}$,http://fake-hyperlink.com/Definition2, \DefinitionTwoTwo,sample definition 22,sample-definition-22,C|P,$\mathrm{twenty two}$,http://fake-hyperlink.com/Definition22, \ No newline at end of file From 7e247dac290e2a005dfd26687d8d1b3cb3c6510e Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Mon, 15 Aug 2016 14:49:01 -0400 Subject: [PATCH 239/402] Add tests for replace_vars function --- eCF/src/MathematicaToLaTeX.py | 14 ++++++------- eCF/test/test_replace_vars.py | 37 +++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 7d753a4..ddf081a 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -13,7 +13,7 @@ import os -symbols = { +SYMBOLS = { 'Alpha': 'alpha', 'Beta': 'beta', 'Gamma': 'gamma', 'Delta': 'delta', 'Epsilon': 'epsilon', 'Zeta': 'zeta', 'Eta': 'eta', 'Theta': 'theta', 'Iota': 'iota', 'Kappa': 'kappa', 'Lambda': 'lambda', 'Mu': 'mu', @@ -746,13 +746,13 @@ def replace_vars(line): Replaces the easy to convert variables in Mathematica to its equivalent LaTeX code in the dictionary 'symbols'. """ - for word in symbols: - if symbols[word][0] == ' ': - line = line.replace('\\[' + word + ']', symbols[word][1:]) + for word in SYMBOLS: + if SYMBOLS[word][0] == ' ': + line = line.replace('\\[' + word + ']', SYMBOLS[word][1:]) elif word == 'Infinity': - line = line.replace('Infinity', r'\infty') + line = line.replace('Infinity', '\\infty') else: - line = line.replace('[' + word + ']', symbols[word]) + line = line.replace('[' + word + ']', SYMBOLS[word]) return line @@ -762,7 +762,7 @@ def main(): Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = True + test = False with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/newIdentities.tex', 'w') as latex: diff --git a/eCF/test/test_replace_vars.py b/eCF/test/test_replace_vars.py index 041adc4..9423174 100644 --- a/eCF/test/test_replace_vars.py +++ b/eCF/test/test_replace_vars.py @@ -5,3 +5,40 @@ from unittest import TestCase from MathematicaToLaTeX import replace_vars +SYMBOLS = { + 'Alpha': 'alpha', 'Beta': 'beta', 'Gamma': 'gamma', 'Delta': 'delta', + 'Epsilon': 'epsilon', 'Zeta': 'zeta', 'Eta': 'eta', 'Theta': 'theta', + 'Iota': 'iota', 'Kappa': 'kappa', 'Lambda': 'lambda', 'Mu': 'mu', + 'Nu': 'nu', 'Xi': 'xi', 'Omicron': 'o', 'Pi': 'pi', 'Rho': 'rho', + 'Sigma': 'sigma', 'Tau': 'tau', 'Upsilon': 'upsilon', 'Phi': 'phi', + 'Chi': 'chi', 'Psi': 'phi', 'Omega': 'omega', + + 'CapitalAlpha': ' A', 'CapitalBeta': ' B', 'CapitalGamma': 'Gamma', + 'CapitalDelta': 'Delta', 'CapitalEpsilon': 'E', 'CapitalZeta': ' Z', + 'CapitalEta': ' H', 'CapitalTheta': 'Theta', 'CapitalIota': ' I', + 'CapitalKappa': 'K', 'CapitalLambda': 'Lambda', 'CapitalMu': ' M', + 'CapitalNu': ' N', 'CapitalXi': 'Xi', 'CapitalOmicron': 'O', + 'CapitalPi': 'Pi', 'CapitalRho': ' P', 'CapitalSigma': 'Sigma', + 'CapitalTau': ' T', 'CapitalUpsilon': ' Y', 'CapitalPhi': 'Phi', + 'CapitalChi': ' X', 'CapitalPsi': 'Psi', 'CapitalOmega': 'Omega', + + 'CurlyEpsilon': 'varepsilon', 'CurlyTheta': 'vartheta', + 'CurlyKappa': 'varkappa', 'CurlyPi': 'varpi', 'CurlyRho': 'varrho', + 'FinalSigma': 'varsigma', 'CurlyPhi': 'varphi', + 'CurlyCapitalUpsilon': 'varUpsilon', + + 'Aleph': 'aleph', 'Bet': 'beth', 'Gimel': 'gimel', 'Dalet': 'daleth'} + + +class TestReplaceVars(TestCase): + + def test_replace_symbols(self): + for word in SYMBOLS: + after = '\\' + SYMBOLS[word] + self.assertEquals(replace_vars('\\[' + word + ']'), after.replace('\\ ', '')) + + def test_replace_infinity(self): + self.assertEquals(replace_vars('Infinity'), '\\infty') + + def test_none(self): + self.assertEqual(replace_vars('novariables'), 'novariables') From 6f41a342a6aeeafa17b5d0d85a5e8bc69d9c2415 Mon Sep 17 00:00:00 2001 From: joonbang Date: Mon, 15 Aug 2016 15:11:09 -0400 Subject: [PATCH 240/402] Update README.md --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 508bd50..ad8ae5e 100644 --- a/README.md +++ b/README.md @@ -22,15 +22,25 @@ Parts of this code were developed by Alex Danoff and Azeem Mohammed. To achieve the desired result, one should execute the progams in the following order (using the output of the previous program as input for the next one): -1. remove_excess.py -2. replace_special.py -3. prepare_annotations.py +1. `remove_excess.py` +2. `replace_special.py` +3. `prepare_annotations.py` -## eCF Seeding Project +## BMP Seeding Project + +## CFSF Seeding Project + +This Python code (developed by Joon Bang) translates Maple files from Annie Cuyt's continued fractions package for special functions (CFSF) to LaTeX. + +The project is located in the `maple2latex` folder. ## DLMF Seeding Project -## BMP Seeding Project +## eCF Seeding Project + +This Python code (mostly developed by Kevin Chen) translates Mathematica files to LaTeX. + +The project is currently awaiting approval to be merged into the main branch of the repository. ## KLSadd Insertion Project linetest.py and updateChapters.py written by Rahul Shah and Edward Bian From d6e464afda9357106e8453b17160fd2f3e257bdb Mon Sep 17 00:00:00 2001 From: joonbang Date: Mon, 15 Aug 2016 15:14:06 -0400 Subject: [PATCH 241/402] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad8ae5e..4039241 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ To achieve the desired result, one should execute the progams in the following o ## BMP Seeding Project -## CFSF Seeding Project +## Maple CFSF Seeding Project This Python code (developed by Joon Bang) translates Maple files from Annie Cuyt's continued fractions package for special functions (CFSF) to LaTeX. @@ -36,7 +36,7 @@ The project is located in the `maple2latex` folder. ## DLMF Seeding Project -## eCF Seeding Project +## Mathematica eCF Seeding Project This Python code (mostly developed by Kevin Chen) translates Mathematica files to LaTeX. From 8152f457dd5b06469c9c2b5f4bba62e8f85607da Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Mon, 15 Aug 2016 16:03:08 -0400 Subject: [PATCH 242/402] Add tests for convert_fraction function --- eCF/src/MathematicaToLaTeX.py | 4 ++-- eCF/test/test_convert_fraction.py | 32 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index ddf081a..f4e4242 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -527,7 +527,7 @@ def summation(line): def constraint(line): """ Converts Mathematica's 'Element', 'NotElement', and 'Inequality' functions - to LaTeX formatting using \constraint{}. + to LaTeX formatting using \\constraint{}. """ sections = arg_split(line, ',') @@ -601,7 +601,7 @@ def constraint(line): def convert_fraction(line): """ Converts Mathematica fractions, which are only '/', to LaTeX - \frac{}{}-ions. + \\frac{}{}-ions. """ l = list('([{') r = list(')]}') diff --git a/eCF/test/test_convert_fraction.py b/eCF/test/test_convert_fraction.py index 1d6be0f..7ab59d6 100644 --- a/eCF/test/test_convert_fraction.py +++ b/eCF/test/test_convert_fraction.py @@ -5,3 +5,35 @@ from unittest import TestCase from MathematicaToLaTeX import convert_fraction + +class TestConvertFraction(TestCase): + + def test_stop(self): + self.assertEqual(convert_fraction('a*b/c*d'), 'a*\\frac{b}{c}*d') + self.assertEqual(convert_fraction('a+b/c+d'), 'a+\\frac{b}{c}+d') + self.assertEqual(convert_fraction('a-b/c-d'), 'a-\\frac{b}{c}-d') + self.assertEqual(convert_fraction('a=b/c=d'), 'a=\\frac{b}{c}=d') + self.assertEqual(convert_fraction('a,b/c,d'), 'a,\\frac{b}{c},d') + self.assertEqual(convert_fraction('ab/c>d'), 'a>\\frac{b}{c}>d') + self.assertEqual(convert_fraction('a&b/c&d'), 'a&\\frac{b}{c}&d') + + def test_paren(self): + self.assertEqual(convert_fraction('a*(b+c)/(d+e)*f'), 'a*\\frac{b+c}{d+e}*f') + self.assertEqual(convert_fraction('a+(b+c)/(d+e)+f'), 'a+\\frac{b+c}{d+e}+f') + self.assertEqual(convert_fraction('a-(b+c)/(d+e)-f'), 'a-\\frac{b+c}{d+e}-f') + self.assertEqual(convert_fraction('a=(b+c)/(d+e)=f'), 'a=\\frac{b+c}{d+e}=f') + self.assertEqual(convert_fraction('a,(b+c)/(d+e),f'), 'a,\\frac{b+c}{d+e},f') + self.assertEqual(convert_fraction('a<(b+c)/(d+e)(b+c)/(d+e)>f'), 'a>\\frac{b+c}{d+e}>f') + self.assertEqual(convert_fraction('a&(b+c)/(d+e)&f'), 'a&\\frac{b+c}{d+e}&f') + + self.assertEqual(convert_fraction('(a)/(b)'), '\\frac{a}{b}') + self.assertEqual(convert_fraction('a/(b)'), '\\frac{a}{b}') + self.assertEqual(convert_fraction('(a)/b'), '\\frac{a}{b}') + self.assertEqual(convert_fraction('a/b'), '\\frac{a}{b}') + + self.assertEqual(convert_fraction('a(b+c)/d(e+f)'), '\\frac{a(b+c)}{d(e+f)}') + + def test_none(self): + self.assertEqual(convert_fraction('nofraction'), 'nofraction') From 8f04b8bc02366c73217c27f5a47a83d87c77dcab Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 15 Aug 2016 16:33:42 -0400 Subject: [PATCH 243/402] Better Formatted --- KLSadd_insertion/src/svmono.cls | 1690 ------------------------ KLSadd_insertion/src/updateChapters.py | 276 ++-- 2 files changed, 116 insertions(+), 1850 deletions(-) delete mode 100644 KLSadd_insertion/src/svmono.cls diff --git a/KLSadd_insertion/src/svmono.cls b/KLSadd_insertion/src/svmono.cls deleted file mode 100644 index 2341bee..0000000 --- a/KLSadd_insertion/src/svmono.cls +++ /dev/null @@ -1,1690 +0,0 @@ -% SVMONO DOCUMENT CLASS -- version 3.9 (23-Jul-03) -% Springer Verlag global LaTeX2e support for monographs -%% -%% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{svmono}[2003/07/23 3.9 -^^JSpringer Verlag global LaTeX document class for monographs] - -% Options -% citations -\DeclareOption{natbib}{\ExecuteOptions{oribibl}% -\AtEndOfClass{% Loading package 'NATBIB' -\RequirePackage{natbib} -% Changing some parameters of NATBIB -\setlength{\bibhang}{\parindent} -%\setlength{\bibsep}{0mm} -\let\bibfont=\small -\def\@biblabel#1{#1.} -\newcommand{\etal}{\textit{et al}.} -%\bibpunct[,]{(}{)}{;}{a}{}{,}}} -}} -% Springer environment -\let\if@spthms\iftrue -\DeclareOption{nospthms}{\let\if@spthms\iffalse} -% -\let\envankh\@empty % no anchor for "theorems" -% -\let\if@envcntreset\iffalse % environment counter is not reset -\let\if@envcntresetsect=\iffalse % reset each section? -\DeclareOption{envcountresetchap}{\let\if@envcntreset\iftrue} -\DeclareOption{envcountresetsect}{\let\if@envcntreset\iftrue -\let\if@envcntresetsect=\iftrue} -% -\let\if@envcntsame\iffalse % NOT all environments work like "Theorem", - % each using its own counter -\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} -% -\let\if@envcntshowhiercnt=\iffalse % do not show hierarchy counter at all -% -% enhance theorem counter -\DeclareOption{envcountchap}{\def\envankh{chapter}% show \thechapter along with theorem number -\let\if@envcntshowhiercnt=\iftrue -\ExecuteOptions{envcountreset}} -% -\DeclareOption{envcountsect}{\def\envankh{section}% show \thesection along with theorem number -\let\if@envcntshowhiercnt=\iftrue -\ExecuteOptions{envcountreset}} -% -% languages -\let\switcht@@therlang\relax -\let\svlanginfo\relax -\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}% -\gdef\svlanginfo{\typeout{Man spricht deutsch.}\global\let\svlanginfo\relax}} -\def\ds@francais{\def\switcht@@therlang{\switcht@francais}% -\gdef\svlanginfo{\typeout{On parle francais.}\global\let\svlanginfo\relax}} -% -\AtBeginDocument{\@ifpackageloaded{babel}{% -\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% -\@ifundefined{extrasUKenglish}{}{\addto\extrasUKenglish{\switcht@albion}}% -\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% -\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% -}{\switcht@@therlang}% -} -% numbering style of floats, equations -\newif\if@numart \@numartfalse -\DeclareOption{numart}{\@numarttrue} -\def\set@numbering{\if@numart\else\num@book\fi} -\AtEndOfClass{\set@numbering} -% style for vectors -\DeclareOption{vecphys}{\def\vec@style{phys}} -\DeclareOption{vecarrow}{\def\vec@style{arrow}} -% running heads -\let\if@runhead\iftrue -\DeclareOption{norunningheads}{\let\if@runhead\iffalse} -% referee option -\let\if@referee\iffalse -\def\makereferee{\def\baselinestretch{2}\selectfont -\newbox\refereebox -\setbox\refereebox=\vbox to\z@{\vskip0.5cm% - \hbox to\textwidth{\normalsize\tt\hrulefill\lower0.5ex - \hbox{\kern5\p@ referee's copy\kern5\p@}\hrulefill}\vss}% -\def\@oddfoot{\copy\refereebox}\let\@evenfoot=\@oddfoot} -\DeclareOption{referee}{\let\if@referee\iftrue -\AtBeginDocument{\makereferee\small\normalsize}} -% modification of thebibliography -\let\if@openbib\iffalse -\DeclareOption{openbib}{\let\if@openbib\iftrue} -% LaTeX standard, sectionwise references -\DeclareOption{oribibl}{\let\oribibl=Y} -\DeclareOption{sectrefs}{\let\secbibl=Y} -% -% footinfo option (provides an informatory line on every page) -\def\SpringerMacroPackageNameA{svmono.cls} -% \thetime, \thedate and \timstamp are macros to include -% time, date (or both) of the TeX run in the document -\def\maketimestamp{\count255=\time -\divide\count255 by 60\relax -\edef\thetime{\the\count255:}% -\multiply\count255 by-60\relax -\advance\count255 by\time -\edef\thetime{\thetime\ifnum\count255<10 0\fi\the\count255} -\edef\thedate{\number\day-\ifcase\month\or Jan\or Feb\or Mar\or - Apr\or May\or Jun\or Jul\or Aug\or Sep\or Oct\or - Nov\or Dec\fi-\number\year} -\def\timstamp{\hbox to\hsize{\tt\hfil\thedate\hfil\thetime\hfil}}} -\maketimestamp -% -% \footinfo generates a info footline on every page containing -% pagenumber, jobname, macroname, and timestamp -\DeclareOption{footinfo}{\AtBeginDocument{\maketimestamp - \def\@oddfoot{\footnotesize\tt Page: \thepage\hfil job: \jobname\hfil - macro: \SpringerMacroPackageNameA\hfil - date/time: \thedate/\thetime}% - \let\@evenfoot=\@oddfoot}} -% -% start new chapter on any page -\newif\if@openright \@openrighttrue -\DeclareOption{openany}{\@openrightfalse} -% -% no size changing allowed -\DeclareOption{11pt}{\OptionNotUsed} -\DeclareOption{12pt}{\OptionNotUsed} -% options for the article class -\def\@rticle@options{10pt,twoside} -% fleqn -\DeclareOption{fleqn}{\def\@rticle@options{10pt,twoside,fleqn}% -\AtEndOfClass{\let\leftlegendglue\relax}% -\AtBeginDocument{\mathindent\parindent}} -% hanging sectioning titles -\let\if@sechang\iffalse -\DeclareOption{sechang}{\let\if@sechang\iftrue} -\def\ClassInfoNoLine#1#2{% - \ClassInfo{#1}{#2\@gobble}% -} -\let\SVMonoOpt\@empty -\DeclareOption*{\InputIfFileExists{sv\CurrentOption.clo}{% -\global\let\SVMonoOpt\CurrentOption}{% -\ClassWarning{Springer-SVMono}{Specified option or subpackage -"\CurrentOption" \MessageBreak not found -passing it to article class \MessageBreak --}\PassOptionsToClass{\CurrentOption}{article}% -}} -\ProcessOptions\relax -\ifx\SVMonoOpt\@empty\relax -\ClassInfoNoLine{Springer-SVMono}{extra/valid Springer sub-package -\MessageBreak not found in option list - using "global" style}{} -\fi -\LoadClass[\@rticle@options]{article} -\raggedbottom - -% various sizes and settings for monographs - -%\setlength{\textwidth}{28pc} % 11.8cm -\setlength{\textwidth}{43pc} % 11.8cm -%\setlength{\textheight}{12pt}\multiply\textheight by 45\relax -%\setlength{\textheight}{540\p@} -\setlength{\textheight}{720\p@} -%\setlength{\topmargin}{0cm} -\setlength{\topmargin}{-2cm} -%\setlength\oddsidemargin {63\p@} -%\setlength\evensidemargin {63\p@} -\setlength\oddsidemargin {-28\p@} -\setlength\evensidemargin {-28\p@} -\setlength\marginparwidth{90\p@} -\setlength\headsep {12\p@} - -\setlength{\parindent}{15\p@} -\setlength{\parskip}{\z@ \@plus \p@} -\setlength{\hfuzz}{2\p@} -\setlength{\arraycolsep}{1.5\p@} - -\frenchspacing - -\tolerance=500 - -\predisplaypenalty=0 -\clubpenalty=10000 -\widowpenalty=10000 - -\setlength\footnotesep{7.7\p@} - -\newdimen\betweenumberspace % dimension for space between -\betweenumberspace=5\p@ % number and text of titles -\newdimen\headlineindent % dimension for space of -\headlineindent=2.5cc % number and gap of running heads - -% fonts, sizes, and the like -\renewcommand\small{% - \@setfontsize\small\@ixpt{11}% - \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \parsep \z@ \@plus\p@ \@minus\p@ - \topsep 6\p@ \@plus2\p@ \@minus4\p@ - \itemsep\z@}% - \belowdisplayskip \abovedisplayskip -} -% -\let\footnotesize=\small -% -\newenvironment{petit}{\par\addvspace{6\p@}\small}{\par\addvspace{6\p@}} -% - -% modification of automatic positioning of floating objects -\setlength\@fptop{\z@ } -\setlength\@fpsep{12\p@ } -\setlength\@fpbot{\z@ \@plus 1fil } -\def\textfraction{.01} -\def\floatpagefraction{.8} -\setlength{\intextsep}{20\p@ \@plus 2\p@ \@minus 2\p@} -\setcounter{topnumber}{4} -\def\topfraction{.9} -\setcounter{bottomnumber}{2} -\def\bottomfraction{.7} -\setcounter{totalnumber}{6} -% -% size and style of headings -\newcommand{\partsize}{\Large} -\newcommand{\partstyle}{\bfseries\boldmath} -\newcommand{\chapsize}{\Large} -\newcommand{\chapstyle}{\bfseries\boldmath} -\newcommand{\secsize}{\large} -\newcommand{\secstyle}{\bfseries\boldmath} -\newcommand{\subsecsize}{\normalsize} -\newcommand{\subsecstyle}{\bfseries\boldmath} - -\def\newendpage {\par - \ifdim \pagetotal>\topskip - \else\thispagestyle{empty} - \fi - \vfil\penalty -\@M} -\def\clearpage{% - \ifvmode - \ifnum \@dbltopnum =\m@ne - \ifdim \pagetotal <\topskip - \hbox{} - \fi - \fi - \fi - \newendpage - \write\m@ne{} - \vbox{} - \penalty -\@Mi -} -\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else - \hbox{}\newendpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} - -\newcommand{\clearemptydoublepage}{% - \newpage{\pagestyle{empty}\cleardoublepage}} -\newcommand{\startnewpage}{\if@openright\clearemptydoublepage\else\clearpage\fi} - -% redefinition of \part -\renewcommand\part{\clearemptydoublepage - \thispagestyle{empty} - \if@twocolumn - \onecolumn - \@tempswatrue - \else - \@tempswafalse - \fi - \@ifundefined{thispagecropped}{}{\thispagecropped} - \secdef\@part\@spart} - -\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax - \refstepcounter{part} - \addcontentsline{toc}{part}{\partname\ - \thepart\thechapterend\hskip\betweenumberspace - #1}\else - \addcontentsline{toc}{part}{#1}\fi - \markboth{}{} - {\raggedleft - \ifnum \c@secnumdepth >-2\relax - \normalfont\partstyle\partsize\vrule height 34pt width 0pt depth 0pt% - \partname\ \thepart\llap{\smash{\lower 5pt\hbox to\textwidth{\hrulefill}}} - \par - \vskip 128.3\p@ \fi - #2\par}\@endpart} -% -% \@endpart finishes the part page -% -\def\@endpart{\vfil\newpage - \if@twoside - \hbox{} - \thispagestyle{empty} - \newpage - \fi - \if@tempswa - \twocolumn - \fi} -% -\def\@spart#1{{\raggedleft - \normalfont\partsize\partstyle - #1\par}\@endpart} -% -% (re)define sectioning -\setcounter{secnumdepth}{2} - -\def\seccounterend{} -\def\seccountergap{\hskip\betweenumberspace} -\def\@seccntformat#1{\csname the#1\endcsname\seccounterend\seccountergap\ignorespaces} -% -\let\firstmark=\botmark -% -\@ifundefined{thechapterend}{\def\thechapterend{}}{} -% -\if@sechang - \def\sec@hangfrom#1{\setbox\@tempboxa\hbox{#1}% - \hangindent\wd\@tempboxa\noindent\box\@tempboxa} -\else - \def\sec@hangfrom#1{\setbox\@tempboxa\hbox{#1}% - \hangindent\z@\noindent\box\@tempboxa} -\fi - -\def\chap@hangfrom#1{\noindent\vrule height 34pt width 0pt depth 0pt -\rlap{\smash{\lower 5pt\hbox to\textwidth{\hrulefill}}}\hbox{#1} -\vskip10pt} -\def\schap@hangfrom{\chap@hangfrom{}} - -\newcounter{chapter} -% -\@addtoreset{section}{chapter} -\@addtoreset{footnote}{chapter} - -\newif\if@mainmatter \@mainmattertrue -\newcommand\frontmatter{\startnewpage - \@mainmatterfalse\pagenumbering{Roman} - \setcounter{page}{5}} -% -\newcommand\mainmatter{\clearemptydoublepage - \@mainmattertrue\pagenumbering{arabic}} -% -\newcommand\backmatter{\clearemptydoublepage\@mainmatterfalse} - -\def\@chapapp{\chaptername} - -\newdimen\chapstarthookwidth -\newcommand\chapstarthook[2][0.66\textwidth]{% -\setlength{\chapstarthookwidth}{#1}% -\gdef\chapst@rthook{#2}} - -\newcommand{\processchapstarthook}{\@ifundefined{chapst@rthook}{}{% - \setbox0=\hbox{\vbox{ - \begin{flushright} - \begin{minipage}{\chapstarthookwidth} - \vrule\@width\z@\@height21\p@\@depth\z@ - \normalfont\small\itshape\chapst@rthook - \end{minipage} - \end{flushright}}}% - \@tempdima=\pagetotal - \advance\@tempdima by\ht0 - \ifdim\@tempdima<106\p@ - \multiply\@tempdima by-1 - \advance\@tempdima by106\p@ - \vskip\@tempdima - \fi - \box0\par - \global\let\chapst@rthook=\undefined}} - -\newcommand\chapter{\startnewpage - \@ifundefined{thispagecropped}{}{\thispagecropped} - \thispagestyle{empty}% - \global\@topnum\z@ - \@afterindentfalse - \secdef\@chapter\@schapter} - -\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter}% - \if@mainmatter - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}{\protect - \numberline{\thechapter\thechapterend}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} - -\def\@schapter#1{\if@twocolumn - \@topnewpage[\@makeschapterhead{#1}]% - \else - \@makeschapterhead{#1}% - \@afterheading - \fi} - -%%changes position and layout of numbered chapter headings -\def\@makechapterhead#1{{\parindent\z@\raggedright\normalfont - \hyphenpenalty \@M - \interlinepenalty\@M - \chapsize\chapstyle - \chap@hangfrom{\thechapter\thechapterend\hskip\betweenumberspace}%!!! - \ignorespaces#1\par\nobreak - \processchapstarthook - \ifdim\pagetotal>157\p@ - \vskip 11\p@ - \else - \@tempdima=168\p@\advance\@tempdima by-\pagetotal - \vskip\@tempdima - \fi}} - -%%changes position and layout of unnumbered chapter headings -\def\@makeschapterhead#1{{\parindent \z@ \raggedright\normalfont - \hyphenpenalty \@M - \interlinepenalty\@M - \chapsize\chapstyle - \schap@hangfrom - \ignorespaces#1\par\nobreak - \processchapstarthook - \ifdim\pagetotal>157\p@ - \vskip 11\p@ - \else - \@tempdima=168\p@\advance\@tempdima by-\pagetotal - \vskip\@tempdima - \fi}} - -% predefined unnumbered headings -\newcommand{\preface}[1][\prefacename]{\chapter*{#1}\markboth{#1}{#1}} - -% measures and setting of sections -\renewcommand\section{\@startsection{section}{1}{\z@}% - {-24\p@ \@plus -4\p@ \@minus -4\p@}% - {12\p@ \@plus 4\p@ \@minus 4\p@}% - {\normalfont\secsize\secstyle - \rightskip=\z@ \@plus 8em\pretolerance=10000 }} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-17\p@ \@plus -4\p@ \@minus -4\p@}% - {10\p@ \@plus 4\p@ \@minus 4\p@}% - {\normalfont\subsecsize\subsecstyle - \rightskip=\z@ \@plus 8em\pretolerance=10000 }} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-17\p@ \@plus -4\p@ \@minus -4\p@}% - {10\p@ \@plus 4\p@ \@minus 4\p@}% - {\normalfont\normalsize\subsecstyle - \rightskip=\z@ \@plus 8em\pretolerance=10000 }} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {-10\p@ \@plus -4\p@ \@minus -4\p@}% - {10\p@ \@plus 4\p@ \@minus 4\p@}% - {\normalfont\normalsize\itshape - \rightskip=\z@ \@plus 8em\pretolerance=10000 }} -\def\subparagraph{\@startsection{subparagraph}{5}{\z@}% - {-5.388\p@ \@plus-4\p@ \@minus-4\p@}{-5\p@}{\normalfont\normalsize\itshape}} - -% Appendix -\renewcommand\appendix{\par - \stepcounter{chapter} - \setcounter{chapter}{0} - \stepcounter{section} - \setcounter{section}{0} - \setcounter{equation}{0} - \setcounter{figure}{0} - \setcounter{table}{0} - \setcounter{footnote}{0} - \def\@chapapp{\appendixname}% - \renewcommand\thechapter{\@Alph\c@chapter}} - -% definition of sections -% \hyphenpenalty and \raggedright added, so that there is no -% hyphenation and the text is set ragged-right in sectioning - -\def\runinsep{} -\def\aftertext{\unskip\runinsep} -% -\def\thesection{\thechapter.\arabic{section}} -\def\thesubsection{\thesection.\arabic{subsection}} -\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} -\def\theparagraph{\thesubsubsection.\arabic{paragraph}} -\def\thesubparagraph{\theparagraph.\arabic{subparagraph}} -\def\chaptermark#1{} -% -\def\@ssect#1#2#3#4#5{% - \@tempskipa #3\relax - \ifdim \@tempskipa>\z@ - \begingroup - #4{% - \@hangfrom{\hskip #1}% - \raggedright - \hyphenpenalty \@M - \interlinepenalty \@M #5\@@par}% - \endgroup - \else - \def\@svsechd{#4{\hskip #1\relax #5}}% - \fi - \@xsect{#3}} -% -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup #6\relax - \sec@hangfrom{\hskip #3\relax\@svsec}% - {\raggedright - \hyphenpenalty \@M - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7\seccounterend}% - \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth - \else - \protect\numberline{\csname the#1\endcsname\seccounterend}% - \fi - #7}% - \else - \def\@svsechd{% - #6\hskip #3\relax - \@svsec #8\aftertext\ignorespaces - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname\seccounterend}% - \fi - #7}}% - \fi - \@xsect{#5}} - -% figures and tables are processed in small print -\def \@floatboxreset {% - \reset@font - \small - \@setnobreak - \@setminipage -} -\def\fps@figure{htbp} -\def\fps@table{htbp} - -% Frame for paste-in figures or tables -\def\mpicplace#1#2{% #1 =width #2 =height -\vbox{\hbox to #1{\vrule\@width \fboxrule \@height #2\hfill}}} - -% labels of enumerate -\renewcommand\labelenumii{\theenumii)} -\renewcommand\theenumii{\@alph\c@enumii} - -% labels of itemize -\renewcommand\labelitemi{\textbullet} -\renewcommand\labelitemii{\textendash} -\let\labelitemiii=\labelitemiv - -% labels of description -\renewcommand*\descriptionlabel[1]{\hspace\labelsep #1\hfil} - -% fixed indentation for standard itemize-environment -\newdimen\svitemindent \setlength{\svitemindent}{\parindent} - - -% make indentations changeable - -\def\setitemindent#1{\settowidth{\labelwidth}{#1}% - \let\setit@m=Y% - \leftmargini\labelwidth - \advance\leftmargini\labelsep - \def\@listi{\leftmargin\leftmargini - \labelwidth\leftmargini\advance\labelwidth by -\labelsep - \parsep=\parskip - \topsep=\medskipamount - \itemsep=\parskip \advance\itemsep by -\parsep}} -\def\setitemitemindent#1{\settowidth{\labelwidth}{#1}% - \let\setit@m=Y% - \leftmarginii\labelwidth - \advance\leftmarginii\labelsep -\def\@listii{\leftmargin\leftmarginii - \labelwidth\leftmarginii\advance\labelwidth by -\labelsep - \parsep=\parskip - \topsep=\z@ - \itemsep=\parskip \advance\itemsep by -\parsep}} -% -% adjusted environment "description" -% if an optional parameter (at the first two levels of lists) -% is present, its width is considered to be the widest mark -% throughout the current list. -\def\description{\@ifnextchar[{\@describe}{\list{}{\labelwidth\z@ - \itemindent-\leftmargin \let\makelabel\descriptionlabel}}} -% -\def\describelabel#1{#1\hfil} -\def\@describe[#1]{\relax\ifnum\@listdepth=0 -\setitemindent{#1}\else\ifnum\@listdepth=1 -\setitemitemindent{#1}\fi\fi -\list{--}{\let\makelabel\describelabel}} -% -\def\itemize{% - \ifnum \@itemdepth >\thr@@\@toodeep\else - \advance\@itemdepth\@ne - \ifx\setit@m\undefined - \ifnum \@itemdepth=1 \leftmargini=\svitemindent - \labelwidth\leftmargini\advance\labelwidth-\labelsep - \leftmarginii=\leftmargini \leftmarginiii=\leftmargini - \fi - \fi - \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% - \expandafter\list - \csname\@itemitem\endcsname - {\def\makelabel##1{\rlap{##1}\hss}}% - \fi} -% -\newdimen\verbatimindent \verbatimindent\parindent -\def\verbatim{\advance\@totalleftmargin by\verbatimindent -\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} - -% -% special signs and characters -\newcommand{\D}{\mathrm{d}} -\newcommand{\E}{\mathrm{e}} -\let\eul=\E -\newcommand{\I}{{\rm i}} -\let\imag=\I -% -% the definition of uppercase Greek characters -% Springer likes them as italics to depict variables -\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} -\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} -\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} -\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} -\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} -\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} -\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} -\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} -\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} -\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} -\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} -% the upright forms are defined here as \var -\DeclareMathSymbol{\varGamma}{\mathalpha}{operators}{"00} -\DeclareMathSymbol{\varDelta}{\mathalpha}{operators}{"01} -\DeclareMathSymbol{\varTheta}{\mathalpha}{operators}{"02} -\DeclareMathSymbol{\varLambda}{\mathalpha}{operators}{"03} -\DeclareMathSymbol{\varXi}{\mathalpha}{operators}{"04} -\DeclareMathSymbol{\varPi}{\mathalpha}{operators}{"05} -\DeclareMathSymbol{\varSigma}{\mathalpha}{operators}{"06} -\DeclareMathSymbol{\varUpsilon}{\mathalpha}{operators}{"07} -\DeclareMathSymbol{\varPhi}{\mathalpha}{operators}{"08} -\DeclareMathSymbol{\varPsi}{\mathalpha}{operators}{"09} -\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A} -% Upright Lower Case Greek letters without using a new MathAlphabet -\newcommand{\greeksym}[1]{\usefont{U}{psy}{m}{n}#1} -\newcommand{\greeksymbold}[1]{{\usefont{U}{psy}{b}{n}#1}} -\newcommand{\allmodesymb}[2]{\relax\ifmmode{\mathchoice -{\mbox{\fontsize{\tf@size}{\tf@size}#1{#2}}} -{\mbox{\fontsize{\tf@size}{\tf@size}#1{#2}}} -{\mbox{\fontsize{\sf@size}{\sf@size}#1{#2}}} -{\mbox{\fontsize{\ssf@size}{\ssf@size}#1{#2}}}} -\else -\mbox{#1{#2}}\fi} -% Definition of lower case Greek letters -\newcommand{\ualpha}{\allmodesymb{\greeksym}{a}} -\newcommand{\ubeta}{\allmodesymb{\greeksym}{b}} -\newcommand{\uchi}{\allmodesymb{\greeksym}{c}} -\newcommand{\udelta}{\allmodesymb{\greeksym}{d}} -\newcommand{\ugamma}{\allmodesymb{\greeksym}{g}} -\newcommand{\umu}{\allmodesymb{\greeksym}{m}} -\newcommand{\unu}{\allmodesymb{\greeksym}{n}} -\newcommand{\upi}{\allmodesymb{\greeksym}{p}} -\newcommand{\utau}{\allmodesymb{\greeksym}{t}} -% redefines the \vec accent to a bold character - if desired -\def\fig@type{arrow}% temporarily abused -\ifx\vec@style\fig@type\else -\@ifundefined{vec@style}{% - \def\vec#1{\ensuremath{\mathchoice - {\mbox{\boldmath$\displaystyle\mathbf{#1}$}} - {\mbox{\boldmath$\textstyle\mathbf{#1}$}} - {\mbox{\boldmath$\scriptstyle\mathbf{#1}$}} - {\mbox{\boldmath$\scriptscriptstyle\mathbf{#1}$}}}}% -} -{\def\vec#1{\ensuremath{\mathchoice - {\mbox{\boldmath$\displaystyle#1$}} - {\mbox{\boldmath$\textstyle#1$}} - {\mbox{\boldmath$\scriptstyle#1$}} - {\mbox{\boldmath$\scriptscriptstyle#1$}}}}% -} -\fi -% tensor -\def\tens#1{\relax\ifmmode\mathsf{#1}\else\textsf{#1}\fi} - -% end of proof symbol -\newcommand\qedsymbol{\hbox{\rlap{$\sqcap$}$\sqcup$}} -\newcommand\qed{\relax\ifmmode\else\unskip\quad\fi\qedsymbol} -\newcommand\smartqed{\renewcommand\qed{\relax\ifmmode\qedsymbol\else - {\unskip\nobreak\hfil\penalty50\hskip1em\null\nobreak\hfil\qedsymbol - \parfillskip=\z@\finalhyphendemerits=0\endgraf}\fi}} -% -\def\num@book{% -\renewcommand\thesection{\thechapter.\@arabic\c@section}% -\renewcommand\thesubsection{\thesection.\@arabic\c@subsection}% -\renewcommand\theequation{\thechapter.\@arabic\c@equation}% -\renewcommand\thefigure{\thechapter.\@arabic\c@figure}% -\renewcommand\thetable{\thechapter.\@arabic\c@table}% -\@addtoreset{section}{chapter}% -\@addtoreset{figure}{chapter}% -\@addtoreset{table}{chapter}% -\@addtoreset{equation}{chapter}} -% -% Ragged bottom for the actual page -\def\thisbottomragged{\def\@textbottom{\vskip\z@ \@plus.0001fil -\global\let\@textbottom\relax}} - -% This is texte.tex -% it defines various texts and their translations -% called up with documentstyle options -\def\switcht@albion{% -\def\abstractname{Summary.}% -\def\ackname{Acknowledgement.}% -\def\andname{and}% -\def\bibname{References}% -\def\lastandname{, and}% -\def\appendixname{Appendix}% -\def\chaptername{Chapter}% -\def\claimname{Claim}% -\def\conjecturename{Conjecture}% -\def\contentsname{Contents}% -\def\corollaryname{Corollary}% -\def\definitionname{Definition}% -\def\examplename{Example}% -\def\exercisename{Exercise}% -\def\figurename{Fig.}% -\def\keywordname{{\bf Key words:}}% -\def\indexname{Index}% -\def\lemmaname{Lemma}% -\def\contriblistname{List of Contributors}% -\def\listfigurename{List of Figures}% -\def\listtablename{List of Tables}% -\def\mailname{{\it Correspondence to\/}:}% -\def\noteaddname{Note added in proof}% -\def\notename{Note}% -\def\partname{Part}% -\def\prefacename{Preface}% -\def\problemname{Problem}% -\def\proofname{Proof}% -\def\propertyname{Property}% -\def\propositionname{Proposition}% -\def\questionname{Question}% -\def\refname{References}% -\def\remarkname{Remark}% -\def\seename{see}% -\def\solutionname{Solution}% -\def\subclassname{{\it Subject Classifications\/}:}% -\def\tablename{Table}% -\def\theoremname{Theorem}} -\switcht@albion -% Names of theorem like environments are already defined -% but must be translated if another language is chosen -% -% French section -\def\switcht@francais{\svlanginfo - \def\abstractname{R\'esum\'e.}% - \def\ackname{Remerciements.}% - \def\andname{et}% - \def\lastandname{ et}% - \def\appendixname{Appendice}% - \def\bibname{Bibliographie}% - \def\chaptername{Chapitre}% - \def\claimname{Pr\'etention}% - \def\conjecturename{Hypoth\`ese}% - \def\contentsname{Table des mati\`eres}% - \def\corollaryname{Corollaire}% - \def\definitionname{D\'efinition}% - \def\examplename{Exemple}% - \def\exercisename{Exercice}% - \def\figurename{Fig.}% - \def\keywordname{{\bf Mots-cl\'e:}}% - \def\indexname{Index}% - \def\lemmaname{Lemme}% - \def\contriblistname{Liste des contributeurs}% - \def\listfigurename{Liste des figures}% - \def\listtablename{Liste des tables}% - \def\mailname{{\it Correspondence to\/}:}% - \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% - \def\notename{Remarque}% - \def\partname{Partie}% - \def\prefacename{Avant-propos}% ou Pr\'eface - \def\problemname{Probl\`eme}% - \def\proofname{Preuve}% - \def\propertyname{Caract\'eristique}% -%\def\propositionname{Proposition}% - \def\questionname{Question}% - \def\refname{Lit\'erature}% - \def\remarkname{Remarque}% - \def\seename{voir}% - \def\solutionname{Solution}% - \def\subclassname{{\it Subject Classifications\/}:}% - \def\tablename{Tableau}% - \def\theoremname{Th\'eor\`eme}% -} -% -% German section -\def\switcht@deutsch{\svlanginfo - \def\abstractname{Zusammenfassung.}% - \def\ackname{Danksagung.}% - \def\andname{und}% - \def\lastandname{ und}% - \def\appendixname{Anhang}% - \def\bibname{Literaturverzeichnis}% - \def\chaptername{Kapitel}% - \def\claimname{Behauptung}% - \def\conjecturename{Hypothese}% - \def\contentsname{Inhaltsverzeichnis}% - \def\corollaryname{Korollar}% -%\def\definitionname{Definition}% - \def\examplename{Beispiel}% - \def\exercisename{\"Ubung}% - \def\figurename{Abb.}% - \def\keywordname{{\bf Schl\"usselw\"orter:}}% - \def\indexname{Sachverzeichnis}% -%\def\lemmaname{Lemma}% - \def\contriblistname{Mitarbeiter}% - \def\listfigurename{Abbildungsverzeichnis}% - \def\listtablename{Tabellenverzeichnis}% - \def\mailname{{\it Correspondence to\/}:}% - \def\noteaddname{Nachtrag}% - \def\notename{Anmerkung}% - \def\partname{Teil}% - \def\prefacename{Vorwort}% -%\def\problemname{Problem}% - \def\proofname{Beweis}% - \def\propertyname{Eigenschaft}% -%\def\propositionname{Proposition}% - \def\questionname{Frage}% - \def\refname{Literaturverzeichnis}% - \def\remarkname{Anmerkung}% - \def\seename{siehe}% - \def\solutionname{L\"osung}% - \def\subclassname{{\it Subject Classifications\/}:}% - \def\tablename{Tabelle}% -%\def\theoremname{Theorem}% -} - -\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip -\halign{\hfil -$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets -\cr\to\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets -\cr\to\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr -\gets\cr\to\cr}}}}} -\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil -$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2\p@}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr -\noalign{\vskip1.2\p@}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr -\noalign{\vskip\p@}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr -<\cr -\noalign{\vskip0.9\p@}=\cr}}}}} -\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil -$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2\p@}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr -\noalign{\vskip1.2\p@}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr -\noalign{\vskip\p@}=\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr ->\cr -\noalign{\vskip0.9\p@}=\cr}}}}} -\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip -\halign{\hfil -$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-\p@}<\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr ->\cr\noalign{\vskip-\p@}<\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr ->\cr\noalign{\vskip-0.8\p@}<\cr}}} -{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr ->\cr\noalign{\vskip-0.3\p@}<\cr}}}}} -\def\bbbr{{\rm I\!R}} %reelle Zahlen -\def\bbbm{{\rm I\!M}} -\def\bbbn{{\rm I\!N}} %natuerliche Zahlen -\def\bbbf{{\rm I\!F}} -\def\bbbh{{\rm I\!H}} -\def\bbbk{{\rm I\!K}} -\def\bbbp{{\rm I\!P}} -\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} -{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} -\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox -to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox -to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox -to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox -to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}}}} -\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm -Q$}\hbox{\raise -0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.8\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise -0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.8\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise -0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.7\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise -0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.7\ht0\hss}\box0}}}} -\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm -T$}\hbox{\hbox to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox -to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox -to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox -to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}}}} -\def\bbbs{{\mathchoice -{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox -to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\hbox -to\z@{\kern0.55\wd0\vrule\@height0.5\ht0\hss}\box0}} -{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox -to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\hbox -to\z@{\kern0.55\wd0\vrule\@height0.5\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox -to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\raise0.05\ht0\hbox -to\z@{\kern0.5\wd0\vrule\@height0.45\ht0\hss}\box0}} -{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox -to\z@{\kern0.4\wd0\vrule\@height0.45\ht0\hss}\raise0.05\ht0\hbox -to\z@{\kern0.55\wd0\vrule\@height0.45\ht0\hss}\box0}}}} -\def\bbbz{{\mathchoice {\hbox{$\textstyle\sf Z\kern-0.4em Z$}} -{\hbox{$\textstyle\sf Z\kern-0.4em Z$}} -{\hbox{$\scriptstyle\sf Z\kern-0.3em Z$}} -{\hbox{$\scriptscriptstyle\sf Z\kern-0.2em Z$}}}} - -\let\ts\, - -\setlength \labelsep {5\p@} -\setlength\leftmargini {17\p@} -\setlength\leftmargin {\leftmargini} -\setlength\leftmarginii {\leftmargini} -\setlength\leftmarginiii {\leftmargini} -\setlength\leftmarginiv {\leftmargini} -\setlength\labelwidth {\leftmargini} -\addtolength\labelwidth{-\labelsep} - -\def\@listI{\leftmargin\leftmargini - \parsep=\parskip - \topsep=\medskipamount - \itemsep=\parskip \advance\itemsep by -\parsep} -\let\@listi\@listI -\@listi - -\def\@listii{\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth by -\labelsep - \parsep=\parskip - \topsep=\z@ - \itemsep=\parskip - \advance\itemsep by -\parsep} - -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii\advance\labelwidth by -\labelsep - \parsep=\parskip - \topsep=\z@ - \itemsep=\parskip - \advance\itemsep by -\parsep - \partopsep=\topsep} - -\setlength\arraycolsep{1.5\p@} -\setlength\tabcolsep{1.5\p@} - -\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn - \fi\chapter*{\contentsname \@mkboth{{\contentsname}}{{\contentsname}}} - \@starttoc{toc}\if@restonecol\twocolumn\fi} - -\setcounter{tocdepth}{2} - -\def\l@part#1#2{\addpenalty{\@secpenalty}% - \addvspace{2em \@plus\p@}% - \begingroup - \parindent \z@ - \rightskip \z@ \@plus 5em - \hrule\vskip5\p@ - \bfseries\boldmath - \leavevmode - #1\par - \vskip5\p@ - \hrule - \vskip\p@ - \nobreak - \endgroup} - -\def\@dotsep{2} - -\def\addnumcontentsmark#1#2#3{% -\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline - {\thechapter}#3}{\thepage}}} -\def\addcontentsmark#1#2#3{% -\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} -\def\addcontentsmarkwop#1#2#3{% -\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}}} - -\def\@adcmk[#1]{\ifcase #1 \or -\def\@gtempa{\addnumcontentsmark}% - \or \def\@gtempa{\addcontentsmark}% - \or \def\@gtempa{\addcontentsmarkwop}% - \fi\@gtempa{toc}{chapter}} -\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} - -\def\l@chapter#1#2{\par\addpenalty{-\@highpenalty} - \addvspace{1.0em \@plus \p@} - \@tempdima \tocchpnum \begingroup - \parindent \z@ \rightskip \@tocrmarg - \advance\rightskip by \z@ \@plus 2cm - \parfillskip -\rightskip \pretolerance=10000 - \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip - {\bfseries\boldmath#1}\ifx0#2\hfil\null - \else - \nobreak - \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern - \@dotsep mu$}\hfill - \nobreak\hbox to\@pnumwidth{\hss #2}% - \fi\par - \penalty\@highpenalty \endgroup} - -\newdimen\tocchpnum -\newdimen\tocsecnum -\newdimen\tocsectotal -\newdimen\tocsubsecnum -\newdimen\tocsubsectotal -\newdimen\tocsubsubsecnum -\newdimen\tocsubsubsectotal -\newdimen\tocparanum -\newdimen\tocparatotal -\newdimen\tocsubparanum -\tocchpnum=20\p@ % chapter {\bf 88.} \@plus 5.3\p@ -\tocsecnum=22.5\p@ % section 88.8. plus 4.722\p@ -\tocsubsecnum=30.5\p@ % subsection 88.8.8 plus 4.944\p@ -\tocsubsubsecnum=38\p@ % subsubsection 88.8.8.8 plus 4.666\p@ -\tocparanum=45\p@ % paragraph 88.8.8.8.8 plus 3.888\p@ -\tocsubparanum=53\p@ % subparagraph 88.8.8.8.8.8 plus 4.11\p@ -\def\calctocindent{% -\tocsectotal=\tocchpnum -\advance\tocsectotal by\tocsecnum -\tocsubsectotal=\tocsectotal -\advance\tocsubsectotal by\tocsubsecnum -\tocsubsubsectotal=\tocsubsectotal -\advance\tocsubsubsectotal by\tocsubsubsecnum -\tocparatotal=\tocsubsubsectotal -\advance\tocparatotal by\tocparanum} -\calctocindent - -\def\@dottedtocline#1#2#3#4#5{% - \ifnum #1>\c@tocdepth \else - \vskip \z@ \@plus.2\p@ - {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by \z@ \@plus 2cm - \parfillskip -\rightskip \pretolerance=10000 - \parindent #2\relax\@afterindenttrue - \interlinepenalty\@M - \leavevmode - \@tempdima #3\relax - \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip - {#4}\nobreak - \leaders\hbox{$\m@th - \mkern \@dotsep mu\hbox{.}\mkern \@dotsep - mu$}\hfill - \nobreak - \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% - \par}% - \fi} -% -\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} -\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} -\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} -\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} -\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} - -\renewcommand\listoffigures{% - \chapter*{\listfigurename - \@mkboth{\listfigurename}{\listfigurename}}% - \@starttoc{lof}% - } - -\renewcommand\listoftables{% - \chapter*{\listtablename - \@mkboth{\listtablename}{\listtablename}}% - \@starttoc{lot}% - } - -\renewcommand\footnoterule{% - \kern-3\p@ - \hrule\@width 50\p@ - \kern2.6\p@} - -\newdimen\foot@parindent -\foot@parindent 10.83\p@ - -\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize - \advance\@tempdima-\foot@parindent\parshape\@ne\foot@parindent - \@tempdima}\par - \parindent \foot@parindent\noindent \hbox to \z@{% - \hss\hss$^{\@thefnmark}$ }#1} - -\if@spthms -% Definition of the "\spnewtheorem" command. -% -% Usage: -% -% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} -% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} -% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} -% -% New is "cap_font" and "body_font". It stands for -% fontdefinition of the caption and the text itself. -% -% "\spnewtheorem*" gives a theorem without number. -% -% A defined spnewthoerem environment is used as described -% by Lamport. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\@thmcountersep{.} -\def\@thmcounterend{.} -\newcommand\nocaption{\noexpand\@gobble} -\newdimen\spthmsep \spthmsep=3pt - -\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} - -% definition of \spnewtheorem with number - -\def\@spnthm#1#2{% - \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} -\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} - -\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname - {\@definecounter{#1}\@addtoreset{#1}{#3}% - \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand - \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% - \expandafter\xdef\csname #1name\endcsname{#2}% - \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% - \global\@namedef{end#1}{\@endtheorem}}} - -\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname - {\@definecounter{#1}% - \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% - \expandafter\xdef\csname #1name\endcsname{#2}% - \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% - \global\@namedef{end#1}{\@endtheorem}}} - -\def\@spothm#1[#2]#3#4#5{% - \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% - {\expandafter\@ifdefinable\csname #1\endcsname - {\global\@namedef{the#1}{\@nameuse{the#2}}% - \expandafter\xdef\csname #1name\endcsname{#3}% - \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% - \global\@namedef{end#1}{\@endtheorem}}}} - -\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ -\labelsep=\spthmsep\refstepcounter{#1}% -\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} - -\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% - \ignorespaces} - -\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname - the#1\endcsname}{#5}{#3}{#4}\ignorespaces} - -\def\normalthmheadings{\def\@spbegintheorem##1##2##3##4{\trivlist - \item[\hskip\labelsep{##3##1\ ##2\@thmcounterend}]##4} -\def\@spopargbegintheorem##1##2##3##4##5{\trivlist - \item[\hskip\labelsep{##4##1\ ##2}]{##4(##3)\@thmcounterend\ }##5}} -\normalthmheadings - -\def\reversethmheadings{\def\@spbegintheorem##1##2##3##4{\trivlist - \item[\hskip\labelsep{##3##2\ ##1\@thmcounterend}]##4} -\def\@spopargbegintheorem##1##2##3##4##5{\trivlist - \item[\hskip\labelsep{##4##2\ ##1}]{##4(##3)\@thmcounterend\ }##5}} - -% definition of \spnewtheorem* without number - -\def\@sthm#1#2{\@Ynthm{#1}{#2}} - -\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname - {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% - \expandafter\xdef\csname #1name\endcsname{#2}% - \global\@namedef{end#1}{\@endtheorem}}} - -\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ -\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} - -\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} - -\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} - {#4}{#2}{#3}\ignorespaces} - -\def\@Begintheorem#1#2#3{#3\trivlist - \item[\hskip\labelsep{#2#1\@thmcounterend}]} - -\def\@Opargbegintheorem#1#2#3#4{#4\trivlist - \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} - -% initialize theorem environment - -\if@envcntshowhiercnt % show hierarchy counter - \def\@thmcountersep{.} - \spnewtheorem{theorem}{Theorem}[\envankh]{\bfseries}{\itshape} - \@addtoreset{theorem}{chapter} -\else % theorem counter only - \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} - \if@envcntreset - \@addtoreset{theorem}{chapter} - \if@envcntresetsect - \@addtoreset{theorem}{section} - \fi - \fi -\fi - -%definition of divers theorem environments -\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} -\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} -% -\if@envcntsame % all environments like "Theorem" - using its counter - \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} -\else % all environments with their own counter - \if@envcntshowhiercnt % show hierarchy counter - \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[\envankh]{#3}{#4}} - \else % environment counter only - \if@envcntreset % environment counter is reset each section - \if@envcntresetsect - \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} - \@addtoreset{#1}{chapter}\@addtoreset{#1}{section}} - \else - \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} - \@addtoreset{#1}{chapter}} - \fi - \else - \let\spn@wtheorem=\@spynthm - \fi - \fi -\fi -% -\let\spdefaulttheorem=\spn@wtheorem -% -\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} -\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} -\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} -\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} -\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} -\spn@wtheorem{exercise}{Exercise}{\bfseries}{\rmfamily} -\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} -\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} -\spn@wtheorem{problem}{Problem}{\bfseries}{\rmfamily} -\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} -\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} -\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} -\spn@wtheorem{solution}{Solution}{\bfseries}{\rmfamily} -\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} -% -\newenvironment{theopargself} - {\def\@spopargbegintheorem##1##2##3##4##5{\trivlist - \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} - \def\@Opargbegintheorem##1##2##3##4{##4\trivlist - \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}}{} -\newenvironment{theopargself*} - {\def\@spopargbegintheorem##1##2##3##4##5{\trivlist - \item[\hskip\labelsep{##4##1\ ##2}]{\hspace*{-\labelsep}##4##3\@thmcounterend}##5} - \def\@Opargbegintheorem##1##2##3##4{##4\trivlist - \item[\hskip\labelsep{##3##1}]{\hspace*{-\labelsep}##3##2\@thmcounterend}}}{} -\fi - -\def\@takefromreset#1#2{% - \def\@tempa{#1}% - \let\@tempd\@elt - \def\@elt##1{% - \def\@tempb{##1}% - \ifx\@tempa\@tempb\else - \@addtoreset{##1}{#2}% - \fi}% - \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname - \expandafter\def\csname cl@#2\endcsname{}% - \@tempc - \let\@elt\@tempd} - -% redefininition of the captions for "figure" and "table" environments -% -\@ifundefined{floatlegendstyle}{\def\floatlegendstyle{\bfseries}}{} -\def\floatcounterend{.\ } -\def\capstrut{\vrule\@width\z@\@height\topskip} -\@ifundefined{captionstyle}{\def\captionstyle{\normalfont\small}}{} -\@ifundefined{instindent}{\newdimen\instindent}{} - -\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname - ext@#1\endcsname}{#1}{\protect\numberline{\csname - the#1\endcsname}{\ignorespaces #2}}\begingroup - \@parboxrestore\if@minipage\@setminipage\fi - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par - \endgroup} - -\def\twocaptionwidth#1#2{\def\first@capwidth{#1}\def\second@capwidth{#2}} -% Default: .46\textwidth -\twocaptionwidth{.46\textwidth}{.46\textwidth} - -\def\leftcaption{\refstepcounter\@captype\@dblarg% - {\@leftcaption\@captype}} - -\def\rightcaption{\refstepcounter\@captype\@dblarg% - {\@rightcaption\@captype}} - -\long\def\@leftcaption#1[#2]#3{\addcontentsline{\csname - ext@#1\endcsname}{#1}{\protect\numberline{\csname - the#1\endcsname}{\ignorespaces #2}}\begingroup - \@parboxrestore - \vskip\figcapgap - \@maketwocaptions{\csname fnum@#1\endcsname}{\ignorespaces #3}% - {\first@capwidth}\ignorespaces\hspace{.073\textwidth}\hfill% - \endgroup} - -\long\def\@rightcaption#1[#2]#3{\addcontentsline{\csname - ext@#1\endcsname}{#1}{\protect\numberline{\csname - the#1\endcsname}{\ignorespaces #2}}\begingroup - \@parboxrestore - \@maketwocaptions{\csname fnum@#1\endcsname}{\ignorespaces #3}% - {\second@capwidth}\par - \endgroup} - -\long\def\@maketwocaptions#1#2#3{% - \parbox[t]{#3}{{\floatlegendstyle #1\floatcounterend}#2}} - -\def\fig@pos{l} -\newcommand{\leftfigure}[2][\fig@pos]{\makebox[.4635\textwidth][#1]{#2}} -\let\rightfigure\leftfigure - -\newdimen\figgap\figgap=0.5cm % hgap between figure and sidecaption -% -\long\def\@makesidecaption#1#2{% - \setbox0=\vbox{\hsize=\@tempdima - \captionstyle{\floatlegendstyle - #1\floatcounterend}#2}% - \ifdim\instindent<\z@ - \ifdim\ht0>-\instindent - \advance\instindent by\ht0 - \typeout{^^JClass-Warning: Legend of \string\sidecaption\space for - \@captype\space\csname the\@captype\endcsname - ^^Jis \the\instindent\space taller than the corresponding float - - ^^Jyou'd better switch the environment. }% - \instindent\z@ - \fi - \else - \ifdim\ht0<\instindent - \advance\instindent by-\ht0 - \advance\instindent by-\dp0\relax - \advance\instindent by\topskip - \advance\instindent by-11\p@ - \else - \advance\instindent by-\ht0 - \instindent=-\instindent - \typeout{^^JClass-Warning: Legend of \string\sidecaption\space for - \@captype\space\csname the\@captype\endcsname - ^^Jis \the\instindent\space taller than the corresponding float - - ^^Jyou'd better switch the environment. }% - \instindent\z@ - \fi - \fi - \parbox[b]{\@tempdima}{\captionstyle{\floatlegendstyle - #1\floatcounterend}#2% - \ifdim\instindent>\z@ \\ - \vrule\@width\z@\@height\instindent - \@depth\z@ - \fi}} -\def\sidecaption{\@ifnextchar[\sidec@ption{\sidec@ption[b]}} -\def\sidec@ption[#1]#2\caption{% -\setbox\@tempboxa=\hbox{\ignorespaces#2\unskip}% -\if@twocolumn - \ifdim\hsize<\textwidth\else - \ifdim\wd\@tempboxa<\columnwidth - \typeout{Double column float fits into single column - - ^^Jyou'd better switch the environment. }% - \fi - \fi -\fi - \instindent=\ht\@tempboxa - \advance\instindent by\dp\@tempboxa -\if t#1 -\else - \instindent=-\instindent -\fi -\@tempdima=\hsize -\advance\@tempdima by-\figgap -\advance\@tempdima by-\wd\@tempboxa -\ifdim\@tempdima<3cm - \ClassWarning{SVMono}{\string\sidecaption: No sufficient room for the legend; - ^^Jusing normal \string\caption}% - \unhbox\@tempboxa - \let\@capcommand=\@caption -\else - \ifdim\@tempdima<4.5cm - \ClassWarning{SVMono}{\string\sidecaption: Room for the legend very narrow; - ^^Jusing \string\raggedright}% - \toks@\expandafter{\captionstyle\sloppy - \rightskip=\z@\@plus6mm\relax}% - \def\captionstyle{\the\toks@}% - \fi - \let\@capcommand=\@sidecaption - \leavevmode - \unhbox\@tempboxa - \hfill -\fi -\refstepcounter\@captype -\@dblarg{\@capcommand\@captype}} -\long\def\@sidecaption#1[#2]#3{\addcontentsline{\csname - ext@#1\endcsname}{#1}{\protect\numberline{\csname - the#1\endcsname}{\ignorespaces #2}}\begingroup - \@parboxrestore - \@makesidecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par - \endgroup} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\fig@type{figure} - -\def\leftlegendglue{\hfil} -\newdimen\figcapgap\figcapgap=5\p@ % vgap between figure and caption -\newdimen\tabcapgap\tabcapgap=5.5\p@ % vgap between caption and table - -\long\def\@makecaption#1#2{% - \captionstyle - \ifx\@captype\fig@type - \vskip\figcapgap - \fi - \setbox\@tempboxa\hbox{{\floatlegendstyle #1\floatcounterend}% - \capstrut #2}% - \ifdim \wd\@tempboxa >\hsize - {\floatlegendstyle #1\floatcounterend}\capstrut #2\par - \else - \hbox to\hsize{\leftlegendglue\unhbox\@tempboxa\hfil}% - \fi - \ifx\@captype\fig@type\else - \vskip\tabcapgap - \fi} - -\newcounter{merk} - -\def\endfigure{\resetsubfig\end@float} - -\@namedef{endfigure*}{\resetsubfig\end@dblfloat} - -\def\resetsubfig{\global\let\last@subfig=\undefined} - -\def\r@setsubfig{\xdef\last@subfig{\number\value{figure}}% -\setcounter{figure}{\value{merk}}% -\setcounter{merk}{0}} - -\def\subfigures{\refstepcounter{figure}% - \@tempcnta=\value{merk}% - \setcounter{merk}{\value{figure}}% - \setcounter{figure}{\the\@tempcnta}% - \def\thefigure{\if@numart\else\thechapter.\fi - \@arabic\c@merk\alph{figure}}% - \let\resetsubfig=\r@setsubfig} - -\def\samenumber{\addtocounter{\@captype}{-1}% -\@ifundefined{last@subfig}{}{\setcounter{merk}{\last@subfig}}} - -% redefinition of the "bibliography" environment -% -\def\biblstarthook#1{\gdef\biblst@rthook{#1}} -% -\AtBeginDocument{% -\ifx\secbibl\undefined - \def\bibsection{\chapter*{\refname}\markboth{\refname}{\refname}% - \addcontentsline{toc}{chapter}{\refname}% - \csname biblst@rthook\endcsname} -\else - \def\bibsection{\section*{\refname}\markright{\refname}% - \addcontentsline{toc}{section}{\refname}% - \csname biblst@rthook\endcsname} -\fi} -\ifx\oribibl\undefined % Springer way of life - \renewenvironment{thebibliography}[1]{\bibsection - \global\let\biblst@rthook=\undefined - \def\@biblabel##1{##1.} - \small - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \if@openbib - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ - \fi - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \if@openbib - \renewcommand\newblock{\par}% - \else - \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% - \fi - \sloppy\clubpenalty4000\widowpenalty4000% - \sfcode`\.=\@m} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \endlist} - \def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw - {\let\protect\noexpand\immediate - \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} -\else % original bibliography is required - \let\bibname=\refname - \renewenvironment{thebibliography}[1] - {\chapter*{\bibname - \@mkboth{\bibname}{\bibname}}% - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \sloppy - \clubpenalty4000 - \@clubpenalty \clubpenalty - \widowpenalty4000% - \sfcode`\.\@m} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \endlist} -\fi - -\let\if@threecolind\iffalse -\def\threecolindex{\let\if@threecolind\iftrue} -\def\indexstarthook#1{\gdef\indexst@rthook{#1}} -\renewenvironment{theindex} - {\if@twocolumn - \@restonecolfalse - \else - \@restonecoltrue - \fi - \columnseprule \z@ - \columnsep 1cc - \@nobreaktrue - \if@threecolind - \begin{multicols}{3}[\chapter*{\indexname}% - \else - \begin{multicols}{2}[\chapter*{\indexname}% - \fi - {\csname indexst@rthook\endcsname}]% - \global\let\indexst@rthook=\undefined - \markboth{\indexname}{\indexname}% - \addcontentsline{toc}{chapter}{\indexname}% - \flushbottom - \parindent\z@ - \rightskip\z@ \@plus 40\p@ - \parskip\z@ \@plus .3\p@\relax - \flushbottom - \let\item\@idxitem - \def\,{\relax\ifmmode\mskip\thinmuskip - \else\hskip0.2em\ignorespaces\fi}% - \normalfont\small} - {\end{multicols} - \global\let\if@threecolind\iffalse - \if@restonecol\onecolumn\else\clearpage\fi} - -\def\idxquad{\hskip 10\p@}% space that divides entry from number - -\def\@idxitem{\par\setbox0=\hbox{--\,--\,--\enspace}% - \hangindent\wd0\relax} - -\def\subitem{\par\noindent\setbox0=\hbox{--\enspace}% second order - \kern\wd0\setbox0=\hbox{--\,--\,--\enspace}% - \hangindent\wd0\relax}% indexentry - -\def\subsubitem{\par\noindent\setbox0=\hbox{--\,--\enspace}% third order - \kern\wd0\setbox0=\hbox{--\,--\,--\enspace}% - \hangindent\wd0\relax}% indexentry - -\def\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} - -\def\subtitle#1{\gdef\@subtitle{#1}} -\def\@subtitle{} - -\def\maketitle{\par - \begingroup - \def\thefootnote{\fnsymbol{footnote}}% - \def\@makefnmark{\hbox - to\z@{$\m@th^{\@thefnmark}$\hss}}% - \if@twocolumn - \twocolumn[\@maketitle]% - \else \newpage - \global\@topnum\z@ % Prevents figures from going at top of page. - \@maketitle \fi\thispagestyle{empty}\@thanks - \par\penalty -\@M - \endgroup - \setcounter{footnote}{0}% - \let\maketitle\relax - \let\@maketitle\relax - \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} - -\def\@maketitle{\newpage - \null - \vskip 2em % Vertical space above title. -\begingroup - \def\and{\unskip, } - \parindent=\z@ - \pretolerance=10000 - \rightskip=\z@ \@plus 3cm - {\LARGE % each author set in \LARGE - \lineskip .5em - \@author - \par}% - \vskip 2cm % Vertical space after author. - {\Huge \@title \par}% % Title set in \Huge size. - \vskip 1cm % Vertical space after title. - \if!\@subtitle!\else - {\LARGE\ignorespaces\@subtitle \par} - \vskip 1cm % Vertical space after subtitle. - \fi - \if!\@date!\else - {\large \@date}% % Date set in \large size. - \par - \vskip 1.5em % Vertical space after date. - \fi - \vfill - {\Large Springer\par} - \vskip 5\p@ - \large - Berlin\enspace Heidelberg\enspace New\kern0.1em York\\ - Hong\thinspace Kong\enspace London\\ - Milan\enspace Paris\enspace Tokyo\par -\endgroup} - -% Useful environments -\newenvironment{acknowledgement}{\par\addvspace{17\p@}\small\rm -\trivlist\item[\hskip\labelsep{\it\ackname}]} -{\endtrivlist\addvspace{6\p@}} -% -\newenvironment{noteadd}{\par\addvspace{17\p@}\small\rm -\trivlist\item[\hskip\labelsep{\it\noteaddname}]} -{\endtrivlist\addvspace{6\p@}} -% -\renewenvironment{abstract}{% - \advance\topsep by0.35cm\relax\small - \labelwidth=\z@ - \listparindent=\z@ - \itemindent\listparindent - \trivlist\item[\hskip\labelsep\bfseries\abstractname]% - \if!\abstractname!\hskip-\labelsep\fi - } - {\endtrivlist} - -% define the running headings of a twoside text -\def\runheadsize{\small} -\def\runheadstyle{\rmfamily\upshape} -\def\customizhead{\hspace{\headlineindent}} - -\def\ps@headings{\let\@mkboth\markboth - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\runheadsize\runheadstyle\rlap{\thepage}\customizhead - \leftmark\hfil} - \def\@oddhead{\hfil\runheadsize\runheadstyle\rightmark\customizhead - \llap{\thepage}} - \def\chaptermark##1{\markboth{{\ifnum\c@secnumdepth>\m@ne - \thechapter\thechapterend\hskip\betweenumberspace\fi ##1}}{{\ifnum %!!! - \c@secnumdepth>\m@ne\thechapter\thechapterend\hskip\betweenumberspace\fi ##1}}}%!!! - \def\sectionmark##1{\markright{{\ifnum\c@secnumdepth>\z@ - \thesection\seccounterend\hskip\betweenumberspace\fi ##1}}}} - -\def\ps@myheadings{\let\@mkboth\@gobbletwo - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\runheadsize\runheadstyle\rlap{\thepage}\customizhead - \leftmark\hfil} - \def\@oddhead{\hfil\runheadsize\runheadstyle\rightmark\customizhead - \llap{\thepage}} - \let\chaptermark\@gobble - \let\sectionmark\@gobble - \let\subsectionmark\@gobble} - - -\ps@headings - -\endinput -%end of file svmono.cls diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index a188d3a..a68fb59 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -7,62 +7,25 @@ # Path to data directory DATA_DIR = os.path.dirname(os.path.realpath(__file__)) + "/../data/" - - -# start out by reading KLSadd.tex to get all of the paragraphs that must be added to the chapter files -# also keep track of which chapter each one is in - - -# chapNums is needed to know which file to open (9 or 14) -# mathPeople is just the name for the sections that are used, like Wilson, Racah, etc. -chap_nums = [] -paras = [] - -# klsaddparas contains the locations of things with "paragraph{" in KLSadd, these are subsections that need to be sorted -klsaddparas = [] -math_people = [] -new_commands = [] # used to hold the indexes of the commands - -# ref9II holds the beginnings and ends of each chapter 9 section, provided and area to search -ref9_2 = [] - -# ref14II holds the beginnings and ends of each chapter 14 section, provided and area to search -ref14_2 = [] - -# ref9III holds all subsections in each chapter 9 section along with the what ref9II holds +# holds all subsections in each chapter section along with the what holds ref9_3 = [] - -# ref14III holds all subsections in each chapter 14 section along with the what ref14II holds ref14_3 = [] -# specref9 is the KLS indexes that go in chapter 9 -specref9 = [] - -# specref14 is the KLS indexes that in chapter 14 -specref14 = [] - -check = [] -check2 = [] -check3 = [] -kls_list = [] -sortmatch = [] +w, h = 2, 1000 +sorter_check = [[0 for _ in range(w)] for __ in range(h)] -w, h = 3, 9999 -sorterIIIcheck = [[0 for x in range(w)] for y in range(h)] -sortmatch_2 = [] - -test = "memesbananashgvlksrjc%/n" -print test[-2] -# 2/18/16 this method addresses the goal of hardcoding in the necessary packages to let the chapter files run as pdf's. -# Currently only works with chapter 9, ask Dr. Cohl to help port your chapter 14 output file into a pdf - -# 5/5/16 this method implements the Hypergeometric paragraphs into relevant sections for practicality -# Later versions should attempt to: fix paragraphs with variations on this name like -# Basic Hypergeometric Representation, q-Hypergeometric Representation +def repeated_item_deleter(list): + item = 0 + while item < len(list): + if "reference" in list[item].lower() or "limit relation" in list[item].lower(): + del list[item] + else: + item += 1 + return list -def new_keywords(kls): +def new_keywords(kls, kls_list): """ This section checks through the Addendum and identifies words that are valid keywords of sections It then takes that list and removes duplicates, as well as printing the output to another file. @@ -72,30 +35,20 @@ def new_keywords(kls): """ kls_list_chap = [] - for i in kls: - if kls.index(i) > 313: - if "paragraph{" in i or "subsubsection*{" in i: - kls_list.append(i[i.find("{") + 1: len(i) - 2]) + for item in kls: + if "paragraph{" in item or "subsubsection*{" in item: + kls_list.append(item[item.find("{") + 1: len(item) - 2]) - i = 0 - while i < len(kls_list): - if "reference" in kls_list[i].lower() or "limit relation" in kls_list[i].lower(): + kls_list = repeated_item_deleter(kls_list) - del kls_list[i] - else: - i += 1 kls_list.append("Limit Relation") - for i in kls_list: - add = True - for j in kls_list_chap: - if i == j: - add = False - if add: - kls_list_chap.append(i) + for item in kls_list: + if item not in kls_list_chap: + kls_list_chap.append(item) return kls_list_chap -def fix_chapter_sort(kls, chap, word, sortloc): +def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): """ This function sorts through the input files and identifies and places sections from the addendum after their respective subsections in the chapter. @@ -120,60 +73,60 @@ def fix_chapter_sort(kls, chap, word, sortloc): k_hyper_sub_chap = [] index = 0 - for i in kls: + for item in kls: index += 1 - line = str(i) + line = str(item) if "\\subsection" in line: temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) if sep1 == 0: - if name_chap in line.lower() and kls.index(i) > 313 and ("\\paragraph{" in line or + if name_chap in line.lower() and kls.index(item) > 313 and ("\\paragraph{" in line or "\\subsubsection*{" in line): - for i in klsaddparas: - if index < i: - klsloc = klsaddparas.index(i) + for item in klsaddparas: + if index < item: + klsloc = klsaddparas.index(item) break t = ''.join(kls[index: klsaddparas[klsloc]]) k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment khyper_header_chap.append(temp) # append the name of subsection elif sep1 == 1: - if name_chap in line.lower() and kls.index(i) > 313 and ("\\paragraph{" in line or + if name_chap in line.lower() and kls.index(item) > 313 and ("\\paragraph{" in line or "\\subsubsection*{" in line) and "orthogonality relation" not in line.lower(): - for i in klsaddparas: - if index < i: - klsloc = klsaddparas.index(i) + for item in klsaddparas: + if index < item: + klsloc = klsaddparas.index(item) break t = ''.join(kls[index: klsaddparas[klsloc]]) k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment khyper_header_chap.append(temp) # append the name of subsection elif sep1 == 2: - if name_chap in line.lower() and kls.index(i) > 313 and ("\\paragraph{" in line or + if name_chap in line.lower() and kls.index(item) > 313 and ("\\paragraph{" in line or "\\subsubsection*{" in line): - for i in klsaddparas: - if index < i: - klsloc = klsaddparas.index(i) + for item in klsaddparas: + if index < item: + klsloc = klsaddparas.index(item) break t = ''.join(kls[index: klsaddparas[klsloc]]) k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment khyper_header_chap.append(temp) # append the name of subsection - for i in khyper_header_chap: - if i == "Pseudo Jacobi (or Routh-Romanovski)": - khyper_header_chap[khyper_header_chap.index(i)] = "Pseudo Jacobi" + for item in khyper_header_chap: + if item == "Pseudo Jacobi (or Routh-Romanovski)": + khyper_header_chap[khyper_header_chap.index(item)] = "Pseudo Jacobi" k_hyp_index_iii = 0 offset = 0 - i = 0 - while i < len(khyper_header_chap): + item = 0 + while item < len(khyper_header_chap): try: - if khyper_header_chap[i] == khyper_header_chap[i+1]: - k_hyper_sub_chap[i + 1] = k_hyper_sub_chap[i] + "\paragraph{\\bf KLS Addendum: " + \ - word + "}\n" + k_hyper_sub_chap[i + 1] - khyper_header_chap[i] = "memes" - k_hyper_sub_chap[i] = "memes" + if khyper_header_chap[item] == khyper_header_chap[item+1]: + k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: " + \ + word + "}\n" + k_hyper_sub_chap[item + 1] + khyper_header_chap[item] = "memes" + k_hyper_sub_chap[item] = "memes" else: - i += 1 + item += 1 except IndexError: - i += 1 + item += 1 a = 0 while a < len(khyper_header_chap): @@ -183,22 +136,22 @@ def fix_chapter_sort(kls, chap, word, sortloc): else: a += 1 - global sorterIIIcheck + global sorter_check chap9 = 0 - if sorterIIIcheck[sortloc][0] == 0: + if sorter_check[sortloc][0] == 0: tempref = ref9_3 - sorterIIIcheck[sortloc][0] += 1 + sorter_check[sortloc][0] += 1 chap9 = 1 else: tempref = ref14_3 - offset = sorterIIIcheck[sortloc][1] + offset = sorter_check[sortloc][1] if sep1 == 1: offset = 8 for d in range(0, len(tempref)): # check every section and subsection line - i = tempref[d] - line = str(chap[i]) + item = tempref[d] + line = str(chap[item]) if "\\section{" in line or "\\subsection{" in line: if "\\subsection{" in line: temp = line[12:line.find("}", 7)] @@ -215,7 +168,7 @@ def fix_chapter_sort(kls, chap, word, sortloc): chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] if chap9 == 1: - sorterIIIcheck[sortloc][1] += 1 + sorter_check[sortloc][1] += 1 k_hyp_index_iii += 1 except IndexError: print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") @@ -246,14 +199,12 @@ def fix_chapter_sort(kls, chap, word, sortloc): print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") if len(hyper_headers_chap) != 0: - print "Stuff for checking" - print k_hyper_sub_chap - print khyper_header_chap - print hyper_headers_chap - print word - sortmatch.append(word) + # print "Stuff for checking" + # print k_hyper_sub_chap + # print khyper_header_chap + # print hyper_headers_chap + # print word sortmatch_2.append(k_hyper_sub_chap) - sorterIIIcheck[sortloc][2] = word def cutwords(word_to_find, word_to_search_in): @@ -270,16 +221,12 @@ def cutwords(word_to_find, word_to_search_in): a = word_to_find b = word_to_search_in precheck = 1 - checkloop = False if a in b: if "\paragraph{\large\bf KLSadd: " or "\subsubsection*{\large\bf KLSadd: " in b: - while checkloop == False: - if "\\paragraph{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)]: - cut = b[:b.find(a) - precheck] + b[b.find(a) + len(a):] - return cut - elif "\\subsubsection*{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)]: - cut = b[:b.find(a) - precheck] + b[b.find(a) + len(a):] - return cut + while True: + if "\\paragraph{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)] or \ + "\\subsubsection*{\\large\\bf KLSadd: " in b[b.find(a) - precheck:b.find(a)]: + return b[:b.find(a) - precheck] + b[b.find(a) + len(a):] else: precheck += 1 @@ -307,7 +254,7 @@ def prepare_for_PDF(chap): return chap -def get_commands(kls): +def get_commands(kls, new_commands): """ this method reads in relevant commands that are in KLSadd.tex and returns them as a list @@ -353,7 +300,7 @@ def insert_commands(kls, chap, cms): # method to find the indices of the reference paragraphs -def find_references(chapter, chapticker): +def find_references(chapter, chapticker, math_people): """ This function searches the chapters and locates potential destinations of additions from the addendum. It puts these destinations in a list. @@ -387,20 +334,16 @@ def find_references(chapter, chapticker): ("Pseudo Jacobi" in w and "Pseudo Jacobi (or Routh-Romanovski)" in subunit): canadd = True if chapticker == 0: - ref9_2.append(index) ref9_3.append(index) elif chapticker == 1: - ref14_2.append(index) ref14_3.append(index) specialdetector = 0 if"\\subsection*{References}" in word and canadd: # Appends valid locations references.append(index) if chapticker == 0: - ref9_2.append(index) ref9_3.append(index) elif chapticker == 1: - ref14_2.append(index) ref14_3.append(index) canadd = False if "subsection*{" in word and "References" not in word: @@ -470,59 +413,64 @@ def reference_placer(chap, references, p, chapticker2): # method to change file string(actually a list right now), returns string to be written to file # If you write a method that changes something, it is preffered that you call the method in here -def fix_chapter(chap, references, p, kls, kls_list_all, chapticker2): +def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2): """ Removes specific lines stopping the latex file from converting into python, as well as running the functions responsible for sorting sections and placing the correct additions in the correct places :param chap: Chapter being processed. :param references: List containing references (used in reference placer). - :param p: List containing additions to be added. + :param paragraphs_to_be_added: List containing additions to be added. :param kls: The addendum that contains sections to be added (not processed). :param kls_list_all: List of all identified keywords, fed into the chapter sorter. :param chapticker2: Which chapter is being searched (9 or 14). :return: """ - sortloc = 0 + sort_location = 0 for i in kls_list_all: - fix_chapter_sort(kls, chap, i, sortloc) - sortloc += 1 + fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2) + sort_location += 1 - for a in range(len(p)-1): + for a in range(len(paragraphs_to_be_added)-1): for b in sortmatch_2: for c in b: with open(DATA_DIR + "compare.tex", "a") as spook: - spook.write(p[a]) + spook.write(paragraphs_to_be_added[a]) spook.write("NEXT: ") + # i = 0 + # while i < len(c) - 1: + # if c[i:i + 1] == '\n': + # c = c[:i] + c[i + 1:] + # else: + # i += 1 + # i = 0 + # shortened_paras = paragraphs_to_be_added[a] + # while i < len(shortened_paras) - 1: + # if shortened_paras[i:i + 1] == '\n': + # shortened_paras = shortened_paras[:i] + shortened_paras[i + 1:] + # else: + # i += 1 + # paragraphs_to_be_added[a] = shortened_paras if "%" == c[-2]: - c = c[:-3] - #print "memes" - #print c + c = c[:-3] + #print "memes" + #print c elif "%" == c[-1]: - c = c[:-2] + c = c[:-2] #print "extramemes" #print c - if "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in c: - print "memes" - print c - print "memes" - if "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in p[a]: - print "extramemes" - print p[a] - print "extramemes" - #if "9.1 Wilson" in p[a]: - # print "l2" - # print c - # print "pause" - # print p[a] - # print "l2" - p[a] = cutwords(c, p[a]) - - reference_placer(chap, references, p, chapticker2) + # if "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in c and \ + # "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in p[a]: + # print "MEMESBEGIN"*20 + # print c + # print "MEMESEND"*24 + paragraphs_to_be_added[a] = cutwords(c, paragraphs_to_be_added[a]) + + reference_placer(chap, references, paragraphs_to_be_added, chapticker2) chap = prepare_for_PDF(chap) - cms = get_commands(kls) + cms = get_commands(kls,new_commands) chap = insert_commands(kls, chap, cms) commentticker = 0 @@ -560,11 +508,23 @@ def main(): :return: """ + chap_nums = [] + new_commands = [] # used to hold the indexes of the commands + + # contains the locations of things with "paragraph{" in KLSadd, these are subsections that need to be sorted + klsaddparas = [] + math_people = [] + + # Stores all keywords + kls_list_full = [] + + sortmatch_2 = [] + # open the KLSadd file to do things with with open(DATA_DIR + "KLSaddII.tex", "r") as add: # store the file as a string addendum = add.readlines() - kls_list_all = new_keywords(addendum) + kls_list_all = new_keywords(addendum, kls_list_full) # Makes sections look like other sections for word in addendum: @@ -588,14 +548,10 @@ def main(): chap_nums.append(9) name = word[word.find("{") + 1: word.find("}")] math_people.append(name + "#") - specref9.append(index-1) if "14." in word: chap_nums.append(14) name = word[word.find("{") + 1: word.find("}")] math_people.append(name + "#") - if len(specref14) == 0: - specref9.append(index - 1) - specref14.append(index - 1) indexes.append(index-1) if "paragraph{" in word and index > 313: klsaddparas.append(index-1) @@ -607,10 +563,10 @@ def main(): print(indexes) # now indexes holds all of the places there is a section # using these indexes, get all of the words in between and add that to the paras[] + paras = [] for i in range(len(indexes)-1): box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(box) - print(box) box2 = ''.join(addendum[indexes[35]: 2245]) paras.append(box2) @@ -633,19 +589,19 @@ def main(): # call the findReferences method to find the index of the References paragraph in the two file strings # two variables for the references lists one for chapter 9 one for chapter 14 chapticker = 0 - references9 = find_references(entire9, chapticker) + references9 = find_references(entire9, chapticker, math_people) chapticker += 1 - references14 = find_references(entire14, chapticker) + references14 = find_references(entire14, chapticker, math_people) ref14_3.insert(88, 1217) ref14_3.insert(244, 3053) ref14_3.insert(198, 2554) # call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2)) + str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2)) chapticker2 += 1 - str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2)) + str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2)) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part From 921542804ba6a3427c643ac5067183cb4117706e Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 10:16:36 -0400 Subject: [PATCH 244/402] Add tests for main function --- eCF/src/MathematicaToLaTeX.py | 27 ++++++------- eCF/test/test_main.py | 73 +++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 eCF/test/test_main.py diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index f4e4242..e14a029 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -651,22 +651,22 @@ def convert_fraction(line): # ()/() line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ .format(line[:j + 1], line[j + 2:i - 1], - line[i + 2:k], line[k + 1:]) + line[i + 2:k], line[k + 1:]) elif line[j + 1] == '(' and line[i - 1] == ')': # ()/-- line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ .format(line[:j + 1], line[j + 2:i - 1], - line[i + 1:k + 1], line[k + 1:]) + line[i + 1:k + 1], line[k + 1:]) elif line[i + 1] == '(' and line[k] == ')': # --/() line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ .format(line[:j + 1], line[j + 1:i], - line[i + 2:k], line[k + 1:]) + line[i + 2:k], line[k + 1:]) else: # --/-- line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ .format(line[:j + 1], line[j + 1:i], - line[i + 1:k + 1], line[k + 1:]) + line[i + 1:k + 1], line[k + 1:]) i += 1 @@ -757,21 +757,14 @@ def replace_vars(line): return line -def main(): +def main(pathw, pathr, test): """ Opens Mathematica file with identities and puts converted lines into newIdentities.tex. """ - test = False - with open(os.path.dirname(os.path.realpath(__file__)) + - '/../data/newIdentities.tex', 'w') as latex: - if test: - to_open = 'IdentitiesTest.m' - else: - to_open = 'Identities.m' - with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/' + - to_open, 'r') as mathematica: + with open(pathw, 'w') as latex: + with open(pathr, 'r') as mathematica: latex.write('\n\\documentclass{article}\n\n' '\\usepackage{amsmath}\n' @@ -866,4 +859,8 @@ def main(): FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) if __name__ == '__main__': - main() + main( + os.path.dirname(os.path.realpath(__file__)) + + '/../data/newIdentities.tex', + os.path.dirname(os.path.realpath(__file__)) + + '/../data/IdentitiesTest.m', False) diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py new file mode 100644 index 0000000..9c85af9 --- /dev/null +++ b/eCF/test/test_main.py @@ -0,0 +1,73 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import main + +import os + +PATHW = os.path.dirname(os.path.realpath(__file__)) + '/data/test.tex' +PATHR = os.path.dirname(os.path.realpath(__file__)) + '/data/test.m' + + +class TestMain(TestCase): + + def test_test(self): + main(PATHW, PATHR, True) + with open(PATHW, 'r') as l: + latex = l.read() + self.assertEqual( + latex, ('\n' + '\\documentclass{article}\n' + '\n' + '\\usepackage{amsmath}\n' + '\\usepackage{amsthm}\n' + '\\usepackage{amssymb}\n' + '\\usepackage{amsfonts}\n' + '\\usepackage{breqn}\n' + '\\usepackage{DLMFmath}\n' + '\\usepackage{DRMFfcns}\n' + '\\usepackage{DLMFfcns}\n' + '\\usepackage{graphicx}\n' + '\\usepackage[paperwidth=20in, paperheight=20in, margin=0.5in]{geometry}\n' + '\n' + '\\begin{document}\n' + '\n' + '\n' + '% {"description", number}%\n' + '\\begin{equation*}\n' + 'equation\n' + '\\end{equation*}\n' + '\n' + '\n' + '\\end{document}\n')) + + def test_test(self): + main(PATHW, PATHR, False) + with open(PATHW, 'r') as l: + latex = l.read() + self.assertEqual( + latex, ('\n' + '\\documentclass{article}\n' + '\n' + '\\usepackage{amsmath}\n' + '\\usepackage{amsthm}\n' + '\\usepackage{amssymb}\n' + '\\usepackage{amsfonts}\n' + '\\usepackage{breqn}\n' + '\\usepackage{DLMFmath}\n' + '\\usepackage{DRMFfcns}\n' + '\\usepackage{DLMFfcns}\n' + '\\usepackage{graphicx}\n' + '\\usepackage[paperwidth=20in, paperheight=20in, margin=0.5in]{geometry}\n' + '\n' + '\\begin{document}\n' + '\n' + '\n' + '\\begin{equation*} \\tag{description, number}\n' + 'equation\n' + '\\end{equation*}\n' + '\n' + '\n' + '\\end{document}\n')) From b391ffba08cd4614b1a84b92ed769dff7d20b28e Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 10:27:04 -0400 Subject: [PATCH 245/402] Add test/data directory --- eCF/test/data/test.m | 2 ++ eCF/test/data/test.tex | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 eCF/test/data/test.m create mode 100644 eCF/test/data/test.tex diff --git a/eCF/test/data/test.m b/eCF/test/data/test.m new file mode 100644 index 0000000..740f5d1 --- /dev/null +++ b/eCF/test/data/test.m @@ -0,0 +1,2 @@ +(* {"description", number}*) +equation diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex new file mode 100644 index 0000000..8585591 --- /dev/null +++ b/eCF/test/data/test.tex @@ -0,0 +1,23 @@ + +\documentclass{article} + +\usepackage{amsmath} +\usepackage{amsthm} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} +\usepackage{DLMFfcns} +\usepackage{graphicx} +\usepackage[paperwidth=20in, paperheight=20in, margin=0.5in]{geometry} + +\begin{document} + + +\begin{equation*} \tag{description, number} +equation +\end{equation*} + + +\end{document} From db031eede63d0a4fceaac4fb5e8ed0919a7db6a3 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 10:27:37 -0400 Subject: [PATCH 246/402] Move specific gitignore from repo to project --- .gitignore | 11 ----------- eCF/.gitignore | 11 +++++++++++ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 1d43b2a..5c0f18c 100644 --- a/.gitignore +++ b/.gitignore @@ -251,14 +251,3 @@ sympy-plots-for-*.tex/ *.bak *.sav -# ecf project -*.sty -Identities.* -newIdentities.* -*.csv -macros.txt -test.* -*.log -*.aux -ZE.3.* - diff --git a/eCF/.gitignore b/eCF/.gitignore index e6caac9..26cb15a 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -16,3 +16,14 @@ tasks.txt *.sty *.aux *.csv + + +# ecf project +*.sty +Identities.* +newIdentities.* +*.csv +macros.txt +*.log +*.aux +ZE.3.* \ No newline at end of file From 33175adc7ecd9dec622f0c91f8d68d9c0da0de26 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 10:33:33 -0400 Subject: [PATCH 247/402] Fix duplicate function names --- eCF/test/test_main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 9c85af9..e27319a 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -43,7 +43,7 @@ def test_test(self): '\n' '\\end{document}\n')) - def test_test(self): + def test_nottest(self): main(PATHW, PATHR, False) with open(PATHW, 'r') as l: latex = l.read() From 20a51bcad25b79db0157f565e28a6c67d757390e Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 10:37:05 -0400 Subject: [PATCH 248/402] Modify main function to use defaults --- eCF/src/MathematicaToLaTeX.py | 11 +++++------ eCF/test/data/test.tex | 3 ++- eCF/test/test_main.py | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index e14a029..52f047b 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -757,7 +757,10 @@ def replace_vars(line): return line -def main(pathw, pathr, test): +def main(pathw=os.path.dirname(os.path.realpath(__file__)) + + '/../data/newIdentities.tex', + pathr=os.path.dirname(os.path.realpath(__file__)) + + '/../data/Identities.m', test=False): """ Opens Mathematica file with identities and puts converted lines into newIdentities.tex. @@ -859,8 +862,4 @@ def main(pathw, pathr, test): FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) if __name__ == '__main__': - main( - os.path.dirname(os.path.realpath(__file__)) + - '/../data/newIdentities.tex', - os.path.dirname(os.path.realpath(__file__)) + - '/../data/IdentitiesTest.m', False) + main() diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index 8585591..c6c4f9e 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -15,7 +15,8 @@ \begin{document} -\begin{equation*} \tag{description, number} +% {"description", number}% +\begin{equation*} equation \end{equation*} diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index e27319a..0945eea 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -14,7 +14,7 @@ class TestMain(TestCase): def test_test(self): - main(PATHW, PATHR, True) + main(pathw=PATHW, pathr=PATHR, test=True) with open(PATHW, 'r') as l: latex = l.read() self.assertEqual( @@ -44,7 +44,7 @@ def test_test(self): '\\end{document}\n')) def test_nottest(self): - main(PATHW, PATHR, False) + main(pathw=PATHW, pathr=PATHR, test=False) with open(PATHW, 'r') as l: latex = l.read() self.assertEqual( From 5181097b114fa6f72d91de1b1819755654e3aa12 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 13:05:29 -0400 Subject: [PATCH 249/402] First Unit Tests & Code Cleaning --- KLSadd_insertion/README.md | 13 ++- KLSadd_insertion/src/updateChapters.py | 79 +++++-------------- KLSadd_insertion/test/test_fix_chapter.py | 8 ++ .../test/test_generic_functions.py | 20 +++++ KLSadd_insertion/test/test_new_keywords.py | 6 -- 5 files changed, 55 insertions(+), 71 deletions(-) create mode 100644 KLSadd_insertion/test/test_generic_functions.py delete mode 100644 KLSadd_insertion/test/test_new_keywords.py diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index f08662d..9b6f635 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -13,7 +13,7 @@ NOTE: The KLSadd.tex file only deals with chapters 9 and 14, as stated in the do NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file, tempchap9.tex, and tempchap14.tex in order to run the program. The program *generates* updated9.tex and updated14.tex files. -**THIS MEANS YOU SHOULD NOT RUN updateChapters.py OR linetest.py FROM YOUR GIT DIRECTORY. THE CHAPTER FILES ARE NOT PUBLIC DOMAIN, DO NOT COMMIT THEM! COPY THE FILES OVER INTO A SEPERATE DIRECTORY AND THEN COPY THEM BACK OVER WHEN YOU ARE READY TO COMMIT** +**DO NOT REMOVE INPUT FILES FROM .GITIGNORE, THEY ARE NOT PUBLIC** This is a roadmap of updateChapters.py. It will help explain every piece of code and exactly how everything works in relation to each other. @@ -32,7 +32,6 @@ First: the files - linetest.py: this abomination of code is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. - newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what the output to updateChapters.py should be like!!!!!!! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Next: the specifications @@ -62,7 +61,7 @@ So in the chapter 9 file, section 15 "Dogs", before the References subsection, w ```latex \paragraph{\large\bf Beagles} ``` - +--- **It is important to note that these changes are currently (3/25/16) unimplemented in updateChapters.py and only exist in linetest.py, if you want to see how the output to updateChapters.py should look, look at newtempchap09.tex** So after updateChapters.py is called, the chapter 9 file should look like this: @@ -80,7 +79,6 @@ in $a,b,c,d$. \cite{Dogs101} ``` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The variables: These are the variables in the beginning @@ -95,7 +93,8 @@ These are the variables in the beginning -comms: holds the actual strings of the commands found from the line numbers stored in newCommands -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--- + The methods: -prepareForPDF(chap): this method inserts some packages needed by LATEX files to be turned into pdf files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. @@ -107,7 +106,7 @@ The methods: -findReferences(str): takes a string representation of a chapter file. Returns a list of the line numbers of the "References" subsections. This references variable is used as an index as to where the paragraphs in paras should be inserted -fixChapter(chap, references, p, kls): takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + At this point, the code is like 90% comments. The big chunk at the bottom under the "with open..." can be explained through the comments. @@ -117,7 +116,7 @@ The chapters and KLSadd are turned into Strings and passed through the fixChapte Then the strings are written into seperate updated chapter files. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--- However, its broken. Inserted text comes in random places between paragraphs and sometimes stuff isn't added. This shouldn't be that hard to fix but it will require combing through the code a lot of times and changing little things here and there until everything works. As a last ditch effort, we can always resort to using linetext.py and adding stuff in from there. diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index a68fb59..18e3a61 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -15,7 +15,7 @@ sorter_check = [[0 for _ in range(w)] for __ in range(h)] -def repeated_item_deleter(list): +def extraneous_section_deleter(list): item = 0 while item < len(list): if "reference" in list[item].lower() or "limit relation" in list[item].lower(): @@ -38,8 +38,9 @@ def new_keywords(kls, kls_list): for item in kls: if "paragraph{" in item or "subsubsection*{" in item: kls_list.append(item[item.find("{") + 1: len(item) - 2]) + print item[item.find("{") + 1: len(item) - 2] - kls_list = repeated_item_deleter(kls_list) + kls_list = extraneous_section_deleter(kls_list) kls_list.append("Limit Relation") for item in kls_list: @@ -73,42 +74,25 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): k_hyper_sub_chap = [] index = 0 + chapterstart = False for item in kls: index += 1 line = str(item) if "\\subsection" in line: temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) + if temp.lower() == 'wilson': + chapterstart = True + if sep1 in (0, 2) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ + (sep1 == 1 and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart + and ("\\paragraph{" in line or "\\subsubsection*{" in line)): + for item in klsaddparas: + if index < item: + klsloc = klsaddparas.index(item) + break + t = ''.join(kls[index: klsaddparas[klsloc]]) + k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + khyper_header_chap.append(temp) # append the name of subsection - if sep1 == 0: - if name_chap in line.lower() and kls.index(item) > 313 and ("\\paragraph{" in line or - "\\subsubsection*{" in line): - for item in klsaddparas: - if index < item: - klsloc = klsaddparas.index(item) - break - t = ''.join(kls[index: klsaddparas[klsloc]]) - k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment - khyper_header_chap.append(temp) # append the name of subsection - elif sep1 == 1: - if name_chap in line.lower() and kls.index(item) > 313 and ("\\paragraph{" in line or - "\\subsubsection*{" in line) and "orthogonality relation" not in line.lower(): - for item in klsaddparas: - if index < item: - klsloc = klsaddparas.index(item) - break - t = ''.join(kls[index: klsaddparas[klsloc]]) - k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment - khyper_header_chap.append(temp) # append the name of subsection - elif sep1 == 2: - if name_chap in line.lower() and kls.index(item) > 313 and ("\\paragraph{" in line or - "\\subsubsection*{" in line): - for item in klsaddparas: - if index < item: - klsloc = klsaddparas.index(item) - break - t = ''.join(kls[index: klsaddparas[klsloc]]) - k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment - khyper_header_chap.append(temp) # append the name of subsection for item in khyper_header_chap: if item == "Pseudo Jacobi (or Routh-Romanovski)": khyper_header_chap[khyper_header_chap.index(item)] = "Pseudo Jacobi" @@ -149,6 +133,9 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): if sep1 == 1: offset = 8 + if sep1 == 2: + name_chap = 'hypergeometric representation' + for d in range(0, len(tempref)): # check every section and subsection line item = tempref[d] line = str(chap[item]) @@ -158,8 +145,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): else: temp = line[9:line.find("}", 7)] - if sep1 == 0: - if name_chap in line.lower(): + if name_chap in line.lower(): + if sep1 in (0, 2) or sep1 == 1 and "orthogonality relation" not in line: hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in @@ -172,31 +159,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): k_hyp_index_iii += 1 except IndexError: print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") - elif sep1 == 1: - if name_chap in line.lower() and "orthogonality relation" not in line: - hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection - hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in - - if temp in khyper_header_chap: - try: - chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" - chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] - k_hyp_index_iii += 1 - except IndexError: - print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") - elif sep1 == 2: - if "hypergeometric representation" in line.lower(): - hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection - hyper_headers_chap.append( - temp) # appends the name of the section the hypergeo subsection is in so we can compare - if temp in khyper_header_chap: - try: - chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: Special Value }" - chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] - k_hyp_index_iii += 1 - except IndexError: - print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") if len(hyper_headers_chap) != 0: # print "Stuff for checking" diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py index e69de29..ab93c2f 100644 --- a/KLSadd_insertion/test/test_fix_chapter.py +++ b/KLSadd_insertion/test/test_fix_chapter.py @@ -0,0 +1,8 @@ +bob = "memes\nbanana" +i = 0 +while i < len(bob) - 1: + if bob[i:i + 1] == '\n': + bob = bob[:i] + bob[i+1:] + else: + i += 1 +print bob \ No newline at end of file diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py new file mode 100644 index 0000000..0a80086 --- /dev/null +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -0,0 +1,20 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import new_keywords +from updateChapters import extraneous_section_deleter + + +class TestNewKeywords(TestCase): + + def test_new_keywords(self): + self.assertEquals(new_keywords(['\\subsubsection*{ThisIsATest}\n'],[]), ['ThisIsATest', 'Limit Relation']) + + +class TestExtraneousSectionDeleter(TestCase): + + def testExtraneousSectionDeleter(self): + self.assertEquals(extraneous_section_deleter(['reference', 'bananas', 'limit relation', '458673', + 'limit relations', 'apple']), ['bananas', '458673', 'apple']) \ No newline at end of file diff --git a/KLSadd_insertion/test/test_new_keywords.py b/KLSadd_insertion/test/test_new_keywords.py deleted file mode 100644 index 45e5add..0000000 --- a/KLSadd_insertion/test/test_new_keywords.py +++ /dev/null @@ -1,6 +0,0 @@ - -__author__ = 'Edward Bian' -__status__ = 'Development' - -from unittest import TestCase -from updateChapters import \ No newline at end of file From fb5cd99c594985425d796b24300cd997086ef4ed Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 13:36:13 -0400 Subject: [PATCH 250/402] More Unit Tests --- KLSadd_insertion/src/updateChapters.py | 16 ++++------------ KLSadd_insertion/test/test_generic_functions.py | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 18e3a61..ea66d42 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -16,13 +16,7 @@ def extraneous_section_deleter(list): - item = 0 - while item < len(list): - if "reference" in list[item].lower() or "limit relation" in list[item].lower(): - del list[item] - else: - item += 1 - return list + return [item for item in list if "reference" not in item.lower() and "limit relation" not in item.lower()] def new_keywords(kls, kls_list): @@ -38,8 +32,6 @@ def new_keywords(kls, kls_list): for item in kls: if "paragraph{" in item or "subsubsection*{" in item: kls_list.append(item[item.find("{") + 1: len(item) - 2]) - print item[item.find("{") + 1: len(item) - 2] - kls_list = extraneous_section_deleter(kls_list) kls_list.append("Limit Relation") @@ -170,7 +162,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): sortmatch_2.append(k_hyper_sub_chap) -def cutwords(word_to_find, word_to_search_in): +def cut_words(word_to_find, word_to_search_in): """ This function checks through the outputs of later sections and removes duplicates, so that the output file does not have duplicates. @@ -185,7 +177,7 @@ def cutwords(word_to_find, word_to_search_in): b = word_to_search_in precheck = 1 if a in b: - if "\paragraph{\large\bf KLSadd: " or "\subsubsection*{\large\bf KLSadd: " in b: + if "\\paragraph{\\large\\bf KLSadd: " in b or "\\subsubsection*{\\large\\bf KLSadd: " in b: while True: if "\\paragraph{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)] or \ "\\subsubsection*{\\large\\bf KLSadd: " in b[b.find(a) - precheck:b.find(a)]: @@ -429,7 +421,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha # print "MEMESBEGIN"*20 # print c # print "MEMESEND"*24 - paragraphs_to_be_added[a] = cutwords(c, paragraphs_to_be_added[a]) + paragraphs_to_be_added[a] = cut_words(c, paragraphs_to_be_added[a]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) chap = prepare_for_PDF(chap) diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index 0a80086..c87c788 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -5,7 +5,7 @@ from unittest import TestCase from updateChapters import new_keywords from updateChapters import extraneous_section_deleter - +from updateChapters import cut_words class TestNewKeywords(TestCase): @@ -15,6 +15,17 @@ def test_new_keywords(self): class TestExtraneousSectionDeleter(TestCase): - def testExtraneousSectionDeleter(self): + def test_extraneous_section_deleter(self): self.assertEquals(extraneous_section_deleter(['reference', 'bananas', 'limit relation', '458673', - 'limit relations', 'apple']), ['bananas', '458673', 'apple']) \ No newline at end of file + 'limit relations', 'apple']), ['bananas', '458673', 'apple']) + + +class TestCutWords(TestCase): + + def test_cut_words(self): + self.assertEquals(cut_words('MoreWords','WordsAndSomeMoreWords'), 'WordsAndSome') + self.assertEquals(cut_words('SupposedToFail', 'WordsAndSomeMoreWords'), 'WordsAndSomeMoreWords') + self.assertEquals(cut_words('StuffFromAddenum', '''\\paragraph{\\large\\bf KLSadd: TestCase}StuffFromAddenum\\begin{equation}\\end{equation}'''), + '''\\begin{equation}\\end{equation}''') + #self.assertEquals(extraneous_section_deleter(['reference', 'bananas', 'limit relation', '458673', + # 'limit relations', 'apple']), ['bananas', '458673', 'apple']) \ No newline at end of file From 9792d35369108ae814a0c10ce91276c0cda51b7b Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 13:45:54 -0400 Subject: [PATCH 251/402] Add tests for master_function function --- eCF/src/MathematicaToLaTeX.py | 10 +++-- eCF/test/test_master_function.py | 71 ++++++++++++++++++++++++++++++++ eCF/test/test_replace_vars.py | 4 +- 3 files changed, 79 insertions(+), 6 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 52f047b..92d9bcc 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -758,9 +758,9 @@ def replace_vars(line): def main(pathw=os.path.dirname(os.path.realpath(__file__)) + - '/../data/newIdentities.tex', + '/../data/newIdentities.tex', pathr=os.path.dirname(os.path.realpath(__file__)) + - '/../data/Identities.m', test=False): + '/../data/IdentitiesTest.m', test=True): """ Opens Mathematica file with identities and puts converted lines into newIdentities.tex. @@ -806,8 +806,8 @@ def main(pathw=os.path.dirname(os.path.realpath(__file__)) + line = line.replace('EulerGamma', '\\EulerConstant') - for i in FUNCTION_CONVERSIONS: - line = master_function(line, i) + for func in FUNCTION_CONVERSIONS: + line = master_function(line, func) line = carat(line) @@ -861,5 +861,7 @@ def main(pathw=os.path.dirname(os.path.realpath(__file__)) + FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) + if __name__ == '__main__': main() + diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index 427bd1d..39434fc 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -2,6 +2,77 @@ __author__ = 'Kevin Chen' __status__ = 'Development' +import os from unittest import TestCase from MathematicaToLaTeX import master_function +from MathematicaToLaTeX import arg_split + +with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/functions') as functions: + FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line + in functions.read().split('\n') + if (line != '' and '#' not in line)) + + +for index, item in enumerate(FUNCTION_CONVERSIONS): + FUNCTION_CONVERSIONS[index][2] = tuple(arg_split(FUNCTION_CONVERSIONS[index][2][1:-1], ',')) + + if FUNCTION_CONVERSIONS[index][3] == '()': + FUNCTION_CONVERSIONS[index][3] = '' + else: + FUNCTION_CONVERSIONS[index][3] = tuple(FUNCTION_CONVERSIONS[index][3][1:-1].split(',')) + + FUNCTION_CONVERSIONS[index] = tuple(FUNCTION_CONVERSIONS[index]) + +FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) + + +class TestMasterFunction(TestCase): + + def test_conversion(self): + for function in FUNCTION_CONVERSIONS: + for case in function[2]: + args = list('abcdefg'[:case.count('-')]) + before = function[0] + '[' + ','.join(args) + ']' + after = function[1] + case.replace('-', '%s') + + if function[0] == 'GegenbauerC': + args[0], args[1] = args[1], args[0] + if function[0] == 'HarmonicNumber' and case.count('-') == 2: + args[0], args[1] = args[1], args[0] + if function[0] == 'LaguerreL' and case.count('-') == 3: + args[0], args[1] = args[1], args[0] + + after %= tuple(args) + + if function[0] == 'HypergeometricPFQ': + self.assertEqual(master_function('HypergeometricPFQ[{},{},a]', function), + '\\HyperpFq{0}{0}@@{}{}{a}') + self.assertEqual(master_function('--HypergeometricPFQ[{},{},a]--', function), + '--\\HyperpFq{0}{0}@@{}{}{a}--') + self.assertEqual(master_function('HypergeometricPFQ[{a,b,c},{d,e,f},g]', function), + '\\HyperpFq{3}{3}@@{a,b,c}{d,e,f}{g}') + self.assertEqual(master_function('--HypergeometricPFQ[{a,b,c},{d,e,f},g]--', function), + '--\\HyperpFq{3}{3}@@{a,b,c}{d,e,f}{g}--') + elif function[0] == 'QHypergeometricPFQ': + self.assertEqual(master_function('QHypergeometricPFQ[{},{},a,b]', function), + '\\qHyperrphis{0}{0}@@{}{}{a}{b}') + self.assertEqual(master_function('--QHypergeometricPFQ[{},{},a,b]--', function), + '--\\qHyperrphis{0}{0}@@{}{}{a}{b}--') + self.assertEqual(master_function('QHypergeometricPFQ[{a,b,c},{d,e,f},g,h]', function), + '\\qHyperrphis{3}{3}@@{a,b,c}{d,e,f}{g}{h}') + self.assertEqual(master_function('--QHypergeometricPFQ[{a,b,c},{d,e,f},g,h]--', function), + '--\\qHyperrphis{3}{3}@@{a,b,c}{d,e,f}{g}{h}--') + else: + self.assertEqual(master_function(before, function), after) + self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) + + def test_exception(self): + for function in FUNCTION_CONVERSIONS: + if function[3] != '': + for exception in function[3]: + self.assertEqual(master_function(exception + '[]', function), exception + '[]') + + def test_none(self): + for func in FUNCTION_CONVERSIONS: + self.assertEqual(master_function('nofunction', func), 'nofunction') diff --git a/eCF/test/test_replace_vars.py b/eCF/test/test_replace_vars.py index 9423174..5f4adb7 100644 --- a/eCF/test/test_replace_vars.py +++ b/eCF/test/test_replace_vars.py @@ -35,10 +35,10 @@ class TestReplaceVars(TestCase): def test_replace_symbols(self): for word in SYMBOLS: after = '\\' + SYMBOLS[word] - self.assertEquals(replace_vars('\\[' + word + ']'), after.replace('\\ ', '')) + self.assertEqual(replace_vars('\\[' + word + ']'), after.replace('\\ ', '')) def test_replace_infinity(self): - self.assertEquals(replace_vars('Infinity'), '\\infty') + self.assertEqual(replace_vars('Infinity'), '\\infty') def test_none(self): self.assertEqual(replace_vars('novariables'), 'novariables') From ca2fa5f1db0573eb1b9a414a69f1741cbba3bc66 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 13:51:38 -0400 Subject: [PATCH 252/402] Add one more test case for master_function function --- eCF/test/test_master_function.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index 39434fc..c9f5a32 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -54,6 +54,8 @@ def test_conversion(self): '\\HyperpFq{3}{3}@@{a,b,c}{d,e,f}{g}') self.assertEqual(master_function('--HypergeometricPFQ[{a,b,c},{d,e,f},g]--', function), '--\\HyperpFq{3}{3}@@{a,b,c}{d,e,f}{g}--') + self.assertEqual(master_function('HypergeometricPFQ[{},{},HypergeometricPFQ[{},{},a]]', function), + '\\HyperpFq{0}{0}@@{}{}{\\HyperpFq{0}{0}@@{}{}{a}}') elif function[0] == 'QHypergeometricPFQ': self.assertEqual(master_function('QHypergeometricPFQ[{},{},a,b]', function), '\\qHyperrphis{0}{0}@@{}{}{a}{b}') From 0dc3acf371b1ddbcb2a7548111387dac05424565 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 14:13:03 -0400 Subject: [PATCH 253/402] More Unit Tests --- KLSadd_insertion/test/test_commands.py | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 KLSadd_insertion/test/test_commands.py diff --git a/KLSadd_insertion/test/test_commands.py b/KLSadd_insertion/test/test_commands.py new file mode 100644 index 0000000..30cd77b --- /dev/null +++ b/KLSadd_insertion/test/test_commands.py @@ -0,0 +1,43 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import get_commands +from updateChapters import insert_commands +from updateChapters import prepare_for_pdf + + +class TestGetCommands(TestCase): + + def test_get_commands(self): + self.assertEquals(get_commands(['FakeCommands', 'MoreFakeCommands', '\\newcommand\\smallskipamount', 'Words', + '\\newcommandBob', '\\newcommand\\mybibitem[1]', 'KLSAddendumStuff', + '\\begin{document}'],[]), ['\\newcommand\\smallskipamount', 'Words', + '\\newcommandBob', '\\newcommand\\mybibitem[1]']) + + +class TestInsertCommands(TestCase): + + def test_insert_commands(self): + self.assertEquals(insert_commands(['Words','Commands','\\begin{document}','KLSAddendum', + '\subsection*{Introduction}'], + ['Words','Commands','\\begin{document}', + '\subsection*{Hypergeometric representation}'], + ['\\newcommand\\smallskipamount', '\\newcommand\\de\\delta', + '\\newcommand\\la\\lambda' + '\\newcommand\\mybibitem[1]']), + (['Words','Commands','\\newcommand\\smallskipamount', + '\\newcommand\\de\\delta', '\\newcommand\\la\\lambda' + '\\newcommand\\mybibitem[1]', '\\begin{document}', + '\subsection*{Hypergeometric representation}'])) + + +class TestPrepareForPDF(TestCase): + + def test_prepare_for_pdf(self): + self.assertEquals(prepare_for_pdf(['\\newcommand\\smallskipamount', '\usepackage[bottom]{footmisc}', + '\subsection*{Hypergeometric representation}']), + ['\\newcommand\\smallskipamount', '\usepackage[bottom]{footmisc}', + '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n', + '\subsection*{Hypergeometric representation}']) From acc6916efe2445a671d6c175a14ce5546e371b44 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 14:17:13 -0400 Subject: [PATCH 254/402] More Unit Tests --- KLSadd_insertion/src/updateChapters.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index ea66d42..3f65f90 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -191,7 +191,8 @@ def cut_words(word_to_find, word_to_search_in): else: return b -def prepare_for_PDF(chap): + +def prepare_for_pdf(chap): """ Edits the chapter string sent to include hyperref, xparse, and cite packages @@ -223,6 +224,7 @@ def get_commands(kls, new_commands): new_commands.append(index - 1) if "mybibitem[1]" in word: new_commands.append(index) + print new_commands return kls[new_commands[0]:new_commands[1]] @@ -424,8 +426,9 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha paragraphs_to_be_added[a] = cut_words(c, paragraphs_to_be_added[a]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) - chap = prepare_for_PDF(chap) + chap = prepare_for_pdf(chap) cms = get_commands(kls,new_commands) + print cms chap = insert_commands(kls, chap, cms) commentticker = 0 From c30290655bfa336c1d630bdcb310a00fc2c808f8 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 14:23:48 -0400 Subject: [PATCH 255/402] Add documentation to function and add extra space after eCF/.gitignore file --- eCF/.gitignore | 2 +- eCF/src/MathematicaToLaTeX.py | 139 ++++++++++++++++++++++++++++++---- 2 files changed, 126 insertions(+), 15 deletions(-) diff --git a/eCF/.gitignore b/eCF/.gitignore index 26cb15a..08e53cf 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -26,4 +26,4 @@ newIdentities.* macros.txt *.log *.aux -ZE.3.* \ No newline at end of file +ZE.3.* diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 92d9bcc..848e528 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -13,6 +13,8 @@ import os +DIR_NAME = os.path.dirname(os.path.realpath(__file__)) + '/../data/' + SYMBOLS = { 'Alpha': 'alpha', 'Beta': 'beta', 'Gamma': 'gamma', 'Delta': 'delta', 'Epsilon': 'epsilon', 'Zeta': 'zeta', 'Eta': 'eta', 'Theta': 'theta', @@ -41,9 +43,21 @@ def find_surrounding(line, function, ex=(), start=0): + # (str, str(, tuple, int)) -> tuple """ Finds the indices of the beginning and end of a function; this is the main function that powers the converter. + + :param line: line to be converted + :param function: the function you're trying to find the surrounding + brackets for + :param ex: exceptions that shouldn't be converted, because conversions do + not see if a function is a part of another function (e.g. the + function "NotEquals" could get converted if a program was told + the original is "Equals" + :param start: index of where to start finding (used if there are multiple + of one function in a line + :returns: converted line """ positions = [0, 0] line = line[start:] @@ -79,9 +93,14 @@ def find_surrounding(line, function, ex=(), start=0): def arg_split(line, sep): + # (str, str) -> list """ - Does the same thing as 'split', but does not split when the separator is + Works very much like 'split', but does not split when the separator is inside parentheses, brackets, or braces. Useful for nested statements. + + :param line: line to be split + :param sep: seperator (character) + :returns: list of segments """ l = list('([{') r = list(')]}') @@ -107,9 +126,16 @@ def arg_split(line, sep): def master_function(line, params): + # (str, tuple) -> str """ A master function, reads in the conversion templates from the 'functions' file and performs the conversion. + + :param line: line to be converted + :param params: tuple containing Mathematica function, equivalent LaTeX + function, the format, using "-" as argument placings, and + exceptions, if any + :returns: converted line """ m, l, sep, ex = params[:5] sep = [i.split('-') for i in sep] @@ -154,7 +180,13 @@ def master_function(line, params): def remove_inactive(line): - """Removes 'Inactive' and its surrounding brackets.""" + # (str) -> str + """ + Removes 'Inactive' and its surrounding brackets. + + :param line: line to be converted + :returns: converted line + """ for _ in range(line.count('Inactive')): pos = find_surrounding(line, 'Inactive') if pos[0] != pos[1]: @@ -164,7 +196,13 @@ def remove_inactive(line): def remove_conditionalexpression(line): - """Removes 'ConditionalExpression' and its surrounding brackets.""" + # (str) -> str + """ + Removes 'ConditionalExpression' and its surrounding brackets. + + :param line: line to be converted + :returns: converted line + """ for _ in range(line.count('ConditionalExpression')): pos = find_surrounding(line, 'ConditionalExpression') if pos[0] != pos[1]: @@ -174,7 +212,13 @@ def remove_conditionalexpression(line): def remove_symbol(line): - """Removes 'Symbol' and its surrounding brackets.""" + # (str) -> str + """ + Removes 'Symbol' and its surrounding brackets. + + :param line: line to be converted + :returns: converted line + """ for _ in range(line.count('Symbol')): pos = find_surrounding(line, 'Symbol') if pos[0] != pos[1]: @@ -184,12 +228,16 @@ def remove_symbol(line): def carat(line): + # (str) -> str """ Converts carats ('^') to ones with braces instead of parentheses. e.g: 'a ^ (b + c)' would only show the first character 'b' as superscript in LaTeX, but converting it to 'a ^ {b + c}' would make it look correct in LaTeX, with 'b + c' as the superscript. + + :param line: line to be converted + :returns: converted line """ l = list('([{') r = list(')]}') @@ -224,13 +272,12 @@ def carat(line): def beta(line): + # (str) -> str """ Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. - :type line: str :param line: line to be converted - :rtype: str :returns: converted line """ for _ in range(line.count('Beta')): @@ -258,8 +305,12 @@ def beta(line): def cfk(line): + # (str) -> str """ Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX macro. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('ContinuedFractionK')): try: @@ -289,9 +340,13 @@ def cfk(line): def gamma(line): + # (str) -> str """ Converts Mathematica's 'Gamma' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('Gamma')): try: @@ -329,8 +384,12 @@ def gamma(line): def integrate(line): + # (str) -> str """ Converts Mathematica's 'Integrate' function to the equivalent LaTeX macro. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('Integrate')): try: @@ -353,9 +412,13 @@ def integrate(line): def legendrep(line): + # (str) -> str """ Converts Mathematica's 'LegendreP' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('LegendreP')): try: @@ -386,9 +449,13 @@ def legendrep(line): def legendreq(line): + # (str) -> str """ Converts Mathematica's 'LegendreQ' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('LegendreQ')): try: @@ -419,9 +486,13 @@ def legendreq(line): def polyeulergamma(line): + # (str) -> str """ Converts Mathematica's 'Polygamma' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('PolyGamma')): try: @@ -446,8 +517,12 @@ def polyeulergamma(line): def product(line): + # (str) -> str """ Converts Mathematica's product sum function to the equivalent LaTeX macro. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('Product')): try: @@ -470,9 +545,13 @@ def product(line): def qpochhammer(line): + # (str) -> str """ Converts Mathematica's 'QPochhammer' function to the equivalent LaTeX macro. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('QPochhammer')): try: @@ -501,8 +580,12 @@ def qpochhammer(line): def summation(line): + # (str) -> str """ Converts Mathematica's summation function to the equivalent LaTeX macro. + + :param line: line to be converted + :returns: converted line """ for _ in range(line.count('Sum')): try: @@ -525,9 +608,13 @@ def summation(line): def constraint(line): + # (str) -> str """ Converts Mathematica's 'Element', 'NotElement', and 'Inequality' functions to LaTeX formatting using \\constraint{}. + + :param line: line to be converted + :returns: converted line """ sections = arg_split(line, ',') @@ -599,9 +686,13 @@ def constraint(line): def convert_fraction(line): + # (str) -> str """ Converts Mathematica fractions, which are only '/', to LaTeX \\frac{}{}-ions. + + :param line: line to be converted + :returns: converted line """ l = list('([{') r = list(')]}') @@ -674,7 +765,13 @@ def convert_fraction(line): def piecewise(line): - """Converts Mathematica's piecewise function to LaTeX, using 'cases'.""" + # (str) -> str + """ + Converts Mathematica's piecewise function to LaTeX, using 'cases'. + + :param line: line to be converted + :returns: converted line + """ for _ in range(line.count('Piecewise')): try: pos @@ -703,7 +800,13 @@ def piecewise(line): def replace_operators(line): - """Replaces basic operators.""" + # (str) -> str + """ + Replaces basic operators. + + :param line: line to be converted + :returns: converted line + """ line = line.replace('==', '=') line = line.replace('||', ' \\lor ') line = line.replace('>=', ' \\geq ') @@ -742,9 +845,13 @@ def replace_operators(line): def replace_vars(line): + # (str) -> str """ Replaces the easy to convert variables in Mathematica to its equivalent LaTeX code in the dictionary 'symbols'. + + :param line: line to be converted + :returns: converted line """ for word in SYMBOLS: if SYMBOLS[word][0] == ' ': @@ -757,13 +864,18 @@ def replace_vars(line): return line -def main(pathw=os.path.dirname(os.path.realpath(__file__)) + - '/../data/newIdentities.tex', - pathr=os.path.dirname(os.path.realpath(__file__)) + - '/../data/IdentitiesTest.m', test=True): +def main(pathw=DIR_NAME + 'newIdentities.tex', + pathr=DIR_NAME + 'IdentitiesTest.m', test=False): + # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into newIdentities.tex. + + :param pathw: directory of file to be written to + :param pathr: directory of file to be read from + :param test: if True, replaces "(* *)" with quotes; if False: uses "\\tag" + to mark the functions + :returns: None """ with open(pathw, 'w') as latex: @@ -841,7 +953,7 @@ def main(pathw=os.path.dirname(os.path.realpath(__file__)) + latex.write('\n\n\\end{document}\n') -with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/functions') \ +with open(DIR_NAME + 'functions') \ as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line in functions.read().split('\n') @@ -864,4 +976,3 @@ def main(pathw=os.path.dirname(os.path.realpath(__file__)) + if __name__ == '__main__': main() - From e413cae570fe1913cb4bbcea6d2167b251fbbe71 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 16 Aug 2016 14:47:12 -0400 Subject: [PATCH 256/402] Add comments for sections in code --- eCF/src/MathematicaToLaTeX.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 848e528..6033024 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -63,20 +63,18 @@ def find_surrounding(line, function, ex=(), start=0): line = line[start:] positions[0] = line.find(function) + # Finds the exceptions (if any) and returns indeces after the exception if ex != '' and len(ex) >= 1: for e in ex: if (line.find(e) != -1 and line.find(e) <= positions[0] and - line.find(e) + len(e) >= positions[0] + len( - function)): + line.find(e) + len(e) >= positions[0] + len(function)): return [line.find(e) + len(e) + start, line.find(e) + len(e) + start] + # Finds the start and end of a function count = 0 for j in range(positions[0] + len(function), len(line) + 1): - if j == len(line) and count == 0: - positions[1] = positions[0] - break if line[j] in list('([{'): count += 1 @@ -153,7 +151,7 @@ def master_function(line, params): if pos[0] != pos[1]: args = arg_split(line[pos[0] + len(m) + 1:pos[1] - 1], ',') - # exceptions: + # Special functions that change the order of arguments: if m == 'GegenbauerC': args[0], args[1] = args[1], args[0] if m == 'HarmonicNumber' and len(args) == 2: @@ -247,6 +245,8 @@ def carat(line): while i != len(line): if line[i] == '^': count = 0 + + # Searches for when a carat ends for k in range(i + 1, len(line)): if line[k] in l: count += 1 @@ -702,7 +702,7 @@ def convert_fraction(line): while i != len(line): if line[i] == '/': - # Searching left. + # Searches left count = 0 for j in range(i - 1, -1, -1): if line[j] in r: @@ -717,7 +717,7 @@ def convert_fraction(line): j -= 1 break - # Searching right. + # Searches right count = 0 for k in range(i + 1, len(line)): if line[k] in l: @@ -822,6 +822,8 @@ def replace_operators(line): line = line.replace('-', ' - ') line = line.replace(',', ', ') + # This is so that things in a constraint, which is denoted by percentage + # signs, don't get operators converted if '%' in line: parts = (line[:line.index('%')], line[line.index('%'):]) line = parts[0] @@ -865,7 +867,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'IdentitiesTest.m', test=False): + pathr=DIR_NAME + 'Identities.m', test=False): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into @@ -898,8 +900,8 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', for line in mathematica: line = line.replace('\n', '') + # If line is a comment, make it a LaTeX comment or "\tag" if '(*' in line and '*)' in line: - if test: line = line.replace('(*', '%').replace('*)', '%') else: @@ -907,7 +909,6 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', line[4:-3].replace('"', '') + '}') latex.write(line + '\n') - else: line = line.replace(' ', '') @@ -953,6 +954,8 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', latex.write('\n\n\\end{document}\n') +# Open data/functions, and process the data into a comprehensible tuple that +# gets fed into "master_function" function with open(DIR_NAME + 'functions') \ as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line From 6a89c1da3321d2d9dd2d9d38fb9d8489a7bf05a2 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 14:54:52 -0400 Subject: [PATCH 257/402] More Unit Tests --- KLSadd_insertion/src/updateChapters.py | 16 +++++++++++++--- KLSadd_insertion/test/test_generic_functions.py | 4 +--- KLSadd_insertion/test/test_reference_finder.py | 12 ++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 KLSadd_insertion/test/test_reference_finder.py diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 3f65f90..4c42612 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -16,6 +16,12 @@ def extraneous_section_deleter(list): + """ + Removes sections that are irrelevant and will slow or confuse the program + + :param list: + :return: Extraneous name free output + """ return [item for item in list if "reference" not in item.lower() and "limit relation" not in item.lower()] @@ -128,6 +134,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): if sep1 == 2: name_chap = 'hypergeometric representation' + # Uses of numbers like 12, or 9 are for specific lengths of strings (like \\subsection{) where the + # section does not change for d in range(0, len(tempref)): # check every section and subsection line item = tempref[d] line = str(chap[item]) @@ -197,7 +205,7 @@ def prepare_for_pdf(chap): Edits the chapter string sent to include hyperref, xparse, and cite packages :param chap: The chapter (9 or 14) that is being processed - :return: + :return: The processed chapter, ready for additional processing """ foot_misc_index = 0 index = 0 @@ -212,7 +220,7 @@ def prepare_for_pdf(chap): def get_commands(kls, new_commands): """ - this method reads in relevant commands that are in KLSadd.tex and returns them as a list + This method reads in relevant commands that are in KLSadd.tex and returns them as a list :param kls: The addendum is the source of what is being found :return: @@ -315,6 +323,7 @@ def find_references(chapter, chapticker, math_people): besselcheck = 1 bqlegendrecheck = 2 + # Special lines that the program does not normally register for i in ref9_3: if i == 2646: besselcheck = 0 @@ -432,7 +441,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha chap = insert_commands(kls, chap, cms) commentticker = 0 - # Hard coded command remover + # These commands mess up PDF reading and mus tbe commented out for word in chap: word2 = chap[chap.index(word)-1] if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2: @@ -573,6 +582,7 @@ def main(): with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) + print math_people if __name__ == '__main__': main() \ No newline at end of file diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index c87c788..0504cd1 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -26,6 +26,4 @@ def test_cut_words(self): self.assertEquals(cut_words('MoreWords','WordsAndSomeMoreWords'), 'WordsAndSome') self.assertEquals(cut_words('SupposedToFail', 'WordsAndSomeMoreWords'), 'WordsAndSomeMoreWords') self.assertEquals(cut_words('StuffFromAddenum', '''\\paragraph{\\large\\bf KLSadd: TestCase}StuffFromAddenum\\begin{equation}\\end{equation}'''), - '''\\begin{equation}\\end{equation}''') - #self.assertEquals(extraneous_section_deleter(['reference', 'bananas', 'limit relation', '458673', - # 'limit relations', 'apple']), ['bananas', '458673', 'apple']) \ No newline at end of file + '''\\begin{equation}\\end{equation}''') \ No newline at end of file diff --git a/KLSadd_insertion/test/test_reference_finder.py b/KLSadd_insertion/test/test_reference_finder.py new file mode 100644 index 0000000..54e6e98 --- /dev/null +++ b/KLSadd_insertion/test/test_reference_finder.py @@ -0,0 +1,12 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import find_references + +class TestFindReferences(TestCase): + + def test_find_references(self): + self.assertEquals(find_references(['section{'],0,), ) + From c4d7d01fafe29e0867ff013f9a1d61cc36ccaf7d Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 16:01:20 -0400 Subject: [PATCH 258/402] More Unit Tests --- KLSadd_insertion/src/updateChapters.py | 8 ++-- .../test/test_reference_finder.py | 42 ++++++++++++++++++- 2 files changed, 45 insertions(+), 5 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 4c42612..83ed3a7 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -287,7 +287,7 @@ def find_references(chapter, chapticker, math_people): for word in chapter: index += 1 - specialdetector = 1 + special_detector = 1 # check sections and subsections if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): w = word[word.find("{")+1: word.find("}")] @@ -302,8 +302,8 @@ def find_references(chapter, chapticker, math_people): ref9_3.append(index) elif chapticker == 1: ref14_3.append(index) - specialdetector = 0 - if"\\subsection*{References}" in word and canadd: + special_detector = 0 + if "\\subsection*{References}" in word and canadd: # Appends valid locations references.append(index) if chapticker == 0: @@ -316,7 +316,7 @@ def find_references(chapter, chapticker, math_people): ref9_3.append(index) elif chapticker == 1: ref14_3.append(index) - if "\\section{" in word and specialdetector == 1 and chaptercheck == "14": + if "\\section{" in word and special_detector == 1 and chaptercheck == "14": w2 = word[word.find("{") + 1: word.find("}")] if "Bessel" not in w2: ref14_3.append(index) diff --git a/KLSadd_insertion/test/test_reference_finder.py b/KLSadd_insertion/test/test_reference_finder.py index 54e6e98..2cb49c0 100644 --- a/KLSadd_insertion/test/test_reference_finder.py +++ b/KLSadd_insertion/test/test_reference_finder.py @@ -8,5 +8,45 @@ class TestFindReferences(TestCase): def test_find_references(self): - self.assertEquals(find_references(['section{'],0,), ) + self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) + self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) + self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.2 Racah#']), [13]) + self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.2 Racah#']), [13]) + From 94936827b91edfca8742d205eb3204fe62c00d8d Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 16:15:11 -0400 Subject: [PATCH 259/402] More Unit Tests --- KLSadd_insertion/test/test_reference_finder.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/test/test_reference_finder.py b/KLSadd_insertion/test/test_reference_finder.py index 2cb49c0..b65437f 100644 --- a/KLSadd_insertion/test/test_reference_finder.py +++ b/KLSadd_insertion/test/test_reference_finder.py @@ -48,5 +48,13 @@ def test_find_references(self): , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], 0, ['9.2 Racah#']), [13]) - - + self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 1, ['9.2 Racah#']), []) \ No newline at end of file From 32ed7d8e3f1df6b1e52b3b945f2e4fc2d08b9459 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 16 Aug 2016 16:19:20 -0400 Subject: [PATCH 260/402] More Unit Tests --- KLSadd_insertion/src/updateChapters.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 83ed3a7..31810ce 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -329,9 +329,6 @@ def find_references(chapter, chapticker, math_people): besselcheck = 0 if besselcheck == 1: ref9_3.insert(230, 2646) - for i in ref14_3: - if i == 1217: - bqlegendrecheck -= 1 if bqlegendrecheck > 0: pass From 85d438e689f06f97ea0c6e45c109510c6b21d45b Mon Sep 17 00:00:00 2001 From: notjagan Date: Wed, 17 Aug 2016 09:25:58 -0400 Subject: [PATCH 261/402] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4d90f83..d749bde 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage tex2Wiki DLMF_preprocessing maple2latex main_page eCF + nosetests --with-coverage -v tex2Wiki DLMF_preprocessing maple2latex main_page eCF after_success: coveralls From 65c55ef55bbf45e87cc9864a2232b047250254c2 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 10:05:30 -0400 Subject: [PATCH 262/402] Add search function and modified carat function to improve the functionality --- eCF/.gitignore | 2 +- eCF/src/MathematicaToLaTeX.py | 113 ++++++++---------- eCF/test/test_carat.py | 12 +- .../test_single_macro_conversion_functions.py | 3 - 4 files changed, 54 insertions(+), 76 deletions(-) diff --git a/eCF/.gitignore b/eCF/.gitignore index 08e53cf..5e5ddb9 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -8,7 +8,7 @@ data/References.txt src/Glossary.csv src/new.Glossary.csv src/new.Glossary.updated.csv -src/pythonTest.py +src/MathematicaToLaTeXTest.py IdentitiesTest.txt README_Glossary x.log diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 6033024..539e6ed 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -41,6 +41,9 @@ 'Infinity': 'infty'} +LEFT_BRACKETS = list('([{') +RIGHT_BRACKETS = list(')]}') + def find_surrounding(line, function, ex=(), start=0): # (str, str(, tuple, int)) -> tuple @@ -67,8 +70,9 @@ def find_surrounding(line, function, ex=(), start=0): if ex != '' and len(ex) >= 1: for e in ex: if (line.find(e) != -1 and - line.find(e) <= positions[0] and - line.find(e) + len(e) >= positions[0] + len(function)): + line.find(e) <= positions[0] and + line.find(e) + len(e) >= positions[0] + len( + function)): return [line.find(e) + len(e) + start, line.find(e) + len(e) + start] @@ -100,17 +104,15 @@ def arg_split(line, sep): :param sep: seperator (character) :returns: list of segments """ - l = list('([{') - r = list(')]}') args = [] count = i = 0 end = len(line) + 1 line = line + sep while i != end: - if line[i] in l: + if line[i] in LEFT_BRACKETS: count += 1 - if line[i] in r: + if line[i] in RIGHT_BRACKETS: count -= 1 if count == 0 and line[i] == sep: args.append(line[:i]) @@ -123,6 +125,30 @@ def arg_split(line, sep): return args +def search(line, i, sign, direction=-1): + j = i + direction + if direction == -1: + end = -1 + else: + end = len(line) + count = 0 + for j in range(i + direction, end, direction): + if line[j] in LEFT_BRACKETS: + count += direction + if line[j] in RIGHT_BRACKETS: + count -= direction + if count == 0 and line[j] in sign: + count -= 1 + if count < 0: + break + if count == 0 and j == end - direction: + j += direction + break + if direction == 1: + j -= 1 + return j + + def master_function(line, params): # (str, tuple) -> str """ @@ -237,31 +263,14 @@ def carat(line): :param line: line to be converted :returns: converted line """ - l = list('([{') - r = list(')]}') - sign = list('*/+-=, ') i = 0 while i != len(line): if line[i] == '^': - count = 0 - - # Searches for when a carat ends - for k in range(i + 1, len(line)): - if line[k] in l: - count += 1 - if line[k] in r: - count -= 1 - if count == 0 and line[k] in sign: - count -= 1 - if count < 0: - break - if count == 0 and k == len(line) - 1: - k += 1 - break - k -= 1 - - if line[i + 1] == '(' and line[-1] == ')': + + k = search(line, i, list('*/+-=, '), 1) + + if line[i + 1] == '(' and line[k] == ')': line = line[:i] + '^{' + line[i + 2:k] + '}' + line[k + 1:] else: line = line[:i] + '^{' + line[i + 1:k + 1] + '}' + line[k + 1:] @@ -694,44 +703,17 @@ def convert_fraction(line): :param line: line to be converted :returns: converted line """ - l = list('([{') - r = list(')]}') - sign = list('*+-=,<>&') i = 0 + l = list("([{") + r = list(")}]") + sign = list('*+-=,<>&') while i != len(line): if line[i] == '/': - # Searches left - count = 0 - for j in range(i - 1, -1, -1): - if line[j] in r: - count += 1 - if line[j] in l: - count -= 1 - if count == 0 and line[j] in sign: - count -= 1 - if count < 0: - break - if count == 0 and j == 0: - j -= 1 - break - - # Searches right - count = 0 - for k in range(i + 1, len(line)): - if line[k] in l: - count += 1 - if line[k] in r: - count -= 1 - if count == 0 and line[k] in sign: - count -= 1 - if count < 0: - break - if count == 0 and k == len(line) - 1: - k += 1 - break - k -= 1 + j = search(line, i, sign) + + k = search(line, i, sign, 1) # Removes extra surrounding parentheses, if there are any. # This won't work if you're doing "( )( )/( )( )", it will @@ -740,22 +722,22 @@ def convert_fraction(line): if (line[j + 1] == '(' and line[i - 1] == ')' and line[i + 1] == '(' and line[k] == ')'): # ()/() - line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + line = '{0}\\frac{{{1}}}{{{2}}}{3}' \ .format(line[:j + 1], line[j + 2:i - 1], line[i + 2:k], line[k + 1:]) elif line[j + 1] == '(' and line[i - 1] == ')': # ()/-- - line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + line = '{0}\\frac{{{1}}}{{{2}}}{3}' \ .format(line[:j + 1], line[j + 2:i - 1], line[i + 1:k + 1], line[k + 1:]) elif line[i + 1] == '(' and line[k] == ')': # --/() - line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + line = '{0}\\frac{{{1}}}{{{2}}}{3}' \ .format(line[:j + 1], line[j + 1:i], line[i + 2:k], line[k + 1:]) else: # --/-- - line = '{0}\\frac{{{1}}}{{{2}}}{3}'\ + line = '{0}\\frac{{{1}}}{{{2}}}{3}' \ .format(line[:j + 1], line[j + 1:i], line[i + 1:k + 1], line[k + 1:]) @@ -976,6 +958,5 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) - if __name__ == '__main__': - main() + main() \ No newline at end of file diff --git a/eCF/test/test_carat.py b/eCF/test/test_carat.py index 6edcfe9..9c4092a 100644 --- a/eCF/test/test_carat.py +++ b/eCF/test/test_carat.py @@ -20,12 +20,12 @@ def test_seperate(self): def test_parentheses(self): self.assertEqual(carat('a^(b+c)'), 'a^{b+c}') - self.assertEqual(carat('a^(b+c)*d'), 'a^{(b+c)}*d') - self.assertEqual(carat('a^(b+c)/d'), 'a^{(b+c)}/d') - self.assertEqual(carat('a^(b+c)+d'), 'a^{(b+c)}+d') - self.assertEqual(carat('a^(b+c)-d'), 'a^{(b+c)}-d') - self.assertEqual(carat('a^(b+c)=d'), 'a^{(b+c)}=d') - self.assertEqual(carat('a^(b+c),d'), 'a^{(b+c)},d') + self.assertEqual(carat('a^(b+c)*d'), 'a^{b+c}*d') + self.assertEqual(carat('a^(b+c)/d'), 'a^{b+c}/d') + self.assertEqual(carat('a^(b+c)+d'), 'a^{b+c}+d') + self.assertEqual(carat('a^(b+c)-d'), 'a^{b+c}-d') + self.assertEqual(carat('a^(b+c)=d'), 'a^{b+c}=d') + self.assertEqual(carat('a^(b+c),d'), 'a^{b+c},d') def test_none(self): self.assertEqual(carat('nocarat'), 'nocarat') diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index 4ea7693..c204d0a 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -35,9 +35,6 @@ def test_exceptions(self): self.assertEqual(beta('BetaRegularized[z,a,b]'), 'BetaRegularized[z,a,b]') self.assertEqual(beta('\\[Beta]'), '\\[Beta]') - def test_none(self): - self.assertEqual(beta('none'), 'none') - class TestCFK(TestCase): From 0916099d9ceb496a58af638229794d5829c18920 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 10:15:23 -0400 Subject: [PATCH 263/402] Add exception to .coveragerc --- .coveragerc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.coveragerc b/.coveragerc index 378def2..e907e53 100644 --- a/.coveragerc +++ b/.coveragerc @@ -3,3 +3,5 @@ omit = */python?.?/* */test/* */site-packages/nose/* +exclude_lines = + if __name__ == .__main__.: From 3d3f8022b554d1ec2195f8399c11e69b91c9ba5d Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:06:15 -0400 Subject: [PATCH 264/402] Add test case for cfk function and add documentation for new search function --- eCF/test/test_find_surrounding.py | 1 + eCF/test/test_search.py | 15 +++++++++++++++ .../test_single_macro_conversion_functions.py | 1 + 3 files changed, 17 insertions(+) create mode 100644 eCF/test/test_search.py diff --git a/eCF/test/test_find_surrounding.py b/eCF/test/test_find_surrounding.py index fd545d0..5cbb908 100644 --- a/eCF/test/test_find_surrounding.py +++ b/eCF/test/test_find_surrounding.py @@ -5,3 +5,4 @@ from unittest import TestCase from MathematicaToLaTeX import find_surrounding + diff --git a/eCF/test/test_search.py b/eCF/test/test_search.py new file mode 100644 index 0000000..43ab606 --- /dev/null +++ b/eCF/test/test_search.py @@ -0,0 +1,15 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from MathematicaToLaTeX import search + + +class TestSearch(TestCase): + + def test_end(self): + pass + + def test_parens(self): + pass \ No newline at end of file diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index c204d0a..9fde00d 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -45,6 +45,7 @@ def test_single(self): self.assertEqual(cfk('--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{1}{g}--') self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{f}{g}\\CFK{i}{imin}{imax}@@{1}{g}') self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{f}{g}--\\CFK{i}{imin}{imax}@@{1}{g}--') + self.assertEqual(cfk('ContinuedFractionK[\[Delta] + \[Epsilon], a, {k, 1, Infinity}]'), '\CFK{k}{1}{\infty}@@{\delta + \epsilon}{a}') def test_nested(self): self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{\\CFK{i}{imin}{imax}@@{f}{g}}{\\CFK{i}{imin}{imax}@@{f}{g}}') From 72cb0038457975f2b8b8feee57c2fd927addd637 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:17:28 -0400 Subject: [PATCH 265/402] Edit test case for cfk, add newline after end of code --- eCF/test/test_search.py | 2 +- eCF/test/test_single_macro_conversion_functions.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eCF/test/test_search.py b/eCF/test/test_search.py index 43ab606..83c2f7b 100644 --- a/eCF/test/test_search.py +++ b/eCF/test/test_search.py @@ -12,4 +12,4 @@ def test_end(self): pass def test_parens(self): - pass \ No newline at end of file + pass diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index 9fde00d..67e7cdf 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -45,7 +45,7 @@ def test_single(self): self.assertEqual(cfk('--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{1}{g}--') self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{f}{g}\\CFK{i}{imin}{imax}@@{1}{g}') self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{f}{g}--\\CFK{i}{imin}{imax}@@{1}{g}--') - self.assertEqual(cfk('ContinuedFractionK[\[Delta] + \[Epsilon], a, {k, 1, Infinity}]'), '\CFK{k}{1}{\infty}@@{\delta + \epsilon}{a}') + self.assertEqual(cfk('ContinuedFractionK[\\[Delta]+\\[Epsilon],a,{k,1,Infinity}]'), '\CFK{k}{1}{Infinity}@@{\\[Delta]+\\[Epsilon]}{a}') def test_nested(self): self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{\\CFK{i}{imin}{imax}@@{f}{g}}{\\CFK{i}{imin}{imax}@@{f}{g}}') From 6f9cfe4558a495490686d191813d1badfe21123b Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:22:11 -0400 Subject: [PATCH 266/402] Add correct code to MathematicaToLaTeX (was accidentally editing test file before) --- eCF/src/MathematicaToLaTeX.py | 40 +++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 539e6ed..3b1eb4e 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -51,7 +51,7 @@ def find_surrounding(line, function, ex=(), start=0): Finds the indices of the beginning and end of a function; this is the main function that powers the converter. - :param line: line to be converted + :param line: line with functions that are going to be searched :param function: the function you're trying to find the surrounding brackets for :param ex: exceptions that shouldn't be converted, because conversions do @@ -60,7 +60,7 @@ def find_surrounding(line, function, ex=(), start=0): the original is "Equals" :param start: index of where to start finding (used if there are multiple of one function in a line - :returns: converted line + :returns: positions of opening and ending brackets """ positions = [0, 0] line = line[start:] @@ -70,9 +70,8 @@ def find_surrounding(line, function, ex=(), start=0): if ex != '' and len(ex) >= 1: for e in ex: if (line.find(e) != -1 and - line.find(e) <= positions[0] and - line.find(e) + len(e) >= positions[0] + len( - function)): + line.find(e) <= positions[0] and + line.find(e) + len(e) >= positions[0] + len(function)): return [line.find(e) + len(e) + start, line.find(e) + len(e) + start] @@ -86,7 +85,7 @@ def find_surrounding(line, function, ex=(), start=0): count -= 1 if count == 0: if j == positions[0] + len(function): - positions[1] = positions[0] + positions[1], positions[0] = j, j else: positions[1] = j + 1 break @@ -126,12 +125,23 @@ def arg_split(line, sep): def search(line, i, sign, direction=-1): + # (str, list, str(, int)) -> int + """ + Searches for the ends of fractions or carats; excludes signs in brackets + + :param line: line to be searched + :param i: the starting point, usually a "/" or a "^" + :param sign: list of excluding symbols + :param direction: direction of search, left: -1, right: 1 + :returns: indice of end + """ j = i + direction if direction == -1: end = -1 else: end = len(line) count = 0 + for j in range(i + direction, end, direction): if line[j] in LEFT_BRACKETS: count += direction @@ -144,8 +154,10 @@ def search(line, i, sign, direction=-1): if count == 0 and j == end - direction: j += direction break + if direction == 1: j -= 1 + return j @@ -314,6 +326,8 @@ def beta(line): def cfk(line): + print(line) + print(line) # (str) -> str """ Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX macro. @@ -344,6 +358,7 @@ def cfk(line): '\\CFK{{{0}}}{{{1}}}{{{2}}}@@{{1}}{{{3}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) + print(line) return line @@ -632,13 +647,13 @@ def constraint(line): constraints = arg_split(sections[-1].replace('&&', '&'), '&') - for i, item, in enumerate(constraints): + for i, element, in enumerate(constraints): if i == 0: constraints[i] = ('\n% \\constraint{$' + - item.replace('&', ' \\land ')) + element.replace('&', ' \\land ')) else: constraints[i] = ('\n% & $' + - item.replace('&', ' \\land ')) + element.replace('&', ' \\land ')) if i == len(constraints) - 1: constraints[i] += '$}' else: @@ -704,15 +719,12 @@ def convert_fraction(line): :returns: converted line """ i = 0 - l = list("([{") - r = list(")}]") sign = list('*+-=,<>&') while i != len(line): if line[i] == '/': j = search(line, i, sign) - k = search(line, i, sign, 1) # Removes extra surrounding parentheses, if there are any. @@ -849,7 +861,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'Identities.m', test=False): + pathr=DIR_NAME + 'IdentitiesTest.m', test=True): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into @@ -959,4 +971,4 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) if __name__ == '__main__': - main() \ No newline at end of file + main() From eaa1761096f6091c149af37a965e3dae44dcc076 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:23:23 -0400 Subject: [PATCH 267/402] Edit main function --- eCF/src/MathematicaToLaTeX.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 3b1eb4e..4f034d3 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -861,7 +861,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'IdentitiesTest.m', test=True): + pathr=DIR_NAME + 'Identities.m', test=False): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into From eb1127b9fddf54223731a3f44076274fbcaf083d Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:24:18 -0400 Subject: [PATCH 268/402] Remove useless print statements in cfk function --- eCF/src/MathematicaToLaTeX.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 4f034d3..1a984b0 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -326,8 +326,6 @@ def beta(line): def cfk(line): - print(line) - print(line) # (str) -> str """ Converts Mathematica's 'ContinuedFractionK' to the equivalent LaTeX macro. @@ -358,7 +356,6 @@ def cfk(line): '\\CFK{{{0}}}{{{1}}}{{{2}}}@@{{1}}{{{3}}}' .format(moreargs[0], moreargs[1], moreargs[2], args[0]) + line[pos[1]:]) - print(line) return line From 4d9438be4d4aaf35cf1c08a7fe2a94801c43a09f Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:35:56 -0400 Subject: [PATCH 269/402] Add test in master_function that should finally cover that one last line --- eCF/src/MathematicaToLaTeX.py | 7 +++++-- eCF/test/test_master_function.py | 2 ++ eCF/test/test_single_macro_conversion_functions.py | 1 - 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 1a984b0..946e8ab 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -46,6 +46,9 @@ def find_surrounding(line, function, ex=(), start=0): + print(function) + print(line) + print(ex) # (str, str(, tuple, int)) -> tuple """ Finds the indices of the beginning and end of a function; this is the main @@ -85,7 +88,7 @@ def find_surrounding(line, function, ex=(), start=0): count -= 1 if count == 0: if j == positions[0] + len(function): - positions[1], positions[0] = j, j + positions[0] = positions[1] else: positions[1] = j + 1 break @@ -858,7 +861,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'Identities.m', test=False): + pathr=DIR_NAME + 'IdentitiesTest.m', test=True): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index c9f5a32..73a6312 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -68,6 +68,8 @@ def test_conversion(self): else: self.assertEqual(master_function(before, function), after) self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) + if function[0] == 'D': + self.assertEqual(master_function('\\[Delta]', function), '\\[Delta]') def test_exception(self): for function in FUNCTION_CONVERSIONS: diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index 67e7cdf..c204d0a 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -45,7 +45,6 @@ def test_single(self): self.assertEqual(cfk('--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{1}{g}--') self.assertEqual(cfk('ContinuedFractionK[f,g,{i,imin,imax}]ContinuedFractionK[g,{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{f}{g}\\CFK{i}{imin}{imax}@@{1}{g}') self.assertEqual(cfk('--ContinuedFractionK[f,g,{i,imin,imax}]--ContinuedFractionK[g,{i,imin,imax}]--'), '--\\CFK{i}{imin}{imax}@@{f}{g}--\\CFK{i}{imin}{imax}@@{1}{g}--') - self.assertEqual(cfk('ContinuedFractionK[\\[Delta]+\\[Epsilon],a,{k,1,Infinity}]'), '\CFK{k}{1}{Infinity}@@{\\[Delta]+\\[Epsilon]}{a}') def test_nested(self): self.assertEqual(cfk('ContinuedFractionK[ContinuedFractionK[f,g,{i,imin,imax}],ContinuedFractionK[f,g,{i,imin,imax}],{i,imin,imax}]'), '\\CFK{i}{imin}{imax}@@{\\CFK{i}{imin}{imax}@@{f}{g}}{\\CFK{i}{imin}{imax}@@{f}{g}}') From 6c8e65e87279c97d3636c7cf36e15532268c7cf6 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:36:25 -0400 Subject: [PATCH 270/402] Modified main function --- eCF/src/MathematicaToLaTeX.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 946e8ab..fe096d3 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -861,7 +861,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'IdentitiesTest.m', test=True): + pathr=DIR_NAME + 'Identities.m', test=False): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into From 5f5e0ea7959282f1fb320a99ed760e800fd62cf8 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 11:45:17 -0400 Subject: [PATCH 271/402] Remove some useless print statements --- eCF/src/MathematicaToLaTeX.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index fe096d3..322fdb8 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -46,9 +46,6 @@ def find_surrounding(line, function, ex=(), start=0): - print(function) - print(line) - print(ex) # (str, str(, tuple, int)) -> tuple """ Finds the indices of the beginning and end of a function; this is the main From 0531f61888fafc3b047b7c9563ccd756549cf8b2 Mon Sep 17 00:00:00 2001 From: notjagan Date: Wed, 17 Aug 2016 14:41:02 -0400 Subject: [PATCH 272/402] Update .coveragerc Tests all Python files in a src/ directory. --- .coveragerc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.coveragerc b/.coveragerc index e907e53..2879bc7 100644 --- a/.coveragerc +++ b/.coveragerc @@ -5,3 +5,7 @@ omit = */site-packages/nose/* exclude_lines = if __name__ == .__main__.: + +[run] +include = + */src/*.py From 9fea1c639221bbb5c3ac6143ca7fd05178ee57ca Mon Sep 17 00:00:00 2001 From: notjagan Date: Wed, 17 Aug 2016 14:41:57 -0400 Subject: [PATCH 273/402] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d749bde..a8b9a9b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage -v tex2Wiki DLMF_preprocessing maple2latex main_page eCF + nosetests --with-coverage --with-isolation -v tex2Wiki DLMF_preprocessing maple2latex main_page eCF after_success: coveralls From 07fca1fd18a000bbf6f8b5f0d8903fb5350db316 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 17 Aug 2016 15:55:45 -0400 Subject: [PATCH 274/402] Start to modify MathematicaToLaTeX for trig functions, add LaTeXConstraintModifier.py --- eCF/.gitignore | 26 +++++++---------- eCF/src/LaTeXConstraintModifier.py | 46 ++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 15 deletions(-) create mode 100644 eCF/src/LaTeXConstraintModifier.py diff --git a/eCF/.gitignore b/eCF/.gitignore index 5e5ddb9..557d2b6 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -1,29 +1,25 @@ Divya/ other/ -src/test.txt + data/Identities.* data/newIdentities.* data/IdentitiesTest.m data/References.txt +data/ZE.3.* +data/ZE.4.* + +src/test.txt src/Glossary.csv src/new.Glossary.csv src/new.Glossary.updated.csv -src/MathematicaToLaTeXTest.py -IdentitiesTest.txt -README_Glossary -x.log -tasks.txt +src/pythonTest.py +src/tasks.txt +src/README_Glossary +src/x.log + *.sty *.aux *.csv - - -# ecf project *.sty -Identities.* -newIdentities.* -*.csv -macros.txt +*.out *.log -*.aux -ZE.3.* diff --git a/eCF/src/LaTeXConstraintModifier.py b/eCF/src/LaTeXConstraintModifier.py new file mode 100644 index 0000000..cd24e01 --- /dev/null +++ b/eCF/src/LaTeXConstraintModifier.py @@ -0,0 +1,46 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +import os +import argparse + +parser = argparse.ArgumentParser( + description='Receive .tex file with constraints and convert' + ' them to lines using flushright and flushright.') +parser.add_argument('PATHR', type=str, + help='path of input .tex file, with the current' + ' directory as the starting point',) +parser.add_argument('PATHW', type=str, + help='path of file to be outputted to, with the current' + ' directory as the starting point') +args = parser.parse_args() + +PATHR = args.PATHR +PATHW = args.PATHW +DIR_NAME = os.path.dirname(os.path.realpath(__file__)) + '/../data/' + + +def combine_percent(lines): + # (list) -> list + """ + Description + + :param lines: + :return: + """ + + pass + + +def main(): + # + """ + + :return: + """ + pass + + +if __name__ == '__main__': + main() From 6a67155cdbd468503df3f8d5b4235f0b0e039fe0 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 10:25:25 -0400 Subject: [PATCH 275/402] Minor fixes and unit tests --- KLSadd_insertion/src/updateChapters.py | 22 +++++++++++-------- .../test/test_generic_functions.py | 4 ++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 31810ce..2330aff 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -22,7 +22,8 @@ def extraneous_section_deleter(list): :param list: :return: Extraneous name free output """ - return [item for item in list if "reference" not in item.lower() and "limit relation" not in item.lower()] + return [item for item in list if "reference" not in item.lower() and "limit relation" not in item.lower() + and "symmetry" not in item.lower()] def new_keywords(kls, kls_list): @@ -41,6 +42,7 @@ def new_keywords(kls, kls_list): kls_list = extraneous_section_deleter(kls_list) kls_list.append("Limit Relation") + kls_list.append("Symmetry") for item in kls_list: if item not in kls_list_chap: kls_list_chap.append(item) @@ -61,12 +63,14 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): hyper_headers_chap = [] hyper_subs_chap = [] - sep1 = 0 + specialinput = 0 name_chap = word.lower() if name_chap == "orthogonality": - sep1 = 1 + specialinput = 1 elif name_chap == "special value": - sep1 = 2 + specialinput = 2 + elif name_chap == "symmetry": + specialinput = 3 khyper_header_chap = [] k_hyper_sub_chap = [] @@ -80,8 +84,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) if temp.lower() == 'wilson': chapterstart = True - if sep1 in (0, 2) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ - (sep1 == 1 and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart + if specialinput in (0,2) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ + (specialinput in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): for item in klsaddparas: if index < item: @@ -128,10 +132,10 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): else: tempref = ref14_3 offset = sorter_check[sortloc][1] - if sep1 == 1: + if specialinput == 1: offset = 8 - if sep1 == 2: + if specialinput in (2, 3): name_chap = 'hypergeometric representation' # Uses of numbers like 12, or 9 are for specific lengths of strings (like \\subsection{) where the @@ -146,7 +150,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): temp = line[9:line.find("}", 7)] if name_chap in line.lower(): - if sep1 in (0, 2) or sep1 == 1 and "orthogonality relation" not in line: + if specialinput in (0, 2, 3) or specialinput == 1 and "orthogonality relation" not in line: hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index 0504cd1..887e9bc 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -10,13 +10,13 @@ class TestNewKeywords(TestCase): def test_new_keywords(self): - self.assertEquals(new_keywords(['\\subsubsection*{ThisIsATest}\n'],[]), ['ThisIsATest', 'Limit Relation']) + self.assertEquals(new_keywords(['\\subsubsection*{ThisIsATest}\n'],[]), ['ThisIsATest', 'Limit Relation', 'Symmetry']) class TestExtraneousSectionDeleter(TestCase): def test_extraneous_section_deleter(self): - self.assertEquals(extraneous_section_deleter(['reference', 'bananas', 'limit relation', '458673', + self.assertEquals(extraneous_section_deleter(['reference', 'bananas', 'limit relation', 'symmetry','458673', 'limit relations', 'apple']), ['bananas', '458673', 'apple']) From 83353e9681bf0750b27af10a3a5bd8e6bcad89ac Mon Sep 17 00:00:00 2001 From: Parth Oza Date: Wed, 20 Jul 2016 14:48:47 -0400 Subject: [PATCH 276/402] Attempt to make tex2Wiki code more readable for future developers --- tex2Wiki/src/DLMFtex2Wiki.py | 418 +++++++++++++++++------------------ tex2Wiki/src/tex2Wiki.py | 409 ++++++++++++++++++---------------- 2 files changed, 423 insertions(+), 404 deletions(-) diff --git a/tex2Wiki/src/DLMFtex2Wiki.py b/tex2Wiki/src/DLMFtex2Wiki.py index f53aa29..7c20de0 100644 --- a/tex2Wiki/src/DLMFtex2Wiki.py +++ b/tex2Wiki/src/DLMFtex2Wiki.py @@ -6,113 +6,102 @@ import csv # imported for using csv format import sys # imported for getting args from shutil import copyfile -from tex2Wiki import append_text, append_revision, getString,\ - getSym, getEq, secLabel, getEqP, unmodLabel, isnumber +from tex2Wiki import append_text, append_revision, get_string_within_, getSym, getEq, secLabel, getEqP, unmodLabel, isnumber -def modLabel(label): - isNumer = False - newlabel = "" +def mod_label(label): + is_numeric = False + new_label = "" num = "" - for i in range(0, len(label)): - if isNumer and not isnumber(label[i]): + for i in range(len(label)): + if is_numeric and not isnumber(label[i]): if len(num) > 1: - newlabel += num + new_label += num num = "" else: - newlabel += "0" + str(num) + new_label += "0" + str(num) num = "" if isnumber(label[i]): - isNumer = True + is_numeric = True num += str(label[i]) else: - isNumer = False - newlabel += label[i] + is_numeric = False + new_label += label[i] if len(num) > 1: - newlabel += num + new_label += num elif len(num) == 1: - newlabel += "0" + num - return newlabel + new_label += "0" + num + return new_label -def DLMF(ofname, mmd, llinks, n): +def dlmf(of_name, mmd, llinks, n): for iterations in range(0, 1): - tex = open(ofname, 'r') + tex = open(of_name, 'r') main_file = open(mmd, "r") - lLinks = open(llinks, 'r') - mainPrepend = "" - mainWrite = open("ZetaFunctions.mmd.new", "w") - lLink = lLinks.readlines() + l_links = open(llinks, 'r') + main_prepend = "" + main_write = open("ZetaFunctions.mmd.new", "w") + l_link_list = l_links.readlines() math = False constraint = False substitution = False symbols = [] lines = tex.readlines() - refLines = [] + ref_lines = [] sections = [] labels = [] eqs = [] - refEqs = [] + ref_eqs = [] parse = False head = False try: - chapRef = [("GA", open("../../data/GA.tex", 'r')), - ("ZE", open("../../data/ZE.3.tex", 'r'))] + chap_ref = [("GA", open("../../data/GA.tex", 'r')), + ("ZE", open("../../data/ZE.3.tex", 'r'))] except IOError: - chapRef = [ - ("GA", open( - "GA.tex", 'r')), ("ZE", open( - "ZE.3.tex", 'r'))] - refLabels = [] - for c in chapRef: - refLines = refLines + (c[1].readlines()) - c[1].close() - for i in range(0, len(refLines)): - line = refLines[i] + chap_ref = [("GA", open("GA.tex", 'r')), ("ZE", open("ZE.3.tex", 'r'))] + ref_labels = [] + for chap in chap_ref: + ref_lines = ref_lines + (chap[1].readlines()) + chap[1].close() + for i in range(len(ref_lines)): + line = ref_lines[i] if "\\begin{equation}" in line: - sLabel = line.find("\\label{") + 7 - eLabel = line.find("}", sLabel) - label = line[sLabel:eLabel] - for l in lLink: - if l.find(label) != -1 and l[len(label) + 1] == "=": - rlabel = l[l.find("=>") + 3:l.find("\\n")] - rlabel = rlabel.replace("/", "") - rlabel = rlabel.replace("#", ":") + s_label = line.find("\\label{") + 7 + e_label = line.find("}", s_label) + label = line[s_label:e_label] + for l_link in l_link_list: + if l_link.find(label) != -1 and l_link[len(label) + 1] == "=": + r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] + r_label = r_label.replace("/", "") + r_label = r_label.replace("#", ":") break - label = rlabel - refLabels.append(label) - refEqs.append("") + label = r_label + ref_labels.append(label) + ref_eqs.append("") math = True elif math: - refEqs[-1] += line - if "\\end{equation}" in refLines[ - i + - 1] or "\\constraint" in refLines[ - i + - 1] or "\\substitution" in refLines[ - i + - 1] or "\\drmfn" in refLines[ - i + - 1]: + ref_eqs[-1] += line + if any([item in ref_lines[i + 1] + for item in ["\\end{equation}", "\\constraint", "\\substitution", "\\drmfn"]]): math = False - startFlag = True - for i in range(0, len(lines)): + start_flag = True + for i in range(len(lines)): line = lines[i] if "\\begin{document}" in line: parse = True elif "\\end{document}" in line: - mainPrepend += "
\n" - mainText = mainPrepend - mainText = mainText.replace("drmf_bof\n", "") - mainText = mainText.replace("drmf_eof\n", "") - mainText = mainText.replace( + main_prepend += "
\n" + main_text = main_prepend + main_text = main_text.replace("drmf_bof\n", "") + main_text = main_text.replace("drmf_eof\n", "") + main_text = main_text.replace( "\'\'\'Zeta and Related Functions\'\'\'\n", "") - mainText = mainText.replace("{{#set:Section=0}}\n", "") + main_text = main_text.replace("{{#set:Section=0}}\n", "") append_revision('Zeta and Related Functions') - mainText = "{{#set:Section=0}}\n" + mainText - mainWrite.write(mainText) - mainWrite.close() + main_text = "{{#set:Section=0}}\n" + main_text + main_write.write(main_text) + main_write.close() main_file.close() copyfile(mmd, 'ZetaFunctions.mmd.new') parse = False @@ -128,24 +117,24 @@ def DLMF(ofname, mmd, llinks, n): stringWrite = "\'\'\'" stringWrite += getString(line) + "\'\'\'\n" chapter = getString(line) - if startFlag: - mainPrepend += ( + if start_flag: + main_prepend += ( "\n== Sections in " + chapter + " ==\n\n
\n") - startFlag = False + start_flag = False else: - mainPrepend += ("
\n\n== Sections in " + - chapter + - " ==\n\n
\n") + main_prepend += ("
\n\n== Sections in " + + chapter + + " ==\n\n
\n") head = True elif "\\section" in line: - mainPrepend += ("* [[" + - secLabel(getString(line)) + - "|" + - getString(line) + - "]]\n") + main_prepend += ("* [[" + + secLabel(getString(line)) + + "|" + + getString(line) + + "]]\n") sections.append([getString(line)]) secCounter = 0 @@ -255,29 +244,29 @@ def DLMF(ofname, mmd, llinks, n): if head: append_text("\n") head = False - sLabel = line.find("\\label{") + 7 - eLabel = line.find("}", sLabel) - label = (line[sLabel:eLabel]) + s_label = line.find("\\label{") + 7 + e_label = line.find("}", s_label) + label = (line[s_label:e_label]) eqCounter += 1 - for l in lLink: - if label == l[0:l.find("=") - 1]: - rlabel = l[l.find("=>") + 3:l.find("\\n")] - rlabel = rlabel.replace("/", "") - rlabel = rlabel.replace("#", ":") - rlabel = rlabel.replace("!", ":") + for l_link in l_link_list: + if label == l_link[0:l_link.find("=") - 1]: + r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] + r_label = r_label.replace("/", "") + r_label = r_label.replace("#", ":") + r_label = r_label.replace("!", ":") break - label = modLabel(rlabel) - labels.append("Formula:" + rlabel) + label = mod_label(r_label) + labels.append("Formula:" + r_label) eqs.append("") append_text( "\n") math = True elif "\\begin{equation}" in line and not parse: - sLabel = line.find("\\label{") + 7 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) + s_label = line.find("\\label{") + 7 + e_label = line.find("}", s_label) + label = mod_label(line[s_label:e_label]) labels.append("*" + label) # special marker eqs.append("") math = True @@ -306,16 +295,16 @@ def DLMF(ofname, mmd, llinks, n): eqs[-1] += line if not ( - (not ( - "\\end{equation}" in lines[ - i + - 1]) or "\\subsection" in lines[ - i + - 3]) or "\\section" in lines[ - i + - 3]) and not "\\part" in lines[ + (not ( + "\\end{equation}" in lines[ + i + + 1]) or "\\subsection" in lines[ + i + + 3]) or "\\section" in lines[ + i + + 3]) and not "\\part" in lines[ i + - 3]: + 3]: u = i flagM2 = False while flagM: @@ -323,7 +312,7 @@ def DLMF(ofname, mmd, llinks, n): if "\\begin{equation}" in lines[u] in lines[u]: flagM = False if "\\section" in lines[u] or "\\subsection" in lines[ - i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: + i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: flagM = False flagM2 = True if not flagM2: @@ -344,28 +333,28 @@ def DLMF(ofname, mmd, llinks, n): elif math and not parse: eqs[-1] += line if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1]: + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1]: math = False if substitution and parse: subLine += line.replace("&", "&
") if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: substitution = False append_text( "
Substitution(s): " + @@ -375,16 +364,16 @@ def DLMF(ofname, mmd, llinks, n): if constraint and parse: conLine += line.replace("&", "&
") if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False append_text( "
Constraint(s): " + @@ -474,7 +463,7 @@ def DLMF(ofname, mmd, llinks, n): "#" + secLabel( labels[eqCounter][ - len("Formula:"):]) + + len("Formula:"):]) + "|formula in " + secLabel( sections[ @@ -542,7 +531,7 @@ def DLMF(ofname, mmd, llinks, n): "#" + secLabel( labels[eqCounter][ - len("Formula:"):]) + + len("Formula:"):]) + "|formula in " + secLabel( sections[ @@ -702,7 +691,7 @@ def DLMF(ofname, mmd, llinks, n): else: ArgCx += 1 if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): checkFlag = True get = True preG = S @@ -719,7 +708,7 @@ def DLMF(ofname, mmd, llinks, n): Q = symbolPar listArgs = [] if len(Q) > len(symbol) and (Q[ - len(symbol)] == "{" or Q[len(symbol)] == "["): + len(symbol)] == "{" or Q[len(symbol)] == "["): ap = "" for o in range(len(symbol), len(Q)): if Q[o] == "{" or z == "[": @@ -734,7 +723,7 @@ def DLMF(ofname, mmd, llinks, n): for t in range(5, len(G)): if G[t] != "": websiteF = websiteF + \ - " [" + G[t] + " " + G[t] + "]" + " [" + G[t] + " " + G[t] + "]" p1 = G[4].strip("$") p1 = "" + p1 + "" # if checkFlag: @@ -791,7 +780,7 @@ def DLMF(ofname, mmd, llinks, n): equation + " Equation (" + equation[ - 1:] + + 1:] + "), Section " + section + "] of [[Bibliography#DLMF|'''DLMF''']].\n\n") @@ -837,7 +826,7 @@ def DLMF(ofname, mmd, llinks, n): "#" + secLabel( labels[eqCounter][ - len("Formula:"):]) + + len("Formula:"):]) + "|formula in " + secLabel( sections[ @@ -885,7 +874,7 @@ def DLMF(ofname, mmd, llinks, n): "_") + "#" + labels[endNum][ - 8:] + + 8:] + "|formula in " + labels[0] + "]]
\n") @@ -922,7 +911,7 @@ def DLMF(ofname, mmd, llinks, n): elif "\\drmfname" in line and parse: math = False comToWrite = "\n== Name ==\n\n
" + \ - getString(line) + "

\n" + comToWrite + getString(line) + "

\n" + comToWrite elif "\\drmfnote" in line and parse: symbols = symbols + getSym(line) @@ -948,37 +937,37 @@ def DLMF(ofname, mmd, llinks, n): pause = True eqR = line[ind:line.find("}", ind) + 1] rLab = getString(eqR) - for l in lLink: - if rLab == l[0:l.find("=") - 1]: - rlabel = l[l.find("=>") + 3:l.find("\\n")] - rlabel = rlabel.replace("/", "") - rlabel = rlabel.replace("#", ":") - rlabel = rlabel.replace("!", ":") + for l_link in l_link_list: + if rLab == l_link[0:l_link.find("=") - 1]: + r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] + r_label = r_label.replace("/", "") + r_label = r_label.replace("#", ":") + r_label = r_label.replace("!", ":") break - eInd = refLabels.index("" + rlabel) + eInd = ref_labels.index("" + r_label) z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True proofLine += ("
\n\n" + - refEqs[eInd] + + ref_eqs[eInd] + "" + z + "
\n") else: if z == "}": proofLine += ("
\n\n" + - refEqs[eInd] + + ref_eqs[eInd] + "
") else: proofLine += ("
\n\n" + - refEqs[eInd] + + ref_eqs[eInd] + "
\n") else: if pause: @@ -1007,30 +996,30 @@ def DLMF(ofname, mmd, llinks, n): pause = True eqR = line[ind:line.find("}", ind) + 1] rLab = getString(eqR) - for l in lLink: - if rLab == l[0:l.find("=") - 1]: - rlabel = l[l.find("=>") + 3:l.find("\\n")] - rlabel = rlabel.replace("/", "") - rlabel = rlabel.replace("#", ":") - rlabel = rlabel.replace("!", ":") + for l_link in l_link_list: + if rLab == l_link[0:l_link.find("=") - 1]: + r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] + r_label = r_label.replace("/", "") + r_label = r_label.replace("#", ":") + r_label = r_label.replace("!", ":") break - eInd = refLabels.index("" + rlabel.lstrip("Formula:")) + eInd = ref_labels.index("" + r_label.lstrip("Formula:")) z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True proofLine += ("
\n\n" + - refEqs[eInd] + + ref_eqs[eInd] + "" + z + "
\n") else: proofLine += ("
\n\n" + - refEqs[eInd] + + ref_eqs[eInd] + "
\n") else: @@ -1056,18 +1045,18 @@ def DLMF(ofname, mmd, llinks, n): elif math: if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1] or "\\drmfnote" in lines[ - i + - 1] or "\\drmfname" in lines[ i + - 1]: + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1] or "\\drmfnote" in lines[ + i + + 1] or "\\drmfname" in lines[ + i + + 1]: append_text(line.rstrip("\n")) symLine += line.strip("\n") symbols = symbols + getSym(symLine) @@ -1080,26 +1069,31 @@ def DLMF(ofname, mmd, llinks, n): noteLine = noteLine + line symbols = symbols + getSym(line) if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: note = False if "\\emph" in noteLine: noteLine = noteLine[ - 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ - noteLine.find("\\emph{") + len("\\emph{"): noteLine.find( - "}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ - noteLine.find( - "}", noteLine.find("\\emph{") + len("\\emph{")) + 1:] + 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ + noteLine.find("\\emph{") + len( + "\\emph{"): noteLine.find( + "}", noteLine.find("\\emph{") + len( + "\\emph{"))] + "\'\'" + noteLine[ + noteLine.find( + "}", + noteLine.find( + "\\emph{") + len( + "\\emph{")) + 1:] comToWrite = comToWrite + "
" + \ - getEq(noteLine) + "

\n" + getEq(noteLine) + "

\n" if constraint and parse: conLine += line.replace("&", "&
") @@ -1107,16 +1101,16 @@ def DLMF(ofname, mmd, llinks, n): symLine += line.strip("\n") # symbols=symbols+getSym(line) if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False symbols = symbols + getSym(symLine) symLine = "" @@ -1132,16 +1126,16 @@ def DLMF(ofname, mmd, llinks, n): symLine += line.strip("\n") # symbols=symbols+getSym(line) if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: substitution = False symbols = symbols + getSym(symLine) symLine = "" @@ -1157,4 +1151,4 @@ def DLMF(ofname, mmd, llinks, n): tex = "../../data/ZE.3.tex" mainFile = "../../data/OrthogonalPolynomials.mmd" lLinks = "../../data/BruceLabelLinks" - DLMF(tex, mainFile, lLinks, 0) + dlmf(tex, mainFile, lLinks, 0) diff --git a/tex2Wiki/src/tex2Wiki.py b/tex2Wiki/src/tex2Wiki.py index c5e70a2..8140140 100644 --- a/tex2Wiki/src/tex2Wiki.py +++ b/tex2Wiki/src/tex2Wiki.py @@ -16,34 +16,41 @@ root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') -def isnumber(char): # Function to check if char is a number (assuming 1 character) - return char[0] in "0123456789" +def is_number(char): # Function to check if char is a number (assuming 1 character) + return char[0].isdigit() -def getString(line): # Gets all data within curly braces on a line - # -------Initialization------- - stringWrite = "" - getStr = False - pW = "" - # ---------------------------- - for c in line: - if c == "{" or c == "}": # if there is a curly brace in the line - getStr = not getStr # toggle the getStr flag - if c == "}": # no more info needed +def get_string_within_curly_braces(line): + """Gets all data within curly braces on a line""" + # TODO: Possibly have to fix for nested curly braces + + string_within_braces = "" + get_str = False + prev_char = "" + + for char in line: + if char in ["{", "}"]: + get_str = not get_str + if char == "}": break - elif getStr: # if within curly braces - if not ( - pW == c and c == "-"): # if there is no double dash (makes single dash) - if c != "$": # if not a $ sign - stringWrite += c # this character is part of the data - else: # replace $ with '' - stringWrite += "\'\'" # add double ' - pW = c # change last character for finding double dashes - # return the data without newlines and without leading spaces - return stringWrite.rstrip('\n').lstrip() - - -def getG(line): # gets equation for symbols list + # If within curly braces + elif get_str: + # If there is no double dash (makes single dash) + if not (prev_char == char and char == "-"): + if char != "$": + # this character is part of the data + string_within_braces += char + else: + # Add double single quote instead of $ + string_within_braces += "''" + # Change last character for finding double dashes + prev_char = char + # Return the data without newlines and without leading spaces + return string_within_braces.rstrip('\n').lstrip() + + +def get_symbol_list_eq(line): + """Gets equation for symbols list""" start = True final = "" for c in line: @@ -58,56 +65,69 @@ def getG(line): # gets equation for symbols list return final -def getEq(line): # Gets all data within constraints,substitutions - # -------Initialization------- +def get_equation(line, proof=False): + """Gets all data within constraints, substitutions""" per = 1 - stringWrite = "" - fEq = False + string_write = "" + end_of_equation = False count = 0 - # ---------------------------- - for c in line: # read each character + length = 0 + # TODO: figure out what count and per do -_- + + # read each character + for char in line: + if proof and end_of_equation and char not in [" ", "$", "{", "}"] and not char.isalpha(): + length += 1 if count >= 0 and per != 0: per += 1 - if c != " " and c != "%": + if char != " " and char != "%": per = 0 - if c == "{" and per == 0: + if char == "{" and per == 0: if count > 0: - stringWrite += c + string_write += char count += 1 - elif c == "}" and per == 0: + elif char == "}" and per == 0: count -= 1 if count > 0: - stringWrite += c - elif c == "$" and per == 0: # either begin or end equation - fEq = not fEq # toggle fEq flag to know if begin or end equation - if fEq: # if begin - stringWrite += "" - else: # if end - stringWrite += "" - elif c == "\n" and per == 0: # if newline - stringWrite = stringWrite.strip() # remove all leading and trailing whitespace + string_write += char + # either begin or end equation + elif char == "$" and per == 0: + # toggle end_of_equation flag to know if begin or end equation + end_of_equation = not end_of_equation + # if begin + if end_of_equation: + string_write += "" + else: + if proof and length >= 10: + string_write += "
" + else: + string_write += "" + length = 0 + # if newline + elif char == "\n" and per == 0: + string_write = string_write.strip() # should above be # rstrip?<-------------------------------------------------------------------CHECK # THIS - stringWrite += c # add the newline character + string_write += char per += 1 # watch for % signs elif count > 0 and per == 0: # not special character - stringWrite += c # write the character + string_write += char # write the character - return stringWrite.rstrip().lstrip() + return string_write.strip() -def getEqP(line): # Gets all data within proofs +def get_proofs_data(line): + """Gets all data within proofs""" per = 1 stringWrite = "" fEq = False count = 0 length = 0 for c in line: - if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha( - ): + if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): length += 1 if count >= 0 and per != 0: per += 1 @@ -236,14 +256,14 @@ def modLabel(line): newlabel = "" num = "" for i in range(0, len(label)): - if isNumer and not isnumber(label[i]): + if isNumer and not is_number(label[i]): if len(num) > 1: newlabel += num num = "" else: newlabel += "0" + str(num) num = "" - if isnumber(label[i]): + if is_number(label[i]): isNumer = True num += str(label[i]) else: @@ -281,25 +301,6 @@ def writeout(ofname): tree.write(ofname, xml_declaration=True, encoding='utf-8', method='xml') -def main(): - if len(sys.argv) != 6: - fname = "../../data/ZE.3.tex" - ofname = "../../data/ZE.4.xml" - lname = "../../data/BruceLabelLinks" - glossary = "../../data/new.Glossary.csv" - mmd = "../../data/OrthogonalPolynomials.mmd" - - else: - fname = sys.argv[1] - ofname = sys.argv[2] - lname = sys.argv[3] - glossary = sys.argv[4] - mmd = sys.argv[5] - setup_label_links(lname) - readin(fname, glossary, mmd) - writeout(ofname) - - def setup_label_links(ofname): global lLink lLink = open(ofname, "r").readlines() @@ -338,14 +339,14 @@ def readin(ofname, glossary, mmd): elif math: refEqs[-1] += line if "\\end{equation}" in refLines[ - i + - 1] or "\\constraint" in refLines[ - i + - 1] or "\\substitution" in refLines[ - i + - 1] or "\\drmfn" in refLines[ - i + - 1]: + i + + 1] or "\\constraint" in refLines[ + i + + 1] or "\\substitution" in refLines[ + i + + 1] or "\\drmfn" in refLines[ + i + + 1]: math = False for i in range(0, len(lines)): @@ -368,29 +369,29 @@ def readin(ofname, glossary, mmd): parse = False elif "\\title" in line and parse: stringWrite = "\'\'\'" - stringWrite += getString(line) + "\'\'\'\n" + stringWrite += get_string_within_curly_braces(line) + "\'\'\'\n" labels.append("Orthogonal Polynomials") sections.append(["Orthogonal Polynomials", 0]) - chapter = getString(line) + chapter = get_string_within_curly_braces(line) mainPrepend += ( "\n== Sections in " + chapter + " ==\n\n
\n") elif "\\part" in line: - if getString(line) == "BOF": + if get_string_within_curly_braces(line) == "BOF": parse = False - elif getString(line) == "EOF": + elif get_string_within_curly_braces(line) == "EOF": parse = True elif parse: - mainPrepend += ("\n
\n= " + getString(line) + " =\n") + mainPrepend += ("\n
\n= " + get_string_within_curly_braces(line) + " =\n") head = True elif "\\section" in line: mainPrepend += ("* [[" + - secLabel(getString(line)) + + secLabel(get_string_within_curly_braces(line)) + "|" + - getString(line) + + get_string_within_curly_braces(line) + "]]\n") - sections.append([getString(line)]) + sections.append([get_string_within_curly_braces(line)]) secCounter = 0 eqCounter = 0 @@ -401,14 +402,14 @@ def readin(ofname, glossary, mmd): if "\\section" in line: parse = True secCounter += 1 - append_revision(secLabel(getString(line))) + append_revision(secLabel(get_string_within_curly_braces(line))) append_text( "{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") append_text("{{#set:Chapter=" + chapter + "}}\n") append_text("{{#set:Section=" + str(secCounter) + "}}\n") append_text("{{headSection}}\n") head = True - append_text("== " + getString(line) + " ==\n") + append_text("== " + get_string_within_curly_braces(line) + " ==\n") elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ (i + 1) % len(lines)]) and parse: append_text("{{footSection}}\n") @@ -416,13 +417,13 @@ def readin(ofname, glossary, mmd): eqCounter = 0 elif "\\subsection" in line and parse: - append_text("\n== " + getString(line) + " ==\n") + append_text("\n== " + get_string_within_curly_braces(line) + " ==\n") head = True elif "\\paragraph" in line and parse: - append_text("\n=== " + getString(line) + " ===\n") + append_text("\n=== " + get_string_within_curly_braces(line) + " ===\n") head = True elif "\\subsubsection" in line and parse: - append_text("\n=== " + getString(line) + " ===\n") + append_text("\n=== " + get_string_within_curly_braces(line) + " ===\n") head = True elif "\\begin{equation}" in line and parse: @@ -458,21 +459,21 @@ def readin(ofname, glossary, mmd): if "\\drmfname" in line and parse: append_text( "
This formula has the name: " + - getString(line) + + get_string_within_curly_braces(line) + "

\n") elif math and parse: flagM = True eqs[-1] += line if "\\end{equation}" in lines[ - i + - 1] and "\\subsection" not in lines[ - i + - 3] and "\\section" not in lines[ - i + - 3] and "\\part" not in lines[ - i + - 3]: + i + + 1] and "\\subsection" not in lines[ + i + + 3] and "\\section" not in lines[ + i + + 3] and "\\part" not in lines[ + i + + 3]: u = i flagM2 = False while flagM: @@ -480,7 +481,7 @@ def readin(ofname, glossary, mmd): if "\\begin{equation}" in lines[u] in lines[u]: flagM = False if "\\section" in lines[u] or "\\subsection" in lines[ - i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: + i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: flagM = False flagM2 = True if not flagM2: @@ -501,58 +502,58 @@ def readin(ofname, glossary, mmd): elif math and not parse: eqs[-1] += line if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1]: + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1]: math = False if substitution and parse: subLine += line.replace("&", "&
") if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: lineR = "" for i in range(0, len(subLine)): if subLine[i] == "&" and not ( - i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): + i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): lineR += "&
" else: lineR += subLine[i] substitution = False append_text( "
Substitution(s): " + - getEq(subLine) + + get_equation(subLine) + "

\n") if constraint and parse: conLine += line.replace("&", "&
") if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False append_text( "
Constraint(s): " + - getEq(conLine) + + get_equation(conLine) + "

\n") eqCounter = 0 @@ -639,7 +640,7 @@ def readin(ofname, glossary, mmd): "#" + secLabel( labels[eqCounter][ - len("Formula:"):]) + + len("Formula:"):]) + "|formula in " + secLabel( sections[ @@ -723,7 +724,7 @@ def readin(ofname, glossary, mmd): "#" + secLabel( labels[eqCounter][ - len("Formula:"):]) + + len("Formula:"):]) + "|formula in " + secLabel( sections[ @@ -893,7 +894,7 @@ def readin(ofname, glossary, mmd): Q = symbolPar listArgs = [] if len(Q) > len(symbol) and (Q[ - len(symbol)] == "{" or Q[len(symbol)] == "["): + len(symbol)] == "{" or Q[len(symbol)] == "["): ap = "" for o in range(len(symbol), len(Q)): if Q[o] == "}" or z == "]": @@ -906,7 +907,7 @@ def readin(ofname, glossary, mmd): for t in range(5, len(G)): if G[t] != "": websiteF = websiteF + \ - " [" + G[t] + " " + G[t] + "]" + " [" + G[t] + " " + G[t] + "]" p1 = G[4].strip("$") p1 = "" + p1 + "" # if checkFlag: @@ -1001,7 +1002,7 @@ def readin(ofname, glossary, mmd): "#" + secLabel( labels[eqCounter][ - len("Formula:"):]) + + len("Formula:"):]) + "|formula in " + secLabel( sections[ @@ -1064,7 +1065,7 @@ def readin(ofname, glossary, mmd): "_") + "#" + labels[endNum][ - 8:] + + 8:] + "|formula in " + labels[0] + "]]
\n") @@ -1102,7 +1103,7 @@ def readin(ofname, glossary, mmd): elif "\\drmfname" in line and parse: math = False comToWrite = "\n== Name ==\n\n
" + \ - getString(line) + "

\n" + comToWrite + get_string_within_curly_braces(line) + "

\n" + comToWrite elif "\\drmfnote" in line and parse: symbols = symbols + getSym(line) @@ -1167,7 +1168,7 @@ def readin(ofname, glossary, mmd): proof = False append_text( comToWrite + - getEqP(proofLine) + + get_proofs_data(proofLine) + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) @@ -1215,7 +1216,7 @@ def readin(ofname, glossary, mmd): proof = False append_text( comToWrite + - getEqP(proofLine).rstrip("\n") + + get_proofs_data(proofLine).rstrip("\n") + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) @@ -1223,18 +1224,18 @@ def readin(ofname, glossary, mmd): elif math: if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1] or "\\drmfnote" in lines[ - i + - 1] or "\\drmfname" in lines[ i + - 1]: + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1] or "\\drmfnote" in lines[ + i + + 1] or "\\drmfname" in lines[ + i + + 1]: append_text(line.rstrip("\n")) symLine += line.strip("\n") symbols = symbols + getSym(symLine) @@ -1247,26 +1248,31 @@ def readin(ofname, glossary, mmd): noteLine += line symbols = symbols + getSym(line) if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: note = False if "\\emph" in noteLine: noteLine = noteLine[ - 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ - noteLine.find("\\emph{") + len("\\emph{"):noteLine.find( - "}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ - noteLine.find( - "}", noteLine.find("\\emph{") + len("\\emph{")) + 1:] + 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ + noteLine.find("\\emph{") + len( + "\\emph{"):noteLine.find( + "}", noteLine.find("\\emph{") + len( + "\\emph{"))] + "\'\'" + noteLine[ + noteLine.find( + "}", + noteLine.find( + "\\emph{") + len( + "\\emph{")) + 1:] comToWrite = comToWrite + "
" + \ - getEq(noteLine) + "

\n" + get_equation(noteLine) + "

\n" if constraint and parse: conLine += line.replace("&", "&
") @@ -1274,23 +1280,23 @@ def readin(ofname, glossary, mmd): symLine += line.strip("\n") # symbols=symbols+getSym(line) if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False symbols = symbols + getSym(symLine) symLine = "" append_text( comToWrite + "
" + - getEq(conLine) + + get_equation(conLine) + "

\n") comToWrite = "" if substitution and parse: @@ -1299,33 +1305,52 @@ def readin(ofname, glossary, mmd): symLine += line.strip("\n") if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: substitution = False symbols = symbols + getSym(symLine) symLine = "" lineR = "" for i in range(0, len(subLine)): if subLine[i] == "&" and not ( - i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): + i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): lineR += "&
" else: lineR += subLine[i] append_text( comToWrite + "
" + - getEq(subLine) + + get_equation(subLine) + "

\n") comToWrite = "" +def main(): + if len(sys.argv) != 6: + fname = "../../data/ZE.3.tex" + ofname = "../../data/ZE.4.xml" + lname = "../../data/BruceLabelLinks" + glossary = "../../data/new.Glossary.csv" + mmd = "../../data/OrthogonalPolynomials.mmd" + + else: + fname = sys.argv[1] + ofname = sys.argv[2] + lname = sys.argv[3] + glossary = sys.argv[4] + mmd = sys.argv[5] + setup_label_links(lname) + readin(fname, glossary, mmd) + writeout(ofname) + + if __name__ == "__main__": main() From e2435ce590e3dca923a589eb545f579e8af1242f Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 16 Aug 2016 14:28:05 -0400 Subject: [PATCH 277/402] Start rewrite of tex2Wiki --- tex2Wiki/README.md | 2 +- tex2Wiki/experiments/xml_output.py | 20 - tex2Wiki/src/DLMFtex2Wiki.py | 1154 ---------- tex2Wiki/src/OrthogonalPolynomials.mmd | 65 + tex2Wiki/src/OrthogonalPolynomials.mmd.new | 65 + tex2Wiki/src/__init__.py | 0 tex2Wiki/src/testData.txt | 0 tex2Wiki/src/tex2Wiki.py | 2436 +++++++++----------- tex2Wiki/src/tex2Wiki2.py | 136 ++ tex2Wiki/test/llinks | 1 - tex2Wiki/test/test_getEq.py | 9 - tex2Wiki/test/test_getString.py | 11 - tex2Wiki/test/test_isnumber.py | 11 - tex2Wiki/test/test_modlabel.py | 19 - tex2Wiki/test/test_secLabel.py | 6 - tex2Wiki/test/test_unmodLabel.py | 8 - 16 files changed, 1347 insertions(+), 2596 deletions(-) delete mode 100644 tex2Wiki/experiments/xml_output.py delete mode 100644 tex2Wiki/src/DLMFtex2Wiki.py create mode 100644 tex2Wiki/src/OrthogonalPolynomials.mmd create mode 100644 tex2Wiki/src/OrthogonalPolynomials.mmd.new create mode 100644 tex2Wiki/src/__init__.py create mode 100644 tex2Wiki/src/testData.txt create mode 100644 tex2Wiki/src/tex2Wiki2.py delete mode 100644 tex2Wiki/test/llinks delete mode 100644 tex2Wiki/test/test_getEq.py delete mode 100644 tex2Wiki/test/test_getString.py delete mode 100644 tex2Wiki/test/test_isnumber.py delete mode 100644 tex2Wiki/test/test_modlabel.py delete mode 100644 tex2Wiki/test/test_secLabel.py delete mode 100644 tex2Wiki/test/test_unmodLabel.py diff --git a/tex2Wiki/README.md b/tex2Wiki/README.md index 760607b..3ae558d 100644 --- a/tex2Wiki/README.md +++ b/tex2Wiki/README.md @@ -1,6 +1,6 @@ # tex2Wiki -## Azeem Mohammed +## Azeem Mohammed, Joon Bang WIP code diff --git a/tex2Wiki/experiments/xml_output.py b/tex2Wiki/experiments/xml_output.py deleted file mode 100644 index f91670d..0000000 --- a/tex2Wiki/experiments/xml_output.py +++ /dev/null @@ -1,20 +0,0 @@ -import xml.etree.ElementTree as ET - - -def main(): - ET.register_namespace('', 'http://www.mediawiki.org/xml/export-0.10/') - root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') - page = ET.SubElement(root, 'page') - title = ET.SubElement(page, 'title') - title.text = 'the Title & stuff' - ET.dump(root) - tree = ET.ElementTree(root) - tree.write( - "page.xhtml", - xml_declaration=True, - encoding='utf-8', - method='xml') - - -if __name__ == "__main__": - main() diff --git a/tex2Wiki/src/DLMFtex2Wiki.py b/tex2Wiki/src/DLMFtex2Wiki.py deleted file mode 100644 index 7c20de0..0000000 --- a/tex2Wiki/src/DLMFtex2Wiki.py +++ /dev/null @@ -1,1154 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -# Version 15: Minor Fixes -# Convert tex to wikiText -import csv # imported for using csv format -import sys # imported for getting args -from shutil import copyfile -from tex2Wiki import append_text, append_revision, get_string_within_, getSym, getEq, secLabel, getEqP, unmodLabel, isnumber - - -def mod_label(label): - is_numeric = False - new_label = "" - num = "" - for i in range(len(label)): - if is_numeric and not isnumber(label[i]): - if len(num) > 1: - new_label += num - num = "" - else: - new_label += "0" + str(num) - num = "" - if isnumber(label[i]): - is_numeric = True - num += str(label[i]) - else: - is_numeric = False - new_label += label[i] - if len(num) > 1: - new_label += num - elif len(num) == 1: - new_label += "0" + num - return new_label - - -def dlmf(of_name, mmd, llinks, n): - for iterations in range(0, 1): - tex = open(of_name, 'r') - main_file = open(mmd, "r") - l_links = open(llinks, 'r') - main_prepend = "" - main_write = open("ZetaFunctions.mmd.new", "w") - l_link_list = l_links.readlines() - math = False - constraint = False - substitution = False - symbols = [] - lines = tex.readlines() - ref_lines = [] - sections = [] - labels = [] - eqs = [] - ref_eqs = [] - parse = False - head = False - try: - chap_ref = [("GA", open("../../data/GA.tex", 'r')), - ("ZE", open("../../data/ZE.3.tex", 'r'))] - except IOError: - chap_ref = [("GA", open("GA.tex", 'r')), ("ZE", open("ZE.3.tex", 'r'))] - ref_labels = [] - for chap in chap_ref: - ref_lines = ref_lines + (chap[1].readlines()) - chap[1].close() - for i in range(len(ref_lines)): - line = ref_lines[i] - if "\\begin{equation}" in line: - s_label = line.find("\\label{") + 7 - e_label = line.find("}", s_label) - label = line[s_label:e_label] - for l_link in l_link_list: - if l_link.find(label) != -1 and l_link[len(label) + 1] == "=": - r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] - r_label = r_label.replace("/", "") - r_label = r_label.replace("#", ":") - break - label = r_label - ref_labels.append(label) - ref_eqs.append("") - math = True - elif math: - ref_eqs[-1] += line - if any([item in ref_lines[i + 1] - for item in ["\\end{equation}", "\\constraint", "\\substitution", "\\drmfn"]]): - math = False - - start_flag = True - for i in range(len(lines)): - line = lines[i] - if "\\begin{document}" in line: - parse = True - elif "\\end{document}" in line: - main_prepend += "
\n" - main_text = main_prepend - main_text = main_text.replace("drmf_bof\n", "") - main_text = main_text.replace("drmf_eof\n", "") - main_text = main_text.replace( - "\'\'\'Zeta and Related Functions\'\'\'\n", "") - main_text = main_text.replace("{{#set:Section=0}}\n", "") - append_revision('Zeta and Related Functions') - main_text = "{{#set:Section=0}}\n" + main_text - main_write.write(main_text) - main_write.close() - main_file.close() - copyfile(mmd, 'ZetaFunctions.mmd.new') - parse = False - elif "\\title" in line and parse: - labels.append("Zeta and Related Functions") - sections.append(["Zeta and Related Functions", 0]) - elif "\\part" in line: - if getString(line) == "BOF": - parse = False - elif getString(line) == "EOF": - parse = True - elif parse: - stringWrite = "\'\'\'" - stringWrite += getString(line) + "\'\'\'\n" - chapter = getString(line) - if start_flag: - main_prepend += ( - "\n== Sections in " + - chapter + - " ==\n\n
\n") - start_flag = False - else: - main_prepend += ("
\n\n== Sections in " + - chapter + - " ==\n\n
\n") - head = True - elif "\\section" in line: - main_prepend += ("* [[" + - secLabel(getString(line)) + - "|" + - getString(line) + - "]]\n") - sections.append([getString(line)]) - - secCounter = 0 - eqCounter = 0 - for i in range(0, len(lines)): - line = lines[i] - if "\\section" in line: - parse = True - secCounter += 1 - append_revision(secLabel(getString(line))) - append_text( - "{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") - append_text("
\n") - append_text( - "
<< [[" + - secLabel( - sections[ - secCounter - - 1][0]) + - "|" + - secLabel( - sections[ - secCounter - - 1][0]) + - "]]
\n") - append_text( - "
[[Zeta_and_Related_Functions#" + - "Sections_in_" + - chapter.replace( - " ", - "_") + - "|" + - secLabel( - sections[secCounter][0]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - (secCounter + - 1) % - len(sections)][0]) + - "|" + - secLabel( - sections[ - (secCounter + - 1) % - len(sections)][0]) + - "]] >>
\n
\n\n") - head = True - append_text("== " + getString(line) + " ==\n") - elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ - (i + 1) % len(lines)]) and parse: - append_text("
\n") - append_text( - "
<< [[" + - secLabel( - sections[ - secCounter - - 1][0]) + - "|" + - secLabel( - sections[ - secCounter - - 1][0]) + - "]]
\n") - append_text( - "
[[Zeta_and_Related_Functions#" + - "Sections_in_" - "" + - chapter.replace( - " ", - "_") + - "|" + - secLabel( - sections[secCounter][0]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - (secCounter + - 1) % - len(sections)][0]) + - "|" + - secLabel( - sections[ - (secCounter + - 1) % - len(sections)][0]) + - "]] >>
\n
\n\n") - append_text("drmf_eof\n") - sections[secCounter].append(eqCounter) - eqCounter = 0 - - elif "\\subsection" in line and parse: - append_text("\n== " + getString(line) + " ==\n") - head = True - elif "\\paragraph" in line and parse: - append_text("\n=== " + getString(line) + " ===\n") - head = True - elif "\\subsubsection" in line and parse: - append_text("\n=== " + getString(line) + " ===\n") - head = True - - elif "\\begin{equation}" in line and parse: - if head: - append_text("\n") - head = False - s_label = line.find("\\label{") + 7 - e_label = line.find("}", s_label) - label = (line[s_label:e_label]) - eqCounter += 1 - for l_link in l_link_list: - if label == l_link[0:l_link.find("=") - 1]: - r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] - r_label = r_label.replace("/", "") - r_label = r_label.replace("#", ":") - r_label = r_label.replace("!", ":") - break - label = mod_label(r_label) - labels.append("Formula:" + r_label) - eqs.append("") - append_text( - "\n") - math = True - elif "\\begin{equation}" in line and not parse: - s_label = line.find("\\label{") + 7 - e_label = line.find("}", s_label) - label = mod_label(line[s_label:e_label]) - labels.append("*" + label) # special marker - eqs.append("") - math = True - elif "\\end{equation}" in line: - - math = False - elif "\\constraint" in line and parse: - constraint = True - math = False - conLine = "" - elif "\\substitution" in line and parse: - substitution = True - math = False - subLine = "" - elif "\\proof" in line and parse: - math = False - elif "\\drmfn" in line and parse: - math = False - if "\\drmfname" in line and parse: - append_text( - "
This formula has the name: " + - getString(line) + - "

\n") - elif math and parse: - flagM = True - eqs[-1] += line - - if not ( - (not ( - "\\end{equation}" in lines[ - i + - 1]) or "\\subsection" in lines[ - i + - 3]) or "\\section" in lines[ - i + - 3]) and not "\\part" in lines[ - i + - 3]: - u = i - flagM2 = False - while flagM: - u += 1 - if "\\begin{equation}" in lines[u] in lines[u]: - flagM = False - if "\\section" in lines[u] or "\\subsection" in lines[ - i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: - flagM = False - flagM2 = True - if not flagM2: - - append_text(line.rstrip("\n")) - append_text("\n
\n") - else: - append_text(line.rstrip("\n")) - append_text("\n\n") - elif "\\end{equation}" in lines[i + 1]: - append_text(line.rstrip("\n")) - append_text("\n\n") - elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: - append_text(line.rstrip("\n")) - append_text("\n\n") - else: - append_text(line) - elif math and not parse: - eqs[-1] += line - if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1]: - math = False - if substitution and parse: - subLine += line.replace("&", "&
") - if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - substitution = False - append_text( - "
Substitution(s): " + - getEq(subLine) + - "

\n") - - if constraint and parse: - conLine += line.replace("&", "&
") - if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - constraint = False - append_text( - "
Constraint(s): " + - getEq(conLine) + - "

\n") - - eqCounter = n - endNum = len(labels) - 1 - parse = False - constraint = False - substitution = False - note = False - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - comToWrite = "" - secCount = -1 - newSec = False - for i in range(0, len(lines)): - line = lines[i] - - if "\\section" in line: - secCount += 1 - newSec = True - eqS = 0 - - if "\\begin{equation}" in line: - symLine = line.strip("\n") - eqS += 1 - constraint = False - substitution = False - note = False - comToWrite = "" - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - parse = True - symbols = [] - eqCounter += 1 - label = labels[eqCounter] - append_revision(secLabel(label)) - append_text("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") - if eqCounter == len(labels) - 1: - break - if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS - append_text("
\n") - if newSec: - append_text( - "
" - "<< [[" + - secLabel( - sections[secCount][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[secCount][0]) + - "]]
\n") - else: - append_text( - "
" - "<< [[" + - secLabel( - labels[ - eqCounter - - 1]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - eqCounter - - 1]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - secCount + - 1][0]).replace( - " ", - "_") + - "#" + - secLabel( - labels[eqCounter][ - len("Formula:"):]) + - "|formula in " + - secLabel( - sections[ - secCount + - 1][0]) + - "]]
\n") - if True: - append_text( - "
[[" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]) + - "]] >>
\n") - append_text("
\n\n") - elif eqCounter == endNum: - append_text("
\n") - if newSec: - newSec = False - append_text( - "
<< [[" + - secLabel( - sections[secCount][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[secCount][0]) + - "]]
\n") - else: - append_text( - "
" - "<< [[" + - secLabel( - labels[ - eqCounter - - 1]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - eqCounter - - 1]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - secCount + - 1][0]).replace( - " ", - "_") + - "#" + - secLabel( - labels[eqCounter][ - len("Formula:"):]) + - "|formula in " + - secLabel( - sections[ - secCount + - 1][0]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)].replace( - " ", - "_")) + - "|" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]) + - "]]
\n") - append_text("
\n\n") - - append_text("
\n") - math = True - elif "\\end{equation}" in line: - append_text(comToWrite) - parse = False - math = False - if hProof: - append_text("\n== Proof ==\n\nWe ask users to provide proof(s), \ - reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - - append_text("\n== Symbols List ==\n\n") - newSym = [] - # if "09.07:04" in label: - for x in symbols: - flagA = True - # if x not in newSym: - cN = 0 - cC = 0 - flag = True - ArgCx = 0 - for z in x: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgCx += 1 - noA = x[:cN] - for y in newSym: - cN = 0 - cC = 0 - ArgC = 0 - flag = True - for z in y: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgC += 1 - - if y[:cN] == noA: # and ArgC==ArgCx: - flagA = False - break - if flagA: - newSym.append(x) - newSym.reverse() - ampFlag = False - finSym = [] - for s in range(len(newSym) - 1, -1, -1): - symbolPar = "\\" + newSym[s] - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - for z in symbolPar: - if z == "@": - parFlag = True - elif z.isalpha() or z == "&": - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - - if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: - if symbolPar.find("[") == -1: - symbol = symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): - symbol = symbolPar[0:symbolPar.find("[")] - else: - symbol = symbolPar[0:symbolPar.find("{")] - else: - symbol = symbolPar - gFlag = False - checkFlag = False - get = False - try: - gCSV = csv.reader( - open( - sys.argv[3], - 'rb'), - delimiter=',', - quotechar='\"') - except (IOError, IndexError): - gCSV = csv.reader( - open( - '../../data/new.Glossary.csv', - 'rb'), - delimiter=',', - quotechar='\"') - preG = "" - if symbol == "\\&": - ampFlag = True - for S in gCSV: - G = S - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 - for z in G[0]: - if z == "@": - parFlag = True - elif z.isalpha(): - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): - checkFlag = True - get = True - preG = S - elif checkFlag: - get = True - checkFlag = False - if get: - if get: - G = preG - if True: - if symbolPar.find("@") != -1: - Q = symbolPar[:symbolPar.find("@")] - else: - Q = symbolPar - listArgs = [] - if len(Q) > len(symbol) and (Q[ - len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - pass - elif Q[o] == "}" or z == "]": - listArgs.append(ap) - ap = "" - else: - ap += Q[o] - websiteF = "" - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + \ - " [" + G[t] + " " + G[t] + "]" - p1 = G[4].strip("$") - p1 = "" + p1 + "" - # if checkFlag: - new2 = "" - pause = False - mathF = True - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += " " - else: - new2 += "" - mathF = not mathF - else: - new2 += p2[k] - p2 = new2 - finSym.append( - web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - if not gFlag: - del newSym[s] - - gFlag = True - if ampFlag: - append_text("& : logical and") - gFlag = False - for y in finSym: - if y == "& : logical and": - pass - elif gFlag: - gFlag = False - append_text("[" + y) - else: - append_text("
\n[" + y) - - append_text("\n
\n") - - # should there be a space between bibliography and ==? - append_text("\n== Bibliography==\n\n") - r = unmodLabel(labels[eqCounter]) - q = r.find("DLMF:") + 5 - p = r.find(":", q) - section = r[q:p] - equation = r[p + 1:] - if equation.find(":") != -1: - equation = equation[0:equation.find(":")] - if isnumber(section) == False: - return eqCounter - append_text( - "[HTTP://DLMF.NIST.GOV/" + - section + - "#" + - equation + - " Equation (" + - equation[ - 1:] + - "), Section " + - section + - "] of [[Bibliography#DLMF|'''DLMF''']].\n\n") - append_text( - "== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") - if eqCounter < endNum: - append_text("
\n") - if newSec: - newSec = False - append_text( - "
<< [[" + - secLabel( - sections[secCount][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[secCount][0]) + - "]]
\n") - else: - append_text( - "
<< [[" + - secLabel( - labels[ - eqCounter - - 1]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - eqCounter - - 1]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - secCount + - 1][0]).replace( - " ", - "_") + - "#" + - secLabel( - labels[eqCounter][ - len("Formula:"):]) + - "|formula in " + - secLabel( - sections[ - secCount + - 1][0]) + - "]]
\n") - if True: - append_text( - "
[[" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]) + - "]] >>
\n") - append_text("
\n\ndrmf_eof\n") - else: # FOR EXTRA EQUATIONS - append_text("
\n") - append_text( - "
<< [[" + - labels[ - endNum - - 1].replace( - " ", - "_") + - "|" + - labels[ - endNum - - 1] + - "]]
\n") - append_text( - "
[[" + - labels[0].replace( - " ", - "_") + - "#" + - labels[endNum][ - 8:] + - "|formula in " + - labels[0] + - "]]
\n") - append_text( - "
[[" + - labels[ - (0) % - endNum].replace( - " ", - "_") + - "|" + - labels[ - 0 % - endNum] + - "]]
\n") - append_text("
\n\ndrmf_eof\n") - - elif "\\constraint" in line and parse: - symLine = line.strip("\n") - if hCon: - comToWrite += "\n== Constraint(s) ==\n\n" - hCon = False - constraint = True - math = False - conLine = "" - elif "\\substitution" in line and parse: - symLine = line.strip("\n") - if hSub: - comToWrite += "\n== Substitution(s) ==\n\n" - hSub = False - substitution = True - math = False - subLine = "" - elif "\\drmfname" in line and parse: - math = False - comToWrite = "\n== Name ==\n\n
" + \ - getString(line) + "

\n" + comToWrite - - elif "\\drmfnote" in line and parse: - symbols = symbols + getSym(line) - if hNote: - comToWrite += "\n== Note(s) ==\n\n" - hNote = False - note = True - math = False - noteLine = "" - - elif "\\proof" in line and parse: - symLine = line.strip("\n") - if hProof: - hProof = False - comToWrite += "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), " \ - "or further clarification on the proof(s) in this space. \n

\n
" - proof = True - proofLine = "" - pause = False - pauseP = False - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) - for l_link in l_link_list: - if rLab == l_link[0:l_link.find("=") - 1]: - r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] - r_label = r_label.replace("/", "") - r_label = r_label.replace("#", ":") - r_label = r_label.replace("!", ":") - break - - eInd = ref_labels.index("" + r_label) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n\n" + - ref_eqs[eInd] + - "" + - z + - "
\n") - else: - if z == "}": - proofLine += ("
\n\n" + - ref_eqs[eInd] + - "
") - else: - proofLine += ("
\n\n" + - ref_eqs[eInd] + - "
\n") - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - append_text( - comToWrite + - getEqP(proofLine) + - "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - elif proof: - symLine += line.strip("\n") - pauseP = False - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = getString(eqR) - for l_link in l_link_list: - if rLab == l_link[0:l_link.find("=") - 1]: - r_label = l_link[l_link.find("=>") + 3:l_link.find("\\n")] - r_label = r_label.replace("/", "") - r_label = r_label.replace("#", ":") - r_label = r_label.replace("!", ":") - break - - eInd = ref_labels.index("" + r_label.lstrip("Formula:")) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n\n" + - ref_eqs[eInd] + - "" + - z + - "
\n") - else: - proofLine += ("
\n\n" + - ref_eqs[eInd] + - "
\n") - - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - append_text( - comToWrite + - getEqP(proofLine).rstrip("\n") + - "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - elif math: - if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1] or "\\drmfnote" in lines[ - i + - 1] or "\\drmfname" in lines[ - i + - 1]: - append_text(line.rstrip("\n")) - symLine += line.strip("\n") - symbols = symbols + getSym(symLine) - symLine = "" - append_text("\n
\n") - else: - symLine += line.strip("\n") - append_text(line) - if note and parse: - noteLine = noteLine + line - symbols = symbols + getSym(line) - if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - note = False - if "\\emph" in noteLine: - noteLine = noteLine[ - 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ - noteLine.find("\\emph{") + len( - "\\emph{"): noteLine.find( - "}", noteLine.find("\\emph{") + len( - "\\emph{"))] + "\'\'" + noteLine[ - noteLine.find( - "}", - noteLine.find( - "\\emph{") + len( - "\\emph{")) + 1:] - comToWrite = comToWrite + "
" + \ - getEq(noteLine) + "

\n" - - if constraint and parse: - conLine += line.replace("&", "&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - constraint = False - symbols = symbols + getSym(symLine) - symLine = "" - append_text( - comToWrite + - "
" + - getEq(conLine) + - "

\n") - comToWrite = "" - if substitution and parse: - subLine = subLine + line.replace("&", "&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - substitution = False - symbols = symbols + getSym(symLine) - symLine = "" - append_text( - comToWrite + - "
" + - getEq(subLine) + - "

\n") - comToWrite = "" - - -if __name__ == "__main__": - tex = "../../data/ZE.3.tex" - mainFile = "../../data/OrthogonalPolynomials.mmd" - lLinks = "../../data/BruceLabelLinks" - dlmf(tex, mainFile, lLinks, 0) diff --git a/tex2Wiki/src/OrthogonalPolynomials.mmd b/tex2Wiki/src/OrthogonalPolynomials.mmd new file mode 100644 index 0000000..cab1d14 --- /dev/null +++ b/tex2Wiki/src/OrthogonalPolynomials.mmd @@ -0,0 +1,65 @@ +drmf_bof +'''Orthogonal Polynomials''' +{{#set:Section=0}} +== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+ +drmf_eof diff --git a/tex2Wiki/src/OrthogonalPolynomials.mmd.new b/tex2Wiki/src/OrthogonalPolynomials.mmd.new new file mode 100644 index 0000000..cab1d14 --- /dev/null +++ b/tex2Wiki/src/OrthogonalPolynomials.mmd.new @@ -0,0 +1,65 @@ +drmf_bof +'''Orthogonal Polynomials''' +{{#set:Section=0}} +== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+== Sections in KLS Chapter 1 == + +
+* [[Orthogonal polynomials|Orthogonal polynomials]] +* [[The gamma and beta function|The gamma and beta function]] +* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] +* [[Hypergeometric functions|Hypergeometric functions]] +* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] +* [[Some integrals|Some integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[The q-shifted factorial|The ''q''-shifted factorial]] +* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] +* [[Basic hypergeometric functions|Basic hypergeometric functions]] +* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] +* [[More integrals|More integrals]] +* [[Transformation formulas|Transformation formulas]] +* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] +* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] +* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] +
+ +drmf_eof diff --git a/tex2Wiki/src/__init__.py b/tex2Wiki/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tex2Wiki/src/testData.txt b/tex2Wiki/src/testData.txt new file mode 100644 index 0000000..e69de29 diff --git a/tex2Wiki/src/tex2Wiki.py b/tex2Wiki/src/tex2Wiki.py index 8140140..9d137bb 100644 --- a/tex2Wiki/src/tex2Wiki.py +++ b/tex2Wiki/src/tex2Wiki.py @@ -1,1356 +1,1080 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -# Version 15: Minor Fixes -# Convert tex to wikiText -import csv # imported for using csv format -import sys # imported for getting args -from shutil import copyfile -import xml.etree.ElementTree as ET -import datetime - -wiki = '' -next_formula_number = 0 -lLink = '' -ET.register_namespace('', 'http://www.mediawiki.org/xml/export-0.10/') -root = ET.Element('{http://www.mediawiki.org/xml/export-0.10/}mediawiki') - - -def is_number(char): # Function to check if char is a number (assuming 1 character) - return char[0].isdigit() - - -def get_string_within_curly_braces(line): - """Gets all data within curly braces on a line""" - # TODO: Possibly have to fix for nested curly braces - - string_within_braces = "" - get_str = False - prev_char = "" - - for char in line: - if char in ["{", "}"]: - get_str = not get_str - if char == "}": - break - # If within curly braces - elif get_str: - # If there is no double dash (makes single dash) - if not (prev_char == char and char == "-"): - if char != "$": - # this character is part of the data - string_within_braces += char - else: - # Add double single quote instead of $ - string_within_braces += "''" - # Change last character for finding double dashes - prev_char = char - # Return the data without newlines and without leading spaces - return string_within_braces.rstrip('\n').lstrip() - - -def get_symbol_list_eq(line): - """Gets equation for symbols list""" - start = True - final = "" - for c in line: - if c == "$" and start: - final += " " - start = False - elif c == "$": - final += "" - start = True - else: - final += c - return final - - -def get_equation(line, proof=False): - """Gets all data within constraints, substitutions""" - per = 1 - string_write = "" - end_of_equation = False - count = 0 - length = 0 - # TODO: figure out what count and per do -_- - - # read each character - for char in line: - if proof and end_of_equation and char not in [" ", "$", "{", "}"] and not char.isalpha(): - length += 1 - if count >= 0 and per != 0: - per += 1 - if char != " " and char != "%": - per = 0 - if char == "{" and per == 0: - if count > 0: - string_write += char - count += 1 - elif char == "}" and per == 0: - count -= 1 - if count > 0: - string_write += char - # either begin or end equation - elif char == "$" and per == 0: - # toggle end_of_equation flag to know if begin or end equation - end_of_equation = not end_of_equation - # if begin - if end_of_equation: - string_write += "" - else: - if proof and length >= 10: - string_write += "
" - else: - string_write += "" - length = 0 - # if newline - elif char == "\n" and per == 0: - string_write = string_write.strip() - - # should above be - # rstrip?<-------------------------------------------------------------------CHECK - # THIS - - string_write += char - per += 1 # watch for % signs - elif count > 0 and per == 0: # not special character - string_write += char # write the character - - return string_write.strip() - - -def get_proofs_data(line): - """Gets all data within proofs""" - per = 1 - stringWrite = "" - fEq = False - count = 0 - length = 0 - for c in line: - if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): - length += 1 - if count >= 0 and per != 0: - per += 1 - if c != " " and c != "%": - # if c!="%": - per = 0 - if c == "{" and per == 0: - if count > 0: - stringWrite += c - count += 1 - elif c == "}" and per == 0: - count -= 1 - if count > 0: - stringWrite += c - elif c == "$" and per == 0: - fEq = not fEq - if fEq: - stringWrite += " " - else: - if length < 10: - stringWrite += "" - else: - stringWrite += "" + "
" - length = 0 - elif c == "\n" and per == 0: - stringWrite = stringWrite.strip() - stringWrite += c - per += 1 - elif count > 0 and per == 0: - stringWrite += c - - return stringWrite.lstrip() - - -def getSym(line): # Gets all symbols on a line for symbols list - symList = [] - if line == "": - return symList - symbol = "" - symFlag = False - argFlag = False - cC = 0 - for i in range(0, len(line)): - # if - # "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" - # in line: - c = line[i] - if symFlag: - if c == "{" or c == "[": - cC += 1 - argFlag = True - if c != "}" and c != "]": - if argFlag or c.isalpha(): - symbol += c - else: - symFlag = False - argFlag = False - symList.append(symbol) - symList += (getSym(symbol)) - symbol = "" - else: - cC -= 1 - symbol += c - if i + 1 == len(line): - p = "" - else: - p = line[i + 1] - if cC <= 0 and p != "{" and p != "[" and p != "@": - symFlag = False - # if - # "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" - # in line: - symList.append(symbol) - symList += (getSym(symbol)) - argFlag = False - symbol = "" - - elif c == "\\": - symFlag = True - elif c == "&" and not (i > line.find("\\begin{array}") and i < line.find("\\end{array}")): - symList.append("&") - - # if - # "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" - # in line: - symList.append(symbol) - symList += getSym(symbol) - return symList - - -def unmodLabel(label): - label = label.replace(".0", ".") - label = label.replace(":0", ":") - return label - - -def secLabel(label): - return label.replace("\'\'", "") - - -def modLabel(line): - global lLink - start_label = line.find("\\formula{") - if start_label > 0: - start_label += len("\\formula{") - else: - start_label = line.find("\\label{") - if start_label > 0: - start_label += len("\\label{") - else: - global next_formula_number - next_formula_number += 1 - return 'auto-number-' + str(next_formula_number) - end_label = line.find("}", start_label) - label = line[start_label:end_label] - rlabel = label - for l in lLink: - if l.find(label) != -1 and l[len(label) + 1] == "=": - rlabel = l[l.find("=>") + 3:l.find("\\n")] - rlabel = rlabel.replace("/", "") - rlabel = rlabel.replace("#", ":") - break - label = rlabel - label = label.replace('eq:', 'Formula:') - isNumer = False - newlabel = "" - num = "" - for i in range(0, len(label)): - if isNumer and not is_number(label[i]): - if len(num) > 1: - newlabel += num - num = "" - else: - newlabel += "0" + str(num) - num = "" - if is_number(label[i]): - isNumer = True - num += str(label[i]) - else: - isNumer = False - newlabel += label[i] - if len(num) > 1: - newlabel += num - elif len(num) == 1: - newlabel += "0" + num - return newlabel - - -def append_text(text): - global wiki - wiki.text = wiki.text + text - - -def append_revision(param): - global wiki - page = ET.SubElement(root, 'page') - title = ET.SubElement(page, 'title') - title.text = param - revision = ET.SubElement(page, 'revision') - timestamp = ET.SubElement(revision, 'timestamp') - timestamp.text = str(datetime.datetime.utcnow()) - contributor = ET.SubElement(revision, 'contributor') - username = ET.SubElement(contributor, 'username') - username.text = 'SeedBot' - wiki = ET.SubElement(revision, 'text') - wiki.text = '' - - -def writeout(ofname): - tree = ET.ElementTree(root) - tree.write(ofname, xml_declaration=True, encoding='utf-8', method='xml') - - -def setup_label_links(ofname): - global lLink - lLink = open(ofname, "r").readlines() - - -def readin(ofname, glossary, mmd): - # try: - for iterations in range(0, 1): - tex = open(ofname, 'r') - main_file = open(mmd, "r") - mainText = main_file.read() - mainPrepend = "" - mainWrite = open("OrthogonalPolynomials.mmd.new", "w") - glossary = open('new.Glossary.csv', 'rb') - math = False - constraint = False - substitution = False - symbols = [] - lines = tex.readlines() - refLines = [] - sections = [] - labels = [] - eqs = [] - refEqs = [] - parse = False - head = False - refLabels = [] - chapter = '' - for i in range(0, len(refLines)): - line = refLines[i] - if "\\begin{equation}" in line: - label = modLabel(line) - refLabels.append(label) - refEqs.append("") - math = True - elif math: - refEqs[-1] += line - if "\\end{equation}" in refLines[ - i + - 1] or "\\constraint" in refLines[ - i + - 1] or "\\substitution" in refLines[ - i + - 1] or "\\drmfn" in refLines[ - i + - 1]: - math = False - - for i in range(0, len(lines)): - line = lines[i] - if "\\begin{document}" in line: - parse = True - elif "\\end{document}" in line and parse: - mainPrepend += "
\n" - mainText = mainPrepend + mainText - mainText = mainText.replace( - "\'\'\'Orthogonal Polynomials\'\'\'\n", "") - mainText = mainText.replace("{{#set:Section=0}}\n", "") - mainText = mainText[0:mainText.rfind("== Sections ")] - append_revision('Orthogonal Polynomials') - mainText = "{{#set:Section=0}}\n" + mainText - mainWrite.write(mainText) - mainWrite.close() - main_file.close() - copyfile(mmd, 'OrthogonalPolynomials.mmd.new') - parse = False - elif "\\title" in line and parse: - stringWrite = "\'\'\'" - stringWrite += get_string_within_curly_braces(line) + "\'\'\'\n" - labels.append("Orthogonal Polynomials") - sections.append(["Orthogonal Polynomials", 0]) - chapter = get_string_within_curly_braces(line) - mainPrepend += ( - "\n== Sections in " + - chapter + - " ==\n\n
\n") - elif "\\part" in line: - if get_string_within_curly_braces(line) == "BOF": - parse = False - elif get_string_within_curly_braces(line) == "EOF": - parse = True - elif parse: - mainPrepend += ("\n
\n= " + get_string_within_curly_braces(line) + " =\n") - head = True - elif "\\section" in line: - mainPrepend += ("* [[" + - secLabel(get_string_within_curly_braces(line)) + - "|" + - get_string_within_curly_braces(line) + - "]]\n") - sections.append([get_string_within_curly_braces(line)]) - - secCounter = 0 - eqCounter = 0 - subLine = '' - conLine = '' - for i in range(0, len(lines)): - line = lines[i] - if "\\section" in line: - parse = True - secCounter += 1 - append_revision(secLabel(get_string_within_curly_braces(line))) - append_text( - "{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") - append_text("{{#set:Chapter=" + chapter + "}}\n") - append_text("{{#set:Section=" + str(secCounter) + "}}\n") - append_text("{{headSection}}\n") - head = True - append_text("== " + get_string_within_curly_braces(line) + " ==\n") - elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ - (i + 1) % len(lines)]) and parse: - append_text("{{footSection}}\n") - sections[secCounter].append(eqCounter) - eqCounter = 0 - - elif "\\subsection" in line and parse: - append_text("\n== " + get_string_within_curly_braces(line) + " ==\n") - head = True - elif "\\paragraph" in line and parse: - append_text("\n=== " + get_string_within_curly_braces(line) + " ===\n") - head = True - elif "\\subsubsection" in line and parse: - append_text("\n=== " + get_string_within_curly_braces(line) + " ===\n") - head = True - - elif "\\begin{equation}" in line and parse: - if head: - append_text("\n") - head = False - label = modLabel(line) - eqCounter += 1 - labels.append(label) - eqs.append("") - append_text("") - math = True - elif "\\begin{equation}" in line and not parse: - label = modLabel(line) - labels.append("*" + label) # special marker - eqs.append("") - math = True - elif "\\end{equation}" in line: - - math = False - elif "\\constraint" in line and parse: - constraint = True - math = False - conLine = "" - elif "\\substitution" in line and parse: - substitution = True - math = False - subLine = "" - elif "\\proof" in line and parse: - math = False - elif "\\drmfn" in line and parse: - math = False - if "\\drmfname" in line and parse: - append_text( - "
This formula has the name: " + - get_string_within_curly_braces(line) + - "

\n") - elif math and parse: - flagM = True - eqs[-1] += line - - if "\\end{equation}" in lines[ - i + - 1] and "\\subsection" not in lines[ - i + - 3] and "\\section" not in lines[ - i + - 3] and "\\part" not in lines[ - i + - 3]: - u = i - flagM2 = False - while flagM: - u += 1 - if "\\begin{equation}" in lines[u] in lines[u]: - flagM = False - if "\\section" in lines[u] or "\\subsection" in lines[ - i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: - flagM = False - flagM2 = True - if not flagM2: - - append_text(line.rstrip("\n")) - append_text("\n
\n") - else: - append_text(line.rstrip("\n")) - append_text("\n\n") - elif "\\end{equation}" in lines[i + 1]: - append_text(line.rstrip("\n")) - append_text("\n\n") - elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: - append_text(line.rstrip("\n")) - append_text("\n\n") - else: - append_text(line) - elif math and not parse: - eqs[-1] += line - if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1]: - math = False - if substitution and parse: - subLine += line.replace("&", "&
") - if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - lineR = "" - for i in range(0, len(subLine)): - if subLine[i] == "&" and not ( - i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): - lineR += "&
" - else: - lineR += subLine[i] - substitution = False - append_text( - "
Substitution(s): " + - get_equation(subLine) + - "

\n") - - if constraint and parse: - conLine += line.replace("&", "&
") - if "\\end{equation}" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - constraint = False - append_text( - "
Constraint(s): " + - get_equation(conLine) + - "

\n") - - eqCounter = 0 - endNum = len(labels) - 1 - parse = False - constraint = False - substitution = False - note = False - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - comToWrite = "" - secCount = -1 - newSec = False - symLine = '' - eqS = '' - noteLine = '' - proofLine = '' - pause = False - for i in range(0, len(lines)): - line = lines[i] - - if "\\section" in line: - secCount += 1 - newSec = True - eqS = 0 - - if "\\begin{equation}" in line: - symLine = line.strip("\n") - eqS += 1 - constraint = False - substitution = False - note = False - comToWrite = "" - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - parse = True - symbols = [] - eqCounter += 1 - label = labels[eqCounter] - append_revision(secLabel(label)) - append_text("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") - if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS - append_text("
\n") - if newSec: - append_text( - "
<< [[" + - secLabel( - sections[secCount][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[secCount][0]) + - "]]
\n") - else: - append_text( - "
<< [[" + - secLabel( - labels[ - eqCounter - - 1]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - eqCounter - - 1]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - secCount + - 1][0]).replace( - " ", - "_") + - "#" + - secLabel( - labels[eqCounter][ - len("Formula:"):]) + - "|formula in " + - secLabel( - sections[ - secCount + - 1][0]) + - "]]
\n") - if eqS == sections[secCount][1]: - append_text( - "
[[" + - secLabel( - sections[ - (secCount + - 1) % - len(sections)][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[ - (secCount + - 1) % - len(sections)][0]) + - "]] >>
\n") - else: - append_text( - "
[[" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]) + - "]] >>
\n") - append_text("
\n\n") - elif eqCounter == endNum: - append_text("
\n") - if newSec: - newSec = False - append_text( - "
<< [[" + - secLabel( - sections[secCount][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[secCount][0]) + - "]]
\n") - else: - append_text( - "
<< [[" + - secLabel( - labels[ - eqCounter - - 1]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - eqCounter - - 1]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - secCount + - 1][0]).replace( - " ", - "_") + - "#" + - secLabel( - labels[eqCounter][ - len("Formula:"):]) + - "|formula in " + - secLabel( - sections[ - secCount + - 1][0]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)].replace( - " ", - "_")) + - "|" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]) + - "]]
\n") - append_text("
\n\n") - - append_text("
\n") - math = True - elif "\\end{equation}" in line: - append_text(comToWrite) - parse = False - math = False - if hProof: - append_text( - "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or" - " further clarification on the proof(s) in this space.\n") - append_text("\n== Symbols List ==\n\n") - newSym = [] - # if "09.07:04" in label: - for x in symbols: - flagA = True - # if x not in newSym: - cN = 0 - cC = 0 - flag = True - ArgCx = 0 - for z in x: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgCx += 1 - noA = x[:cN] - for y in newSym: - cN = 0 - cC = 0 - ArgC = 0 - flag = True - for z in y: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgC += 1 - - if y[:cN] == noA: # and ArgC==ArgCx: - flagA = False - break - if flagA: - newSym.append(x) - newSym.reverse() - ampFlag = False - finSym = [] - for s in range(len(newSym) - 1, -1, -1): - symbolPar = "\\" + newSym[s] - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - cN = 0 - for z in symbolPar: - if z == "@": - parFlag = True - elif z.isalpha() or z == "&": - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - - if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: - if symbolPar.find("[") == -1: - symbol = symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): - symbol = symbolPar[0:symbolPar.find("[")] - else: - symbol = symbolPar[0:symbolPar.find("{")] - else: - symbol = symbolPar - gFlag = False - checkFlag = False - get = False - gCSV = csv.reader( - open( - glossary, - 'rb'), - delimiter=',', - quotechar='\"') - preG = "" - if symbol == "\\&": - ampFlag = True - for S in gCSV: - G = S - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 - for z in G[0]: - if z == "@": - parFlag = True - elif z.isalpha(): - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len( - symbol) or not G[0][len(symbol)].isalpha()): - checkFlag = True - get = True - preG = S - elif checkFlag: - get = True - checkFlag = False - if get: - if get: - G = preG - if True: - if symbolPar.find("@") != -1: - Q = symbolPar[:symbolPar.find("@")] - else: - Q = symbolPar - listArgs = [] - if len(Q) > len(symbol) and (Q[ - len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "}" or z == "]": - listArgs.append(ap) - ap = "" - else: - ap += Q[o] - websiteF = "" - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + \ - " [" + G[t] + " " + G[t] + "]" - p1 = G[4].strip("$") - p1 = "" + p1 + "" - # if checkFlag: - new2 = "" - pause = False - mathF = True - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += " " - else: - new2 += "" - mathF = not mathF - else: - new2 += p2[k] - p2 = new2 - finSym.append( - web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - if not gFlag: - del newSym[s] - - gFlag = True - if ampFlag: - append_text("& : logical and") - gFlag = False - for y in finSym: - if y == "& : logical and": - pass - elif gFlag: - gFlag = False - append_text("[" + y) - else: - append_text("
\n[" + y) - - append_text("\n
\n") - - # should there be a space between bibliography and ==? - append_text("\n== Bibliography==\n\n") - r = unmodLabel(labels[eqCounter]) - q = r.find("KLS:") + 4 - p = r.find(":", q) - section = r[q:p] - equation = r[p + 1:] - if equation.find(":") != -1: - equation = equation[0:equation.find(":")] - append_text( - "[http://homepage.tudelft.nl/11r49/askey/contents.html " - "Equation in Section " + - section + - "] of [[Bibliography#KLS|'''KLS''']].\n\n") - append_text( - "== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") - if eqCounter < endNum: - append_text("
\n") - if newSec: - newSec = False - append_text( - "
<< [[" + - secLabel( - sections[secCount][0]).replace( - " ", - "_") + - "|" + - secLabel( - sections[secCount][0]) + - "]]
\n") - else: - append_text( - "
<< [[" + - secLabel( - labels[ - eqCounter - - 1]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - eqCounter - - 1]) + - "]]
\n") - append_text( - "
[[" + - secLabel( - sections[ - secCount + - 1][0]).replace( - " ", - "_") + - "#" + - secLabel( - labels[eqCounter][ - len("Formula:"):]) + - "|formula in " + - secLabel( - sections[ - secCount + - 1][0]) + - "]]
\n") - if eqS == sections[secCount][1]: - append_text( - "
[[" + - sections[ - (secCount + - 1) % - len(sections)][0].replace( - " ", - "_") + - "|" + - sections[ - (secCount + - 1) % - len(sections)][0] + - "]] >>
\n") - else: - append_text( - "
[[" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]).replace( - " ", - "_") + - "|" + - secLabel( - labels[ - (eqCounter + - 1) % - (endNum + - 1)]) + - "]] >>
\n") - append_text("
\n") - else: # FOR EXTRA EQUATIONS - append_text("
\n") - append_text( - "
<< [[" + - labels[ - endNum - - 1].replace( - " ", - "_") + - "|" + - labels[ - endNum - - 1] + - "]]
\n") - append_text( - "
[[" + - labels[0].replace( - " ", - "_") + - "#" + - labels[endNum][ - 8:] + - "|formula in " + - labels[0] + - "]]
\n") - append_text( - "
[[" + - labels[ - 0 % - endNum].replace( - " ", - "_") + - "|" + - labels[ - 0 % - endNum] + - "]]
\n") - append_text("
\n") - elif "\\constraint" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hCon: - comToWrite += "\n== Constraint(s) ==\n\n" - hCon = False - constraint = True - math = False - conLine = "" - elif "\\substitution" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hSub: - comToWrite += "\n== Substitution(s) ==\n\n" - hSub = False - substitution = True - math = False - subLine = "" - elif "\\drmfname" in line and parse: - math = False - comToWrite = "\n== Name ==\n\n
" + \ - get_string_within_curly_braces(line) + "

\n" + comToWrite - - elif "\\drmfnote" in line and parse: - symbols = symbols + getSym(line) - if hNote: - comToWrite += "\n== Note(s) ==\n\n" - hNote = False - note = True - math = False - noteLine = "" - - elif "\\proof" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hProof: - hProof = False - comToWrite += "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or " \ - "further clarification on the proof(s) in this space. \n

\n" \ - "
" - proof = True - proofLine = "" - pause = False - pauseP = False - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - # TODO: figure out how eqR is defined - # rLab = getString(eqR) - pause = True - eInd = refLabels.index( - "" + label) # This should be rLab - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n" + - refEqs[eInd] + - "" + - z + - "
\n") - else: - if z == "}": - proofLine += ( - "
\n" + refEqs[ - eInd] + "
") - else: - proofLine += ("
\n \n" + - refEqs[eInd] + - "
\n") - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - append_text( - comToWrite + - get_proofs_data(proofLine) + - "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - elif proof: - symLine += line.strip("\n") - pauseP = False - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - # TODO: Figure out how this is used - # eqR = line[ind:line.find("}", ind) + 1] - # rLab = getString(eqR) - eInd = refLabels.index("" + label) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n" + - refEqs[eInd] + - "" + - z + - "
\n") - else: - proofLine += ("
\n" + - refEqs[eInd] + - "
\n") - - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - append_text( - comToWrite + - get_proofs_data(proofLine).rstrip("\n") + - "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - elif math: - if "\\end{equation}" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1] or "\\drmfnote" in lines[ - i + - 1] or "\\drmfname" in lines[ - i + - 1]: - append_text(line.rstrip("\n")) - symLine += line.strip("\n") - symbols = symbols + getSym(symLine) - symLine = "" - append_text("\n
\n") - else: - symLine += line.strip("\n") - append_text(line) - if note and parse: - noteLine += line - symbols = symbols + getSym(line) - if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - note = False - if "\\emph" in noteLine: - noteLine = noteLine[ - 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ - noteLine.find("\\emph{") + len( - "\\emph{"):noteLine.find( - "}", noteLine.find("\\emph{") + len( - "\\emph{"))] + "\'\'" + noteLine[ - noteLine.find( - "}", - noteLine.find( - "\\emph{") + len( - "\\emph{")) + 1:] - comToWrite = comToWrite + "
" + \ - get_equation(noteLine) + "

\n" - - if constraint and parse: - conLine += line.replace("&", "&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - constraint = False - symbols = symbols + getSym(symLine) - symLine = "" - append_text( - comToWrite + - "
" + - get_equation(conLine) + - "

\n") - comToWrite = "" - if substitution and parse: - # TODO: Figure out if .replace is needed - subLine += line.replace("&", "&
") - - symLine += line.strip("\n") - if "\\end{equation}" in lines[ - i + - 1] or "\\drmfn" in lines[ - i + - 1] or "\\substitution" in lines[ - i + - 1] or "\\constraint" in lines[ - i + - 1] or "\\proof" in lines[ - i + - 1]: - substitution = False - symbols = symbols + getSym(symLine) - symLine = "" - lineR = "" - for i in range(0, len(subLine)): - if subLine[i] == "&" and not ( - i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): - lineR += "&
" - else: - lineR += subLine[i] - append_text( - comToWrite + - "
" + - get_equation(subLine) + - "

\n") - comToWrite = "" - - -def main(): - if len(sys.argv) != 6: - fname = "../../data/ZE.3.tex" - ofname = "../../data/ZE.4.xml" - lname = "../../data/BruceLabelLinks" - glossary = "../../data/new.Glossary.csv" - mmd = "../../data/OrthogonalPolynomials.mmd" - - else: - fname = sys.argv[1] - ofname = sys.argv[2] - lname = sys.argv[3] - glossary = sys.argv[4] - mmd = sys.argv[5] - setup_label_links(lname) - readin(fname, glossary, mmd) - writeout(ofname) - - -if __name__ == "__main__": - main() +__author__ = "Joon Bang" +__status__ = "Development" +__credits__ = ["Joon Bang", "Azeem Mohammed"] + +# Version 0.2.0: Rewrite +# Convert tex to wikiText +import csv +import os +import sys + + +def get_data_str(string): + # (str) -> str + """Gets all characters from input string that are in between curly braces.""" + + left = string.find("{") + 1 + right = string.find("}", left) + text = string[left:right].replace("$", "''").lstrip().rstrip("\n") + + return text + + +def getG(line): # gets equation for symbols list + start = True + final = "" + for ch in line: + if ch == "$" and start: + final += "{\\displaystyle " + start = False + elif ch == "$": + final += "}" + start = True + else: + final += ch + + return final + + +def getEq(line): # Gets all data within constraints,substitutions + per = 1 + stringWrite = "" + fEq = False + count = 0 + + for ch in line: # read each character + if count >= 0 and per != 0: + per += 1 + if ch != " " and ch != "%": + per = 0 + + if ch == "{" and per == 0: + if count > 0: + stringWrite += ch + count += 1 + + elif ch == "}" and per == 0: + count -= 1 + if count > 0: + stringWrite += ch + + elif ch == "$" and per == 0: # either begin or end equation + fEq = not (fEq) # toggle fEq flag to know if begin or end equation + if fEq: # if begin + stringWrite += "{\\displaystyle " + else: # if end + stringWrite += "}" + + elif ch == "\n" and per == 0: # if newline + stringWrite = stringWrite.strip() + "\n" + per += 1 # watch for % signs + + elif count > 0 and per == 0: # not special character + stringWrite += ch # write the character + + return stringWrite.strip() + + +def getEqP(line, Flag): # Gets all data within proofs + if Flag: + a = 1 + else: + a = 0 + per = 1 + stringWrite = "" + fEq = False + count = 0 + length = 0 + for c in line: + if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): + length += 1 + if count >= 0 and per != 0: + per += 1 + if c != " " and c != "%": + # if c!="%": + per = 0 + if c == "{" and per == 0: + if count > 0: + stringWrite += c + count += 1 + elif c == "}" and per == 0: + count -= 1 + if count > 0: + stringWrite += c + elif c == "$" and per == 0: + fEq = not (fEq) + if fEq: + stringWrite += "{\\displaystyle " + else: + if length < 10: + stringWrite += "}" + else: + stringWrite += "}" + "
" + length = 0 + elif c == "\n" and per == 0: + stringWrite = stringWrite.strip() + stringWrite += c + per += 1 + elif count > 0 and per == 0: + stringWrite += c + + return (stringWrite.lstrip()) + + +def getSym(line): # Gets all symbols on a line for symbols list + symList = [] + if line == "": + return symList + symbol = "" + symFlag = False + argFlag = False + cC = 0 + for i in range(0, len(line)): + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + c = line[i] + if symFlag: + if c == "{" or c == "[": + cC += 1 + argFlag = True + if c != "}" and c != "]": + if argFlag or c.isalpha(): + symbol += c + else: + symFlag = False + argFlag = False + symList.append(symbol) + symList += (getSym(symbol)) + symbol = "" + else: + cC -= 1 + symbol += c + if i + 1 == len(line): + p = "" + else: + p = line[i + 1] + if cC <= 0 and p != "{" and p != "[" and p != "@": + symFlag = False + # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: + symList.append(symbol) + symList += (getSym(symbol)) + argFlag = False + symbol = "" + + elif c == "\\": + symFlag = True + elif c == "&" and not (i > line.find("\\begin{array}") and i < line.find("\\end{array}")): + symList.append("&") + + # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + symList.append(symbol) + symList += getSym(symbol) + return (symList) + + +def unmodLabel(label): + label = label.replace(".0", ".") + label = label.replace(":0", ":") + return (label) + + +def secLabel(label): + return (label.replace("\'\'", "")) + + +def modLabel(label): + # label.replace("Formula:KLS:","KLS;") + isNumer = False + newlabel = "" + num = "" + for i in range(0, len(label)): + if isNumer and not label[i][0].isdigit(): + if len(num) > 1: + newlabel += num + isNumer = False + num = "" + else: + newlabel += "0" + str(num) + num = "" + isNumer = False + if label[i][0].isdigit(): + isNumer = True + num += str(label[i]) + else: + isNumer = False + newlabel += label[i] + if len(num) > 1: + newlabel += num + elif len(num) == 1: + newlabel += "0" + num + return (newlabel) + + +def main(): + wiki = open(sys.argv[2], 'w') + with open(sys.argv[1], 'r') as tex: + lines = tex.readlines() + + with open("OrthogonalPolynomials.mmd", "r") as main: + mainText = main.read() + + mainPrepend = "" + mainWrite = open("OrthogonalPolynomials.mmd.new", "w") + math = False + constraint = False + substitution = False + parse = False + head = False + symbols = [] + refLines = [] + sections = [] + labels = [] + eqs = [] + refEqs = [] + refLabels = [] + + for i in xrange(len(refLines)): + line = refLines[i] + if "\\begin{equation}" in line: + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1 and l[len(label)+1]=="=": + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + refLabels.append(label) + refEqs.append("") + math = True + elif math: + refEqs[len(refEqs) - 1] += line + if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ + refLines[i + 1] or "\\drmfn" in refLines[i + 1]: + math = False + + for i in range(0, len(lines)): + line = lines[i] + if "\\begin{document}" in line: + # wiki.write("drmf_bof\n") + parse = True + elif "\\end{document}" in line and parse: + # wiki.write("
\n") + mainPrepend += "
\n" + mainText = mainPrepend + mainText + mainText = mainText.replace("drmf_bof\n", "") + mainText = mainText.replace("drmf_eof\n", "") + mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") + mainText = mainText.replace("{{#set:Section=0}}\n", "") + mainText = mainText[0:mainText.rfind("== Sections ")] + mainText = "drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n{{#set:Section=0}}" + mainText + "\ndrmf_eof\n" + mainWrite.write(mainText) + mainWrite.close() + os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") + # wiki.write("\ndrmf_eof\n") + parse = False + elif "\\title" in line and parse: + stringWrite = "\'\'\'" + stringWrite += get_data_str(line) + "\'\'\'\n" + labels.append("Orthogonal Polynomials") + sections.append(["Orthogonal Polynomials", 0]) + # wiki.write(stringWrite) + # mainPrepend+=stringWrite + chapter = get_data_str(line) + mainPrepend += ( + "\n== Sections in " + chapter + " ==\n\n
\n") + elif "\\part" in line: + if get_data_str(line) == "BOF": + parse = False + elif get_data_str(line) == "EOF": + parse = True + elif parse: + mainPrepend += ("\n
\n= " + get_data_str(line) + " =\n") + head = True + elif "\\section" in line: + mainPrepend += ("* [[" + secLabel(get_data_str(line)) + "|" + get_data_str(line) + "]]\n") + sections.append([get_data_str(line)]) + + secCounter = 0 + eqCounter = 0 + for i in range(0, len(lines)): + line = lines[i] + # line.replace("\\begin{equation}","$") + # line.replace("\\end{equation},"$") + '''if "\\begin{document}" in line: + wiki.write("drmf_bof\n") + parse=True + elif "\\end{document}" in line and parse: + wiki.write("\ndrmf_eof\n") + parse=False + elif "\\title" in line and parse: + stringWrite="\'\'\'" + stringWrite+=getString(line)+"\'\'\'\n" + labels.append("Orthogonal Polynomials") + wiki.write(stringWrite\n) + elif "\\part" in line: + if getString(line)=="BOF": + parse=False + elif getString(line)=="EOF": + parse=True + elif parse: + wiki.write("\n
\n= "+getString(line)+" =\n") + head=True + ''' + if "\\section" in line: + parse = True + secCounter += 1 + wiki.write("drmf_bof\n") + wiki.write("\'\'\'" + secLabel(get_data_str(line)) + "\'\'\'\n") + wiki.write("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") + wiki.write("
\n") + wiki.write("
<< [[" + secLabel(sections[secCounter - 1][0]) + "|" + secLabel( + sections[secCounter - 1][0]) + "]]
\n") + # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") + wiki.write("
[[Orthogonal_Polynomials#" + "Sections_in_" + chapter.replace(" ", + "_") + "|" + secLabel( + sections[secCounter][0]) + "]]
\n") + wiki.write( + "
[[" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + "|" + secLabel( + sections[(secCounter + 1) % len(sections)][0]) + "]] >>
\n
\n\n") + # wiki.write("{{head|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") + # wiki.write("{{#set:Chapter="+chapter+"}}\n") + # wiki.write("{{#set:Section="+str(secCounter)+"}}\n") + # wiki.write("{{head}}\n") + head = True + wiki.write("== " + get_data_str(line) + " ==\n") + elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[(i + 1) % len(lines)]) and parse: + wiki.write("
\n") + wiki.write("
<< [[" + secLabel(sections[secCounter - 1][0]) + "|" + secLabel( + sections[secCounter - 1][0]) + "]]
\n") + # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") + wiki.write("
[[Orthogonal_Polynomials#" + "Sections_in_" + chapter.replace(" ", + "_") + "|" + secLabel( + sections[secCounter][0]) + "]]
\n") + wiki.write( + "
[[" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + "|" + secLabel( + sections[(secCounter + 1) % len(sections)][0]) + "]] >>
\n
\n\n") + # wiki.write("{{foot|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") + # wiki.write("{{foot}}\n") + wiki.write("drmf_eof\n") + sections[secCounter].append(eqCounter) + eqCounter = 0 + + elif "\\subsection" in line and parse: + wiki.write("\n== " + get_data_str(line) + " ==\n") + head = True + elif "\\paragraph" in line and parse: + wiki.write("\n=== " + get_data_str(line) + " ===\n") + head = True + elif "\\subsubsection" in line and parse: + wiki.write("\n=== " + get_data_str(line) + " ===\n") + head = True + + elif "\\begin{equation}" in line and parse: + # symLine="" + if head: + wiki.write("\n") + head = False + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + eqCounter += 1 + '''for l in lLink: + if label==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + labels.append(label) + eqs.append("") + # wiki.write("\n\n") + wiki.write("{\displaystyle\n") + math = True + elif "\\begin{equation}" in line and not parse: + sLabel = line.find("\\formula{") + 9 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + '''for l in lLink: + if l.find(label)!=-1: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + break''' + labels.append("*" + label) # special marker + eqs.append("") + math = True + elif "\\end{equation}" in line: + + math = False + elif "\\constraint" in line and parse: + constraint = True + math = False + conLine = "" + elif "\\substitution" in line and parse: + substitution = True + math = False + subLine = "" + # wiki.write("
Substitution(s): "+getEq(line)+"

\n") + elif "\\proof" in line and parse: + math = False + elif "\\drmfn" in line and parse: + math = False + if "\\drmfname" in line and parse: + wiki.write("
This formula has the name: " + get_data_str(line) + "

\n") + elif math and parse: + flagM = True + eqs[len(eqs) - 1] += line + + if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in lines[ + i + 3] and not "\\part" in lines[i + 3]: + u = i + flagM2 = False + while flagM: + u += 1 + if "\\begin{equation}" in lines[u] in lines[u]: + flagM = False + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ + u] or "\\end{document}" in lines[u]: + flagM = False + flagM2 = True + if not (flagM2): + + wiki.write(line.rstrip("\n")) + wiki.write("\n}
\n") + else: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\end{equation}" in lines[i + 1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: + wiki.write(line.rstrip("\n")) + wiki.write("\n}\n") + else: + wiki.write(line) + elif math and not parse: + eqs[len(eqs) - 1] += line + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\drmfn" in lines[i + 1]: + math = False + if substitution and parse: + subLine = subLine + line # .replace("&","&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + lineR = "" + for i in range(0, len(subLine)): + if subLine[i] == "&" and not ( + i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): + lineR += "&
" + else: + lineR += subLine[i] + substitution = False + wiki.write("
Substitution(s): " + getEq(lineR) + "

\n") + + if constraint and parse: + conLine = conLine + line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + constraint = False + wiki.write("
Constraint(s): " + getEq(conLine) + "

\n") + + eqCounter = 0 + endNum = len(labels) - 1 + '''for n in range(1,len(labels)): + if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": + labels[n]=""+labels[n] + endNum=n + elif labels[n][0]=="*": + labels[n]=""+labels[n][1:] + else: + labels[n]=""+labels[n]''' + '''for n in range(0,len(refLabels)): + refLabels[n]=""+refLabels[n]''' + parse = False + constraint = False + substitution = False + note = False + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + comToWrite = "" + secCount = -1 + newSec = False + for i in range(0, len(lines)): + line = lines[i] + + if "\\section" in line: + secCount += 1 + newSec = True + eqS = 0 + + if "\\begin{equation}" in line: + symLine = line.strip("\n") + eqS += 1 + constraint = False + substitution = False + note = False + comToWrite = "" + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + parse = True + symbols = [] + eqCounter += 1 + wiki.write("drmf_bof\n") + label = labels[eqCounter] + wiki.write("\'\'\'" + secLabel(label) + "\'\'\'\n") + wiki.write("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") + if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS + wiki.write("
\n") + if newSec: + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + # if eqS==sections[secCount][1]: + # wiki.write("
[["+secLabel(sections[(secCount+1)%len(sections)][0]).replace(" ","_")+"|"+secLabel(sections[(secCount+1)%len(sections)][0])+"]] >>
\n") + # else: + if True: + wiki.write( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + wiki.write("
\n\n") + elif eqCounter == endNum: + wiki.write("
\n") + if newSec: + newSec = False + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + wiki.write("
[[" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") + wiki.write("
\n\n") + + wiki.write("
{\displaystyle\n") + math = True + elif "\\end{equation}" in line: + wiki.write(comToWrite) + parse = False + math = False + if hProof: + wiki.write( + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") + + wiki.write("\n== Symbols List ==\n\n") + newSym = [] + # if "09.07:04" in label: + for x in symbols: + flagA = True + # if x not in newSym: + cN = 0 + cC = 0 + flag = True + ArgCx = 0 + for z in x: + if z.isalpha() and flag or z == "&": + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgCx += 1 + noA = x[:cN] + for y in newSym: + cN = 0 + cC = 0 + ArgC = 0 + flag = True + for z in y: + if z.isalpha() and flag or z == "&": + cN += 1 + else: + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgC += 1 + + if y[:cN] == noA: # and ArgC==ArgCx: + flagA = False + break + if flagA: + newSym.append(x) + newSym.reverse() + symF = False + ampFlag = False + finSym = [] + for s in range(len(newSym) - 1, -1, -1): + symbolPar = "\\" + newSym[s] + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + for z in symbolPar: + if z == "@": + parFlag = True + elif z.isalpha() or z == "&": + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + + if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: + if symbolPar.find("[") == -1: + symbol = symbolPar[0:symbolPar.find("{")] + elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): + symbol = symbolPar[0:symbolPar.find("[")] + else: + symbol = symbolPar[0:symbolPar.find("{")] + else: + symbol = symbolPar + numArg = parCx + numPar = ArgCx + gFlag = False + checkFlag = False + get = False + gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') + preG = "" + if symbol == "\\&": + ampFlag = True + for S in gCSV: + G = S + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 + ind = G[0].find("@") + if ind == -1: + ind = len(G[0]) - 1 + for z in G[0]: + if z == "@": + parFlag = True + elif z.isalpha(): + cN += 1 + else: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + if parFlag: + parCx += 1 + else: + ArgCx += 1 + if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ + len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): + checkFlag = True + get = True + preG = S + + elif checkFlag: + get = True + checkFlag = False + + if (get): + if get: + G = preG + get = False + checkFlag = False + if True: + if symbolPar.find("@") != -1: + Q = symbolPar[:symbolPar.find("@")] + else: + Q = symbolPar + listArgs = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": + argFlag = True + elif Q[o] == "}" or z == "]": + argFlag = False + listArgs.append(ap) + ap = "" + else: + ap += Q[o] + '''websiteU=g[g.find("http://"):].strip("\n") + k=0 + websites=[] + for r in range(0,len(websiteU)): + if websiteU[r]==",": + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + k=r + + + if websiteU[k:r].find("http://")!=-1: + websites.append(websiteU[k:r+1].strip(" ")) + websiteF="" + for d in websites: + websiteF=websiteF+" ["+d+" "+d+"]"''' + # websiteF=G[4].strip("\n") + websiteF = "" + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + + # p1=Q + # if Q.find("@")!=-1: + # p1=Q[:Q.find("@")] + p1 = G[4].strip("$") + p1 = "{\\displaystyle " + p1 + "}" + # if checkFlag: + new1 = "" + new2 = "" + pause = False + mathF = True + '''for k in range(0,len(p1)): + if p1[k]=="$": + if mathF: + new1+="{\\displaystyle " + else: + new1+="}" + mathF=not mathF + + elif p1[k]=="#" and p1[k+1].isdigit(): + pause=True + elif pause: + num=int(p1[k]) + #letter=chr(num+96) + letter=listArgs[num-1] + new1+=letter + pause=False + + else: + new1+=p1[k]''' + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": + if mathF: + new2 += "{\\displaystyle " + else: + new2 += "}" + mathF = not mathF + else: + new2 += p2[k] + # p1=new1 + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + break + # gFlag=True + # if not symF: + # symF=True + # wiki.write("[") + # else: + # wiki.write("
\n") + # wiki.write("[") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) + # wiki.write("] : ") + # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) + # wiki.write(" : [") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write(" ") + # wiki.write(g[g.find("http://"):].strip("\n")) + # wiki.write("] ")''' + + # preG=S + if not gFlag: + del newSym[s] + + gFlag = True + # finSym.reverse() + if ampFlag: + wiki.write("& : logical and") + gFlag = False + for y in finSym: + if y == "& : logical and": + pass + elif gFlag: + gFlag = False + wiki.write("[" + y) + else: + wiki.write("
\n[" + y) + + wiki.write("\n
\n") + + wiki.write("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? + r = unmodLabel(labels[eqCounter]) + q = r.find("KLS:") + 4 + p = r.find(":", q) + section = r[q:p] + equation = r[p + 1:] + if equation.find(":") != -1: + equation = equation[0:equation.find(":")] + + wiki.write( + "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? + wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + if eqCounter < endNum: + wiki.write("
\n") + if newSec: + newSec = False + wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") + else: + wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + secLabel( + labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") + # if eqS==sections[secCount][1]: + # wiki.write("
[["+sections[(secCount+1)%len(sections)][0].replace(" ","_")+"|"+sections[(secCount+1)%len(sections)][0]+"]] >>
\n") + # else: + if True: + wiki.write( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + wiki.write("
\n\ndrmf_eof\n") + else: # FOR EXTRA EQUATIONS + wiki.write("
\n") + wiki.write("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ + endNum - 1] + "]]
\n") + wiki.write("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ + 8:] + "|formula in " + + labels[0] + "]]
\n") + wiki.write("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ + 0 % endNum] + "]]
\n") + wiki.write("
\n\ndrmf_eof\n") + + + + elif "\\constraint" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hCon: + comToWrite = comToWrite + "\n== Constraint(s) ==\n\n" + hCon = False + constraint = True + math = False + conLine = "" + # wiki.write("
"+getEq(line)+"

\n") + elif "\\substitution" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hSub: + comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" + hSub = False + # wiki.write("
"+getEq(line)+"

\n") + substitution = True + math = False + subLine = "" + elif "\\drmfname" in line and parse: + math = False + comToWrite = "\n== Name ==\n\n
" + get_data_str(line) + "

\n" + comToWrite + + elif "\\drmfnote" in line and parse: + symbols = symbols + getSym(line) + if hNote: + comToWrite = comToWrite + "\n== Note(s) ==\n\n" + hNote = False + note = True + math = False + noteLine = "" + + elif "\\proof" in line and parse: + # symbols=symbols+getSym(line) + symLine = line.strip("\n") + if hProof: + hProof = False + comToWrite = comToWrite + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" + proof = True + proofLine = "" + pause = False + pauseP = False + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = get_data_str(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd = refLabels.index("" + rLab) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n{\displaystyle\n" + refEqs[ + eInd] + "}" + z + "
\n") + else: + if z == "}": + proofLine += ( + "
\n{\displaystyle\n" + refEqs[eInd] + "}
") + else: + proofLine += ( + "
\n{\displaystyle\n" + refEqs[eInd] + "}
\n") + + + else: + if pause: + if line[ind] == "}": + pause = False + elif pauseP: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: + pass + else: + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + # symLine+=line.strip("\n") + wiki.write(comToWrite + getEqP(proofLine, False) + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" + + # wiki.write(line) + + elif proof: + symLine += line.strip("\n") + pauseP = False + # symbols=symbols+getSym(line) + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = get_data_str(eqR) + '''for l in lLink: + if rLab==l[0:l.find("=")-1]: + rlabel=l[l.find("=>")+3:l.find("\\n")] + rlabel=rlabel.replace("/","") + rlabel=rlabel.replace("#",":") + rlabel=rlabel.replace("!",":") + break''' + + eInd = refLabels.index("" + label) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n{\displaystyle\n" + refEqs[ + eInd] + "}" + z + "
\n") + else: + proofLine += ( + "
\n{\displaystyle\n" + refEqs[eInd] + "}
\n") + + else: + if pause: + if line[ind] == "}": + pause = False + elif pauseP: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: + pass + + else: + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + # symLine+=line.strip("\n") + wiki.write(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" + + elif math: + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in lines[ + i + 1]: + wiki.write(line.rstrip("\n")) + symLine += line.strip("\n") + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write("\n}
\n") + else: + symLine += line.strip("\n") + wiki.write(line) + if note and parse: + noteLine = noteLine + line + symbols = symbols + getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + note = False + if "\\emph" in noteLine: + noteLine = noteLine[0:noteLine.find("\\emph{")] + "\'\'" + noteLine[noteLine.find("\\emph{") + len( + "\\emph{"):noteLine.find("}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ + noteLine.find( + "}", + noteLine.find( + "\\emph{") + len( + "\\emph{")) + 1:] + comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" + + if constraint and parse: + conLine = conLine + line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ + i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + constraint = False + symbols = symbols + getSym(symLine) + symLine = "" + wiki.write(comToWrite + "
" + getEq(conLine) + "

\n") + comToWrite = "" + if substitution and parse: + subLine = subLine + line # .replace("&","&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: + substitution = False + symbols = symbols + getSym(symLine) + symLine = "" + lineR = "" + for i in range(0, len(subLine)): + if subLine[i] == "&" and not ( + i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): + lineR += "&
" + else: + lineR += subLine[i] + wiki.write(comToWrite + "
" + getEq(lineR) + "

\n") + comToWrite = "" + +if __name__ == "__main__": + main() diff --git a/tex2Wiki/src/tex2Wiki2.py b/tex2Wiki/src/tex2Wiki2.py new file mode 100644 index 0000000..4e15939 --- /dev/null +++ b/tex2Wiki/src/tex2Wiki2.py @@ -0,0 +1,136 @@ +__author__ = "Joon Bang" +__status__ = "Prototype" + + +class LatexEquation(object): + def __init__(self, label, equation, metadata): + self.label = label + self.equation = equation + self.metadata = metadata + + def __str__(self): + return self.label + "\n" + self.equation + "\n" + str(self.metadata) + + +def generate_html(tag_name, options, text, spacing=True): + # (str, str, str(, bool)) -> str + """Generates an html tag, with optional html parameters.""" + result = "<" + tag_name + if options != "": + result += " " + options + result += ">\n" + text + "\n\n" + + if not spacing: + return result.replace("\n", " ")[:-1] + "\n" + + return result + + +def multi_split(s, seps): + """Copy pasted from internet!""" + res = [s] + for sep in seps: + s, res = res, [] + for seq in s: + res += seq.split(sep) + return res + + +def convert_dollar_signs(string): + count = 0 + result = "" + for ch in string: + if ch == "$" and count % 2 == 0: + result += "{\\displaystyle " + count += 1 + elif ch == "$": + result += "}" + count += 1 + else: + result += ch + + return result + + +def translate(data): + for section_data in data: + print section_data[0] + equations = section_data[1] + for i, equation in enumerate(equations): + # formula stuff + try: + formula = get_data_str(equation, latex="\\formula") + formula = formula.split("Formula:", 1)[1] + except IndexError: # there is no formula. + break + + # get metadata + raw_metadata = list() + metadata_types = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} + + equation = equation.split("\n")[1:] + + j = 0 + while j < len(equation): + if "%" in equation[j]: + raw_metadata.append(equation.pop(j)) + else: + j += 1 + + raw_metadata = ''.join([line[1:].strip() for line in raw_metadata]) + + metadata = dict() + for data_type in metadata_types: + metadata[data_type] = convert_dollar_signs(get_data_str(raw_metadata, latex="\\"+data_type)) + + equations[i] = LatexEquation(formula, ''.join(equation), metadata) + + for equation in equations: + print equation + + +def find_end(text, left_delimiter, right_delimiter, start=0): + net = 0 # left delimiters encountered - right delimiters encountered + for i, ch in enumerate(text[start:]): + if ch == left_delimiter: + net += 1 + elif ch == right_delimiter: + if net == 1: + return i + start + else: + net -= 1 + + return -1 + + +def get_data_str(text, latex=""): + if latex + "{" not in text: + return "" + + start = text.find(latex + "{") + return text[start + len(latex + "{"):find_end(text, "{", "}", start)] + + +def main(): + with open("tex2Wiki/data/01outb.tex") as input_file: + text = input_file.read() + + text = text.split("\\begin{document}", 1)[1] + text = text.split("\\section") + + title = get_data_str(text[0]) + print title + + data = list() + for section in text[1:]: + section_name = get_data_str(section).replace("$", "''") + equations = section.split("\\end{equation}") + for i, equation in enumerate(equations[:-1]): + equations[i] = equation.split("\\begin{equation}", 1)[1].strip() + + data.append([section_name, equations]) + + translate(data) + +if __name__ == '__main__': + main() diff --git a/tex2Wiki/test/llinks b/tex2Wiki/test/llinks deleted file mode 100644 index 72ed132..0000000 --- a/tex2Wiki/test/llinks +++ /dev/null @@ -1 +0,0 @@ -eq:EF.EX.TM => DLMF:/4.9#E4 \ No newline at end of file diff --git a/tex2Wiki/test/test_getEq.py b/tex2Wiki/test/test_getEq.py deleted file mode 100644 index 6dcdbf4..0000000 --- a/tex2Wiki/test/test_getEq.py +++ /dev/null @@ -1,9 +0,0 @@ -from unittest import TestCase -from tex2Wiki import getEq -from tex2Wiki import setup_label_links -class TestGetEq(TestCase): - - def test_getEq(self): - self.assertEqual('\realpart{s} > 1', getEq('% \constraint{$\realpart{s} > 1$}')) - self.assertEqual('\realpart{s} > -1 &
s\neq 1', getEq('% \constraint{$\realpart{s} > -1$ &
$s \neq 1$}\n')) - self.assertEqual('\realpart{s} > -1 &
s\neq 1', getEq('% \constraint{$\realpart{s} > -1$ &
$s \neq 1$}')) \ No newline at end of file diff --git a/tex2Wiki/test/test_getString.py b/tex2Wiki/test/test_getString.py deleted file mode 100644 index 9414d8e..0000000 --- a/tex2Wiki/test/test_getString.py +++ /dev/null @@ -1,11 +0,0 @@ - -from unittest import TestCase -from tex2Wiki import getString -from tex2Wiki import setup_label_links -class TestGetString(TestCase): - - def test_getString(self): - self.assertEqual('Mathematical Applications', getString('\\section{Mathematical Applications}\\label{sec:ZE.APPL}%ZE.16\n')) - self.assertEqual('eq:ZE.INT.EL1',getString('\\eqref{eq:ZE.INT.EL1}')) - self.assertEqual('eq:ZE.INT.EL3',getString('\\eqref{eq:ZE.INT.EL3}\n')) - self.assertEqual('eq:ZE.INT.EL5', getString(' \n \\eqref{eq:ZE.INT.EL5}\n ')) \ No newline at end of file diff --git a/tex2Wiki/test/test_isnumber.py b/tex2Wiki/test/test_isnumber.py deleted file mode 100644 index 42ed552..0000000 --- a/tex2Wiki/test/test_isnumber.py +++ /dev/null @@ -1,11 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -from unittest import TestCase -from tex2Wiki import isnumber - - -class TestIsnumber(TestCase): - def test_isnumber(self): - self.assertEqual(True, isnumber("1")) - self.assertEqual(False, isnumber("a")) diff --git a/tex2Wiki/test/test_modlabel.py b/tex2Wiki/test/test_modlabel.py deleted file mode 100644 index 1e4f369..0000000 --- a/tex2Wiki/test/test_modlabel.py +++ /dev/null @@ -1,19 +0,0 @@ -__author__ = "Azeem Mohammed" -__status__ = "Development" - -from unittest import TestCase -from tex2Wiki import modLabel -from tex2Wiki import setup_label_links - - -class TestModLabel(TestCase): - def test_modLabel(self): - self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\label{eq:EF.EX.TM}')) - self.assertEqual('Formula:EF.EX.TM', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) - self.assertEqual('auto-number-1', modLabel('\\begin{equation}')) - self.assertEqual('auto-number-2', modLabel('\\begin{equation}')) - - def test_modLabelsWithList(self): - setup_label_links('testdata/llinks') - self.assertEqual('DLMF:04.09:E', modLabel('\\begin{equation}\label{eq:EF.EX.TM}')) - self.assertEqual('DLMF:04.09:E', modLabel('\\begin{equation}\\formula{eq:EF.EX.TM}')) diff --git a/tex2Wiki/test/test_secLabel.py b/tex2Wiki/test/test_secLabel.py deleted file mode 100644 index f0f7603..0000000 --- a/tex2Wiki/test/test_secLabel.py +++ /dev/null @@ -1,6 +0,0 @@ -from unittest import TestCase -from tex2Wiki import secLabel -from tex2Wiki import setup_label_links -class TestSecLabel(TestCase): - def test_secLabel(self): - self.assertEqual('Formula:DLMF:25.5:E12',secLabel("Formula:DLMF:25.5:E12''")) \ No newline at end of file diff --git a/tex2Wiki/test/test_unmodLabel.py b/tex2Wiki/test/test_unmodLabel.py deleted file mode 100644 index fb89e25..0000000 --- a/tex2Wiki/test/test_unmodLabel.py +++ /dev/null @@ -1,8 +0,0 @@ -from unittest import TestCase -from tex2Wiki import unmodLabel -from tex2Wiki import setup_label_links -class TestModLabel(TestCase): - - def test_unmodLabel(self): - self.assertEqual('Formula:DLMF:15.2:E1', unmodLabel('Formula:DLMF:15.02:E1')) #remove 0's before decimal point - self.assertEqual('Formula:DLMF:5.2:E1', unmodLabel('Formula:DLMF:05.02:E1')) #remove 0's before both decimal points and after colon From b5a32ed0b2164ebf756f7bb5085ec11e51ede352 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 16 Aug 2016 14:56:28 -0400 Subject: [PATCH 278/402] Add mostly functional generation of first part of output file --- tex2Wiki/src/tex2Wiki2.py | 62 ++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 10 deletions(-) diff --git a/tex2Wiki/src/tex2Wiki2.py b/tex2Wiki/src/tex2Wiki2.py index 4e15939..bd3eff4 100644 --- a/tex2Wiki/src/tex2Wiki2.py +++ b/tex2Wiki/src/tex2Wiki2.py @@ -1,6 +1,8 @@ __author__ = "Joon Bang" __status__ = "Prototype" +METADATA_TYPES = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} + class LatexEquation(object): def __init__(self, label, equation, metadata): @@ -18,7 +20,18 @@ def generate_html(tag_name, options, text, spacing=True): result = "<" + tag_name if options != "": result += " " + options - result += ">\n" + text + "\n\n" + + result += ">" + + if tag_name == "math": + result += "{\\displaystyle" + + result += "\n" + text + "\n" + + if tag_name == "math": + result += "}" + + result += "\n" if not spacing: return result.replace("\n", " ")[:-1] + "\n" @@ -53,9 +66,9 @@ def convert_dollar_signs(string): def translate(data): + result = list() for section_data in data: - print section_data[0] - equations = section_data[1] + equations = section_data[1][:-1] for i, equation in enumerate(equations): # formula stuff try: @@ -66,7 +79,6 @@ def translate(data): # get metadata raw_metadata = list() - metadata_types = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} equation = equation.split("\n")[1:] @@ -80,13 +92,42 @@ def translate(data): raw_metadata = ''.join([line[1:].strip() for line in raw_metadata]) metadata = dict() - for data_type in metadata_types: - metadata[data_type] = convert_dollar_signs(get_data_str(raw_metadata, latex="\\"+data_type)) + for data_type in METADATA_TYPES: + metadata[data_type] = convert_dollar_signs(get_data_str(raw_metadata, latex="\\"+data_type)).strip() + + equations[i] = LatexEquation(formula, ' '.join(equation), metadata) + + result.append([section_data[0], equations]) + + return result + + +def create_general_pages(data): + ret = "" + + for section_data in data: + section_name = section_data[0] + result = "drmf_bof\n'''" + section_name + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" + + # TODO: headers code (recycle from main_page code?) + + result += "\n== " + section_name + " ==\n\n" + + text = "" + for equation in section_data[1]: + # equation is of type LatexEquation + text += generate_html("math", "id=\"" + equation.label + "\"", equation.equation) + + for data_type, info in equation.metadata.iteritems(): + if info != "": + text += generate_html("div", "align=\"right\"", METADATA_TYPES[data_type] + ": " + info, + spacing=False)[:-1] + "
\n" + + result += text + "drmf_eof\n" - equations[i] = LatexEquation(formula, ''.join(equation), metadata) + ret += result - for equation in equations: - print equation + return ret def find_end(text, left_delimiter, right_delimiter, start=0): @@ -130,7 +171,8 @@ def main(): data.append([section_name, equations]) - translate(data) + data = translate(data) + print create_general_pages(data) if __name__ == '__main__': main() From 9c3d3fd16ed217af84f97ab9c2c8fd5a0671e81f Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 17 Aug 2016 10:07:12 -0400 Subject: [PATCH 279/402] Update .gitignore --- main_page/.gitignore | 4 ++++ maple2latex/.gitignore | 5 +++++ tex2Wiki/.gitignore | 2 ++ 3 files changed, 11 insertions(+) create mode 100644 main_page/.gitignore create mode 100644 maple2latex/.gitignore create mode 100644 tex2Wiki/.gitignore diff --git a/main_page/.gitignore b/main_page/.gitignore new file mode 100644 index 0000000..3caccc4 --- /dev/null +++ b/main_page/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +backups/ +*Glossary.csv* +!test/fake.Glossary.csv diff --git a/maple2latex/.gitignore b/maple2latex/.gitignore new file mode 100644 index 0000000..1beb704 --- /dev/null +++ b/maple2latex/.gitignore @@ -0,0 +1,5 @@ +functions/ +out/ +notes.txt +resources/ +.DS_Store diff --git a/tex2Wiki/.gitignore b/tex2Wiki/.gitignore new file mode 100644 index 0000000..00a7b41 --- /dev/null +++ b/tex2Wiki/.gitignore @@ -0,0 +1,2 @@ +AzeemOldCode/ +*Glossary.csv* \ No newline at end of file From f9aac473abd66eecaeb027bfbe66ee47b8c1b035 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 17 Aug 2016 13:30:45 -0400 Subject: [PATCH 280/402] Correct generation of first part of output file --- tex2Wiki/src/testData.txt | 0 tex2Wiki/src/tex2Wiki2.py | 180 ++++++++++++++++++++++++++++---------- 2 files changed, 134 insertions(+), 46 deletions(-) delete mode 100644 tex2Wiki/src/testData.txt diff --git a/tex2Wiki/src/testData.txt b/tex2Wiki/src/testData.txt deleted file mode 100644 index e69de29..0000000 diff --git a/tex2Wiki/src/tex2Wiki2.py b/tex2Wiki/src/tex2Wiki2.py index bd3eff4..1839c5f 100644 --- a/tex2Wiki/src/tex2Wiki2.py +++ b/tex2Wiki/src/tex2Wiki2.py @@ -1,6 +1,8 @@ __author__ = "Joon Bang" __status__ = "Prototype" +INPUT_FILE = "tex2Wiki/data/01outb.tex" +OUTPUT_FILE = "tex2Wiki/data/01outb.mmd" METADATA_TYPES = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} @@ -10,33 +12,50 @@ def __init__(self, label, equation, metadata): self.equation = equation self.metadata = metadata - def __str__(self): - return self.label + "\n" + self.equation + "\n" + str(self.metadata) +def generate_html(tag_name, text, options=dict(), spacing=2): + # (str, str(, dict, bool)) -> str + """ + Generates an html tag, with optional html parameters. + When spacing = 0, there should be no spacing. + When spacing = 1, the tag, text, and end tag are padded with spaces. + When spacing = 2, the tag, text, and end tag are padded with newlines. + """ + option_text = [key + "=\"" + value + "\"" for key, value in options.iteritems()] + result = "<" + tag_name + " " * (option_text != []) + ", ".join(option_text) + ">" + + if spacing == 2: + result += "\n" + text + "\n\n" + elif spacing == 1: + result += " " + text + " " + else: + result += text + "" -def generate_html(tag_name, options, text, spacing=True): - # (str, str, str(, bool)) -> str - """Generates an html tag, with optional html parameters.""" - result = "<" + tag_name - if options != "": - result += " " + options + return result - result += ">" - if tag_name == "math": - result += "{\\displaystyle" +def generate_math_html(text, options=dict(), spacing=True): + """ + Special case of generate_html, where the tag is "math". + """ + option_text = [key + "=\"" + value + "\"" for key, value in options.iteritems()] + result = "" - result += "\n" + text + "\n" + if spacing: + result += "{\\displaystyle\n" + text + "\n}\n" + else: + result += "{\\displaystyle " + text + "}\n" - if tag_name == "math": - result += "}" + return result - result += "\n" - if not spacing: - return result.replace("\n", " ")[:-1] + "\n" +def generate_link(left, right=""): + """Generates a link thingie.""" - return result + if right == "": + return "[[" + left + "|" + left + "]]" + + return "[[" + left + "|" + right + "]]" def multi_split(s, seps): @@ -52,7 +71,7 @@ def multi_split(s, seps): def convert_dollar_signs(string): count = 0 result = "" - for ch in string: + for i, ch in enumerate(string): if ch == "$" and count % 2 == 0: result += "{\\displaystyle " count += 1 @@ -65,65 +84,111 @@ def convert_dollar_signs(string): return result -def translate(data): +def format_formula(formula): + formula = multi_split(formula.split("Formula:", 1)[1], [".", ":"]) + + for j in [-1, -2, -3]: + formula[j] = formula[j].zfill(2) + + if len(formula) == 3: + formula = formula[0] + "." + formula[1] + ":" + formula[2] + else: + formula = ":".join(formula[:-3]) + ":" + formula[-3] + "." + formula[-2] + ":" + formula[-1] + + return formula + + +def format_metadata(string): + if string == "": + return "" + + # modified convert_dollar_sign algorithm + dollar_count = 0 + result = "" + for i, ch in enumerate(string): + if ch == "$": + if dollar_count % 2 == 1: + result += "}" + elif dollar_count > 1: + result = result[:-1] + "
\n{\\displaystyle " + else: + result += "{\\displaystyle " + dollar_count += 1 + else: + result += ch + + return result.strip() + + +def extract_data(data): result = list() for section_data in data: equations = section_data[1][:-1] for i, equation in enumerate(equations): # formula stuff try: - formula = get_data_str(equation, latex="\\formula") - formula = formula.split("Formula:", 1)[1] + formula = format_formula(get_data_str(equation, latex="\\formula")) except IndexError: # there is no formula. break - # get metadata - raw_metadata = list() - equation = equation.split("\n")[1:] + # get metadata + percent_list = list() + raw_metadata = "" + j = 0 while j < len(equation): if "%" in equation[j]: - raw_metadata.append(equation.pop(j)) + raw_metadata += equation.pop(j)[1:].strip().strip("\n") + "\n" else: j += 1 - raw_metadata = ''.join([line[1:].strip() for line in raw_metadata]) - metadata = dict() for data_type in METADATA_TYPES: - metadata[data_type] = convert_dollar_signs(get_data_str(raw_metadata, latex="\\"+data_type)).strip() + metadata[data_type] = format_metadata(get_data_str(raw_metadata, latex="\\"+data_type)) - equations[i] = LatexEquation(formula, ' '.join(equation), metadata) + # print metadata + + equations[i] = LatexEquation(formula, '\n'.join(equation), metadata) result.append([section_data[0], equations]) return result -def create_general_pages(data): +def create_general_pages(data, title): ret = "" - for section_data in data: + print [d[0] for d in data] + + section_names = [d[0] for d in data] # list of section names + + for i, section_data in enumerate(data): section_name = section_data[0] - result = "drmf_bof\n'''" + section_name + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" + result = "drmf_bof\n'''" + section_name.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" - # TODO: headers code (recycle from main_page code?) + # header/footer code + header, footer = generate_nav_bar(title, section_names, i) - result += "\n== " + section_name + " ==\n\n" + result += header + "\n== " + section_name + " ==\n\n" text = "" - for equation in section_data[1]: + for eq in section_data[1]: # equation is of type LatexEquation - text += generate_html("math", "id=\"" + equation.label + "\"", equation.equation) + text += generate_math_html(eq.equation, options={"id": eq.label}) - for data_type, info in equation.metadata.iteritems(): - if info != "": - text += generate_html("div", "align=\"right\"", METADATA_TYPES[data_type] + ": " + info, - spacing=False)[:-1] + "
\n" + metadata_exists = False + for data_type in sorted(eq.metadata.keys()): + if eq.metadata[data_type] != "": + text += generate_html("div", METADATA_TYPES[data_type] + ": " + eq.metadata[data_type], + options={"align": "right"}, spacing=False) + "
\n" + metadata_exists = True - result += text + "drmf_eof\n" + if not metadata_exists: + text = text[:-1] + "
\n" + + result += text + footer + "\n" + "drmf_eof\n" ret += result @@ -152,15 +217,35 @@ def get_data_str(text, latex=""): return text[start + len(latex + "{"):find_end(text, "{", "}", start)] +def generate_nav_bar(title, sections, i): + main_title = "Orthogonal Polynomials" + sections = [main_title] + sections + [main_title] + + center_text = main_title.replace(" ", "_") + "#Sections_in_" + title.replace(" ", "_") + + sections = [s.replace("''", "") for s in sections] + + nav_section = generate_html("div", "<< " + generate_link(sections[i]), options={"id": "alignleft"}, + spacing=1) + "\n" + \ + generate_html("div", generate_link(center_text, sections[i + 1]), options={"id": "aligncenter"}, + spacing=1) + "\n" + \ + generate_html("div", generate_link(sections[i + 2]) + " >>", options={"id": "alignright"}, + spacing=1) + + header = generate_html("div", nav_section, options={"id": "drmf_head"}) + footer = generate_html("div", nav_section, options={"id": "drmf_foot"}) + + return header, footer + + def main(): - with open("tex2Wiki/data/01outb.tex") as input_file: + with open(INPUT_FILE) as input_file: text = input_file.read() text = text.split("\\begin{document}", 1)[1] text = text.split("\\section") title = get_data_str(text[0]) - print title data = list() for section in text[1:]: @@ -171,8 +256,11 @@ def main(): data.append([section_name, equations]) - data = translate(data) - print create_general_pages(data) + data = extract_data(data) + output_1 = create_general_pages(data, title) + + with open(OUTPUT_FILE, "w") as output_file: + output_file.write(output_1) if __name__ == '__main__': main() From 0d10d10f104f40f31bd375af44d8b3da4eaa8dfe Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 17 Aug 2016 14:40:54 -0400 Subject: [PATCH 281/402] Add mostly functional generation for .mmd --- tex2Wiki/src/tex2Wiki2.py | 195 +++++++++++++++++++++++++++++++------- 1 file changed, 160 insertions(+), 35 deletions(-) diff --git a/tex2Wiki/src/tex2Wiki2.py b/tex2Wiki/src/tex2Wiki2.py index 1839c5f..cf4af57 100644 --- a/tex2Wiki/src/tex2Wiki2.py +++ b/tex2Wiki/src/tex2Wiki2.py @@ -3,8 +3,11 @@ INPUT_FILE = "tex2Wiki/data/01outb.tex" OUTPUT_FILE = "tex2Wiki/data/01outb.mmd" +GLOSSARY_LOCATION = "tex2Wiki/src/new.Glossary.csv" METADATA_TYPES = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} +import csv + class LatexEquation(object): def __init__(self, label, equation, metadata): @@ -157,11 +160,121 @@ def extract_data(data): return result +def find_end(text, left_delimiter, right_delimiter, start=0): + net = 0 # left delimiters encountered - right delimiters encountered + for i, ch in enumerate(text[start:]): + if ch == left_delimiter: + net += 1 + elif ch == right_delimiter: + if net == 1: + return i + start + else: + net -= 1 + + return -1 + + +def get_data_str(text, latex=""): + if latex + "{" not in text: + return "" + + start = text.find(latex + "{") + return text[start + len(latex + "{"):find_end(text, "{", "}", start)] + + +def generate_nav_bar(main_title, hash_code, sections, i, middle=""): + # TODO: Rewrite this function. + + sections = ["Orthogonal Polynomials"] + sections + ["Orthogonal Polynomials"] + + center_text = (main_title + "#" + hash_code).replace(" ", "_") + + sections = [s.replace("''", "") for s in sections] + + if middle == "": + middle = sections[i + 1] + + nav_section = generate_html("div", "<< " + generate_link(sections[i]), options={"id": "alignleft"}, + spacing=1) + "\n" + \ + generate_html("div", generate_link(center_text, middle), options={"id": "aligncenter"}, + spacing=1) + "\n" + \ + generate_html("div", generate_link(sections[i + 2]) + " >>", options={"id": "alignright"}, + spacing=1) + + header = generate_html("div", nav_section, options={"id": "drmf_head"}) + footer = generate_html("div", nav_section, options={"id": "drmf_foot"}) + + return header, footer + + +def get_macro_name(macro): + # (str) -> str + """Obtains the macro name.""" + macro_name = "" + for ch in macro: + if ch.isalpha() or ch == "\\": + macro_name += ch + elif ch in ["@", "{", "["]: + break + + return macro_name + + +def find_all(pattern, string): + # (str, str) -> generator + """Finds all instances of pattern in string.""" + + i = string.find(pattern) + while i != -1: + yield i + i = string.find(pattern, i + 1) + + +def get_symbols(text, glossary): + # (str, dict) -> str + """Generates span text based on symbols present in text.""" + symbols = set() + + for keyword in glossary: + for index in find_all(keyword, text): + # if the macro is present in the text + if index != -1: + index += len(keyword) # now index of next character + if index >= len(text) or not text[index].isalpha(): + symbols.add(keyword) + + span_text = "" + for symbol in sorted(symbols, key=str.lower): + links = list() + for cell in glossary[symbol]: + if "http://" in cell or "https://" in cell: + links.append(cell) + + id_link = links[0] + links = ["[" + link + " " + link + "]" for link in links] + + meaning = list(glossary[symbol][1]) + + count = 0 + for i, ch in enumerate(meaning): + if ch == "$" and count % 2 == 0: + meaning[i] = "{\\displaystyle " + count += 1 + elif ch == "$": + meaning[i] = "}" + count += 1 + + appearance = glossary[symbol][4].strip("$") + + span_text += "[" + id_link + " {\\displaystyle " + appearance + \ + "}] : " + ''.join(meaning) + " : " + " ".join(links) + "
\n" + + return span_text[:-7] # slice off the extra br and endline + + def create_general_pages(data, title): ret = "" - print [d[0] for d in data] - section_names = [d[0] for d in data] # list of section names for i, section_data in enumerate(data): @@ -169,7 +282,7 @@ def create_general_pages(data, title): result = "drmf_bof\n'''" + section_name.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" # header/footer code - header, footer = generate_nav_bar(title, section_names, i) + header, footer = generate_nav_bar("Orthogonal Polynomials", "Sections in " + title, section_names, i) result += header + "\n== " + section_name + " ==\n\n" @@ -195,47 +308,59 @@ def create_general_pages(data, title): return ret -def find_end(text, left_delimiter, right_delimiter, start=0): - net = 0 # left delimiters encountered - right delimiters encountered - for i, ch in enumerate(text[start:]): - if ch == left_delimiter: - net += 1 - elif ch == right_delimiter: - if net == 1: - return i + start - else: - net -= 1 +def create_specific_pages(data): + pages = list() - return -1 + formulae = list() + for section_data in data: + for equations in section_data[1:]: + for eq in equations: + formulae.append("Formula:" + eq.label) + formulae.append(section_data[0]) + print formulae -def get_data_str(text, latex=""): - if latex + "{" not in text: - return "" + glossary = dict() + with open(GLOSSARY_LOCATION, "rb") as csv_file: + glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') + for row in glossary_file: + glossary[get_macro_name(row[0])] = row - start = text.find(latex + "{") - return text[start + len(latex + "{"):find_end(text, "{", "}", start)] + i = 0 + for j, section_data in enumerate(data): + section_name = section_data[0] + for eq in section_data[1]: + header, footer = generate_nav_bar(section_name, eq.label, formulae, i, middle="formula in " + section_name) + result = "drmf_bof\n'''Formula:" + eq.label + "'''\n{{DISPLAYTITLE:Formula:" + eq.label + "}}\n" + header \ + + "\n
" -def generate_nav_bar(title, sections, i): - main_title = "Orthogonal Polynomials" - sections = [main_title] + sections + [main_title] + result += generate_html("div", generate_math_html(eq.equation)[:-1], options={"align": "center"}, + spacing=0) + "\n\n" - center_text = main_title.replace(" ", "_") + "#Sections_in_" + title.replace(" ", "_") + for data_type, info in eq.metadata.iteritems(): + if info != "": + result += "== " + METADATA_TYPES[data_type] + " ==\n\n" + result += generate_html("div", info, options={"align": "left"}, spacing=0) + "
\n\n" - sections = [s.replace("''", "") for s in sections] + result += "== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further " \ + "clarification on the proof(s) in this space.\n\n== Symbols List ==\n\n" + result += get_symbols(result, glossary) + "\n
\n\n" - nav_section = generate_html("div", "<< " + generate_link(sections[i]), options={"id": "alignleft"}, - spacing=1) + "\n" + \ - generate_html("div", generate_link(center_text, sections[i + 1]), options={"id": "aligncenter"}, - spacing=1) + "\n" + \ - generate_html("div", generate_link(sections[i + 2]) + " >>", options={"id": "alignright"}, - spacing=1) + result += "== Bibliography ==\n\n" + result += "[http://homepage.tudelft.nl/11r49/askey/contents.html " \ + "Equation in Section 1." + str(j + 1) + "] of [[Bibliography#KLS|'''KLS''']]." - header = generate_html("div", nav_section, options={"id": "drmf_head"}) - footer = generate_html("div", nav_section, options={"id": "drmf_foot"}) + result += "\n\n== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n" - return header, footer + result += "
" + footer + "\ndrmf_eof" + pages.append(result) + + i += 1 + + i += 1 + + return "\n".join(pages) + "\n" def main(): @@ -257,10 +382,10 @@ def main(): data.append([section_name, equations]) data = extract_data(data) - output_1 = create_general_pages(data, title) + output = create_general_pages(data, title) + create_specific_pages(data) with open(OUTPUT_FILE, "w") as output_file: - output_file.write(output_1) + output_file.write(output) if __name__ == '__main__': main() From c59da8da2b73fa2edc9b9492c3ff22bf840d4267 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 18 Aug 2016 10:54:45 -0400 Subject: [PATCH 282/402] Rewrite generate_nav_bar function; add some comments --- main_page/src/.functions.py.swp | Bin 0 -> 16384 bytes tex2Wiki/src/OrthogonalPolynomials.mmd | 65 ------------ tex2Wiki/src/OrthogonalPolynomials.mmd.new | 65 ------------ {tex2Wiki => tex2wiki}/.gitignore | 0 {tex2Wiki => tex2wiki}/README.md | 0 {tex2Wiki => tex2wiki}/src/__init__.py | 0 {tex2Wiki => tex2wiki}/src/tex2Wiki.py | 0 .../tex2Wiki2.py => tex2wiki/src/tex2wiki2.py | 96 ++++++++++-------- 8 files changed, 56 insertions(+), 170 deletions(-) create mode 100644 main_page/src/.functions.py.swp delete mode 100644 tex2Wiki/src/OrthogonalPolynomials.mmd delete mode 100644 tex2Wiki/src/OrthogonalPolynomials.mmd.new rename {tex2Wiki => tex2wiki}/.gitignore (100%) rename {tex2Wiki => tex2wiki}/README.md (100%) rename {tex2Wiki => tex2wiki}/src/__init__.py (100%) rename {tex2Wiki => tex2wiki}/src/tex2Wiki.py (100%) rename tex2Wiki/src/tex2Wiki2.py => tex2wiki/src/tex2wiki2.py (81%) diff --git a/main_page/src/.functions.py.swp b/main_page/src/.functions.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..876aecd1e0a7fac875906508349952435f2fd69e GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/tex2Wiki/src/OrthogonalPolynomials.mmd b/tex2Wiki/src/OrthogonalPolynomials.mmd deleted file mode 100644 index cab1d14..0000000 --- a/tex2Wiki/src/OrthogonalPolynomials.mmd +++ /dev/null @@ -1,65 +0,0 @@ -drmf_bof -'''Orthogonal Polynomials''' -{{#set:Section=0}} -== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
-== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
-== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
- -drmf_eof diff --git a/tex2Wiki/src/OrthogonalPolynomials.mmd.new b/tex2Wiki/src/OrthogonalPolynomials.mmd.new deleted file mode 100644 index cab1d14..0000000 --- a/tex2Wiki/src/OrthogonalPolynomials.mmd.new +++ /dev/null @@ -1,65 +0,0 @@ -drmf_bof -'''Orthogonal Polynomials''' -{{#set:Section=0}} -== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
-== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
-== Sections in KLS Chapter 1 == - -
-* [[Orthogonal polynomials|Orthogonal polynomials]] -* [[The gamma and beta function|The gamma and beta function]] -* [[The shifted factorial and binomial coefficients|The shifted factorial and binomial coefficients]] -* [[Hypergeometric functions|Hypergeometric functions]] -* [[The binomial theorem and other summation formulas|The binomial theorem and other summation formulas]] -* [[Some integrals|Some integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[The q-shifted factorial|The ''q''-shifted factorial]] -* [[The q-gamma function and q-binomial coefficients|The ''q''-gamma function and ''q''-binomial coefficients]] -* [[Basic hypergeometric functions|Basic hypergeometric functions]] -* [[The q-binomial theorem and other summation formulas|The ''q''-binomial theorem and other summation formulas]] -* [[More integrals|More integrals]] -* [[Transformation formulas|Transformation formulas]] -* [[Some q-analogues of special functions|Some ''q''-analogues of special functions]] -* [[The q-derivative and q-integral|The ''q''-derivative and ''q''-integral]] -* [[Shift operators and Rodrigues-type formulas|Shift operators and Rodrigues-type formulas]] -
- -drmf_eof diff --git a/tex2Wiki/.gitignore b/tex2wiki/.gitignore similarity index 100% rename from tex2Wiki/.gitignore rename to tex2wiki/.gitignore diff --git a/tex2Wiki/README.md b/tex2wiki/README.md similarity index 100% rename from tex2Wiki/README.md rename to tex2wiki/README.md diff --git a/tex2Wiki/src/__init__.py b/tex2wiki/src/__init__.py similarity index 100% rename from tex2Wiki/src/__init__.py rename to tex2wiki/src/__init__.py diff --git a/tex2Wiki/src/tex2Wiki.py b/tex2wiki/src/tex2Wiki.py similarity index 100% rename from tex2Wiki/src/tex2Wiki.py rename to tex2wiki/src/tex2Wiki.py diff --git a/tex2Wiki/src/tex2Wiki2.py b/tex2wiki/src/tex2wiki2.py similarity index 81% rename from tex2Wiki/src/tex2Wiki2.py rename to tex2wiki/src/tex2wiki2.py index cf4af57..0173020 100644 --- a/tex2Wiki/src/tex2Wiki2.py +++ b/tex2wiki/src/tex2wiki2.py @@ -1,10 +1,11 @@ __author__ = "Joon Bang" __status__ = "Prototype" -INPUT_FILE = "tex2Wiki/data/01outb.tex" -OUTPUT_FILE = "tex2Wiki/data/01outb.mmd" -GLOSSARY_LOCATION = "tex2Wiki/src/new.Glossary.csv" -METADATA_TYPES = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} +INPUT_FILE = "tex2wiki/data/09outb.tex" +OUTPUT_FILE = "tex2wiki/data/09outb.mmd" +GLOSSARY_LOCATION = "tex2wiki/src/new.Glossary.csv" +METADATA_TYPES = ["substitution", "constraint"] +METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} import csv @@ -88,6 +89,9 @@ def convert_dollar_signs(string): def format_formula(formula): + if formula[0] == ":": + return formula[1:].zfill(2) + formula = multi_split(formula.split("Formula:", 1)[1], [".", ":"]) for j in [-1, -2, -3]: @@ -182,24 +186,16 @@ def get_data_str(text, latex=""): return text[start + len(latex + "{"):find_end(text, "{", "}", start)] -def generate_nav_bar(main_title, hash_code, sections, i, middle=""): - # TODO: Rewrite this function. - - sections = ["Orthogonal Polynomials"] + sections + ["Orthogonal Polynomials"] - - center_text = (main_title + "#" + hash_code).replace(" ", "_") +def generate_nav_bar(info): + links = list() + for link, text in info: + link = link.replace("''", "") + text = text.replace("''", "") + links.append(generate_link(link, text)) - sections = [s.replace("''", "") for s in sections] - - if middle == "": - middle = sections[i + 1] - - nav_section = generate_html("div", "<< " + generate_link(sections[i]), options={"id": "alignleft"}, - spacing=1) + "\n" + \ - generate_html("div", generate_link(center_text, middle), options={"id": "aligncenter"}, - spacing=1) + "\n" + \ - generate_html("div", generate_link(sections[i + 2]) + " >>", options={"id": "alignright"}, - spacing=1) + nav_section = generate_html("div", "<< " + links[0], options={"id": "alignleft"}, spacing=1) + "\n" + \ + generate_html("div", links[1], options={"id": "aligncenter"}, spacing=1) + "\n" + \ + generate_html("div", links[2] + " >>", options={"id": "alignright"}, spacing=1) header = generate_html("div", nav_section, options={"id": "drmf_head"}) footer = generate_html("div", nav_section, options={"id": "drmf_foot"}) @@ -275,26 +271,33 @@ def get_symbols(text, glossary): def create_general_pages(data, title): ret = "" - section_names = [d[0] for d in data] # list of section names + # get list of section names + section_names = [d[0] for d in data] + section_names = ["Orthogonal Polynomials"] + section_names + ["Orthogonal Polynomials"] for i, section_data in enumerate(data): section_name = section_data[0] result = "drmf_bof\n'''" + section_name.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" - # header/footer code - header, footer = generate_nav_bar("Orthogonal Polynomials", "Sections in " + title, section_names, i) + # get header and footer + center_text = ("Orthogonal Polynomials" + "#Sections in " + title).replace(" ", "_") + link_info = [[section_names[i], section_names[i]], [center_text, section_names[i + 1]], + [section_names[i + 2], section_names[i + 2]]] + header, footer = generate_nav_bar(link_info) result += header + "\n== " + section_name + " ==\n\n" text = "" for eq in section_data[1]: # equation is of type LatexEquation + print eq + print text += generate_math_html(eq.equation, options={"id": eq.label}) metadata_exists = False for data_type in sorted(eq.metadata.keys()): if eq.metadata[data_type] != "": - text += generate_html("div", METADATA_TYPES[data_type] + ": " + eq.metadata[data_type], + text += generate_html("div", METADATA_MEANING[data_type] + ": " + eq.metadata[data_type], options={"align": "right"}, spacing=False) + "
\n" metadata_exists = True @@ -308,9 +311,7 @@ def create_general_pages(data, title): return ret -def create_specific_pages(data): - pages = list() - +def create_specific_pages(data, glossary): formulae = list() for section_data in data: for equations in section_data[1:]: @@ -318,41 +319,50 @@ def create_specific_pages(data): formulae.append("Formula:" + eq.label) formulae.append(section_data[0]) - print formulae - - glossary = dict() - with open(GLOSSARY_LOCATION, "rb") as csv_file: - glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') - for row in glossary_file: - glossary[get_macro_name(row[0])] = row + formulae = ["Orthogonal Polynomials"] + formulae[:-1] + ["Orthogonal Polynomials"] i = 0 + pages = list() for j, section_data in enumerate(data): section_name = section_data[0] for eq in section_data[1]: - header, footer = generate_nav_bar(section_name, eq.label, formulae, i, middle="formula in " + section_name) - + # get header and footer + center_text = (section_name + "#" + eq.label).replace(" ", "_") + middle = "formula in " + section_name + link_info = [[formulae[i].replace(" ", "_"), formulae[i]], [center_text, middle], + [formulae[i + 2].replace(" ", "_"), formulae[i + 2]]] + header, footer = generate_nav_bar(link_info) + + # add title of page, navigation headers result = "drmf_bof\n'''Formula:" + eq.label + "'''\n{{DISPLAYTITLE:Formula:" + eq.label + "}}\n" + header \ + "\n
" + # add formula result += generate_html("div", generate_math_html(eq.equation)[:-1], options={"align": "center"}, spacing=0) + "\n\n" + # add metadata for data_type, info in eq.metadata.iteritems(): if info != "": - result += "== " + METADATA_TYPES[data_type] + " ==\n\n" + result += "== " + METADATA_MEANING[data_type] + " ==\n\n" result += generate_html("div", info, options={"align": "left"}, spacing=0) + "
\n\n" + # proof section result += "== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further " \ - "clarification on the proof(s) in this space.\n\n== Symbols List ==\n\n" + "clarification on the proof(s) in this space.\n\n" + + # symbols list section + result += "== Symbols List ==\n\n" result += get_symbols(result, glossary) + "\n
\n\n" + # bibliography section result += "== Bibliography ==\n\n" result += "[http://homepage.tudelft.nl/11r49/askey/contents.html " \ "Equation in Section 1." + str(j + 1) + "] of [[Bibliography#KLS|'''KLS''']]." result += "\n\n== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n" + # end of page result += "
" + footer + "\ndrmf_eof" pages.append(result) @@ -367,6 +377,12 @@ def main(): with open(INPUT_FILE) as input_file: text = input_file.read() + glossary = dict() + with open(GLOSSARY_LOCATION, "rb") as csv_file: + glossary_file = csv.reader(csv_file, delimiter=',', quotechar='\"') + for row in glossary_file: + glossary[get_macro_name(row[0])] = row + text = text.split("\\begin{document}", 1)[1] text = text.split("\\section") @@ -382,7 +398,7 @@ def main(): data.append([section_name, equations]) data = extract_data(data) - output = create_general_pages(data, title) + create_specific_pages(data) + output = create_general_pages(data, title) + create_specific_pages(data, glossary) with open(OUTPUT_FILE, "w") as output_file: output_file.write(output) From 93f4c9be8b090fe60d04137d5c71d99528832f2d Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 18 Aug 2016 11:09:37 -0400 Subject: [PATCH 283/402] Update .gitignore --- tex2wiki/.gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tex2wiki/.gitignore b/tex2wiki/.gitignore index 00a7b41..1fa607a 100644 --- a/tex2wiki/.gitignore +++ b/tex2wiki/.gitignore @@ -1,2 +1,5 @@ AzeemOldCode/ -*Glossary.csv* \ No newline at end of file +*Glossary.csv* +*.mmd +*.bak +*.tex \ No newline at end of file From 6340bc665775f781ad440eed3192ad1402af9653 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 18 Aug 2016 11:12:43 -0400 Subject: [PATCH 284/402] Remove old tex2wiki.py --- main_page/src/.functions.py.swp | Bin 16384 -> 0 bytes tex2wiki/src/tex2Wiki.py | 1080 -------------------- tex2wiki/src/{tex2wiki2.py => tex2wiki.py} | 6 +- 3 files changed, 3 insertions(+), 1083 deletions(-) delete mode 100644 main_page/src/.functions.py.swp delete mode 100644 tex2wiki/src/tex2Wiki.py rename tex2wiki/src/{tex2wiki2.py => tex2wiki.py} (98%) diff --git a/main_page/src/.functions.py.swp b/main_page/src/.functions.py.swp deleted file mode 100644 index 876aecd1e0a7fac875906508349952435f2fd69e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/tex2wiki/src/tex2Wiki.py b/tex2wiki/src/tex2Wiki.py deleted file mode 100644 index 9d137bb..0000000 --- a/tex2wiki/src/tex2Wiki.py +++ /dev/null @@ -1,1080 +0,0 @@ -__author__ = "Joon Bang" -__status__ = "Development" -__credits__ = ["Joon Bang", "Azeem Mohammed"] - -# Version 0.2.0: Rewrite -# Convert tex to wikiText -import csv -import os -import sys - - -def get_data_str(string): - # (str) -> str - """Gets all characters from input string that are in between curly braces.""" - - left = string.find("{") + 1 - right = string.find("}", left) - text = string[left:right].replace("$", "''").lstrip().rstrip("\n") - - return text - - -def getG(line): # gets equation for symbols list - start = True - final = "" - for ch in line: - if ch == "$" and start: - final += "{\\displaystyle " - start = False - elif ch == "$": - final += "}" - start = True - else: - final += ch - - return final - - -def getEq(line): # Gets all data within constraints,substitutions - per = 1 - stringWrite = "" - fEq = False - count = 0 - - for ch in line: # read each character - if count >= 0 and per != 0: - per += 1 - if ch != " " and ch != "%": - per = 0 - - if ch == "{" and per == 0: - if count > 0: - stringWrite += ch - count += 1 - - elif ch == "}" and per == 0: - count -= 1 - if count > 0: - stringWrite += ch - - elif ch == "$" and per == 0: # either begin or end equation - fEq = not (fEq) # toggle fEq flag to know if begin or end equation - if fEq: # if begin - stringWrite += "{\\displaystyle " - else: # if end - stringWrite += "}" - - elif ch == "\n" and per == 0: # if newline - stringWrite = stringWrite.strip() + "\n" - per += 1 # watch for % signs - - elif count > 0 and per == 0: # not special character - stringWrite += ch # write the character - - return stringWrite.strip() - - -def getEqP(line, Flag): # Gets all data within proofs - if Flag: - a = 1 - else: - a = 0 - per = 1 - stringWrite = "" - fEq = False - count = 0 - length = 0 - for c in line: - if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): - length += 1 - if count >= 0 and per != 0: - per += 1 - if c != " " and c != "%": - # if c!="%": - per = 0 - if c == "{" and per == 0: - if count > 0: - stringWrite += c - count += 1 - elif c == "}" and per == 0: - count -= 1 - if count > 0: - stringWrite += c - elif c == "$" and per == 0: - fEq = not (fEq) - if fEq: - stringWrite += "{\\displaystyle " - else: - if length < 10: - stringWrite += "}" - else: - stringWrite += "}" + "
" - length = 0 - elif c == "\n" and per == 0: - stringWrite = stringWrite.strip() - stringWrite += c - per += 1 - elif count > 0 and per == 0: - stringWrite += c - - return (stringWrite.lstrip()) - - -def getSym(line): # Gets all symbols on a line for symbols list - symList = [] - if line == "": - return symList - symbol = "" - symFlag = False - argFlag = False - cC = 0 - for i in range(0, len(line)): - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - c = line[i] - if symFlag: - if c == "{" or c == "[": - cC += 1 - argFlag = True - if c != "}" and c != "]": - if argFlag or c.isalpha(): - symbol += c - else: - symFlag = False - argFlag = False - symList.append(symbol) - symList += (getSym(symbol)) - symbol = "" - else: - cC -= 1 - symbol += c - if i + 1 == len(line): - p = "" - else: - p = line[i + 1] - if cC <= 0 and p != "{" and p != "[" and p != "@": - symFlag = False - # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: - symList.append(symbol) - symList += (getSym(symbol)) - argFlag = False - symbol = "" - - elif c == "\\": - symFlag = True - elif c == "&" and not (i > line.find("\\begin{array}") and i < line.find("\\end{array}")): - symList.append("&") - - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: - symList.append(symbol) - symList += getSym(symbol) - return (symList) - - -def unmodLabel(label): - label = label.replace(".0", ".") - label = label.replace(":0", ":") - return (label) - - -def secLabel(label): - return (label.replace("\'\'", "")) - - -def modLabel(label): - # label.replace("Formula:KLS:","KLS;") - isNumer = False - newlabel = "" - num = "" - for i in range(0, len(label)): - if isNumer and not label[i][0].isdigit(): - if len(num) > 1: - newlabel += num - isNumer = False - num = "" - else: - newlabel += "0" + str(num) - num = "" - isNumer = False - if label[i][0].isdigit(): - isNumer = True - num += str(label[i]) - else: - isNumer = False - newlabel += label[i] - if len(num) > 1: - newlabel += num - elif len(num) == 1: - newlabel += "0" + num - return (newlabel) - - -def main(): - wiki = open(sys.argv[2], 'w') - with open(sys.argv[1], 'r') as tex: - lines = tex.readlines() - - with open("OrthogonalPolynomials.mmd", "r") as main: - mainText = main.read() - - mainPrepend = "" - mainWrite = open("OrthogonalPolynomials.mmd.new", "w") - math = False - constraint = False - substitution = False - parse = False - head = False - symbols = [] - refLines = [] - sections = [] - labels = [] - eqs = [] - refEqs = [] - refLabels = [] - - for i in xrange(len(refLines)): - line = refLines[i] - if "\\begin{equation}" in line: - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1 and l[len(label)+1]=="=": - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' - refLabels.append(label) - refEqs.append("") - math = True - elif math: - refEqs[len(refEqs) - 1] += line - if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ - refLines[i + 1] or "\\drmfn" in refLines[i + 1]: - math = False - - for i in range(0, len(lines)): - line = lines[i] - if "\\begin{document}" in line: - # wiki.write("drmf_bof\n") - parse = True - elif "\\end{document}" in line and parse: - # wiki.write("
\n") - mainPrepend += "
\n" - mainText = mainPrepend + mainText - mainText = mainText.replace("drmf_bof\n", "") - mainText = mainText.replace("drmf_eof\n", "") - mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") - mainText = mainText.replace("{{#set:Section=0}}\n", "") - mainText = mainText[0:mainText.rfind("== Sections ")] - mainText = "drmf_bof\n\'\'\'Orthogonal Polynomials\'\'\'\n{{#set:Section=0}}" + mainText + "\ndrmf_eof\n" - mainWrite.write(mainText) - mainWrite.close() - os.system("cp -f OrthogonalPolynomials.mmd.new OrthogonalPolynomials.mmd") - # wiki.write("\ndrmf_eof\n") - parse = False - elif "\\title" in line and parse: - stringWrite = "\'\'\'" - stringWrite += get_data_str(line) + "\'\'\'\n" - labels.append("Orthogonal Polynomials") - sections.append(["Orthogonal Polynomials", 0]) - # wiki.write(stringWrite) - # mainPrepend+=stringWrite - chapter = get_data_str(line) - mainPrepend += ( - "\n== Sections in " + chapter + " ==\n\n
\n") - elif "\\part" in line: - if get_data_str(line) == "BOF": - parse = False - elif get_data_str(line) == "EOF": - parse = True - elif parse: - mainPrepend += ("\n
\n= " + get_data_str(line) + " =\n") - head = True - elif "\\section" in line: - mainPrepend += ("* [[" + secLabel(get_data_str(line)) + "|" + get_data_str(line) + "]]\n") - sections.append([get_data_str(line)]) - - secCounter = 0 - eqCounter = 0 - for i in range(0, len(lines)): - line = lines[i] - # line.replace("\\begin{equation}","$") - # line.replace("\\end{equation},"$") - '''if "\\begin{document}" in line: - wiki.write("drmf_bof\n") - parse=True - elif "\\end{document}" in line and parse: - wiki.write("\ndrmf_eof\n") - parse=False - elif "\\title" in line and parse: - stringWrite="\'\'\'" - stringWrite+=getString(line)+"\'\'\'\n" - labels.append("Orthogonal Polynomials") - wiki.write(stringWrite\n) - elif "\\part" in line: - if getString(line)=="BOF": - parse=False - elif getString(line)=="EOF": - parse=True - elif parse: - wiki.write("\n
\n= "+getString(line)+" =\n") - head=True - ''' - if "\\section" in line: - parse = True - secCounter += 1 - wiki.write("drmf_bof\n") - wiki.write("\'\'\'" + secLabel(get_data_str(line)) + "\'\'\'\n") - wiki.write("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") - wiki.write("
\n") - wiki.write("
<< [[" + secLabel(sections[secCounter - 1][0]) + "|" + secLabel( - sections[secCounter - 1][0]) + "]]
\n") - # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") - wiki.write("
[[Orthogonal_Polynomials#" + "Sections_in_" + chapter.replace(" ", - "_") + "|" + secLabel( - sections[secCounter][0]) + "]]
\n") - wiki.write( - "
[[" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + "|" + secLabel( - sections[(secCounter + 1) % len(sections)][0]) + "]] >>
\n
\n\n") - # wiki.write("{{head|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") - # wiki.write("{{#set:Chapter="+chapter+"}}\n") - # wiki.write("{{#set:Section="+str(secCounter)+"}}\n") - # wiki.write("{{head}}\n") - head = True - wiki.write("== " + get_data_str(line) + " ==\n") - elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[(i + 1) % len(lines)]) and parse: - wiki.write("
\n") - wiki.write("
<< [[" + secLabel(sections[secCounter - 1][0]) + "|" + secLabel( - sections[secCounter - 1][0]) + "]]
\n") - # wiki.write("
[[Orthogonal_Polynomials#"+secLabel(sections[secCounter][0])+"|"+secLabel(sections[secCounter][0])+"]]
\n") - wiki.write("
[[Orthogonal_Polynomials#" + "Sections_in_" + chapter.replace(" ", - "_") + "|" + secLabel( - sections[secCounter][0]) + "]]
\n") - wiki.write( - "
[[" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + "|" + secLabel( - sections[(secCounter + 1) % len(sections)][0]) + "]] >>
\n
\n\n") - # wiki.write("{{foot|pre="+secLabel(sections[secCounter-1][0])+"|cur="+secLabel(sections[secCounter][0])+"|next="+secLabel(sections[(secCounter+1)%len(sections)][0])+"}}\n") - # wiki.write("{{foot}}\n") - wiki.write("drmf_eof\n") - sections[secCounter].append(eqCounter) - eqCounter = 0 - - elif "\\subsection" in line and parse: - wiki.write("\n== " + get_data_str(line) + " ==\n") - head = True - elif "\\paragraph" in line and parse: - wiki.write("\n=== " + get_data_str(line) + " ===\n") - head = True - elif "\\subsubsection" in line and parse: - wiki.write("\n=== " + get_data_str(line) + " ===\n") - head = True - - elif "\\begin{equation}" in line and parse: - # symLine="" - if head: - wiki.write("\n") - head = False - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - eqCounter += 1 - '''for l in lLink: - if label==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - labels.append(label) - eqs.append("") - # wiki.write("\n\n") - wiki.write("{\displaystyle\n") - math = True - elif "\\begin{equation}" in line and not parse: - sLabel = line.find("\\formula{") + 9 - eLabel = line.find("}", sLabel) - label = modLabel(line[sLabel:eLabel]) - '''for l in lLink: - if l.find(label)!=-1: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - break''' - labels.append("*" + label) # special marker - eqs.append("") - math = True - elif "\\end{equation}" in line: - - math = False - elif "\\constraint" in line and parse: - constraint = True - math = False - conLine = "" - elif "\\substitution" in line and parse: - substitution = True - math = False - subLine = "" - # wiki.write("
Substitution(s): "+getEq(line)+"

\n") - elif "\\proof" in line and parse: - math = False - elif "\\drmfn" in line and parse: - math = False - if "\\drmfname" in line and parse: - wiki.write("
This formula has the name: " + get_data_str(line) + "

\n") - elif math and parse: - flagM = True - eqs[len(eqs) - 1] += line - - if "\\end{equation}" in lines[i + 1] and not "\\subsection" in lines[i + 3] and not "\\section" in lines[ - i + 3] and not "\\part" in lines[i + 3]: - u = i - flagM2 = False - while flagM: - u += 1 - if "\\begin{equation}" in lines[u] in lines[u]: - flagM = False - if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ - u] or "\\end{document}" in lines[u]: - flagM = False - flagM2 = True - if not (flagM2): - - wiki.write(line.rstrip("\n")) - wiki.write("\n}
\n") - else: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - elif "\\end{equation}" in lines[i + 1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") - else: - wiki.write(line) - elif math and not parse: - eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\drmfn" in lines[i + 1]: - math = False - if substitution and parse: - subLine = subLine + line # .replace("&","&
") - if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: - lineR = "" - for i in range(0, len(subLine)): - if subLine[i] == "&" and not ( - i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): - lineR += "&
" - else: - lineR += subLine[i] - substitution = False - wiki.write("
Substitution(s): " + getEq(lineR) + "

\n") - - if constraint and parse: - conLine = conLine + line.replace("&", "&
") - if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: - constraint = False - wiki.write("
Constraint(s): " + getEq(conLine) + "

\n") - - eqCounter = 0 - endNum = len(labels) - 1 - '''for n in range(1,len(labels)): - if n+1!=len(labels) and labels[n+1][0]=="*" and labels[n][0]!="*": - labels[n]=""+labels[n] - endNum=n - elif labels[n][0]=="*": - labels[n]=""+labels[n][1:] - else: - labels[n]=""+labels[n]''' - '''for n in range(0,len(refLabels)): - refLabels[n]=""+refLabels[n]''' - parse = False - constraint = False - substitution = False - note = False - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - comToWrite = "" - secCount = -1 - newSec = False - for i in range(0, len(lines)): - line = lines[i] - - if "\\section" in line: - secCount += 1 - newSec = True - eqS = 0 - - if "\\begin{equation}" in line: - symLine = line.strip("\n") - eqS += 1 - constraint = False - substitution = False - note = False - comToWrite = "" - hCon = True - hSub = True - hNote = True - hProof = True - proof = False - parse = True - symbols = [] - eqCounter += 1 - wiki.write("drmf_bof\n") - label = labels[eqCounter] - wiki.write("\'\'\'" + secLabel(label) + "\'\'\'\n") - wiki.write("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") - if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS - wiki.write("
\n") - if newSec: - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") - else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") - # if eqS==sections[secCount][1]: - # wiki.write("
[["+secLabel(sections[(secCount+1)%len(sections)][0]).replace(" ","_")+"|"+secLabel(sections[(secCount+1)%len(sections)][0])+"]] >>
\n") - # else: - if True: - wiki.write( - "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", - "_") + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - wiki.write("
\n\n") - elif eqCounter == endNum: - wiki.write("
\n") - if newSec: - newSec = False - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") - else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") - wiki.write("
[[" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") - wiki.write("
\n\n") - - wiki.write("
{\displaystyle\n") - math = True - elif "\\end{equation}" in line: - wiki.write(comToWrite) - parse = False - math = False - if hProof: - wiki.write( - "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - - wiki.write("\n== Symbols List ==\n\n") - newSym = [] - # if "09.07:04" in label: - for x in symbols: - flagA = True - # if x not in newSym: - cN = 0 - cC = 0 - flag = True - ArgCx = 0 - for z in x: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgCx += 1 - noA = x[:cN] - for y in newSym: - cN = 0 - cC = 0 - ArgC = 0 - flag = True - for z in y: - if z.isalpha() and flag or z == "&": - cN += 1 - else: - flag = False - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - ArgC += 1 - - if y[:cN] == noA: # and ArgC==ArgCx: - flagA = False - break - if flagA: - newSym.append(x) - newSym.reverse() - symF = False - ampFlag = False - finSym = [] - for s in range(len(newSym) - 1, -1, -1): - symbolPar = "\\" + newSym[s] - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - for z in symbolPar: - if z == "@": - parFlag = True - elif z.isalpha() or z == "&": - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - - if symbolPar.find("{") != -1 or symbolPar.find("[") != -1: - if symbolPar.find("[") == -1: - symbol = symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{") == -1 or symbolPar.find("[") < symbolPar.find("{"): - symbol = symbolPar[0:symbolPar.find("[")] - else: - symbol = symbolPar[0:symbolPar.find("{")] - else: - symbol = symbolPar - numArg = parCx - numPar = ArgCx - gFlag = False - checkFlag = False - get = False - gCSV = csv.reader(open('new.Glossary.csv', 'rb'), delimiter=',', quotechar='\"') - preG = "" - if symbol == "\\&": - ampFlag = True - for S in gCSV: - G = S - ArgCx = 0 - parCx = 0 - parFlag = False - cC = 0 - ind = G[0].find("@") - if ind == -1: - ind = len(G[0]) - 1 - for z in G[0]: - if z == "@": - parFlag = True - elif z.isalpha(): - cN += 1 - else: - if z == "{" or z == "[": - cC += 1 - if z == "}" or z == "]": - cC -= 1 - if cC == 0: - if parFlag: - parCx += 1 - else: - ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][ - len(symbol)].isalpha()): # and (numPar!=0 or numArg!=0): - checkFlag = True - get = True - preG = S - - elif checkFlag: - get = True - checkFlag = False - - if (get): - if get: - G = preG - get = False - checkFlag = False - if True: - if symbolPar.find("@") != -1: - Q = symbolPar[:symbolPar.find("@")] - else: - Q = symbolPar - listArgs = [] - if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): - ap = "" - for o in range(len(symbol), len(Q)): - if Q[o] == "{" or z == "[": - argFlag = True - elif Q[o] == "}" or z == "]": - argFlag = False - listArgs.append(ap) - ap = "" - else: - ap += Q[o] - '''websiteU=g[g.find("http://"):].strip("\n") - k=0 - websites=[] - for r in range(0,len(websiteU)): - if websiteU[r]==",": - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - k=r - - - if websiteU[k:r].find("http://")!=-1: - websites.append(websiteU[k:r+1].strip(" ")) - websiteF="" - for d in websites: - websiteF=websiteF+" ["+d+" "+d+"]"''' - # websiteF=G[4].strip("\n") - websiteF = "" - web1 = G[5] - for t in range(5, len(G)): - if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" - - # p1=Q - # if Q.find("@")!=-1: - # p1=Q[:Q.find("@")] - p1 = G[4].strip("$") - p1 = "{\\displaystyle " + p1 + "}" - # if checkFlag: - new1 = "" - new2 = "" - pause = False - mathF = True - '''for k in range(0,len(p1)): - if p1[k]=="$": - if mathF: - new1+="{\\displaystyle " - else: - new1+="}" - mathF=not mathF - - elif p1[k]=="#" and p1[k+1].isdigit(): - pause=True - elif pause: - num=int(p1[k]) - #letter=chr(num+96) - letter=listArgs[num-1] - new1+=letter - pause=False - - else: - new1+=p1[k]''' - p2 = G[1] - for k in range(0, len(p2)): - if p2[k] == "$": - if mathF: - new2 += "{\\displaystyle " - else: - new2 += "}" - mathF = not mathF - else: - new2 += p2[k] - # p1=new1 - p2 = new2 - finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) - break - # gFlag=True - # if not symF: - # symF=True - # wiki.write("[") - # else: - # wiki.write("
\n") - # wiki.write("[") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(getEq(g[g.find("{$"):]).strip("\n").replace("\\\\","\\")) - # wiki.write("] : ") - # wiki.write(g[g.find(" {")+2:g.find("} ",g.find(" {")+1)]) - # wiki.write(" : [") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write(" ") - # wiki.write(g[g.find("http://"):].strip("\n")) - # wiki.write("] ")''' - - # preG=S - if not gFlag: - del newSym[s] - - gFlag = True - # finSym.reverse() - if ampFlag: - wiki.write("& : logical and") - gFlag = False - for y in finSym: - if y == "& : logical and": - pass - elif gFlag: - gFlag = False - wiki.write("[" + y) - else: - wiki.write("
\n[" + y) - - wiki.write("\n
\n") - - wiki.write("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? - r = unmodLabel(labels[eqCounter]) - q = r.find("KLS:") + 4 - p = r.find(":", q) - section = r[q:p] - equation = r[p + 1:] - if equation.find(":") != -1: - equation = equation[0:equation.find(":")] - - wiki.write( - "[http://homepage.tudelft.nl/11r49/askey/contents.html Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") # Where should it link to? - wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") - if eqCounter < endNum: - wiki.write("
\n") - if newSec: - newSec = False - wiki.write("
<< [[" + secLabel(sections[secCount][0]).replace(" ", - "_") + "|" + secLabel( - sections[secCount][0]) + "]]
\n") - else: - wiki.write("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", - "_") + "|" + secLabel( - labels[eqCounter - 1]) + "]]
\n") - wiki.write("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", - "_") + "#" + secLabel( - labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( - sections[secCount + 1][0]) + "]]
\n") - # if eqS==sections[secCount][1]: - # wiki.write("
[["+sections[(secCount+1)%len(sections)][0].replace(" ","_")+"|"+sections[(secCount+1)%len(sections)][0]+"]] >>
\n") - # else: - if True: - wiki.write( - "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", - "_") + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") - wiki.write("
\n\ndrmf_eof\n") - else: # FOR EXTRA EQUATIONS - wiki.write("
\n") - wiki.write("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ - endNum - 1] + "]]
\n") - wiki.write("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ - 8:] + "|formula in " + - labels[0] + "]]
\n") - wiki.write("
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ - 0 % endNum] + "]]
\n") - wiki.write("
\n\ndrmf_eof\n") - - - - elif "\\constraint" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hCon: - comToWrite = comToWrite + "\n== Constraint(s) ==\n\n" - hCon = False - constraint = True - math = False - conLine = "" - # wiki.write("
"+getEq(line)+"

\n") - elif "\\substitution" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hSub: - comToWrite = comToWrite + "\n== Substitution(s) ==\n\n" - hSub = False - # wiki.write("
"+getEq(line)+"

\n") - substitution = True - math = False - subLine = "" - elif "\\drmfname" in line and parse: - math = False - comToWrite = "\n== Name ==\n\n
" + get_data_str(line) + "

\n" + comToWrite - - elif "\\drmfnote" in line and parse: - symbols = symbols + getSym(line) - if hNote: - comToWrite = comToWrite + "\n== Note(s) ==\n\n" - hNote = False - note = True - math = False - noteLine = "" - - elif "\\proof" in line and parse: - # symbols=symbols+getSym(line) - symLine = line.strip("\n") - if hProof: - hProof = False - comToWrite = comToWrite + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or further clarification on the proof(s) in this space. \n

\n
" - proof = True - proofLine = "" - pause = False - pauseP = False - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = get_data_str(eqR) - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - - eInd = refLabels.index("" + rLab) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n{\displaystyle\n" + refEqs[ - eInd] + "}" + z + "
\n") - else: - if z == "}": - proofLine += ( - "
\n{\displaystyle\n" + refEqs[eInd] + "}
") - else: - proofLine += ( - "
\n{\displaystyle\n" + refEqs[eInd] + "}
\n") - - - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - # symLine+=line.strip("\n") - wiki.write(comToWrite + getEqP(proofLine, False) + "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - # wiki.write(line) - - elif proof: - symLine += line.strip("\n") - pauseP = False - # symbols=symbols+getSym(line) - for ind in range(0, len(line)): - if line[ind:ind + 7] == "\\eqref{": - pause = True - eqR = line[ind:line.find("}", ind) + 1] - rLab = get_data_str(eqR) - '''for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") - break''' - - eInd = refLabels.index("" + label) - z = line[line.find("}", ind + 7) + 1] - if z == "." or z == ",": - pauseP = True - proofLine += ("
\n{\displaystyle\n" + refEqs[ - eInd] + "}" + z + "
\n") - else: - proofLine += ( - "
\n{\displaystyle\n" + refEqs[eInd] + "}
\n") - - else: - if pause: - if line[ind] == "}": - pause = False - elif pauseP: - pauseP = False - elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: - pass - - else: - proofLine += (line[ind]) - if "\\end{equation}" in lines[i + 1]: - proof = False - # symLine+=line.strip("\n") - wiki.write(comToWrite + getEqP(proofLine, False).rstrip("\n") + "
\n
\n") - comToWrite = "" - symbols = symbols + getSym(symLine) - symLine = "" - - elif math: - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in lines[ - i + 1]: - wiki.write(line.rstrip("\n")) - symLine += line.strip("\n") - symbols = symbols + getSym(symLine) - symLine = "" - wiki.write("\n}
\n") - else: - symLine += line.strip("\n") - wiki.write(line) - if note and parse: - noteLine = noteLine + line - symbols = symbols + getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: - note = False - if "\\emph" in noteLine: - noteLine = noteLine[0:noteLine.find("\\emph{")] + "\'\'" + noteLine[noteLine.find("\\emph{") + len( - "\\emph{"):noteLine.find("}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ - noteLine.find( - "}", - noteLine.find( - "\\emph{") + len( - "\\emph{")) + 1:] - comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" - - if constraint and parse: - conLine = conLine + line.replace("&", "&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: - constraint = False - symbols = symbols + getSym(symLine) - symLine = "" - wiki.write(comToWrite + "
" + getEq(conLine) + "

\n") - comToWrite = "" - if substitution and parse: - subLine = subLine + line # .replace("&","&
") - - symLine += line.strip("\n") - # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: - substitution = False - symbols = symbols + getSym(symLine) - symLine = "" - lineR = "" - for i in range(0, len(subLine)): - if subLine[i] == "&" and not ( - i > subLine.find("\\begin{array}") and i < subLine.find("\\end{array}")): - lineR += "&
" - else: - lineR += subLine[i] - wiki.write(comToWrite + "
" + getEq(lineR) + "

\n") - comToWrite = "" - -if __name__ == "__main__": - main() diff --git a/tex2wiki/src/tex2wiki2.py b/tex2wiki/src/tex2wiki.py similarity index 98% rename from tex2wiki/src/tex2wiki2.py rename to tex2wiki/src/tex2wiki.py index 0173020..f5d31e2 100644 --- a/tex2wiki/src/tex2wiki2.py +++ b/tex2wiki/src/tex2wiki.py @@ -1,9 +1,9 @@ __author__ = "Joon Bang" __status__ = "Prototype" -INPUT_FILE = "tex2wiki/data/09outb.tex" -OUTPUT_FILE = "tex2wiki/data/09outb.mmd" -GLOSSARY_LOCATION = "tex2wiki/src/new.Glossary.csv" +INPUT_FILE = "tex2wiki/data/01outb.tex" +OUTPUT_FILE = "tex2wiki/data/01outb.mmd" +GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" METADATA_TYPES = ["substitution", "constraint"] METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} From 2c43edc30338fe2ee6817fb70e929ddaaa5b1cbe Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 18 Aug 2016 11:21:49 -0400 Subject: [PATCH 285/402] Fix QuantifiedCode & TravisCI issues --- .travis.yml | 2 +- tex2wiki/src/tex2wiki.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index d749bde..5106bef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage -v tex2Wiki DLMF_preprocessing maple2latex main_page eCF + nosetests --with-coverage -v DLMF_preprocessing maple2latex main_page eCF after_success: coveralls diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index f5d31e2..8aa4c5e 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -17,7 +17,7 @@ def __init__(self, label, equation, metadata): self.metadata = metadata -def generate_html(tag_name, text, options=dict(), spacing=2): +def generate_html(tag_name, text, options=None, spacing=2): # (str, str(, dict, bool)) -> str """ Generates an html tag, with optional html parameters. @@ -25,6 +25,9 @@ def generate_html(tag_name, text, options=dict(), spacing=2): When spacing = 1, the tag, text, and end tag are padded with spaces. When spacing = 2, the tag, text, and end tag are padded with newlines. """ + if options is None: + options = {} + option_text = [key + "=\"" + value + "\"" for key, value in options.iteritems()] result = "<" + tag_name + " " * (option_text != []) + ", ".join(option_text) + ">" @@ -38,10 +41,13 @@ def generate_html(tag_name, text, options=dict(), spacing=2): return result -def generate_math_html(text, options=dict(), spacing=True): +def generate_math_html(text, options=None, spacing=True): """ Special case of generate_html, where the tag is "math". """ + if options is None: + options = {} + option_text = [key + "=\"" + value + "\"" for key, value in options.iteritems()] result = "" From 932cf5a53d3d5f5efc811b68b4d454de488a5ffc Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 13:37:34 -0400 Subject: [PATCH 286/402] Minor Fixes --- KLSadd_insertion/src/updateChapters.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 2330aff..28775bc 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -42,10 +42,11 @@ def new_keywords(kls, kls_list): kls_list = extraneous_section_deleter(kls_list) kls_list.append("Limit Relation") - kls_list.append("Symmetry") for item in kls_list: if item not in kls_list_chap: kls_list_chap.append(item) + kls_list_chap[kls_list_chap.index("Special value")] = "Symmetry" + kls_list_chap.append("Special value") return kls_list_chap @@ -63,14 +64,14 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): hyper_headers_chap = [] hyper_subs_chap = [] - specialinput = 0 + special_input = 0 name_chap = word.lower() if name_chap == "orthogonality": - specialinput = 1 + special_input = 1 elif name_chap == "special value": - specialinput = 2 + special_input = 2 elif name_chap == "symmetry": - specialinput = 3 + special_input = 3 khyper_header_chap = [] k_hyper_sub_chap = [] @@ -84,8 +85,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) if temp.lower() == 'wilson': chapterstart = True - if specialinput in (0,2) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ - (specialinput in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart + if special_input in (0, 2) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ + (special_input in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): for item in klsaddparas: if index < item: @@ -132,10 +133,10 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): else: tempref = ref14_3 offset = sorter_check[sortloc][1] - if specialinput == 1: + if special_input == 1: offset = 8 - if specialinput in (2, 3): + if special_input in (2, 3): name_chap = 'hypergeometric representation' # Uses of numbers like 12, or 9 are for specific lengths of strings (like \\subsection{) where the @@ -150,7 +151,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): temp = line[9:line.find("}", 7)] if name_chap in line.lower(): - if specialinput in (0, 2, 3) or specialinput == 1 and "orthogonality relation" not in line: + if special_input in (0, 2, 3) or special_input == 1 and "orthogonality relation" not in line: hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in From 133e68ac7da82807b6df2139f446522dc02762dc Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 13:40:26 -0400 Subject: [PATCH 287/402] Travis Fixes --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f747800..f5826d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,6 @@ language: python install: - pip install coveralls script: - nosetests --with-coverage --with-isolation -v tex2Wiki DLMF_preprocessing maple2latex main_page eCF KLSadd_insertion + nosetests --with-coverage -v tex2Wiki DLMF_preprocessing maple2latex main_page eCF KLSadd_insertion after_success: coveralls From ec643666407acf083be369fe14212a8552671c4b Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 13:53:52 -0400 Subject: [PATCH 288/402] Unit Test Fixes --- KLSadd_insertion/src/updateChapters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 28775bc..43c2719 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -157,8 +157,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): if temp in khyper_header_chap: try: - chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" - chap[tempref[d + 1] - 1] += k_hyper_sub_chap[k_hyp_index_iii + offset] + chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" + \ + k_hyper_sub_chap[k_hyp_index_iii + offset] if chap9 == 1: sorter_check[sortloc][1] += 1 k_hyp_index_iii += 1 From d18fd5d28e50da6f1bc6069d189fe5fa31ca4684 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 13:58:36 -0400 Subject: [PATCH 289/402] Unit Test Fixes --- KLSadd_insertion/test/test_generic_functions.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index 887e9bc..fc6fa2f 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -10,7 +10,8 @@ class TestNewKeywords(TestCase): def test_new_keywords(self): - self.assertEquals(new_keywords(['\\subsubsection*{ThisIsATest}\n'],[]), ['ThisIsATest', 'Limit Relation', 'Symmetry']) + self.assertEquals(new_keywords(['\\subsubsection*{ThisIsATest}\n', '\\subsubsection*{Special value}\n'] + ,[]), ['ThisIsATest', 'Symmetry', 'Limit Relation', 'Special value']) class TestExtraneousSectionDeleter(TestCase): From b88d60d756174620487c396b795113071564060a Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 15:16:24 -0400 Subject: [PATCH 290/402] Add mostly finished latex_constraint_modifier, modify MathematicaToLaTeX.py and will modify tests for that --- eCF/.gitignore | 2 + eCF/src/LaTeXConstraintModifier.py | 46 ------- eCF/src/MathematicaToLaTeX.py | 22 ++-- eCF/src/latex_constraint_modifier.py | 172 +++++++++++++++++++++++++++ 4 files changed, 182 insertions(+), 60 deletions(-) delete mode 100644 eCF/src/LaTeXConstraintModifier.py create mode 100644 eCF/src/latex_constraint_modifier.py diff --git a/eCF/.gitignore b/eCF/.gitignore index 557d2b6..278d977 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -3,9 +3,11 @@ other/ data/Identities.* data/newIdentities.* +data/newIdentitiesnew.* data/IdentitiesTest.m data/References.txt data/ZE.3.* +data/ZE.3new.* data/ZE.4.* src/test.txt diff --git a/eCF/src/LaTeXConstraintModifier.py b/eCF/src/LaTeXConstraintModifier.py deleted file mode 100644 index cd24e01..0000000 --- a/eCF/src/LaTeXConstraintModifier.py +++ /dev/null @@ -1,46 +0,0 @@ - -__author__ = 'Kevin Chen' -__status__ = 'Development' - -import os -import argparse - -parser = argparse.ArgumentParser( - description='Receive .tex file with constraints and convert' - ' them to lines using flushright and flushright.') -parser.add_argument('PATHR', type=str, - help='path of input .tex file, with the current' - ' directory as the starting point',) -parser.add_argument('PATHW', type=str, - help='path of file to be outputted to, with the current' - ' directory as the starting point') -args = parser.parse_args() - -PATHR = args.PATHR -PATHW = args.PATHW -DIR_NAME = os.path.dirname(os.path.realpath(__file__)) + '/../data/' - - -def combine_percent(lines): - # (list) -> list - """ - Description - - :param lines: - :return: - """ - - pass - - -def main(): - # - """ - - :return: - """ - pass - - -if __name__ == '__main__': - main() diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/MathematicaToLaTeX.py index 322fdb8..ea9ece7 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/MathematicaToLaTeX.py @@ -858,7 +858,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'Identities.m', test=False): + pathr=DIR_NAME + 'Identities.m'): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into @@ -884,7 +884,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', '\\usepackage{DRMFfcns}\n' '\\usepackage{DLMFfcns}\n' '\\usepackage{graphicx}\n' - '\\usepackage[paperwidth=20in, paperheight=20in, ' + '\\usepackage[paperwidth=15in, paperheight=20in, ' 'margin=0.5in]{geometry}\n\n' '\\begin{document}\n\n\n') @@ -893,12 +893,9 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', # If line is a comment, make it a LaTeX comment or "\tag" if '(*' in line and '*)' in line: - if test: - line = line.replace('(*', '%').replace('*)', '%') - else: - line = ('\\begin{equation*} \\tag{' + - line[4:-3].replace('"', '') + '}') - + mtt = line[4:-3].replace('"', '') + #print(mtt) + line = ('\\begin{equation}') latex.write(line + '\n') else: @@ -932,13 +929,10 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', line = replace_operators(line) line = replace_vars(line) - print(line) - - if test and line != '': - line = '\\begin{equation*}\n' + line - if line != '': - line += '\n\\end{equation*}' + print(mtt) + line += '\n% \\mathematicatag{$\\tt{' + mtt + '}$}' + line += '\n\\end{equation}' latex.write(line + '\n') diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py new file mode 100644 index 0000000..ec3ee1d --- /dev/null +++ b/eCF/src/latex_constraint_modifier.py @@ -0,0 +1,172 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +import argparse + +parser = argparse.ArgumentParser( + description='Receive .tex file with constraints and convert' + ' them viewable metadata.') +parser.add_argument('PATHR', type=str, + help='path of input .tex file, with the current' + ' directory as the starting point',) +parser.add_argument('PATHW', type=str, + help='path of file to be outputted to, with the current' + ' directory as the starting point') + +args = parser.parse_args() +PATHR = args.PATHR +PATHW = args.PATHW + +CONVERSIONS = {'\\constraint': '{\\bf C}:~', + '\\substitution': '{\\bf S}:~', + '\\drmfnote': '{\\bf NOTE}:~', + '\\drmfname': '{\\bf NAME}:~', + '\\proof': '{\\bf PROOF}:~', + '\\mathematicatag': '{\\bf MtT}:~', + '\\mapletag': '{\\bf MpT}:~'} + + +def find_surrounding(line, function): + # (str, str(, tuple, int)) -> tuple + """ + Finds the indices of the beginning and end of a function; this is the main + function that powers the converter. + + :param line: line with functions that are going to be searched + :param function: the function you're trying to find the surrounding + brackets for + :returns: positions of opening and ending brackets + """ + positions = [0, 0] + positions[0] = line.find(function) + + # Finds the start and end of a function + count = 0 + for j in range(positions[0] + len(function), len(line) + 1): + + if line[j] in list('([{'): + count += 1 + if line[j] in list(')]}'): + count -= 1 + if count == 0: + if j == positions[0] + len(function): + positions[0] = positions[1] + else: + positions[1] = j + 1 + break + + return positions[0], positions[1] + + +def combine_percent(lines): + # (list) -> list + """ + Combines + + :param lines: + :return: + """ + index = 0 + while index < len(lines): + if len(lines[index]) >= 3 and lines[index][:3] == '% ' and \ + index > lines.index('\\begin{document}'): + if len(lines[index + 1]) != '' and lines[index + 1][0] == '%': + print(lines[index]) + add = lines.pop(index + 1) + lines[index] += '\n' + add.replace('%', ' ') + else: + lines[index], lines[index + 1] = lines[index + 1], lines[index] + index += 2 + else: + index += 1 + + return lines + + +def replace(line): + # (str) -> str + """ + Replaces constraints with viewable metadata. + + :param line: line to be converted + :returns: converted line + """ + for word in CONVERSIONS: + for _ in range(line.count(word)): + pos = find_surrounding(line, word) + if pos[0] != pos[1]: + arg = line[pos[0] + len(word) + 1:pos[1] - 1]\ + .replace('\n', '').replace(' &', ' &') + arg = ('\\\\[0.2cm]\n ' + CONVERSIONS[word])\ + .join(arg.split('&')) + + if (max([line.find(item) for item in CONVERSIONS]) > pos[1] or + max([line.find(CONVERSIONS[item]) for + item in CONVERSIONS]) > pos[1]): + line = line[:pos[0]] + CONVERSIONS[word] + arg + \ + ' \\\\[0.2cm]' + line[pos[1]:] + else: + line = line[:pos[0]] + CONVERSIONS[word] + arg + \ + line[pos[1]:] + + return line + + +def dollarsign(line): + # (str) -> str + """ + Description. + + :param line: line to be converted + :returns: converted line + """ + count = [] + for index in range(len(line) - 1, 0, -1): + if line[index] == '$': + count.insert(0, index) + if len(count) == 2: + # Checks to see if there is already a "displaystyle", so it doesn't + # add a second useless one. + if line[count[0]:count[0] + 15] == '${\\displaystyle': + pass + else: + begin = count[0] + end = count[1] + line = line[:begin] + '${\\displaystyle ' + \ + line[begin + 1: end] + '}' + line[end:] + count = [] + + return line + + +def main(): + # (None) -> None + """ + Main function that reads data and calls other functions to process data. + + :return: None + """ + with open(PATHR, 'r') as b: + before = b.read().split('\n') + + print(before) + + before = combine_percent(before) + + print(before) + + with open(PATHW, 'w') as after: + for line in before: + if len(line) >= 3 and line[:3] == '% ' and \ + before.index(line) > before.index('\\begin{document}'): + line = replace(line) + line = dollarsign(line) + line = '\\begin{flushright}\n' + line.replace('%', ' ') + \ + '\n\\end{flushright}' + + after.write(line + '\n') + + +if __name__ == '__main__': + main() From 53925547696e919a3e008ace409312bbcdc77d39 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 15:27:05 -0400 Subject: [PATCH 291/402] Reference Formatter and Unit Tests --- KLSadd_insertion/src/updateChapters.py | 47 +++++++++++++++++++ .../test/test_generic_functions.py | 22 ++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 43c2719..1cc1545 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -14,6 +14,51 @@ w, h = 2, 1000 sorter_check = [[0 for _ in range(w)] for __ in range(h)] +def reference_formatter(kls): + """ + This function formats all in addendum references in order to distinguish them from non-addendum references + :param kls: + :return: + """ + for item in kls: + ref_count = item.count('\eqref{') + if ref_count == 1: + kls[kls.index(item)] = item[:item.find('\eqref{')+7] + "KLSadd: " + item[item.find('\eqref{')+7:] + elif ref_count == 2: + subitem = item[:item.find('\eqref{')+7] + "KLSadd: " + item[item.find('\eqref{')+7:item.find('\eqref{')+10] + subitem2 = item[len(subitem)-8:] + subitem2b = subitem2[:subitem2.find('\eqref{')+7] + "KLSadd: " + subitem2[subitem2.find('\eqref{')+7:] + kls[kls.index(item)] = subitem + subitem2b + elif ref_count == 3: + subitem = item[:item.find('\eqref{') + 7] + "KLSadd: " + item[item.find('\eqref{') + 7:item.find('\eqref{') + 10] + subitem2 = item[len(subitem) - 8:] + subitem2b = subitem2[:subitem2.find('\eqref{') + 7] + "KLSadd: " + subitem2[subitem2.find('\eqref{') + 7:subitem2.find('\eqref{') + 10] + subitem3 = item[len(subitem)+len(subitem2b) - 16:] + subitem3b = subitem3[:subitem3.find('\eqref{') + 7] + "KLSadd: " + subitem3[subitem3.find('\eqref{') + 7:] + kls[kls.index(item)] = subitem + subitem2b + subitem3b + elif ref_count == 4: + subitem = item[:item.find('\eqref{') + 7] + "KLSadd: " + item[item.find('\eqref{') + 7:item.find('\eqref{') + 10] + subitem2 = item[len(subitem) - 8:] + subitem2b = subitem2[:subitem2.find('\eqref{') + 7] + "KLSadd: " + subitem2[subitem2.find('\eqref{') + 7:subitem2.find('\eqref{') + 10] + subitem3 = item[len(subitem) + len(subitem2b) - 16:] + subitem3b = subitem3[:subitem3.find('\eqref{') + 7] + "KLSadd: " + subitem3[subitem3.find('\eqref{') + 7:subitem3.find('\eqref{') + 10] + subitem4 = item[len(subitem) + len(subitem2b) +len(subitem3b) - 24:] + subitem4b = subitem4[:subitem4.find('\eqref{') + 7] + "KLSadd: " + subitem4[subitem4.find('\eqref{') + 7:] + kls[kls.index(item)] = subitem + subitem2b + subitem3b + subitem4b + elif ref_count == 5: + subitem = item[:item.find('\eqref{') + 7] + "KLSadd: " + item[item.find('\eqref{') + 7:item.find('\eqref{') + 10] + subitem2 = item[len(subitem) - 8:] + subitem2b = subitem2[:subitem2.find('\eqref{') + 7] + "KLSadd: " + subitem2[subitem2.find('\eqref{') + 7:subitem2.find('\eqref{') + 10] + subitem3 = item[len(subitem) + len(subitem2b) - 16:] + subitem3b = subitem3[:subitem3.find('\eqref{') + 7] + "KLSadd: " + subitem3[subitem3.find('\eqref{') + 7:subitem3.find('\eqref{') + 10] + subitem4 = item[len(subitem) + len(subitem2b) + len(subitem3b) - 24:] + subitem4b = subitem4[:subitem4.find('\eqref{') + 7] + "KLSadd: " + subitem4[subitem4.find('\eqref{') + 7:subitem4.find('\eqref{') + 10] + subitem5 = item[len(subitem) + len(subitem2b) + len(subitem3b) + len(subitem4b) - 32:] + subitem5b = subitem5[:subitem5.find('\eqref{') + 7] + "KLSadd: " + subitem5[subitem5.find('\eqref{') + 7:] + kls[kls.index(item)] = subitem + subitem2b + subitem3b + subitem4b + subitem5b + + return kls + def extraneous_section_deleter(list): """ @@ -557,6 +602,8 @@ def main(): # call the findReferences method to find the index of the References paragraph in the two file strings # two variables for the references lists one for chapter 9 one for chapter 14 + addendum = reference_formatter(addendum) + chapticker = 0 references9 = find_references(entire9, chapticker, math_people) chapticker += 1 diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index fc6fa2f..df5a5d6 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -6,6 +6,7 @@ from updateChapters import new_keywords from updateChapters import extraneous_section_deleter from updateChapters import cut_words +from updateChapters import reference_formatter class TestNewKeywords(TestCase): @@ -27,4 +28,23 @@ def test_cut_words(self): self.assertEquals(cut_words('MoreWords','WordsAndSomeMoreWords'), 'WordsAndSome') self.assertEquals(cut_words('SupposedToFail', 'WordsAndSomeMoreWords'), 'WordsAndSomeMoreWords') self.assertEquals(cut_words('StuffFromAddenum', '''\\paragraph{\\large\\bf KLSadd: TestCase}StuffFromAddenum\\begin{equation}\\end{equation}'''), - '''\\begin{equation}\\end{equation}''') \ No newline at end of file + '''\\begin{equation}\\end{equation}''') + +class TestReferenceFormatter(TestCase): + + def test_reference_formatter(self): + self.assertEquals(reference_formatter(['by \eqref{1337}, This should work', 'WordsThatMightBeFoundInTheChapter']) + , ['by \eqref{KLSadd: 1337}, This should work', + 'WordsThatMightBeFoundInTheChapter']) + self.assertEquals(reference_formatter(['by \eqref{1337} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) + , ['by \eqref{KLSadd: 1337} and \eqref{KLSadd: 360} This should work', + 'WordsThatMightBeFoundInTheChapter']) + self.assertEquals(reference_formatter(['by \eqref{1337}, \eqref{720} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) + , ['by \eqref{KLSadd: 1337}, \eqref{KLSadd: 720} and \eqref{KLSadd: 360} This should work', + 'WordsThatMightBeFoundInTheChapter']) + self.assertEquals(reference_formatter(['by \eqref{1337}, \eqref{720}, \eqref{500} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) + , ['by \eqref{KLSadd: 1337}, \eqref{KLSadd: 720}, \eqref{KLSadd: 500} and \eqref{KLSadd: 360} This should work', + 'WordsThatMightBeFoundInTheChapter']) + self.assertEquals(reference_formatter(['by \eqref{1337}, \eqref{720}, \eqref{500}, \eqref{404} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) + , ['by \eqref{KLSadd: 1337}, \eqref{KLSadd: 720}, \eqref{KLSadd: 500}, \eqref{KLSadd: 404} and \eqref{KLSadd: 360} This should work', + 'WordsThatMightBeFoundInTheChapter']) \ No newline at end of file From 5d0b063eedc7285915539feeacf9711a33bba3ae Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 15:38:58 -0400 Subject: [PATCH 292/402] Rename MathematicaToLaTeX to mathematica_to_latex --- eCF/.gitignore | 1 + ...ticaToLaTeX.py => mathematica_to_latex.py} | 6 +-- eCF/test/data/test.tex | 8 ++-- eCF/test/test_arg_split.py | 2 +- eCF/test/test_carat.py | 2 +- eCF/test/test_constraint.py | 2 +- eCF/test/test_convert_fraction.py | 2 +- eCF/test/test_find_surrounding.py | 2 +- eCF/test/test_main.py | 43 +++---------------- eCF/test/test_master_function.py | 4 +- eCF/test/test_piecewise.py | 2 +- eCF/test/test_removal_functions.py | 6 +-- eCF/test/test_replace_operators.py | 4 +- eCF/test/test_replace_vars.py | 2 +- eCF/test/test_search.py | 2 +- .../test_single_macro_conversion_functions.py | 20 ++++----- 16 files changed, 40 insertions(+), 68 deletions(-) rename eCF/src/{MathematicaToLaTeX.py => mathematica_to_latex.py} (99%) diff --git a/eCF/.gitignore b/eCF/.gitignore index 278d977..b5ffbf6 100644 --- a/eCF/.gitignore +++ b/eCF/.gitignore @@ -9,6 +9,7 @@ data/References.txt data/ZE.3.* data/ZE.3new.* data/ZE.4.* +data/questions.txt src/test.txt src/Glossary.csv diff --git a/eCF/src/MathematicaToLaTeX.py b/eCF/src/mathematica_to_latex.py similarity index 99% rename from eCF/src/MathematicaToLaTeX.py rename to eCF/src/mathematica_to_latex.py index ea9ece7..7e4fc2e 100644 --- a/eCF/src/MathematicaToLaTeX.py +++ b/eCF/src/mathematica_to_latex.py @@ -799,6 +799,7 @@ def replace_operators(line): :returns: converted line """ line = line.replace('==', '=') + line = line.replace('!=', ' \\ne ') line = line.replace('||', ' \\lor ') line = line.replace('>=', ' \\geq ') line = line.replace('<=', ' \\leq ') @@ -831,8 +832,7 @@ def replace_operators(line): line = line.replace('Catalan', '\\CatalansConstant') line = line.replace('GoldenRatio', '\\GoldenRatio') line = line.replace('Pi', '\\pi') - line = line.replace('CalculateData`Private`nu', - '\\text{CalculateData`Private`nu}') + line = line.replace('CalculateData`Private`nu', '\\nu') return line @@ -858,7 +858,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'Identities.m'): + pathr=DIR_NAME + 'IdentitiesTest.m'): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index c6c4f9e..a315ca9 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -10,15 +10,15 @@ \usepackage{DRMFfcns} \usepackage{DLMFfcns} \usepackage{graphicx} -\usepackage[paperwidth=20in, paperheight=20in, margin=0.5in]{geometry} +\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} \begin{document} -% {"description", number}% -\begin{equation*} +\begin{equation} equation -\end{equation*} +% \mathematicatag{$\tt{description, number}$} +\end{equation} \end{document} diff --git a/eCF/test/test_arg_split.py b/eCF/test/test_arg_split.py index 51b704f..44946a8 100644 --- a/eCF/test/test_arg_split.py +++ b/eCF/test/test_arg_split.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import arg_split +from mathematica_to_latex import arg_split class TestArgumentSplit(TestCase): diff --git a/eCF/test/test_carat.py b/eCF/test/test_carat.py index 9c4092a..f7c6b9f 100644 --- a/eCF/test/test_carat.py +++ b/eCF/test/test_carat.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import carat +from mathematica_to_latex import carat class TestCarat(TestCase): diff --git a/eCF/test/test_constraint.py b/eCF/test/test_constraint.py index c881a08..0f469f5 100644 --- a/eCF/test/test_constraint.py +++ b/eCF/test/test_constraint.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import constraint +from mathematica_to_latex import constraint class TestConstraint(TestCase): diff --git a/eCF/test/test_convert_fraction.py b/eCF/test/test_convert_fraction.py index 7ab59d6..2fe9dd5 100644 --- a/eCF/test/test_convert_fraction.py +++ b/eCF/test/test_convert_fraction.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import convert_fraction +from mathematica_to_latex import convert_fraction class TestConvertFraction(TestCase): diff --git a/eCF/test/test_find_surrounding.py b/eCF/test/test_find_surrounding.py index 5cbb908..af509f3 100644 --- a/eCF/test/test_find_surrounding.py +++ b/eCF/test/test_find_surrounding.py @@ -3,6 +3,6 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import find_surrounding +from mathematica_to_latex import find_surrounding diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 0945eea..9e1c70e 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import main +from mathematica_to_latex import main import os @@ -13,8 +13,8 @@ class TestMain(TestCase): - def test_test(self): - main(pathw=PATHW, pathr=PATHR, test=True) + def test_gen(self): + main(pathw=PATHW, pathr=PATHR) with open(PATHW, 'r') as l: latex = l.read() self.assertEqual( @@ -30,44 +30,15 @@ def test_test(self): '\\usepackage{DRMFfcns}\n' '\\usepackage{DLMFfcns}\n' '\\usepackage{graphicx}\n' - '\\usepackage[paperwidth=20in, paperheight=20in, margin=0.5in]{geometry}\n' + '\\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry}\n' '\n' '\\begin{document}\n' '\n' '\n' - '% {"description", number}%\n' - '\\begin{equation*}\n' + '\\begin{equation}\n' 'equation\n' - '\\end{equation*}\n' - '\n' - '\n' - '\\end{document}\n')) - - def test_nottest(self): - main(pathw=PATHW, pathr=PATHR, test=False) - with open(PATHW, 'r') as l: - latex = l.read() - self.assertEqual( - latex, ('\n' - '\\documentclass{article}\n' - '\n' - '\\usepackage{amsmath}\n' - '\\usepackage{amsthm}\n' - '\\usepackage{amssymb}\n' - '\\usepackage{amsfonts}\n' - '\\usepackage{breqn}\n' - '\\usepackage{DLMFmath}\n' - '\\usepackage{DRMFfcns}\n' - '\\usepackage{DLMFfcns}\n' - '\\usepackage{graphicx}\n' - '\\usepackage[paperwidth=20in, paperheight=20in, margin=0.5in]{geometry}\n' - '\n' - '\\begin{document}\n' - '\n' - '\n' - '\\begin{equation*} \\tag{description, number}\n' - 'equation\n' - '\\end{equation*}\n' + '% \\mathematicatag{$\\tt{description, number}$}\n' + '\\end{equation}\n' '\n' '\n' '\\end{document}\n')) diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index 73a6312..cde731d 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -4,8 +4,8 @@ import os from unittest import TestCase -from MathematicaToLaTeX import master_function -from MathematicaToLaTeX import arg_split +from mathematica_to_latex import master_function +from mathematica_to_latex import arg_split with open(os.path.dirname(os.path.realpath(__file__)) + '/../data/functions') as functions: diff --git a/eCF/test/test_piecewise.py b/eCF/test/test_piecewise.py index 7ee6298..2a01df9 100644 --- a/eCF/test/test_piecewise.py +++ b/eCF/test/test_piecewise.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import piecewise +from mathematica_to_latex import piecewise class TestPiecewise(TestCase): diff --git a/eCF/test/test_removal_functions.py b/eCF/test/test_removal_functions.py index eefbd21..7af5f7b 100644 --- a/eCF/test/test_removal_functions.py +++ b/eCF/test/test_removal_functions.py @@ -3,9 +3,9 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import remove_inactive -from MathematicaToLaTeX import remove_conditionalexpression -from MathematicaToLaTeX import remove_symbol +from mathematica_to_latex import remove_inactive +from mathematica_to_latex import remove_conditionalexpression +from mathematica_to_latex import remove_symbol BEFORE1 = ('Inactive[test]', diff --git a/eCF/test/test_replace_operators.py b/eCF/test/test_replace_operators.py index d8eaf3e..ff6041e 100644 --- a/eCF/test/test_replace_operators.py +++ b/eCF/test/test_replace_operators.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import replace_operators +from mathematica_to_latex import replace_operators class TestReplaceOperators(TestCase): @@ -32,7 +32,7 @@ def test_constants(self): self.assertEqual(replace_operators('Catalan'), '\\CatalansConstant') self.assertEqual(replace_operators('GoldenRatio'), '\\GoldenRatio') self.assertEqual(replace_operators('Pi'), '\\pi') - self.assertEqual(replace_operators('CalculateData`Private`nu'), '\\text{CalculateData`Private`nu}') + self.assertEqual(replace_operators('CalculateData`Private`nu'), '\\nu') def test_with_percent(self): self.assertEqual(replace_operators('(%('), '\\left( %(') diff --git a/eCF/test/test_replace_vars.py b/eCF/test/test_replace_vars.py index 5f4adb7..68c796b 100644 --- a/eCF/test/test_replace_vars.py +++ b/eCF/test/test_replace_vars.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import replace_vars +from mathematica_to_latex import replace_vars SYMBOLS = { 'Alpha': 'alpha', 'Beta': 'beta', 'Gamma': 'gamma', 'Delta': 'delta', diff --git a/eCF/test/test_search.py b/eCF/test/test_search.py index 83c2f7b..cfd50e5 100644 --- a/eCF/test/test_search.py +++ b/eCF/test/test_search.py @@ -3,7 +3,7 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import search +from mathematica_to_latex import search class TestSearch(TestCase): diff --git a/eCF/test/test_single_macro_conversion_functions.py b/eCF/test/test_single_macro_conversion_functions.py index c204d0a..0c05961 100644 --- a/eCF/test/test_single_macro_conversion_functions.py +++ b/eCF/test/test_single_macro_conversion_functions.py @@ -3,16 +3,16 @@ __status__ = 'Development' from unittest import TestCase -from MathematicaToLaTeX import beta -from MathematicaToLaTeX import cfk -from MathematicaToLaTeX import gamma -from MathematicaToLaTeX import integrate -from MathematicaToLaTeX import legendrep -from MathematicaToLaTeX import legendreq -from MathematicaToLaTeX import polyeulergamma -from MathematicaToLaTeX import product -from MathematicaToLaTeX import qpochhammer -from MathematicaToLaTeX import summation +from mathematica_to_latex import beta +from mathematica_to_latex import cfk +from mathematica_to_latex import gamma +from mathematica_to_latex import integrate +from mathematica_to_latex import legendrep +from mathematica_to_latex import legendreq +from mathematica_to_latex import polyeulergamma +from mathematica_to_latex import product +from mathematica_to_latex import qpochhammer +from mathematica_to_latex import summation class TestBeta(TestCase): From 4aa3469de4fcbf34ee4cd68c8617a08c0c114833 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 15:42:52 -0400 Subject: [PATCH 293/402] Add documentation to latex_constraint_modifier.py --- eCF/src/latex_constraint_modifier.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index ec3ee1d..0ff1945 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -62,10 +62,11 @@ def find_surrounding(line, function): def combine_percent(lines): # (list) -> list """ - Combines + Combines terms with constraints (ones with percent signs) so that replacing + is easier. - :param lines: - :return: + :param lines: list of all lines + :return: same list, but groups of constraint terms are combined """ index = 0 while index < len(lines): @@ -116,7 +117,7 @@ def replace(line): def dollarsign(line): # (str) -> str """ - Description. + Changes "$ $" to "${\\displaystyle }$". :param line: line to be converted :returns: converted line From 959a713102220992e948e4d8f35e5e1bcf6b6e1d Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 15:47:18 -0400 Subject: [PATCH 294/402] Remove useless print statements --- eCF/src/latex_constraint_modifier.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index 0ff1945..c8c8604 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -151,12 +151,8 @@ def main(): with open(PATHR, 'r') as b: before = b.read().split('\n') - print(before) - before = combine_percent(before) - print(before) - with open(PATHW, 'w') as after: for line in before: if len(line) >= 3 and line[:3] == '% ' and \ From 901e820b7aaa4a7f55ab85bf952f86706e2dbb66 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 15:51:00 -0400 Subject: [PATCH 295/402] Modify docstrings --- eCF/src/latex_constraint_modifier.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index c8c8604..b3b090d 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -28,7 +28,7 @@ def find_surrounding(line, function): - # (str, str(, tuple, int)) -> tuple + # (str, str) -> tuple """ Finds the indices of the beginning and end of a function; this is the main function that powers the converter. From e4aa55ec56ca4648e5ec207dac56e36fcd3e831c Mon Sep 17 00:00:00 2001 From: Kevin Chen Date: Thu, 18 Aug 2016 16:05:29 -0400 Subject: [PATCH 296/402] Fix typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4039241..98ef0ef 100644 --- a/README.md +++ b/README.md @@ -52,4 +52,4 @@ TODO in updateChapters.py: FINISHED- implemented smart fix for "hypergeometric representation" paragraphs. Now the content in these paragraphs are appended directly from the KLS section into the chapter's hypergeometric representation paragraphs Needs to be done: --implemenent the same smart fix for "Limit relations" paragraphs. Current code for this implementation does not work and has spotty logic that does not encompass all variations of limit relations paragraphs (such as the one subsubsection in chapter 9) +-implement the same smart fix for "Limit relations" paragraphs. Current code for this implementation does not work and has spotty logic that does not encompass all variations of limit relations paragraphs (such as the one subsubsection in chapter 9) From ea6b8bcf42188683ae60afa197d078d59e0b808e Mon Sep 17 00:00:00 2001 From: Kevin Chen Date: Thu, 18 Aug 2016 16:07:57 -0400 Subject: [PATCH 297/402] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 98ef0ef..095c02d 100644 --- a/README.md +++ b/README.md @@ -43,11 +43,11 @@ This Python code (mostly developed by Kevin Chen) translates Mathematica files t The project is currently awaiting approval to be merged into the main branch of the repository. ## KLSadd Insertion Project -linetest.py and updateChapters.py written by Rahul Shah and Edward Bian +`linetest.py` and `updateChapters.py` written by Rahul Shah and Edward Bian -Edits the DRMF chapter files to include the relevant KLS addendum additions. Additions are (currently) only being added right before the "References" paragraphs in each section. The linetest.py file is the first working model of the code, but it is very messy and esoteric. Comments have been made to aid interpretation. The new project file, updateChapters.py is a more readable version. +Edits the DRMF chapter files to include the relevant KLS addendum additions. Additions are (currently) only being added right before the "References" paragraphs in each section. The `linetest.py` file is the first working model of the code, but it is very messy and esoteric. Comments have been made to aid interpretation. The new project file, `updateChapters.py` is a more readable version. -TODO in updateChapters.py: +TODO in `updateChapters.py`: FINISHED- implemented smart fix for "hypergeometric representation" paragraphs. Now the content in these paragraphs are appended directly from the KLS section into the chapter's hypergeometric representation paragraphs From 9cf71af72361289d70165bb09707cf85de77789e Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:15:26 -0400 Subject: [PATCH 298/402] Add test case for replace_operators function --- eCF/src/mathematica_to_latex.py | 2 +- eCF/test/test_replace_operators.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 7e4fc2e..184db3f 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -858,7 +858,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'IdentitiesTest.m'): + pathr=DIR_NAME + 'Identities.m'): # ((str, str, bool)) -> None """ Opens Mathematica file with identities and puts converted lines into diff --git a/eCF/test/test_replace_operators.py b/eCF/test/test_replace_operators.py index ff6041e..d129ce2 100644 --- a/eCF/test/test_replace_operators.py +++ b/eCF/test/test_replace_operators.py @@ -10,6 +10,7 @@ class TestReplaceOperators(TestCase): def test_without_percent(self): self.assertEqual(replace_operators('=='), ' = ') + self.assertEqual(replace_operators('!='), ' \\ne ') self.assertEqual(replace_operators('||'), ' \\lor ') self.assertEqual(replace_operators('>='), ' \\geq ') self.assertEqual(replace_operators('<='), ' \\leq ') From f9ab318c5605d487f6e9b986ea2b3f15c4ddc1ec Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:17:30 -0400 Subject: [PATCH 299/402] Modify docstring --- eCF/src/mathematica_to_latex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 184db3f..b5e1a58 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -859,7 +859,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', pathr=DIR_NAME + 'Identities.m'): - # ((str, str, bool)) -> None + # ((str, str)) -> None """ Opens Mathematica file with identities and puts converted lines into newIdentities.tex. From 783c90ae5ad9735a26f44bbacc8dcf0e9095253a Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:17:46 -0400 Subject: [PATCH 300/402] Modify comments --- eCF/src/mathematica_to_latex.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index b5e1a58..9345289 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -891,10 +891,8 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', for line in mathematica: line = line.replace('\n', '') - # If line is a comment, make it a LaTeX comment or "\tag" if '(*' in line and '*)' in line: mtt = line[4:-3].replace('"', '') - #print(mtt) line = ('\\begin{equation}') latex.write(line + '\n') else: From f1e82ff81f0f87a8f4501ed70323a78d8e573207 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:18:02 -0400 Subject: [PATCH 301/402] Remove redundant parentheses --- eCF/src/mathematica_to_latex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 9345289..873cf52 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -893,7 +893,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', if '(*' in line and '*)' in line: mtt = line[4:-3].replace('"', '') - line = ('\\begin{equation}') + line = '\\begin{equation}' latex.write(line + '\n') else: From 4e29fccab44309dff91b70f394a15ee74be6ec25 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:18:47 -0400 Subject: [PATCH 302/402] Remove useless print statement, add useful print statement --- eCF/src/mathematica_to_latex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 873cf52..72d4a1d 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -928,10 +928,10 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', line = replace_vars(line) if line != '': - print(mtt) line += '\n% \\mathematicatag{$\\tt{' + mtt + '}$}' line += '\n\\end{equation}' + print line latex.write(line + '\n') latex.write('\n\n\\end{document}\n') From 4f8a4b9a82bb564f2958b8e1d4e2e6977f7575c5 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:24:44 -0400 Subject: [PATCH 303/402] Remove useless newline --- eCF/src/mathematica_to_latex.py | 1 - 1 file changed, 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 72d4a1d..1b74b6f 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -896,7 +896,6 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', line = '\\begin{equation}' latex.write(line + '\n') else: - line = line.replace(' ', '') line = remove_inactive(line) From 7fabc1272ae990f98d57bc366fbc8e71f18925f2 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:26:21 -0400 Subject: [PATCH 304/402] Add metadata conversion case --- eCF/src/latex_constraint_modifier.py | 1 + 1 file changed, 1 insertion(+) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index b3b090d..21f0097 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -24,6 +24,7 @@ '\\drmfname': '{\\bf NAME}:~', '\\proof': '{\\bf PROOF}:~', '\\mathematicatag': '{\\bf MtT}:~', + '\\mathematicareference': '{\\bf MtR}:~', '\\mapletag': '{\\bf MpT}:~'} From a5c9d6bcb2090deeda2e43c0332b76a748b0c34a Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:28:18 -0400 Subject: [PATCH 305/402] Fix line length formatting --- eCF/src/latex_constraint_modifier.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index 21f0097..0319c98 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -157,7 +157,8 @@ def main(): with open(PATHW, 'w') as after: for line in before: if len(line) >= 3 and line[:3] == '% ' and \ - before.index(line) > before.index('\\begin{document}'): + before.index(line) > \ + before.index('\\begin{document}'): line = replace(line) line = dollarsign(line) line = '\\begin{flushright}\n' + line.replace('%', ' ') + \ From 3097f9a374ab40045f4d28a0ce0afcc50501afd6 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Thu, 18 Aug 2016 16:28:42 -0400 Subject: [PATCH 306/402] Fix line length formatting --- eCF/src/latex_constraint_modifier.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index 0319c98..adac470 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -128,8 +128,8 @@ def dollarsign(line): if line[index] == '$': count.insert(0, index) if len(count) == 2: - # Checks to see if there is already a "displaystyle", so it doesn't - # add a second useless one. + # This checks to see if there is already a "displaystyle", so it + # doesn't add a second useless one. if line[count[0]:count[0] + 15] == '${\\displaystyle': pass else: From 5c255b39fd85894b0c5f5ea60dfaa2fedbb5649f Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 18 Aug 2016 16:39:11 -0400 Subject: [PATCH 307/402] Small Fixes and updates --- KLSadd_insertion/src/updateChapters.py | 48 +------------------ .../test/test_generic_functions.py | 20 +------- 2 files changed, 3 insertions(+), 65 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 1cc1545..727183f 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -14,51 +14,6 @@ w, h = 2, 1000 sorter_check = [[0 for _ in range(w)] for __ in range(h)] -def reference_formatter(kls): - """ - This function formats all in addendum references in order to distinguish them from non-addendum references - :param kls: - :return: - """ - for item in kls: - ref_count = item.count('\eqref{') - if ref_count == 1: - kls[kls.index(item)] = item[:item.find('\eqref{')+7] + "KLSadd: " + item[item.find('\eqref{')+7:] - elif ref_count == 2: - subitem = item[:item.find('\eqref{')+7] + "KLSadd: " + item[item.find('\eqref{')+7:item.find('\eqref{')+10] - subitem2 = item[len(subitem)-8:] - subitem2b = subitem2[:subitem2.find('\eqref{')+7] + "KLSadd: " + subitem2[subitem2.find('\eqref{')+7:] - kls[kls.index(item)] = subitem + subitem2b - elif ref_count == 3: - subitem = item[:item.find('\eqref{') + 7] + "KLSadd: " + item[item.find('\eqref{') + 7:item.find('\eqref{') + 10] - subitem2 = item[len(subitem) - 8:] - subitem2b = subitem2[:subitem2.find('\eqref{') + 7] + "KLSadd: " + subitem2[subitem2.find('\eqref{') + 7:subitem2.find('\eqref{') + 10] - subitem3 = item[len(subitem)+len(subitem2b) - 16:] - subitem3b = subitem3[:subitem3.find('\eqref{') + 7] + "KLSadd: " + subitem3[subitem3.find('\eqref{') + 7:] - kls[kls.index(item)] = subitem + subitem2b + subitem3b - elif ref_count == 4: - subitem = item[:item.find('\eqref{') + 7] + "KLSadd: " + item[item.find('\eqref{') + 7:item.find('\eqref{') + 10] - subitem2 = item[len(subitem) - 8:] - subitem2b = subitem2[:subitem2.find('\eqref{') + 7] + "KLSadd: " + subitem2[subitem2.find('\eqref{') + 7:subitem2.find('\eqref{') + 10] - subitem3 = item[len(subitem) + len(subitem2b) - 16:] - subitem3b = subitem3[:subitem3.find('\eqref{') + 7] + "KLSadd: " + subitem3[subitem3.find('\eqref{') + 7:subitem3.find('\eqref{') + 10] - subitem4 = item[len(subitem) + len(subitem2b) +len(subitem3b) - 24:] - subitem4b = subitem4[:subitem4.find('\eqref{') + 7] + "KLSadd: " + subitem4[subitem4.find('\eqref{') + 7:] - kls[kls.index(item)] = subitem + subitem2b + subitem3b + subitem4b - elif ref_count == 5: - subitem = item[:item.find('\eqref{') + 7] + "KLSadd: " + item[item.find('\eqref{') + 7:item.find('\eqref{') + 10] - subitem2 = item[len(subitem) - 8:] - subitem2b = subitem2[:subitem2.find('\eqref{') + 7] + "KLSadd: " + subitem2[subitem2.find('\eqref{') + 7:subitem2.find('\eqref{') + 10] - subitem3 = item[len(subitem) + len(subitem2b) - 16:] - subitem3b = subitem3[:subitem3.find('\eqref{') + 7] + "KLSadd: " + subitem3[subitem3.find('\eqref{') + 7:subitem3.find('\eqref{') + 10] - subitem4 = item[len(subitem) + len(subitem2b) + len(subitem3b) - 24:] - subitem4b = subitem4[:subitem4.find('\eqref{') + 7] + "KLSadd: " + subitem4[subitem4.find('\eqref{') + 7:subitem4.find('\eqref{') + 10] - subitem5 = item[len(subitem) + len(subitem2b) + len(subitem3b) + len(subitem4b) - 32:] - subitem5b = subitem5[:subitem5.find('\eqref{') + 7] + "KLSadd: " + subitem5[subitem5.find('\eqref{') + 7:] - kls[kls.index(item)] = subitem + subitem2b + subitem3b + subitem4b + subitem5b - - return kls - def extraneous_section_deleter(list): """ @@ -602,7 +557,8 @@ def main(): # call the findReferences method to find the index of the References paragraph in the two file strings # two variables for the references lists one for chapter 9 one for chapter 14 - addendum = reference_formatter(addendum) + for item in addendum: + addendum[addendum.index(item)] = item.replace("\\eqref{", "\\eqref{KLSadd: ") chapticker = 0 references9 = find_references(entire9, chapticker, math_people) diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index df5a5d6..7aa85f9 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -6,7 +6,6 @@ from updateChapters import new_keywords from updateChapters import extraneous_section_deleter from updateChapters import cut_words -from updateChapters import reference_formatter class TestNewKeywords(TestCase): @@ -30,21 +29,4 @@ def test_cut_words(self): self.assertEquals(cut_words('StuffFromAddenum', '''\\paragraph{\\large\\bf KLSadd: TestCase}StuffFromAddenum\\begin{equation}\\end{equation}'''), '''\\begin{equation}\\end{equation}''') -class TestReferenceFormatter(TestCase): - - def test_reference_formatter(self): - self.assertEquals(reference_formatter(['by \eqref{1337}, This should work', 'WordsThatMightBeFoundInTheChapter']) - , ['by \eqref{KLSadd: 1337}, This should work', - 'WordsThatMightBeFoundInTheChapter']) - self.assertEquals(reference_formatter(['by \eqref{1337} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) - , ['by \eqref{KLSadd: 1337} and \eqref{KLSadd: 360} This should work', - 'WordsThatMightBeFoundInTheChapter']) - self.assertEquals(reference_formatter(['by \eqref{1337}, \eqref{720} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) - , ['by \eqref{KLSadd: 1337}, \eqref{KLSadd: 720} and \eqref{KLSadd: 360} This should work', - 'WordsThatMightBeFoundInTheChapter']) - self.assertEquals(reference_formatter(['by \eqref{1337}, \eqref{720}, \eqref{500} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) - , ['by \eqref{KLSadd: 1337}, \eqref{KLSadd: 720}, \eqref{KLSadd: 500} and \eqref{KLSadd: 360} This should work', - 'WordsThatMightBeFoundInTheChapter']) - self.assertEquals(reference_formatter(['by \eqref{1337}, \eqref{720}, \eqref{500}, \eqref{404} and \eqref{360} This should work', 'WordsThatMightBeFoundInTheChapter']) - , ['by \eqref{KLSadd: 1337}, \eqref{KLSadd: 720}, \eqref{KLSadd: 500}, \eqref{KLSadd: 404} and \eqref{KLSadd: 360} This should work', - 'WordsThatMightBeFoundInTheChapter']) \ No newline at end of file + From dd8ff82e55513ac43fd982f46c3cec779baa4a92 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 19 Aug 2016 10:41:23 -0400 Subject: [PATCH 308/402] README updates --- KLSadd_insertion/test/test_chap1_placer.py | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 KLSadd_insertion/test/test_chap1_placer.py diff --git a/KLSadd_insertion/test/test_chap1_placer.py b/KLSadd_insertion/test/test_chap1_placer.py new file mode 100644 index 0000000..b65437f --- /dev/null +++ b/KLSadd_insertion/test/test_chap1_placer.py @@ -0,0 +1,60 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import find_references + +class TestFindReferences(TestCase): + + def test_find_references(self): + self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) + self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) + self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.2 Racah#']), [13]) + self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.2 Racah#']), [13]) + self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' + 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' + , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' + , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 1, ['9.2 Racah#']), []) \ No newline at end of file From d6fecffb90b3f0dd93e6a374b562d1acf6a7154d Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 19 Aug 2016 10:46:53 -0400 Subject: [PATCH 309/402] README updates and More Functionality --- KLSadd_insertion/src/updateChapters.py | 39 ++++++++++++++ KLSadd_insertion/test/test_chap1_placer.py | 62 ++++------------------ 2 files changed, 48 insertions(+), 53 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 727183f..17ddcd2 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -15,6 +15,36 @@ sorter_check = [[0 for _ in range(w)] for __ in range(h)] +def chap1placer(chap1, kls, klsaddparas): + chapterstart = True + index = 0 + kls_sub_chap1 = [] + kls_header_chap1 = [] + for item in kls: + index += 1 + line = str(item) + if "\\subsection" in line: + temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) + print temp + if 'wilson' in temp.lower(): + chapterstart = False + print("ding") + if chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line): + for item in klsaddparas: + if index < item: + klsloc = klsaddparas.index(item) + break + t = ''.join(kls[index-1: klsaddparas[klsloc]]) + kls_sub_chap1.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + kls_header_chap1.append(temp) # append the name of subsection + break + intro_to_add = ''.join(kls_sub_chap1) + chap1 = chap1[:len(chap1)-1] + chap1 = ''.join(chap1) + total_chap1 = chap1 + "\\paragraph{\\large\\bf KLS Addendum: Generalities}" + intro_to_add + "\\end{document}" + return total_chap1 + + def extraneous_section_deleter(list): """ Removes sections that are irrelevant and will slow or confuse the program @@ -547,6 +577,14 @@ def main(): # as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section # parse both files 9 and 14 as strings + with open(DATA_DIR + "chap01.tex", "r") as ch1: + entire1 = ch1.readlines() # reads in as a list of strings + + chap1placer(entire1, addendum, klsaddparas) + + with open(DATA_DIR + "updated1.tex", "w") as temp1: + temp1.write(chap1placer(entire1, addendum, klsaddparas)) + # chapter 9 with open(DATA_DIR + "chap09.tex", "r") as ch9: entire9 = ch9.readlines() # reads in as a list of strings @@ -588,6 +626,7 @@ def main(): with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) print math_people + print klsaddparas if __name__ == '__main__': main() \ No newline at end of file diff --git a/KLSadd_insertion/test/test_chap1_placer.py b/KLSadd_insertion/test/test_chap1_placer.py index b65437f..0cde1ab 100644 --- a/KLSadd_insertion/test/test_chap1_placer.py +++ b/KLSadd_insertion/test/test_chap1_placer.py @@ -3,58 +3,14 @@ __status__ = 'Development' from unittest import TestCase -from updateChapters import find_references +from updateChapters import chap1placer -class TestFindReferences(TestCase): - def test_find_references(self): - self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', - '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', - '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' - , 'with $N$ a nonnegative integer.', '\subsection*{References}', - '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) - self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', - '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', - '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' - , 'with $N$ a nonnegative integer.', '\subsection*{References}', - '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) - self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', - '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', - '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' - , 'with $N$ a nonnegative integer.', '\subsection*{References}', - '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.2 Racah#']), [13]) - self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', - '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', - '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' - , 'with $N$ a nonnegative integer.', '\subsection*{References}', - '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.2 Racah#']), [13]) - self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', - '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', - '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' - , 'with $N$ a nonnegative integer.', '\subsection*{References}', - '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.2 Racah#']), []) \ No newline at end of file +class TestChap1Placer(TestCase): + + def test_chap1_placer(self): + self.assertEquals(chap1placer(['WordsAndSomeMoreWords','SampleEquation', '\\end{document}'] + , ['\\subsection*{Generalities}', '\\paragraph{MathFunction}', 'MathEquations', 'WordsAndStuff', + '\\subsection*{9.1 Wilson}', '\\paragraph{Symmetry}', 'WordsAndStuff'], [0,1,4,5]) + , 'WordsAndSomeMoreWordsSampleEquation\\paragraph{\\large\\bf KLS Addendum: Generalities}\\paragraph{MathFunction}MathEquationsWordsAndStuff\\end{document}') + From f97ab8f28073d799bc308a0d71fcec664780a45d Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 19 Aug 2016 10:53:40 -0400 Subject: [PATCH 310/402] More Functionality --- KLSadd_insertion/src/updateChapters.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 17ddcd2..43fb71f 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -25,10 +25,6 @@ def chap1placer(chap1, kls, klsaddparas): line = str(item) if "\\subsection" in line: temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) - print temp - if 'wilson' in temp.lower(): - chapterstart = False - print("ding") if chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line): for item in klsaddparas: if index < item: From 22504c8a92cf73468b039b438c419b1f974590ca Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 19 Aug 2016 11:15:26 -0400 Subject: [PATCH 311/402] README --- KLSadd_insertion/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index 9b6f635..104f5d4 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -1,8 +1,8 @@ ##KLS Addendum Insertion Project -This project uses python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to +This project uses Python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to ``` -python updateChapters.py +Python updateChapters.py ``` The program must have a tempchap9.tex and a tempchap14.tex as well as the KLSadd.tex file in the same directory! The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. @@ -62,7 +62,6 @@ So in the chapter 9 file, section 15 "Dogs", before the References subsection, w \paragraph{\large\bf Beagles} ``` --- -**It is important to note that these changes are currently (3/25/16) unimplemented in updateChapters.py and only exist in linetest.py, if you want to see how the output to updateChapters.py should look, look at newtempchap09.tex** So after updateChapters.py is called, the chapter 9 file should look like this: @@ -108,7 +107,7 @@ The methods: -fixChapter(chap, references, p, kls): takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. -At this point, the code is like 90% comments. The big chunk at the bottom under the "with open..." can be explained through the comments. + As a quick rundown: @@ -118,6 +117,6 @@ Then the strings are written into seperate updated chapter files. --- -However, its broken. Inserted text comes in random places between paragraphs and sometimes stuff isn't added. This shouldn't be that hard to fix but it will require combing through the code a lot of times and changing little things here and there until everything works. As a last ditch effort, we can always resort to using linetext.py and adding stuff in from there. +At this point in time updateChapters.py is mostly functional (there are still a few areas that do not work correctly). Currently, unit tests and additional functions are being added. From 438050bc8ce417c9fb08dfff1e7b5cf637904682 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 19 Aug 2016 16:19:35 -0400 Subject: [PATCH 312/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 3 +- .../test/test_reference_placer.py | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 KLSadd_insertion/test/test_reference_placer.py diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 43fb71f..880b375 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -403,6 +403,7 @@ def reference_placer(chap, references, p, chapticker2): count += 1 else: count += 1 + return chap # method to change file string(actually a list right now), returns string to be written to file @@ -622,7 +623,7 @@ def main(): with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) print math_people - print klsaddparas + print paras if __name__ == '__main__': main() \ No newline at end of file diff --git a/KLSadd_insertion/test/test_reference_placer.py b/KLSadd_insertion/test/test_reference_placer.py new file mode 100644 index 0000000..dd92a6d --- /dev/null +++ b/KLSadd_insertion/test/test_reference_placer.py @@ -0,0 +1,52 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import reference_placer + + +class TestReferencePlacer(TestCase): + + def test_reference_placer(self): + self.assertEquals(reference_placer(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.', '\\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'],[9], + ['\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have'], + 0), ['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.%Begin KLSadd additions\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLSadd additions', '\\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}']) + + self.assertEquals(reference_placer(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.', '\\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], [9], + ['\\subsection*{14.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have'], + 1), ['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.%Begin KLSadd additions\\subsection*{14.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLSadd additions', '\\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}']) + + self.assertEquals(reference_placer(['\\section{Racah}\\index{Racah polynomials}', + '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', + '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.', '\\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], [9], + ['MiscWords', '\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have'], + 0), ['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.%Begin KLSadd additions\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLSadd additions', '\\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}']) \ No newline at end of file From b6e7e1470828ed8647af7f25c2235af447e5ab49 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Mon, 22 Aug 2016 11:32:32 -0400 Subject: [PATCH 313/402] Fix \\iunit stuff --- DLMF_preprocessing/src/math_function.py | 71 +++++---- DLMF_preprocessing/src/remove_excess.py | 172 ++++++++++------------ DLMF_preprocessing/src/replace_special.py | 4 +- 3 files changed, 121 insertions(+), 126 deletions(-) diff --git a/DLMF_preprocessing/src/math_function.py b/DLMF_preprocessing/src/math_function.py index 79b198e..6a248ae 100644 --- a/DLMF_preprocessing/src/math_function.py +++ b/DLMF_preprocessing/src/math_function.py @@ -6,35 +6,42 @@ def math_string(in_file): # Takes input file or string and returns list of strings when in math mode try: # test if file or string - string = open(in_file).read() + math_str = open(in_file).read() except: - string = in_file + math_str = in_file output = [] - ranges = math_mode.find_math_ranges(string) + ranges = math_mode.find_math_ranges(math_str) for i in ranges: - new = string[i[0]:i[1]] + new = math_str[i[0]:i[1]] output.append(new) return output -def change_original(o_file, changed_math_string): +def change_original(o_file, changed_math_string_list): # Places changed string from math mode back into place in the original function try: o_string = open(o_file).read() except: o_string = o_file - ranges = math_mode.find_math_ranges(o_string) + math_ranges = math_mode.find_math_ranges(o_string) num = 0 edited = o_string - for i in ranges: - edited = string.replace(edited, o_string[i[0]:i[1]], changed_math_string[num]) + # print math_ranges + for i in math_ranges[::-1]: + edited = edited[:i[0]] + changed_math_string_list[::-1][num] + edited[i[1]:] + # edited = edited.replace(o_string[i[0]:i[1]], changed_math_string_list[num]) + # print edited num += 1 + # re check NM.2new.tex isn't changing all of the i chars to \iunit + + check = open('whatevs.txt', 'w') + check.write(edited) + check.close() return edited def formatting(file_str): # Proper spacing for the indexes and gets rid of all non begin{eq end{eq text - commands = r'\\[a-zA-Z]+' updated = [] @@ -48,70 +55,82 @@ def formatting(file_str): in_eq = False been_in_eq = False - section = r'\\[a-zA-Z]*section' re.compile(commands) re.compile(section) past_last = 0 - for line in lines: - past_last += len(line) + unnecessary = ['\\begin{align', '\\end{align', '\\index', '\\paragraph', '\\eqref'] + + for lnum, line in enumerate(lines): + + lnum += 1 + + not_added = not any([element in line for element in unnecessary]) + past_last += len(line) + 1 # + 1 to compensate for \n if '\\begin{equation}' in line: + # Make a blank line between equations + if '\\end{equation}' in updated[-1]: + updated.append('') in_eq = True been_in_eq = True if '\\end{equation}' in line: - updated.append(line) + updated.append(line.lstrip()) in_eq = False continue if in_eq: - updated.append(line) + if line != '': + updated.append(line.lstrip()) else: # not been in eq if not been_in_eq: # if text line != command - if re.match(commands, line): - if '\\paragraph' not in line and '\\index' not in line: + if re.match(commands, line.lstrip()): + if not_added: updated.append(line) + elif line == '': + updated.append(line) else: # not in eq but already been in eq - if re.match(section,line) or line == '': + if re.match(section, line.lstrip()) or line == '': updated.append(line) - if past_last > ranges[-1][1]: + if past_last >= ranges[-1][1]: # In section after last eq - if re.match(commands,line) or line == '': - if '\\paragraph' not in line: + if re.match(commands, line.lstrip()) or line == '': + if not_added: updated.append(line) # if this line is an index start storing it,or write it if we're done with the indexes if '\\index{' in line: in_ind = True ind_str += line + "\n" - continue + # if next line also index, continue storing + if '\\index{' in lines[lnum]: + continue - elif in_ind: + if in_ind: in_ind = False # add a preceding newline if one is not already present - if previous.strip() != "": + if previous.strip() != '': ind_str = "\n" + ind_str fullsplit = ind_str.split("\n") updated.extend(fullsplit) ind_str = "" - previous = line + wrote = "\n".join(updated) # remove consecutive blank lines and blank lines between \index groups spaces_pat = re.compile(r'\n{2,}[ ]?\n+') wrote = spaces_pat.sub('\n\n', wrote) - wrote = re.sub(r'\\index{(.*?)}\n\n\\index{(.*?)}', r'\\index{\1}\n\\index{\2}', wrote) + wrote = re.sub(r'\\index{(.*?)}\n{2,}(?=\\index{(.*?)})', r'\\index{\1}\n', wrote) return wrote - diff --git a/DLMF_preprocessing/src/remove_excess.py b/DLMF_preprocessing/src/remove_excess.py index 02740e9..13c5e6e 100644 --- a/DLMF_preprocessing/src/remove_excess.py +++ b/DLMF_preprocessing/src/remove_excess.py @@ -1,18 +1,13 @@ -""" -This program begins with an unprocessed LaTeX file and removes parts that are -unnecessary for the DLMF. -""" - -__author__ = "Alex Danoff" -__status__ = "Development" +"""This program begins with an unprocessed LaTeX file and removes parts that are unnecessary for the DLMF.""" import re import sys import parentheses -from utilities import writeout, readin, get_line_lengths, find_line +from utilities import (writeout, readin, get_line_lengths, + find_line) -EQ_START = r'\begin{equation}' +EQ_START = r'\\begin{equation}' EQ_END = r'\end{equation}' CASES_START = r'\begin{cases}' @@ -21,7 +16,7 @@ EQMIX_START = r'\begin{equationmix}' EQMIX_END = r'\end{equationmix}' -STD_REGEX = r'.*?###open_(\d+)###.*?###close_\1###' +STD_REGEX = r'.*?###open_(\d+)###.*?###close_0###' def main(): @@ -85,6 +80,18 @@ def remove_excess(content): """Removes the excess pieces from the given content and returns the updated version as a string. :param content: """ + start_eq = re.compile(EQ_START) + end_eq = re.compile(EQ_END) + starts = [m.end() for m in start_eq.finditer(content)] + ends = [m.start() for m in end_eq.finditer(content)] + print 'starts', starts + print 'ends', ends + if len(starts) != len(ends): + print 'UNEVEN DISTRIBUTION OF BEGIN END EQ' + sys.exit(-1) + + for i in enumerate(start): + print 'i', i oldest = content @@ -96,12 +103,8 @@ def remove_excess(content): pattern = re.compile(r'\\acknowledgements{.*?}\n\n', re.DOTALL) content = re.sub(pattern, r'', content) content = re.sub(r'\\maketitle', r' ', content) - content = re.sub( - r'\\bibliography{\.\./bib/DLMF}', - r'\\bibliographystyle{plain}' + - "\n" + - r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', - content) + content = re.sub(r'\\bibliography{\.\./bib/DLMF}', + r'\\bibliographystyle{plain}' + "\n" + r'\\bibliography{/home/hcohl/DRMF/DLMF/DLMF.bib}', content) content = re.sub(r'\\acknowledgements{.*?}', r' ', content) content = re.sub(r'\{math}', r'{equation}', content) content = re.sub(r'\\galleryitem{.*?}{.*?}', r' ', content) @@ -121,58 +124,41 @@ def remove_excess(content): content = re.sub(r'\\author\[.*?\]{.*?}', r' ', content) # modify labels, etc - content = re.sub( - r'\\begin\{equation\}\[.*?\]+', - r'\\begin{equation}', - content, - re.DOTALL) + content = re.sub(r'\\begin\{equation\}\[.*?\]+', r'\\begin{equation}', content, re.DOTALL) print(len(old) - len(content)) old = content - # remove from something to the start of the next section/part/etc - content = remove_section( - r'\\section{Special Notation}', - r'\\part', - content) - content = remove_section( - r'\\part{Computation}', - r'\\bibliographystyle{plain}', - content) - content = remove_section( - r'\\part{References}', - r'\\bibliographystyle{plain}', - content) + + content = remove_section(r'\\section{Special Notation}', r'\\part', content) + content = remove_section(r'\\part{Computation}', r'\\bibliographystyle{plain}', content) + content = remove_section(r'\\part{References}', r'\\bibliographystyle{plain}', content) content = remove_section(r'\\section{Graphics}', r'\\section', content) content = remove_section(r'\\section{Graphics}', r'\\section', content) - content = remove_section( - r'\\subsection{Graphics}', - r'\\subsection', - content) + content = remove_section(r'\\subsection{Graphics}', r'\\subsection', content) content = remove_section(r'\\section{Integrals}', r'\\section', content) - content = remove_section( - r'\\subsection{Integrals}', - r'\\subsection', - content) - content = remove_section( - r'\\section{Physical Applications}', - r'\\bibliographystyle{plain}', - content) + content = remove_section(r'\\subsection{Integrals}', r'\\subsection', content) + content = remove_section(r'\\section{Physical Applications}', r'\\bibliographystyle{plain}', content) print(len(old) - len(content)) to_join = [] - + in_eq = False # takes out comment lines first for line in content.split("\n"): - # if line only consists of % replace with nothing, otherwise don't add - # back + if EQ_START in line: + in_eq = True + if EQ_END in line: + in_eq = False + + # if line only consists of % replace with nothing, otherwise don't add back if line.lstrip().startswith("%"): if line.rstrip().endswith("%"): line = "" else: - continue + if not in_eq: + continue to_join.append(line) @@ -188,21 +174,24 @@ def remove_excess(content): content = remove_begin_end("table", content) content = remove_begin_end("table", content) + content = remove_begin_end("%", content) content = remove_begin_end("sidebar", content) content = parentheses.remove(content, curly=True) + + to_remove = [ r'\\citet', r'\\lxDeclare\[.*?\]', r'\\note', r'\\origref', r'\\lxRefDeclaration', - r'\\MarkDefn.*?###open_(\d+)###.*?###close_\1###', + r'\\MarkDefn', r'\\indexdefn', - r'\\MarkNotation.*?###open_(\d+)###.*?###close_\1###', - r'\\affiliation', + r'\\MarkNotation', + r'\\affiliation.*?###open_(\d+)###.*?###close_0###', ] lengths = get_line_lengths(content) @@ -210,68 +199,70 @@ def remove_excess(content): # go through each group and remove it for name in to_remove: - str_regex = name + STD_REGEX + # for each improper name, put it in ###open### and ###closes### + str_regex = name # + STD_REGEX not really necessary to add STD_REGEX, edit if wrong -oksana pattern = re.compile(str_regex, re.DOTALL) + lines = content.split("\n") # go through every match, finding start and end for match in pattern.finditer(content): + + # for each match of compiled improper name in file + start = find_line(match.start(), lengths) end = find_line(match.end(), lengths) # print("{0}: {1} - {2}".format(group, start, end)) - skip_lines.update(range(start, end + 1)) - # define items that cannot be at the beginning of any line or be - # contined in any line - illegal_starts = [ - r'\documentclass{DLMF}', - r'\thischapter', - r'\part{Notation}', - r'\begin{equationgroup', - r'\end{equationgroup', - r'\begin{onecolumn', - r'\end{onecolumn'] + # define items that cannot be at the beginning of any line or be contined in any line + illegal_starts = [r'\documentclass{DLMF}', r'\thischapter', r'\part{Notation}', r'\begin{equationgroup', + r'\end{equationgroup', r'\begin{onecolumn', r'\end{onecolumn'] illegal_elements = [r'TwoToOneRule', r'OneToTwoRule', r'\citet'] lines = content.split("\n") - # various flags that will be useful when going through the lines - in_eq = False + # various flags that will be useful when going through the lines, in_eq above for comment control in_const = False in_cases = False eqmix_label = "" const_str = "" - # remove trailing % and whitespace and add to updated - also remove lines - # that should be skipped + + + # remove trailing % and whitespace and add to updated - also remove lines that should be skipped for lnum, line in enumerate(lines): lnum += 1 # don't add line back if it should be skipped + + if lnum in skip_lines: + + # print lnum, line continue + # replaces long ###open and close phrases with curly brackets line = parentheses.insert(line, curly=True) - line_checks = [line.lstrip().startswith(start) for start in illegal_starts] + \ - [element in line for element in illegal_elements] + line_checks = [line.lstrip().startswith(start) for start in illegal_starts] + [element in line for element in + illegal_elements] # skip current line if it starts with or contains an illegal element if any(line_checks): + continue + # no more ugly % characters after cleaned cleaned = line.rstrip().rstrip("%").rstrip() - # line marks the start of an equationmix, set the flag and remove the - # line + # line marks the start of an equationmix, set the flag and remove the line if EQMIX_START in cleaned: eqmix_label = cleaned[cleaned.index(r'\label'):] continue - # line marks the end of an equationmix, set the flag and remove the - # line + # line marks the end of an equationmix, set the flag and remove the line if EQMIX_END in cleaned: eqmix_label = "" continue @@ -298,9 +289,9 @@ def remove_excess(content): if CASES_END in cleaned: in_cases = False - # remove commas, periods, colons, and semi-colons from the end of - # equations + # remove commas, periods, colons, and semi-colons from the end of equations if in_eq and not in_const: + to_strip = ":;," # don't take off trailing commas when in a cases block @@ -317,8 +308,7 @@ def remove_excess(content): # we're done with the constraint, make substitutions if cleaned.rstrip().rstrip(".,").endswith("}"): - const_str = re.sub( - r'\$[;,](\s*(?:\$|or))', r'$ &\1', const_str) + const_str = re.sub(r'\$[;,](\s*(?:\$|or))', r'$ &\1', const_str) in_const = False # constraint ends with two }, put one on next line @@ -371,27 +361,15 @@ def remove_excess(content): # returns the preamble as a list of it's lines def _get_preamble(): - preamble = [ - '\\documentclass{article}', - '\\usepackage{amsmath}', - '\\usepackage{amsfonts}', - '\\usepackage{DLMFbreqn}', - '\\usepackage{DLMFmath}', - '\\usepackage{DRMFfcns}', - '', - '\\oddsidemargin -0.7cm', - '\\textwidth 18.3cm', - '\\textheight 26.0cm', - '\\topmargin -2.0cm', - '', - '% \constraint{', - '% \substitution{', - '% \drmfnote{', - '% \drmfname{', - ''] + preamble = ['\\documentclass{article}', '\\usepackage{amsmath}', '\\usepackage{amsfonts}', + '\\usepackage{breqn}', + '\\usepackage{DLMFmath}', '\\usepackage{DRMFfcns}', '', '\\oddsidemargin -0.7cm', '\\textwidth 18.3cm', + '\\textheight 26.0cm', '\\topmargin -2.0cm', '', '% \constraint{', '% \substitution{', + '% \drmfnote{', '% \drmfname{', ''] return preamble if __name__ == "__main__": main() + diff --git a/DLMF_preprocessing/src/replace_special.py b/DLMF_preprocessing/src/replace_special.py index 070584a..c001215 100644 --- a/DLMF_preprocessing/src/replace_special.py +++ b/DLMF_preprocessing/src/replace_special.py @@ -77,8 +77,6 @@ def remove_special(content): "proof": [r'\proof{', False] } - should_replace = False - in_ind = False in_eq = True pi_pat = re.compile(r'(\s*)\\pi(\s*\b|[aeiou])') @@ -176,7 +174,7 @@ def remove_special(content): content[counter] = function counter += 1 - return "\n".join(content) + return content # replaces "i"s as necessary in words def _replace_i(words): From 1039231737eb5911a0febf6ba4ee98208e5cfc57 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 22 Aug 2016 14:27:45 -0400 Subject: [PATCH 314/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 69 ++++++++----------- KLSadd_insertion/test/test_fix_chapter.py | 8 --- .../test/test_fix_chapter_sort.py | 36 ++++++++++ 3 files changed, 63 insertions(+), 50 deletions(-) delete mode 100644 KLSadd_insertion/test/test_fix_chapter.py create mode 100644 KLSadd_insertion/test/test_fix_chapter_sort.py diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 880b375..bafe41f 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -8,8 +8,6 @@ DATA_DIR = os.path.dirname(os.path.realpath(__file__)) + "/../data/" # holds all subsections in each chapter section along with the what holds -ref9_3 = [] -ref14_3 = [] w, h = 2, 1000 sorter_check = [[0 for _ in range(w)] for __ in range(h)] @@ -76,7 +74,7 @@ def new_keywords(kls, kls_list): return kls_list_chap -def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): +def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref): """ This function sorts through the input files and identifies and places sections from the addendum after their respective subsections in the chapter. @@ -134,6 +132,9 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): if khyper_header_chap[item] == khyper_header_chap[item+1]: k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: " + \ word + "}\n" + k_hyper_sub_chap[item + 1] + print khyper_header_chap[item] + print "ding" + print k_hyper_sub_chap[item + 1] khyper_header_chap[item] = "memes" k_hyper_sub_chap[item] = "memes" else: @@ -153,11 +154,9 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): chap9 = 0 if sorter_check[sortloc][0] == 0: - tempref = ref9_3 sorter_check[sortloc][0] += 1 chap9 = 1 else: - tempref = ref14_3 offset = sorter_check[sortloc][1] if special_input == 1: offset = 8 @@ -199,7 +198,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2): # print hyper_headers_chap # print word sortmatch_2.append(k_hyper_sub_chap) - + return chap def cut_words(word_to_find, word_to_search_in): """ @@ -305,6 +304,8 @@ def find_references(chapter, chapticker, math_people): :param chapticker: Which chapter is being searched (9 or 14). :return: List of references. """ + ref9_3 = [] + ref14_3 = [] references = [] index = -1 # chaptercheck designates which chapter is being searched for references @@ -363,7 +364,7 @@ def find_references(chapter, chapticker, math_people): if bqlegendrecheck > 0: pass - return references + return references, ref9_3, ref14_3 def reference_placer(chap, references, p, chapticker2): @@ -408,7 +409,7 @@ def reference_placer(chap, references, p, chapticker2): # method to change file string(actually a list right now), returns string to be written to file # If you write a method that changes something, it is preffered that you call the method in here -def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2): +def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, tempref): """ Removes specific lines stopping the latex file from converting into python, as well as running the functions responsible for sorting sections and placing the correct additions in the correct places @@ -425,7 +426,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha sort_location = 0 for i in kls_list_all: - fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2) + fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2, tempref) sort_location += 1 for a in range(len(paragraphs_to_be_added)-1): @@ -434,33 +435,12 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha with open(DATA_DIR + "compare.tex", "a") as spook: spook.write(paragraphs_to_be_added[a]) spook.write("NEXT: ") - # i = 0 - # while i < len(c) - 1: - # if c[i:i + 1] == '\n': - # c = c[:i] + c[i + 1:] - # else: - # i += 1 - # i = 0 - # shortened_paras = paragraphs_to_be_added[a] - # while i < len(shortened_paras) - 1: - # if shortened_paras[i:i + 1] == '\n': - # shortened_paras = shortened_paras[:i] + shortened_paras[i + 1:] - # else: - # i += 1 - # paragraphs_to_be_added[a] = shortened_paras if "%" == c[-2]: c = c[:-3] #print "memes" #print c elif "%" == c[-1]: c = c[:-2] - #print "extramemes" - #print c - # if "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in c and \ - # "Formula (9.8.15) was first obtained by Brafman \myciteKLS{109}." in p[a]: - # print "MEMESBEGIN"*20 - # print c - # print "MEMESEND"*24 paragraphs_to_be_added[a] = cut_words(c, paragraphs_to_be_added[a]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) @@ -523,6 +503,9 @@ def main(): kls_list_all = new_keywords(addendum, kls_list_full) # Makes sections look like other sections + for item in addendum: + addendum[addendum.index(item)] = item.replace("\\eqref{","\\eqref{KLSadd: ") + for word in addendum: if "paragraph{" in word: lenword = len(word) - 1 @@ -537,6 +520,7 @@ def main(): # Designates sections that need stuff added # get the index + startindex = 9999 for word in addendum: index += 1 if "." in word and "\\subsection*{" in word: @@ -548,12 +532,15 @@ def main(): chap_nums.append(14) name = word[word.find("{") + 1: word.find("}")] math_people.append(name + "#") + if name == "9.1 Wilson": + startindex = addendum.index(word) + print startindex indexes.append(index-1) - if "paragraph{" in word and index > 313: + if "paragraph{" in word and index > startindex-1: klsaddparas.append(index-1) - if "subsub" in word and index > 313: + if "subsub" in word and index > startindex-1: klsaddparas.append(index - 1) - if "\subsection*{" in word and index > 313: + if "\subsection*{" in word and index > startindex-1: klsaddparas.append(index - 1) klsaddparas.append(2246) print(indexes) @@ -577,11 +564,8 @@ def main(): with open(DATA_DIR + "chap01.tex", "r") as ch1: entire1 = ch1.readlines() # reads in as a list of strings - chap1placer(entire1, addendum, klsaddparas) - with open(DATA_DIR + "updated1.tex", "w") as temp1: temp1.write(chap1placer(entire1, addendum, klsaddparas)) - # chapter 9 with open(DATA_DIR + "chap09.tex", "r") as ch9: entire9 = ch9.readlines() # reads in as a list of strings @@ -592,23 +576,26 @@ def main(): # call the findReferences method to find the index of the References paragraph in the two file strings # two variables for the references lists one for chapter 9 one for chapter 14 - for item in addendum: - addendum[addendum.index(item)] = item.replace("\\eqref{", "\\eqref{KLSadd: ") chapticker = 0 references9 = find_references(entire9, chapticker, math_people) + ref9_3 = references9[1] + references9 = references9[0] chapticker += 1 references14 = find_references(entire14, chapticker, math_people) + ref14_3 = references14[2] + references14 = references14[0] + ref14_3.insert(88, 1217) ref14_3.insert(244, 3053) ref14_3.insert(198, 2554) # call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2)) + str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3)) chapticker2 += 1 - str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2)) + str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref14_3)) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part @@ -622,8 +609,6 @@ def main(): with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) - print math_people - print paras if __name__ == '__main__': main() \ No newline at end of file diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py deleted file mode 100644 index ab93c2f..0000000 --- a/KLSadd_insertion/test/test_fix_chapter.py +++ /dev/null @@ -1,8 +0,0 @@ -bob = "memes\nbanana" -i = 0 -while i < len(bob) - 1: - if bob[i:i + 1] == '\n': - bob = bob[:i] + bob[i+1:] - else: - i += 1 -print bob \ No newline at end of file diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py new file mode 100644 index 0000000..01aee0e --- /dev/null +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -0,0 +1,36 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import fix_chapter_sort + + +class TestFixChapterSort(TestCase): + def test_fix_chapter_sort(self): + self.assertEquals(fix_chapter_sort(['%' + , '\subsection*{9.1 Wilson}' + , '\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\renewcommand{\refname}{Standard references}'] + ,['\section{Wilson}\index{Wilson polynomials}' + ,'\subsection*{Hypergeometric representation}' + ,'\begin{eqnarray}' + ,'& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\' + ,'\end{eqnarray}' + ,'\subsection*{Orthogonality relation}' + ,'\begin{eqnarray}' + ,'\label{OrthIWilson}' + ,'& &\frac{1}{2\pi}\int_0^{\infty}' + ,'\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0,1,5]) + ,['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\begin{eqnarray}' + , '& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Orthogonality relation}' + , '\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) \ No newline at end of file From 0226ef50f34d6385b751d4741bdcebdc8bf3617e Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Mon, 22 Aug 2016 14:35:24 -0400 Subject: [PATCH 315/402] Unit Tests --- .../test/test_reference_finder.py | 35 ++++++------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/KLSadd_insertion/test/test_reference_finder.py b/KLSadd_insertion/test/test_reference_finder.py index b65437f..64ff297 100644 --- a/KLSadd_insertion/test/test_reference_finder.py +++ b/KLSadd_insertion/test/test_reference_finder.py @@ -11,50 +11,35 @@ def test_find_references(self): self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) + 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), ([8], [0, 1, 8, 2646], [])) self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), [13]) + 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), ([8], [2646], [0, 1, 8])) self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.2 Racah#']), [13]) + 0, ['9.2 Racah#']), ([8], [0, 1, 8, 2646], [])) self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.2 Racah#']), [13]) + 0, ['9.2 Racah#']), ([8], [0, 1, 8, 2646], [])) self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' - , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,' - 'x+\gamma+\delta+1}{\alpha+1,\beta+\delta+1,\gamma+1}{1},', '\quad n=0,1,2,\ldots,N,' - , '\end{eqnarray}', 'where', '$$\lambda(x)=x(x+\gamma+\delta+1)$$', 'and' - , '$$\alpha+1=-N\quad\textrm{or}\quad\beta+\delta+1=-N\quad\textrm{or}\quad\gamma+1=-N$$' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.2 Racah#']), []) \ No newline at end of file + 1, ['9.2 Racah#']), ([], [2646], [0, 1])) \ No newline at end of file From 1e1e700edce524f6484b04e3044496de872e5daa Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Mon, 22 Aug 2016 15:04:46 -0400 Subject: [PATCH 316/402] Add mathematica references and tests for that --- eCF/src/latex_constraint_modifier.py | 20 ++++++++++---- eCF/src/mathematica_to_latex.py | 40 +++++++++++++++++++++++----- eCF/test/data/test.tex | 1 + eCF/test/data/testref.txt | 3 +++ eCF/test/test_main.py | 6 +++-- 5 files changed, 57 insertions(+), 13 deletions(-) create mode 100644 eCF/test/data/testref.txt diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index adac470..9d7f955 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -25,7 +25,10 @@ '\\proof': '{\\bf PROOF}:~', '\\mathematicatag': '{\\bf MtT}:~', '\\mathematicareference': '{\\bf MtR}:~', - '\\mapletag': '{\\bf MpT}:~'} + '\\mapletag': '{\\bf MpT}:~', + '\\category': '{\\bf CAT}:~'} +TT = ('\\mathematicatag', '\\mapletag') +TEXT = ('\\mathematicareference', '\\category') def find_surrounding(line, function): @@ -72,7 +75,7 @@ def combine_percent(lines): index = 0 while index < len(lines): if len(lines[index]) >= 3 and lines[index][:3] == '% ' and \ - index > lines.index('\\begin{document}'): + index > lines.index('\\begin{equation}'): if len(lines[index + 1]) != '' and lines[index + 1][0] == '%': print(lines[index]) add = lines.pop(index + 1) @@ -100,8 +103,15 @@ def replace(line): if pos[0] != pos[1]: arg = line[pos[0] + len(word) + 1:pos[1] - 1]\ .replace('\n', '').replace(' &', ' &') - arg = ('\\\\[0.2cm]\n ' + CONVERSIONS[word])\ - .join(arg.split('&')) + if word in TT: + arg = ('}$ \\\\[0.2cm]\n ' + CONVERSIONS[word] + + '$\\tt{').join(arg.split('&')) + if word in TEXT: + arg = ('}$ \\\\[0.2cm]\n ' + CONVERSIONS[word] + + '$\\text{').join(arg.split('&')) + else: + arg = ('\\\\[0.2cm]\n ' + CONVERSIONS[word])\ + .join(arg.split('&')) if (max([line.find(item) for item in CONVERSIONS]) > pos[1] or max([line.find(CONVERSIONS[item]) for @@ -158,7 +168,7 @@ def main(): for line in before: if len(line) >= 3 and line[:3] == '% ' and \ before.index(line) > \ - before.index('\\begin{document}'): + before.index('\\begin{equation}'): line = replace(line) line = dollarsign(line) line = '\\begin{flushright}\n' + line.replace('%', ' ') + \ diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 1b74b6f..1f6867e 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -161,6 +161,28 @@ def search(line, i, sign, direction=-1): return j +def process_references(pathr): + # (str) -> dict + """ + Opens references file and process it into a dictionary + + :param pathr: directory of file to be read from + :return: dictionary of processed references + """ + with open(pathr) as refs: + references = list(line.split('\n') for line in + refs.read().split('\n\n')) + + key = [] + value = [] + print(references) + for pair in references: + key.append(pair[0][3:-1].replace('"', '')) + value.append('&'.join(pair[1:])) + + return dict(zip(key, value)) + + def master_function(line, params): # (str, tuple) -> str """ @@ -858,7 +880,8 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'Identities.m'): + pathr=DIR_NAME + 'Identities.m', + pathref=DIR_NAME + 'References.txt'): # ((str, str)) -> None """ Opens Mathematica file with identities and puts converted lines into @@ -866,10 +889,10 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', :param pathw: directory of file to be written to :param pathr: directory of file to be read from - :param test: if True, replaces "(* *)" with quotes; if False: uses "\\tag" - to mark the functions + :param pathref: directory of file with references to be inserted :returns: None """ + references = process_references(pathref) with open(pathw, 'w') as latex: with open(pathr, 'r') as mathematica: @@ -928,9 +951,14 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', if line != '': line += '\n% \\mathematicatag{$\\tt{' + mtt + '}$}' + try: + line += '\n% \\mathematicareference{$\\text{' + \ + references[mtt] + '}$}' + except KeyError: + print(mtt) line += '\n\\end{equation}' - print line + # print line latex.write(line + '\n') latex.write('\n\n\\end{document}\n') @@ -938,8 +966,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', # Open data/functions, and process the data into a comprehensible tuple that # gets fed into "master_function" function -with open(DIR_NAME + 'functions') \ - as functions: +with open(DIR_NAME + 'functions') as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line in functions.read().split('\n') if (line != '' and '#' not in line)) @@ -958,5 +985,6 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) + if __name__ == '__main__': main() diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index a315ca9..ceaa441 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -18,6 +18,7 @@ \begin{equation} equation % \mathematicatag{$\tt{description, number}$} +% \mathematicareference{$\text{test reference line 1&test reference line 2}$} \end{equation} diff --git a/eCF/test/data/testref.txt b/eCF/test/data/testref.txt new file mode 100644 index 0000000..b61ac73 --- /dev/null +++ b/eCF/test/data/testref.txt @@ -0,0 +1,3 @@ +% {"description", number} +test reference line 1 +test reference line 2 \ No newline at end of file diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 9e1c70e..1be6ff8 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -9,12 +9,13 @@ PATHW = os.path.dirname(os.path.realpath(__file__)) + '/data/test.tex' PATHR = os.path.dirname(os.path.realpath(__file__)) + '/data/test.m' +PATHREF = os.path.dirname(os.path.realpath(__file__)) + '/data/testref.txt' class TestMain(TestCase): def test_gen(self): - main(pathw=PATHW, pathr=PATHR) + main(pathw=PATHW, pathr=PATHR, pathref=PATHREF) with open(PATHW, 'r') as l: latex = l.read() self.assertEqual( @@ -38,7 +39,8 @@ def test_gen(self): '\\begin{equation}\n' 'equation\n' '% \\mathematicatag{$\\tt{description, number}$}\n' + '% \\mathematicareference{$\\text{test reference line 1&test reference line 2}$}\n' '\\end{equation}\n' '\n' '\n' - '\\end{document}\n')) + '\\end{document}\n')) \ No newline at end of file From 278a774801549d5e9746693110f5729b74a976ac Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Mon, 22 Aug 2016 15:28:41 -0400 Subject: [PATCH 317/402] Add another test for main function --- eCF/src/mathematica_to_latex.py | 2 +- eCF/test/data/test.m | 3 +++ eCF/test/data/test.tex | 5 +++++ eCF/test/test_main.py | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 1f6867e..f7464a8 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -955,7 +955,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', line += '\n% \\mathematicareference{$\\text{' + \ references[mtt] + '}$}' except KeyError: - print(mtt) + pass line += '\n\\end{equation}' # print line diff --git a/eCF/test/data/test.m b/eCF/test/data/test.m index 740f5d1..1864fd5 100644 --- a/eCF/test/data/test.m +++ b/eCF/test/data/test.m @@ -1,2 +1,5 @@ (* {"description", number}*) equation + +(* {"nodescription", number}*) +equation \ No newline at end of file diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index ceaa441..fbcacdb 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -21,5 +21,10 @@ % \mathematicareference{$\text{test reference line 1&test reference line 2}$} \end{equation} +\begin{equation} +equation +% \mathematicatag{$\tt{nodescription, number}$} +\end{equation} + \end{document} diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 1be6ff8..fde72f5 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -42,5 +42,10 @@ def test_gen(self): '% \\mathematicareference{$\\text{test reference line 1&test reference line 2}$}\n' '\\end{equation}\n' '\n' + '\\begin{equation}\n' + 'equation\n' + '% \\mathematicatag{$\\tt{nodescription, number}$}\n' + '\\end{equation}\n' + '\n' '\n' '\\end{document}\n')) \ No newline at end of file From 34d0cb3872efe254f70d85169ffc5631ece02697 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Tue, 23 Aug 2016 10:30:35 -0400 Subject: [PATCH 318/402] Remove in-line comments after equation labels --- DLMF_preprocessing/src/math_function.py | 8 -- DLMF_preprocessing/src/remove_excess.py | 132 +++++++++++++++------- DLMF_preprocessing/src/replace_special.py | 2 - 3 files changed, 93 insertions(+), 49 deletions(-) diff --git a/DLMF_preprocessing/src/math_function.py b/DLMF_preprocessing/src/math_function.py index 6a248ae..d362e77 100644 --- a/DLMF_preprocessing/src/math_function.py +++ b/DLMF_preprocessing/src/math_function.py @@ -1,5 +1,4 @@ import math_mode -import string import re @@ -29,14 +28,7 @@ def change_original(o_file, changed_math_string_list): # print math_ranges for i in math_ranges[::-1]: edited = edited[:i[0]] + changed_math_string_list[::-1][num] + edited[i[1]:] - # edited = edited.replace(o_string[i[0]:i[1]], changed_math_string_list[num]) - # print edited num += 1 - # re check NM.2new.tex isn't changing all of the i chars to \iunit - - check = open('whatevs.txt', 'w') - check.write(edited) - check.close() return edited diff --git a/DLMF_preprocessing/src/remove_excess.py b/DLMF_preprocessing/src/remove_excess.py index 13c5e6e..d5519c8 100644 --- a/DLMF_preprocessing/src/remove_excess.py +++ b/DLMF_preprocessing/src/remove_excess.py @@ -8,7 +8,7 @@ find_line) EQ_START = r'\\begin{equation}' -EQ_END = r'\end{equation}' +EQ_END = r'\\end{equation}' CASES_START = r'\begin{cases}' CASES_END = r'\end{cases}' @@ -80,24 +80,15 @@ def remove_excess(content): """Removes the excess pieces from the given content and returns the updated version as a string. :param content: """ + oldest = content + start_eq = re.compile(EQ_START) end_eq = re.compile(EQ_END) - starts = [m.end() for m in start_eq.finditer(content)] - ends = [m.start() for m in end_eq.finditer(content)] - print 'starts', starts - print 'ends', ends - if len(starts) != len(ends): - print 'UNEVEN DISTRIBUTION OF BEGIN END EQ' - sys.exit(-1) - - for i in enumerate(start): - print 'i', i - - oldest = content updated = _get_preamble() old = content content = remove_macro(r"\\lxID", content) + # edit single lines # removed unecessary information that caused an error with pdflatex pattern = re.compile(r'\\acknowledgements{.*?}\n\n', re.DOTALL) @@ -115,7 +106,7 @@ def remove_excess(content): pattern = re.compile(r'\\onlyprint{.*?}', re.DOTALL) content = re.sub(pattern, r' ', content) pattern = re.compile(r'\\origref\[.*?\]{.*?}', re.DOTALL) - content = re.sub(pattern, r' ', content) + content = re.sub(pattern, r'', content) content = re.sub(r'\\begin\{electroniconly}', r' ', content) content = re.sub(r'\\end\{electroniconly}', r' ', content) content = re.sub(r'\\end\{printonly}', r' ', content) @@ -129,7 +120,6 @@ def remove_excess(content): print(len(old) - len(content)) old = content - content = remove_section(r'\\section{Special Notation}', r'\\part', content) content = remove_section(r'\\part{Computation}', r'\\bibliographystyle{plain}', content) content = remove_section(r'\\part{References}', r'\\bibliographystyle{plain}', content) @@ -144,12 +134,13 @@ def remove_excess(content): to_join = [] in_eq = False + # takes out comment lines first for line in content.split("\n"): - if EQ_START in line: + if re.match(EQ_START, line.lstrip()): in_eq = True - if EQ_END in line: + if re.match(EQ_END, line.lstrip()): in_eq = False # if line only consists of % replace with nothing, otherwise don't add back @@ -174,14 +165,11 @@ def remove_excess(content): content = remove_begin_end("table", content) content = remove_begin_end("table", content) - content = remove_begin_end("%", content) content = remove_begin_end("sidebar", content) content = parentheses.remove(content, curly=True) - - to_remove = [ r'\\citet', r'\\lxDeclare\[.*?\]', @@ -195,14 +183,31 @@ def remove_excess(content): ] lengths = get_line_lengths(content) + lines = content.split('\n') + + entering = re.compile(r'\\begin###open_\d###equation###close_\d###') + exiting = re.compile(r'\\end###open_\d###equation###close_\d###') + + # Find the lines on which equations start and end + eq_starts = [m.end() for m in entering.finditer(content)] + eq_ends = [m.start() for m in exiting.finditer(content)] + start_end_eq = [] + + for i in range(len(eq_starts)): + eq_starts[i] = find_line(eq_starts[i], lengths) + eq_ends[i] = find_line(eq_ends[i], lengths) + start_end_eq.append((eq_starts[i], eq_ends[i])) + + if len(eq_starts) != len(eq_ends): + print 'UNEVEN DISTRIBUTION OF \\begin{equation} and \\end{equation}' + sys.exit(-1) # go through each group and remove it for name in to_remove: # for each improper name, put it in ###open### and ###closes### - str_regex = name # + STD_REGEX not really necessary to add STD_REGEX, edit if wrong -oksana + str_regex = name # + STD_REGEX not really necessary to add STD_REGEX, edit if wrong -oksana pattern = re.compile(str_regex, re.DOTALL) - lines = content.split("\n") # go through every match, finding start and end for match in pattern.finditer(content): @@ -211,17 +216,27 @@ def remove_excess(content): start = find_line(match.start(), lengths) end = find_line(match.end(), lengths) + dont_skip = False + + # check that element isn't a comment within an equation + for eq in start_end_eq: - # print("{0}: {1} - {2}".format(group, start, end)) - skip_lines.update(range(start, end + 1)) + if eq[0] <= start <= eq[1]: + if lines[start - 1].lstrip().startswith('%'): + dont_skip = True + + if lines[start - 1].count('$') % 2 != 0: + # don't skip if only 1 $ on that line so as to avoid causing wrong math_mode ranges + dont_skip = True + + if not dont_skip: + skip_lines.update(range(start, end + 1)) # define items that cannot be at the beginning of any line or be contined in any line illegal_starts = [r'\documentclass{DLMF}', r'\thischapter', r'\part{Notation}', r'\begin{equationgroup', r'\end{equationgroup', r'\begin{onecolumn', r'\end{onecolumn'] illegal_elements = [r'TwoToOneRule', r'OneToTwoRule', r'\citet'] - lines = content.split("\n") - # various flags that will be useful when going through the lines, in_eq above for comment control in_const = False in_cases = False @@ -229,7 +244,20 @@ def remove_excess(content): eqmix_label = "" const_str = "" + lengths = get_line_lengths(content) + + eq_starts = [m.end() for m in start_eq.finditer(content)] + eq_ends = [m.start() for m in end_eq.finditer(content)] + start_end_eq = [] + + for i in range(len(eq_starts)): + eq_starts[i] = find_line(eq_starts[i], lengths) + eq_ends[i] = find_line(eq_ends[i], lengths) + start_end_eq.append((eq_starts[i], eq_ends[i])) + + eq_counter = None + in_eqmix = False # remove trailing % and whitespace and add to updated - also remove lines that should be skipped for lnum, line in enumerate(lines): @@ -237,43 +265,71 @@ def remove_excess(content): lnum += 1 # don't add line back if it should be skipped - - if lnum in skip_lines: - - # print lnum, line continue + if re.match(EQ_START, line.lstrip()): + in_eq = True + if re.match(EQ_END, line.lstrip()): + in_eq = False + # replaces long ###open and close phrases with curly brackets line = parentheses.insert(line, curly=True) line_checks = [line.lstrip().startswith(start) for start in illegal_starts] + [element in line for element in - illegal_elements] + illegal_elements] # skip current line if it starts with or contains an illegal element if any(line_checks): + # don't remove comments in equations + if in_eq: + if not line.lstrip().startswith('%'): + continue - continue + if not in_eq: + # don't remove if 1 $ in line (causes missing $ error) + if line.count('$') % 2 == 0: + continue - # no more ugly % characters after cleaned + # no more trailing % characters after cleaned cleaned = line.rstrip().rstrip("%").rstrip() # line marks the start of an equationmix, set the flag and remove the line if EQMIX_START in cleaned: - eqmix_label = cleaned[cleaned.index(r'\label'):] + in_eqmix = True + eq_counter = 0 + if re.search('%', cleaned): + cleaned = cleaned[:cleaned.index('%')] + eqmix_label = cleaned[cleaned.index(r'\label'):-1] + ".SE" continue # line marks the end of an equationmix, set the flag and remove the line if EQMIX_END in cleaned: + in_eqmix = False + eq_counter = None eqmix_label = "" continue # if this line marks the start of an equation, set the flag - if EQ_START in cleaned: + if re.match(EQ_START, cleaned.lstrip()): + if in_eqmix: + if '\\end{equation}' in cleaned: + # if in eqmix and \end{equation} in line, space the commands, label, and the actual equation + if isinstance(eq_counter, int): + eq_counter += 1 + cleaned = cleaned.lstrip()[:16] + eqmix_label + str(eq_counter) + '}\n' + \ + cleaned[18:cleaned.index('equation}')] + '\n\\end{equation}' + cleaned = re.sub(r'\n{2,}', '\n', cleaned) + else: + # just in eqmix, add the command and label only + eq_counter += 1 + cleaned = cleaned.lstrip()[:16] + eqmix_label + str(eq_counter) + '}' + else: + # just in eq, add command and label only: make sure no in line comments get added + cleaned = cleaned.lstrip()[:16] + cleaned[16: 17 + cleaned[16:].index('}')] + eqmix_label in_eq = True - cleaned = cleaned + eqmix_label # if this line marks the end of an equation, set the flag - if EQ_END in cleaned: + if re.match(EQ_END, cleaned.lstrip()): in_eq = False # comment out constraints and replace commas with double commas; we need to build the entire constraint @@ -291,7 +347,6 @@ def remove_excess(content): # remove commas, periods, colons, and semi-colons from the end of equations if in_eq and not in_const: - to_strip = ":;," # don't take off trailing commas when in a cases block @@ -372,4 +427,3 @@ def _get_preamble(): if __name__ == "__main__": main() - diff --git a/DLMF_preprocessing/src/replace_special.py b/DLMF_preprocessing/src/replace_special.py index c001215..09d39c3 100644 --- a/DLMF_preprocessing/src/replace_special.py +++ b/DLMF_preprocessing/src/replace_special.py @@ -130,8 +130,6 @@ def remove_special(content): comment_str = comment_str[:-1] - # print([x for x in inside if inside[x][SEEN]]) - # reset special block flags for flag in inside: inside[flag][SEEN] = False From c118fdb758f5aebbcaaf41b53d64ea187fa74f87 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Tue, 23 Aug 2016 12:37:43 -0400 Subject: [PATCH 319/402] Match the intended formatting of replace_special.py --- DLMF_preprocessing/test/test_replace_i.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/DLMF_preprocessing/test/test_replace_i.py b/DLMF_preprocessing/test/test_replace_i.py index d58d0aa..210f667 100644 --- a/DLMF_preprocessing/test/test_replace_i.py +++ b/DLMF_preprocessing/test/test_replace_i.py @@ -20,14 +20,15 @@ % \constraint{$s = 0,1,2,\dots$.} """ + class TestReplaceSpecial(TestCase): def test__replace_special(self): tex = "z^a = \\underbrace{z \\cdot z \\cdots z}_{n \n \\text{ times}} = 1 / z^{-a}" result = remove_special(tex) - self.assertEqual(tex, result) + self.assertEqual(tex.split('\n'), result) def test_dollar_loc(self): actual = remove_special(mismatched) - self.assertEqual(mismatched, actual) + self.assertEqual(mismatched.split('\n'), actual) def test_matching(self): result = remove_special(matched) - self.assertEqual(matched, result) \ No newline at end of file + self.assertEqual(matched.split('\n'), result) \ No newline at end of file From 690032f750dfb0b7397a3e16e62a9d0a8fb5314a Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Tue, 23 Aug 2016 12:58:17 -0400 Subject: [PATCH 320/402] Check for current formatting rules in the program. --- DLMF_preprocessing/test/test_math_function.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/DLMF_preprocessing/test/test_math_function.py b/DLMF_preprocessing/test/test_math_function.py index 9a3c2de..9d724cf 100644 --- a/DLMF_preprocessing/test/test_math_function.py +++ b/DLMF_preprocessing/test/test_math_function.py @@ -15,7 +15,8 @@ where $\\ell$ = last term of the series = $a + (n-1)d$. \\paragraph{Geometric Progression} -\\index{geometric progression (or series)}""" +\\index{geometric progression (or series)} +""" just_math = [""" a + (a + d) + (a + 2d) + \\dots + (a + (n-1)d) @@ -23,15 +24,18 @@ = \\tfrac{1}{2} n (a + \\ell)\n""", "\\ell", "a + (n-1)d"] no_text = """ + \\index{arithmetic progression} \\begin{equation}\\label{eq:AL.ES.AR} - a + (a + d) + (a + 2d) + \\dots + (a + (n-1)d) - = na + \\tfrac{1}{2} n(n-1) d - = \\tfrac{1}{2} n (a + \\ell) +a + (a + d) + (a + 2d) + \\dots + (a + (n-1)d) += na + \\tfrac{1}{2} n(n-1) d += \\tfrac{1}{2} n (a + \\ell) \\end{equation} -\\index{geometric progression (or series)}""" +\\index{geometric progression (or series)} + +""" From 6b3c1f4a0e9dbbfee0c153c8cd9b2971f01aecd1 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 23 Aug 2016 13:55:57 -0400 Subject: [PATCH 321/402] Add differences for single variable and multiple variables in a trig function, with @ and @@ --- eCF/data/functions | 52 ++++++++++++++-------------- eCF/src/latex_constraint_modifier.py | 10 +++--- eCF/src/mathematica_to_latex.py | 12 +++++-- eCF/test/test_master_function.py | 12 +++++++ 4 files changed, 53 insertions(+), 33 deletions(-) diff --git a/eCF/data/functions b/eCF/data/functions index 360ce2c..5f63087 100644 --- a/eCF/data/functions +++ b/eCF/data/functions @@ -3,18 +3,18 @@ AiryAiPrime, \AiryAi', (@{-}), () AiryBi, \AiryBi, (@{-}), (AiryBiPrime) AiryBiPrime, \AiryBi', (@{-}), () - ArcCos, \acos, (@{-}), (ArcCosh) - ArcCosh, \acosh, (@{-}), () - ArcCot, \acot, (@{-}), (ArcCoth) - ArcCoth, \acoth, (@{-}), () - ArcCsc, \acsc, (@{-}), (ArcCsch) - ArcCsch, \acsch, (@{-}), () - ArcSec, \asec, (@{-}), (ArcSech) - ArcSech, \asech, (@{-}), () - ArcSin, \asin, (@{-}), (ArcSinh) - ArcSinh, \asinh, (@{-}), () - ArcTan, \atan, (@{-}), (ArcTanh) - ArcTanh, \atanh, (@{-}), () + ArcCos, \acos, (@@{-}), (ArcCosh) + ArcCosh, \acosh, (@@{-}), () + ArcCot, \acot, (@@{-}), (ArcCoth) + ArcCoth, \acoth, (@@{-}), () + ArcCsc, \acsc, (@@{-}), (ArcCsch) + ArcCsch, \acsch, (@@{-}), () + ArcSec, \asec, (@@{-}), (ArcSech) + ArcSech, \asech, (@@{-}), () + ArcSin, \asin, (@@{-}), (ArcSinh) + ArcSinh, \asinh, (@@{-}), () + ArcTan, \atan, (@@{-}), (ArcTanh) + ArcTanh, \atanh, (@@{-}), () Arg, \ph, (@{-}), () BetaRegularized, \IncI, ({-}@{-}{-}), () Binomial, \binom, ({-}{-}), () @@ -25,14 +25,14 @@ BesselY, \BesselY, ({-}@{-}), (SphericalBesselY) ChebyshevT, \ChebyT, ({-}@{-}), () ChebyshevU, \ChebyU, ({-}@{-}), () - Cos, \cos, (@{-}), (ArcCos, Cosh, CosIntegral) - Cosh, \cosh, (@{-}), (ArcCosh, CoshIntegral) + Cos, \cos, (@@{-}), (ArcCos, Cosh, CosIntegral) + Cosh, \cosh, (@@{-}), (ArcCosh, CoshIntegral) CoshIntegral, \CoshInt, (@{-}), () CosIntegral, \CosInt, (@{-}), () - Cot, \cot, (@{-}), (ArcCot, Coth) - Coth, \coth, (@{-}), (ArcCoth) - Csc, \csc, (@{-}), (ArcCsc, Csch) - Csch, \csch, (@{-}), (ArcCsch) + Cot, \cot, (@@{-}), (ArcCot, Coth) + Coth, \coth, (@@{-}), (ArcCoth) + Csc, \csc, (@@{-}), (ArcCsc, Csch) + Csch, \csch, (@@{-}), (ArcCsch) DawsonF, \DawsonsInt, (@{-}), () D, \deriv, ({-}{-}), (ParabolicCylinderD) EllipticE, \CompEllIntE, (@{-}), () @@ -90,12 +90,12 @@ RamanujanTauTheta, \RamanujanTauTheta, (@{-}), () Re, \realpart, ({-}), (Regularized, Real) RiemannSiegelTheta, \RiemannSiegelTheta, (@{-}), () - Sec, \sec, (@{-}), (ArcSec, Sech) - Sech, \sech, (@{-}), (ArcSech) - Sinc, \sinc, (@{-}), () - Sign, \sign, (@{-}), () - Sin, \sin, (@{-}), (ArcSin, Sinh, SinIntegral, Sinc) - Sinh, \sinh, (@{-}), (ArcSinh, SinhIntegral) + Sec, \sec, (@@{-}), (ArcSec, Sech) + Sech, \sech, (@@{-}), (ArcSech) + Sinc, \sinc, (@@{-}), () + Sign, \sign, (@@{-}), () + Sin, \sin, (@@{-}), (ArcSin, Sinh, SinIntegral, Sinc) + Sinh, \sinh, (@@{-}), (ArcSinh, SinhIntegral) SinhIntegral, \SinhInt, (@{-}), () SinIntegral, \SinInt, (@{-}), () SphericalBesselJ, \SphBesselJ, ({-}@{-}), () @@ -108,8 +108,8 @@ StruveH, \StruveH, ({-}@{-}), () StruveL, \StruveL, ({-}@{-}), () Subscript, \text, ({-}_{-}), () - Tan, \tan, (@{-}), (ArcTan, Tanh) - Tanh, \tanh, (@{-}), (ArcTanh) + Tan, \tan, (@@{-}), (ArcTan, Tanh) + Tanh, \tanh, (@@{-}), (ArcTanh) UnitStep, \HeavisideH, (@{-}), () WhittakerM, \WhitM, ({-}{-}@{-}), () WhittakerW, \WhitW, ({-}{-}@{-}), () diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index 9d7f955..e843981 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -5,8 +5,8 @@ import argparse parser = argparse.ArgumentParser( - description='Receive .tex file with constraints and convert' - ' them viewable metadata.') + description='Receive .tex file with constraints and convert' + ' them viewable metadata.') parser.add_argument('PATHR', type=str, help='path of input .tex file, with the current' ' directory as the starting point',) @@ -103,6 +103,8 @@ def replace(line): if pos[0] != pos[1]: arg = line[pos[0] + len(word) + 1:pos[1] - 1]\ .replace('\n', '').replace(' &', ' &') + + # Splits lines if there are any "&". if word in TT: arg = ('}$ \\\\[0.2cm]\n ' + CONVERSIONS[word] + '$\\tt{').join(arg.split('&')) @@ -140,9 +142,7 @@ def dollarsign(line): if len(count) == 2: # This checks to see if there is already a "displaystyle", so it # doesn't add a second useless one. - if line[count[0]:count[0] + 15] == '${\\displaystyle': - pass - else: + if line[count[0]:count[0] + 15] != '${\\displaystyle': begin = count[0] end = count[1] line = line[:begin] + '${\\displaystyle ' + \ diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index f7464a8..6da5118 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -43,6 +43,10 @@ LEFT_BRACKETS = list('([{') RIGHT_BRACKETS = list(')]}') +TRIG = ('ArcCos', 'ArcCosh', 'ArcCot', 'ArcCoth', 'ArcCsc', 'ArcCsch', + 'ArcSec', 'ArcSech', 'ArcSin', 'ArcSinh', 'ArcTan', 'ArcTanh', + 'Cos', 'Cosh', 'Cot', 'Coth', 'Csc', 'Csch', 'Sec', 'Sech', 'Sinc', + 'Sin', 'Sinh', 'Tan', 'Tanh') def find_surrounding(line, function, ex=(), start=0): @@ -175,7 +179,6 @@ def process_references(pathr): key = [] value = [] - print(references) for pair in references: key.append(pair[0][3:-1].replace('"', '')) value.append('&'.join(pair[1:])) @@ -197,6 +200,7 @@ def master_function(line, params): """ m, l, sep, ex = params[:5] sep = [i.split('-') for i in sep] + multi = list('+-*/') for _ in range(line.count(m)): try: @@ -227,6 +231,9 @@ def master_function(line, params): args.insert(0, 0) else: args.insert(0, len(arg_split(args[1][1:-1], ','))) + if m in TRIG and \ + sum([args[0].count(element) for element in multi]) != 0: + sep[0][0] = sep[0][0].replace('@@', '@') line = (line[:pos[0]] + l + '%s'.join(sep[[len(y) for y in sep] .index(len(args) + 1)]) + @@ -958,7 +965,8 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', pass line += '\n\\end{equation}' - # print line + print(line) + latex.write(line + '\n') latex.write('\n\n\\end{document}\n') diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index cde731d..b089b08 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -25,6 +25,11 @@ FUNCTION_CONVERSIONS[index] = tuple(FUNCTION_CONVERSIONS[index]) FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) +TRIG = ('ArcCos', 'ArcCosh', 'ArcCot', 'ArcCoth', 'ArcCsc', 'ArcCsch', + 'ArcSec', 'ArcSech', 'ArcSin', 'ArcSinh', 'ArcTan', 'ArcTanh', + 'Cos', 'Cosh', 'Cot', 'Coth', 'Csc', 'Csch', 'Sec', 'Sech', 'Sinc', + 'Sin', 'Sinh', 'Tan', 'Tanh') +MULTI = list('+-*/') class TestMasterFunction(TestCase): @@ -68,6 +73,13 @@ def test_conversion(self): else: self.assertEqual(master_function(before, function), after) self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) + if function[0] in TRIG: + for sep in MULTI: + before = before[:-1] + sep + 'b]' + after = after.replace('@@', '@')[:-1] + sep + 'b}' + self.assertEqual(master_function(before, function), after) + self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) + if function[0] == 'D': self.assertEqual(master_function('\\[Delta]', function), '\\[Delta]') From b59483b0af14cf95696180de212171bd15892aa6 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 23 Aug 2016 14:10:08 -0400 Subject: [PATCH 322/402] Add documentation to code --- eCF/src/mathematica_to_latex.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 6da5118..5f33f10 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -231,6 +231,9 @@ def master_function(line, params): args.insert(0, 0) else: args.insert(0, len(arg_split(args[1][1:-1], ','))) + + # If the arguments in a trig function are more than one variable, + # then instead of "@@" make it "@" if m in TRIG and \ sum([args[0].count(element) for element in multi]) != 0: sep[0][0] = sep[0][0].replace('@@', '@') From ee81ec3239e5526e937b94305e1a393f7538e818 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 23 Aug 2016 14:10:33 -0400 Subject: [PATCH 323/402] Modify documentation --- eCF/src/mathematica_to_latex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 5f33f10..ec8db3c 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -976,7 +976,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', # Open data/functions, and process the data into a comprehensible tuple that -# gets fed into "master_function" function +# gets fed into the "master_function" function with open(DIR_NAME + 'functions') as functions: FUNCTION_CONVERSIONS = list(arg_split(line.replace(' ', ''), ',') for line in functions.read().split('\n') From 97a4986581983767b5b8ade3719510db0096cd49 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Tue, 23 Aug 2016 14:13:29 -0400 Subject: [PATCH 324/402] Not assume all equations have labels --- DLMF_preprocessing/src/remove_excess.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/DLMF_preprocessing/src/remove_excess.py b/DLMF_preprocessing/src/remove_excess.py index d5519c8..f1e2d4d 100644 --- a/DLMF_preprocessing/src/remove_excess.py +++ b/DLMF_preprocessing/src/remove_excess.py @@ -325,7 +325,10 @@ def remove_excess(content): cleaned = cleaned.lstrip()[:16] + eqmix_label + str(eq_counter) + '}' else: # just in eq, add command and label only: make sure no in line comments get added - cleaned = cleaned.lstrip()[:16] + cleaned[16: 17 + cleaned[16:].index('}')] + eqmix_label + if '\\label' not in cleaned: + cleaned = cleaned.lstrip() + eqmix_label + else: + cleaned = cleaned.lstrip()[:16] + cleaned[16: 17 + cleaned[16:].index('}')] + eqmix_label in_eq = True # if this line marks the end of an equation, set the flag From 8bac6649b8f961ed98bcebe18238868d4ed7e270 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 23 Aug 2016 14:21:04 -0400 Subject: [PATCH 325/402] Change spacing --- eCF/src/mathematica_to_latex.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index ec8db3c..b879e89 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -311,7 +311,6 @@ def carat(line): while i != len(line): if line[i] == '^': - k = search(line, i, list('*/+-=, '), 1) if line[i + 1] == '(' and line[k] == ')': @@ -757,7 +756,7 @@ def convert_fraction(line): k = search(line, i, sign, 1) # Removes extra surrounding parentheses, if there are any. - # This won't work if you're doing "( )( )/( )( )", it will + # This won't work if you're doing "( )( )/( )( )": it will # incorrectly change it to " )( / )( ", but there are no cases of # this happening yet, so I have not gone to fixing this yet. if (line[j + 1] == '(' and line[i - 1] == ')' and @@ -781,7 +780,6 @@ def convert_fraction(line): line = '{0}\\frac{{{1}}}{{{2}}}{3}' \ .format(line[:j + 1], line[j + 1:i], line[i + 1:k + 1], line[k + 1:]) - i += 1 return line From 8a296a95712f0a3f625f4dcf5ffa9d55021354d2 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 23 Aug 2016 14:38:33 -0400 Subject: [PATCH 326/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 30 +++++++++---------- .../test/test_reference_finder.py | 10 +++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index bafe41f..0127c03 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -9,7 +9,7 @@ # holds all subsections in each chapter section along with the what holds -w, h = 2, 1000 +w, h = 2, 500 sorter_check = [[0 for _ in range(w)] for __ in range(h)] @@ -47,7 +47,8 @@ def extraneous_section_deleter(list): :return: Extraneous name free output """ return [item for item in list if "reference" not in item.lower() and "limit relation" not in item.lower() - and "symmetry" not in item.lower()] + and "symmetry" not in item.lower() and " hypergeometric representation" not in item.lower() + and "hypergeometric representation " not in item.lower()] def new_keywords(kls, kls_list): @@ -198,7 +199,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref # print hyper_headers_chap # print word sortmatch_2.append(k_hyper_sub_chap) - return chap + return chap, sorter_check def cut_words(word_to_find, word_to_search_in): """ @@ -324,6 +325,10 @@ def find_references(chapter, chapticker, math_people): if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): w = word[word.find("{")+1: word.find("}")] ws = word[word.find("{")+1: word.find("~")] + if "bessel" in word.lower() and chapticker == 0: + ref9_3.append(index) + if ("big $q$-legendre" in word.lower() or "little $q$-legendre" in word.lower() or "continuous $q$-legendre" in word.lower()) and chapticker == 1: + ref14_3.append(index) for unit in math_people: subunit = unit[unit.find(" ")+1: unit.find("#")] # System of checks that verifies if section is in chapter @@ -352,15 +357,10 @@ def find_references(chapter, chapticker, math_people): w2 = word[word.find("{") + 1: word.find("}")] if "Bessel" not in w2: ref14_3.append(index) - besselcheck = 1 + bqlegendrecheck = 2 # Special lines that the program does not normally register - for i in ref9_3: - if i == 2646: - besselcheck = 0 - if besselcheck == 1: - ref9_3.insert(230, 2646) if bqlegendrecheck > 0: pass @@ -542,7 +542,9 @@ def main(): klsaddparas.append(index - 1) if "\subsection*{" in word and index > startindex-1: klsaddparas.append(index - 1) - klsaddparas.append(2246) + if "\\renewcommand{\\refname}{Standard references}" in word: + klsaddparas.append(index-1) + indexes.append(index - 1) print(indexes) # now indexes holds all of the places there is a section # using these indexes, get all of the words in between and add that to the paras[] @@ -550,8 +552,6 @@ def main(): for i in range(len(indexes)-1): box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(box) - box2 = ''.join(addendum[indexes[35]: 2245]) - paras.append(box2) # paras now holds the paragraphs that need to go into the chapter files, but they need to go in the appropriate @@ -586,10 +586,8 @@ def main(): ref14_3 = references14[2] references14 = references14[0] - ref14_3.insert(88, 1217) - ref14_3.insert(244, 3053) - ref14_3.insert(198, 2554) + print ref14_3 # call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3)) @@ -610,5 +608,7 @@ def main(): with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) + print sorter_check + if __name__ == '__main__': main() \ No newline at end of file diff --git a/KLSadd_insertion/test/test_reference_finder.py b/KLSadd_insertion/test/test_reference_finder.py index 64ff297..8426f44 100644 --- a/KLSadd_insertion/test/test_reference_finder.py +++ b/KLSadd_insertion/test/test_reference_finder.py @@ -14,32 +14,32 @@ def test_find_references(self): , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), ([8], [0, 1, 8, 2646], [])) + 0, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), ([8], [0, 1, 8], [])) self.assertEquals(find_references(['\\section{Pseudo Jacobi}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), ([8], [2646], [0, 1, 8])) + 1, ['9.9 Pseudo Jacobi (or Routh-Romanovski)#']), ([8], [], [0, 1, 8])) self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.2 Racah#']), ([8], [0, 1, 8, 2646], [])) + 0, ['9.2 Racah#']), ([8], [0, 1, 8], [])) self.assertEquals(find_references(['\\section{Racah}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 0, ['9.2 Racah#']), ([8], [0, 1, 8, 2646], [])) + 0, ['9.2 Racah#']), ([8], [0, 1, 8], [])) self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.2 Racah#']), ([], [2646], [0, 1])) \ No newline at end of file + 1, ['9.2 Racah#']), ([], [], [0, 1])) \ No newline at end of file From b23e386b5d64534eebd06e0fb1cbf1285ec67f96 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 23 Aug 2016 14:42:13 -0400 Subject: [PATCH 327/402] Unit Tests --- .../test/test_fix_chapter_sort.py | 60 +++++++++++++------ 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 01aee0e..66e80bf 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -9,28 +9,54 @@ class TestFixChapterSort(TestCase): def test_fix_chapter_sort(self): self.assertEquals(fix_chapter_sort(['%' - , '\subsection*{9.1 Wilson}' - , '\paragraph{Hypergeometric Representation}' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' , 'in $a,b,c,d$.' - , '\renewcommand{\refname}{Standard references}'] - ,['\section{Wilson}\index{Wilson polynomials}' - ,'\subsection*{Hypergeometric representation}' - ,'\begin{eqnarray}' - ,'& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\' - ,'\end{eqnarray}' - ,'\subsection*{Orthogonality relation}' - ,'\begin{eqnarray}' - ,'\label{OrthIWilson}' - ,'& &\frac{1}{2\pi}\int_0^{\infty}' - ,'\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0,1,5]) + , '\\renewcommand{\\refname}{Standard references}'] + ,['\\section{Wilson}\\index{Wilson polynomials}' + ,'\\subsection*{Hypergeometric representation}' + ,'\\begin{eqnarray}' + ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + ,'\\end{eqnarray}' + ,'\\subsection*{Orthogonality relation}' + ,'\\begin{eqnarray}' + ,'\\label{OrthIWilson}' + ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9]) ,['\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' - , '\begin{eqnarray}' - , '& &\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\nonumber\\' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' , '\\subsection*{Orthogonality relation}' - , '\begin{eqnarray}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Orthogonality}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Memes', 0, [1, 2, 5], [], [0, 1, 5, 9]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' , '\\label{OrthIWilson}' - , '& &\frac{1}{2\\pi}\\int_0^{\\infty}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' , '\\end{eqnarray}']) \ No newline at end of file From 1382aeccb57fcfe730208f7b964e8d3b58603bd6 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 23 Aug 2016 14:47:34 -0400 Subject: [PATCH 328/402] Unit Tests --- KLSadd_insertion/test/test_fix_chapter_sort.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 66e80bf..6dd705d 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -33,7 +33,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) + , '\\end{eqnarray}'],[]) self.assertEquals(fix_chapter_sort(['%' , '\\subsection*{9.1 Wilson}' , '\\paragraph{Orthogonality}' @@ -59,4 +59,4 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) \ No newline at end of file + , '\\end{eqnarray}'],[]) \ No newline at end of file From 8d6f93cf3954123f2b05abeb9cd1479637e8d341 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 23 Aug 2016 15:11:52 -0400 Subject: [PATCH 329/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 4 ++-- KLSadd_insertion/test/test_fix_chapter_sort.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 0127c03..b56e4af 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -9,7 +9,7 @@ # holds all subsections in each chapter section along with the what holds -w, h = 2, 500 +w, h = 2, 100 sorter_check = [[0 for _ in range(w)] for __ in range(h)] @@ -199,7 +199,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref # print hyper_headers_chap # print word sortmatch_2.append(k_hyper_sub_chap) - return chap, sorter_check + return chap def cut_words(word_to_find, word_to_search_in): """ diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 6dd705d..66e80bf 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -33,7 +33,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'],[]) + , '\\end{eqnarray}']) self.assertEquals(fix_chapter_sort(['%' , '\\subsection*{9.1 Wilson}' , '\\paragraph{Orthogonality}' @@ -59,4 +59,4 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'],[]) \ No newline at end of file + , '\\end{eqnarray}']) \ No newline at end of file From 55ec08a9ea5f6114b29ba65043c8e44bae362a9e Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 23 Aug 2016 16:24:40 -0400 Subject: [PATCH 330/402] Unit Tests --- KLSadd_insertion/test/test_reference_finder.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/test/test_reference_finder.py b/KLSadd_insertion/test/test_reference_finder.py index 8426f44..b06028d 100644 --- a/KLSadd_insertion/test/test_reference_finder.py +++ b/KLSadd_insertion/test/test_reference_finder.py @@ -42,4 +42,20 @@ def test_find_references(self): , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' , 'with $N$ a nonnegative integer.', '\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], - 1, ['9.2 Racah#']), ([], [], [0, 1])) \ No newline at end of file + 1, ['9.2 Racah#']), ([], [], [0, 1])) + self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', + '\\subsection*{Bessel}', '\\begin{eqnarray}', + '\\label{DefRacah}', + '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 0, ['9.2 Racah#']), ([], [1, 1], [])) + self.assertEquals(find_references(['\\section{Unique}\\index{Racah polynomials}', + '\\subsection*{Big $q$-Legendre}', '\\begin{eqnarray}', + '\\label{DefRacah}', + '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' + , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' + , 'with $N$ a nonnegative integer.', '\subsection*{References}', + '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}'], + 1, ['9.2 Racah#']), ([], [], [0, 1, 1])) \ No newline at end of file From 84aacdee106844fcd590d17926247097b7923ac0 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Wed, 24 Aug 2016 14:27:59 -0400 Subject: [PATCH 331/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 32 +++++++++++-------- .../test/test_generic_functions.py | 2 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index b56e4af..ea703e2 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -9,8 +9,8 @@ # holds all subsections in each chapter section along with the what holds -w, h = 2, 100 -sorter_check = [[0 for _ in range(w)] for __ in range(h)] +# w, h = 2, 100 +# sorter_check = [[0 for _ in range(w)] for __ in range(h)] def chap1placer(chap1, kls, klsaddparas): @@ -72,10 +72,13 @@ def new_keywords(kls, kls_list): kls_list_chap.append(item) kls_list_chap[kls_list_chap.index("Special value")] = "Symmetry" kls_list_chap.append("Special value") - return kls_list_chap + w = 2 + h = len(kls_list_chap)+1 + sorter_check = [[0 for _ in range(w)] for __ in range(h)] + return kls_list_chap, sorter_check -def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref): +def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref, sorter_check): """ This function sorts through the input files and identifies and places sections from the addendum after their respective subsections in the chapter. @@ -133,9 +136,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref if khyper_header_chap[item] == khyper_header_chap[item+1]: k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: " + \ word + "}\n" + k_hyper_sub_chap[item + 1] - print khyper_header_chap[item] - print "ding" - print k_hyper_sub_chap[item + 1] khyper_header_chap[item] = "memes" k_hyper_sub_chap[item] = "memes" else: @@ -151,7 +151,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref else: a += 1 - global sorter_check + #global sorter_check chap9 = 0 if sorter_check[sortloc][0] == 0: @@ -409,7 +409,7 @@ def reference_placer(chap, references, p, chapticker2): # method to change file string(actually a list right now), returns string to be written to file # If you write a method that changes something, it is preffered that you call the method in here -def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, tempref): +def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, tempref, sorter_check): """ Removes specific lines stopping the latex file from converting into python, as well as running the functions responsible for sorting sections and placing the correct additions in the correct places @@ -426,8 +426,9 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha sort_location = 0 for i in kls_list_all: - fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2, tempref) + fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) sort_location += 1 + print sorter_check for a in range(len(paragraphs_to_be_added)-1): for b in sortmatch_2: @@ -500,8 +501,9 @@ def main(): with open(DATA_DIR + "KLSaddII.tex", "r") as add: # store the file as a string addendum = add.readlines() - kls_list_all = new_keywords(addendum, kls_list_full) + kls_list_all = new_keywords(addendum, kls_list_full)[0] # Makes sections look like other sections + sorter_check = new_keywords(addendum, kls_list_full)[1] for item in addendum: addendum[addendum.index(item)] = item.replace("\\eqref{","\\eqref{KLSadd: ") @@ -590,10 +592,14 @@ def main(): print ref14_3 # call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 - str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3)) + str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3, sorter_check)) + print sorter_check + print "DING" chapticker2 += 1 - str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref14_3)) + str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref14_3, sorter_check)) + + print "DING" # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index 7aa85f9..5ff7c81 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -11,7 +11,7 @@ class TestNewKeywords(TestCase): def test_new_keywords(self): self.assertEquals(new_keywords(['\\subsubsection*{ThisIsATest}\n', '\\subsubsection*{Special value}\n'] - ,[]), ['ThisIsATest', 'Symmetry', 'Limit Relation', 'Special value']) + ,[]), (['ThisIsATest', 'Symmetry', 'Limit Relation', 'Special value'],[[0,0],[0,0],[0,0],[0,0], [0,0]])) class TestExtraneousSectionDeleter(TestCase): From 7742d7e37b07b464b9e9b18535f04a7e007301b9 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Wed, 24 Aug 2016 14:32:12 -0400 Subject: [PATCH 332/402] Testing Something --- .../test/test_fix_chapter_sort.py | 124 +++++++++--------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 66e80bf..af24eb0 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -1,62 +1,62 @@ - -__author__ = 'Edward Bian' -__status__ = 'Development' - -from unittest import TestCase -from updateChapters import fix_chapter_sort - - -class TestFixChapterSort(TestCase): - def test_fix_chapter_sort(self): - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\paragraph{Hypergeometric Representation}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - ,['\\section{Wilson}\\index{Wilson polynomials}' - ,'\\subsection*{Hypergeometric representation}' - ,'\\begin{eqnarray}' - ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - ,'\\end{eqnarray}' - ,'\\subsection*{Orthogonality relation}' - ,'\\begin{eqnarray}' - ,'\\label{OrthIWilson}' - ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9]) - ,['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Orthogonality relation}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\paragraph{Orthogonality}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection*{Orthogonality}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Memes', 0, [1, 2, 5], [], [0, 1, 5, 9]) - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection*{Orthogonality}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) \ No newline at end of file +# +# __author__ = 'Edward Bian' +# __status__ = 'Development' +# +# from unittest import TestCase +# from updateChapters import fix_chapter_sort +# +# +# class TestFixChapterSort(TestCase): +# def test_fix_chapter_sort(self): +# self.assertEquals(fix_chapter_sort(['%' +# , '\\subsection*{9.1 Wilson}' +# , '\\paragraph{Hypergeometric Representation}' +# , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' +# , 'in $a,b,c,d$.' +# , '\\renewcommand{\\refname}{Standard references}'] +# ,['\\section{Wilson}\\index{Wilson polynomials}' +# ,'\\subsection*{Hypergeometric representation}' +# ,'\\begin{eqnarray}' +# ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' +# ,'\\end{eqnarray}' +# ,'\\subsection*{Orthogonality relation}' +# ,'\\begin{eqnarray}' +# ,'\\label{OrthIWilson}' +# ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' +# ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9]) +# ,['\\section{Wilson}\\index{Wilson polynomials}' +# , '\\subsection*{Hypergeometric representation}' +# , '\\begin{eqnarray}' +# , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' +# , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' +# , '\\subsection*{Orthogonality relation}' +# , '\\begin{eqnarray}' +# , '\\label{OrthIWilson}' +# , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' +# , '\\end{eqnarray}']) +# self.assertEquals(fix_chapter_sort(['%' +# , '\\subsection*{9.1 Wilson}' +# , '\\paragraph{Orthogonality}' +# , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' +# , 'in $a,b,c,d$.' +# , '\\renewcommand{\\refname}{Standard references}'] +# , ['\\section{Wilson}\\index{Wilson polynomials}' +# , '\\subsection*{Hypergeometric representation}' +# , '\\begin{eqnarray}' +# , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' +# , '\\end{eqnarray}' +# , '\\subsection*{Orthogonality}' +# , '\\begin{eqnarray}' +# , '\\label{OrthIWilson}' +# , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' +# , '\\end{eqnarray}'], 'Memes', 0, [1, 2, 5], [], [0, 1, 5, 9]) +# , ['\\section{Wilson}\\index{Wilson polynomials}' +# , '\\subsection*{Hypergeometric representation}' +# , '\\begin{eqnarray}' +# , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' +# , '\\end{eqnarray}' +# , '\\subsection*{Orthogonality}' +# , '\\begin{eqnarray}' +# , '\\label{OrthIWilson}' +# , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' +# , '\\end{eqnarray}']) \ No newline at end of file From 30e9e2d912c3f9713148067129bde88074ed56da Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 14:44:54 -0400 Subject: [PATCH 333/402] Add code to add parentheses around ambiguous funcions (trig) --- eCF/src/latex_constraint_modifier.py | 1 - eCF/src/mathematica_to_latex.py | 17 +++++++++++------ eCF/test/test_master_function.py | 13 +++++++++---- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/eCF/src/latex_constraint_modifier.py b/eCF/src/latex_constraint_modifier.py index e843981..1a329e0 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/eCF/src/latex_constraint_modifier.py @@ -77,7 +77,6 @@ def combine_percent(lines): if len(lines[index]) >= 3 and lines[index][:3] == '% ' and \ index > lines.index('\\begin{equation}'): if len(lines[index + 1]) != '' and lines[index + 1][0] == '%': - print(lines[index]) add = lines.pop(index + 1) lines[index] += '\n' + add.replace('%', ' ') else: diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index b879e89..9d838c5 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -238,9 +238,14 @@ def master_function(line, params): sum([args[0].count(element) for element in multi]) != 0: sep[0][0] = sep[0][0].replace('@@', '@') - line = (line[:pos[0]] + l + '%s'.join(sep[[len(y) for y in sep] - .index(len(args) + 1)]) + - line[pos[1]:]) + if m in TRIG and len(line) != pos[1] and line[pos[1]] == '^': + line = line[:pos[0]] + '(' + l + \ + '%s'.join(sep[[len(y) for y in sep] + .index(len(args) + 1)]) + ')' + line[pos[1]:] + else: + line = line[:pos[0]] + l + \ + '%s'.join(sep[[len(y) for y in sep]. + index(len(args) + 1)]) + line[pos[1]:] line %= tuple(args) @@ -311,8 +316,8 @@ def carat(line): while i != len(line): if line[i] == '^': + print(line) k = search(line, i, list('*/+-=, '), 1) - if line[i + 1] == '(' and line[k] == ')': line = line[:i] + '^{' + line[i + 2:k] + '}' + line[k + 1:] else: @@ -329,7 +334,7 @@ def beta(line): Converts Mathematica's 'Beta' function to the equivalent LaTeX macro, taking into account the variations for the different number of arguments. - :param line: line to be converted + :param line: line to be convertedmathematica_to_latex.py:324 :returns: converted line """ for _ in range(line.count('Beta')): @@ -966,7 +971,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', pass line += '\n\\end{equation}' - print(line) + # print(line) latex.write(line + '\n') diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index b089b08..56f20f8 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -75,10 +75,15 @@ def test_conversion(self): self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) if function[0] in TRIG: for sep in MULTI: - before = before[:-1] + sep + 'b]' - after = after.replace('@@', '@')[:-1] + sep + 'b}' - self.assertEqual(master_function(before, function), after) - self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) + before2 = before[:-1] + sep + 'b]' + after2 = after.replace('@@', '@')[:-1] + sep + 'b}' + self.assertEqual(master_function(before2, function), after2) + self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) + + before2 += '^' + after2 = '(' + after2 + ')^' + self.assertEqual(master_function(before2, function), after2) + self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) if function[0] == 'D': self.assertEqual(master_function('\\[Delta]', function), '\\[Delta]') From 76fec70e5db70f7eb353a66fcf9b8fae59f69d03 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 15:02:31 -0400 Subject: [PATCH 334/402] Add comments --- eCF/src/mathematica_to_latex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 9d838c5..c87392c 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -238,6 +238,7 @@ def master_function(line, params): sum([args[0].count(element) for element in multi]) != 0: sep[0][0] = sep[0][0].replace('@@', '@') + # Add parens around ambiguous functions (trig functions) if m in TRIG and len(line) != pos[1] and line[pos[1]] == '^': line = line[:pos[0]] + '(' + l + \ '%s'.join(sep[[len(y) for y in sep] @@ -246,7 +247,6 @@ def master_function(line, params): line = line[:pos[0]] + l + \ '%s'.join(sep[[len(y) for y in sep]. index(len(args) + 1)]) + line[pos[1]:] - line %= tuple(args) return line From 7a0ddfabc57f1f9401eaf58ab4b2e59e57950096 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 15:25:21 -0400 Subject: [PATCH 335/402] Move latex_constraint_modifier.py to DLMF_preprocessing/src, added __init__.py files to eCF/src and eCF/test --- .../src/latex_constraint_modifier.py | 37 +++++++++---------- eCF/src/__init__.py | 0 eCF/test/__init__.py | 0 3 files changed, 18 insertions(+), 19 deletions(-) rename {eCF => DLMF_preprocessing}/src/latex_constraint_modifier.py (87%) create mode 100644 eCF/src/__init__.py create mode 100644 eCF/test/__init__.py diff --git a/eCF/src/latex_constraint_modifier.py b/DLMF_preprocessing/src/latex_constraint_modifier.py similarity index 87% rename from eCF/src/latex_constraint_modifier.py rename to DLMF_preprocessing/src/latex_constraint_modifier.py index 1a329e0..fb21194 100644 --- a/eCF/src/latex_constraint_modifier.py +++ b/DLMF_preprocessing/src/latex_constraint_modifier.py @@ -4,20 +4,6 @@ import argparse -parser = argparse.ArgumentParser( - description='Receive .tex file with constraints and convert' - ' them viewable metadata.') -parser.add_argument('PATHR', type=str, - help='path of input .tex file, with the current' - ' directory as the starting point',) -parser.add_argument('PATHW', type=str, - help='path of file to be outputted to, with the current' - ' directory as the starting point') - -args = parser.parse_args() -PATHR = args.PATHR -PATHW = args.PATHW - CONVERSIONS = {'\\constraint': '{\\bf C}:~', '\\substitution': '{\\bf S}:~', '\\drmfnote': '{\\bf NOTE}:~', @@ -151,19 +137,21 @@ def dollarsign(line): return line -def main(): - # (None) -> None +def main(pathr, pathw): + # ((str, str)) -> None """ Main function that reads data and calls other functions to process data. + :param pathr: + :param pathw: :return: None """ - with open(PATHR, 'r') as b: + with open(pathr, 'r') as b: before = b.read().split('\n') before = combine_percent(before) - with open(PATHW, 'w') as after: + with open(pathw, 'w') as after: for line in before: if len(line) >= 3 and line[:3] == '% ' and \ before.index(line) > \ @@ -177,4 +165,15 @@ def main(): if __name__ == '__main__': - main() + parser = argparse.ArgumentParser( + description='Receive .tex file with constraints and convert' + ' them viewable metadata.') + parser.add_argument('PATHR', type=str, + help='path of input .tex file, with the current' + ' directory as the starting point', ) + parser.add_argument('PATHW', type=str, + help='path of file to be outputted to, with the current' + ' directory as the starting point') + args = parser.parse_args() + + main(args.PATHR, args.PATHW) diff --git a/eCF/src/__init__.py b/eCF/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/eCF/test/__init__.py b/eCF/test/__init__.py new file mode 100644 index 0000000..e69de29 From 8ca407a1489b3aa300ece845c9387732521b24f7 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 15:31:23 -0400 Subject: [PATCH 336/402] Start test cases for latex_constraint_modifier.py, add DLMF_preprocessing/test/data directory, modify documentatoin in latex_constraint_modifier.py --- .../src/latex_constraint_modifier.py | 6 +++--- DLMF_preprocessing/test/data/in.tex | 0 DLMF_preprocessing/test/data/out.tex | 0 .../test/test_latex_constraint_modifier.py | 17 +++++++++++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 DLMF_preprocessing/test/data/in.tex create mode 100644 DLMF_preprocessing/test/data/out.tex create mode 100644 DLMF_preprocessing/test/test_latex_constraint_modifier.py diff --git a/DLMF_preprocessing/src/latex_constraint_modifier.py b/DLMF_preprocessing/src/latex_constraint_modifier.py index fb21194..72a0a90 100644 --- a/DLMF_preprocessing/src/latex_constraint_modifier.py +++ b/DLMF_preprocessing/src/latex_constraint_modifier.py @@ -138,12 +138,12 @@ def dollarsign(line): def main(pathr, pathw): - # ((str, str)) -> None + # (str, str) -> None """ Main function that reads data and calls other functions to process data. - :param pathr: - :param pathw: + :param pathr: directory of file to be read from + :param pathw: directory of file to be written to :return: None """ with open(pathr, 'r') as b: diff --git a/DLMF_preprocessing/test/data/in.tex b/DLMF_preprocessing/test/data/in.tex new file mode 100644 index 0000000..e69de29 diff --git a/DLMF_preprocessing/test/data/out.tex b/DLMF_preprocessing/test/data/out.tex new file mode 100644 index 0000000..e69de29 diff --git a/DLMF_preprocessing/test/test_latex_constraint_modifier.py b/DLMF_preprocessing/test/test_latex_constraint_modifier.py new file mode 100644 index 0000000..3dfc003 --- /dev/null +++ b/DLMF_preprocessing/test/test_latex_constraint_modifier.py @@ -0,0 +1,17 @@ + +__author__ = 'Kevin Chen' +__status__ = 'Development' + +from unittest import TestCase +from latex_constraint_modifier import * + + +class TestCombinePercent(TestCase): + + +class TestReplace(TestCase): + + +class TestDollarsign(TestCase): + + From 9bc8df2797557bc20ded16353c1248f2c8fad6fa Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 15:33:39 -0400 Subject: [PATCH 337/402] Remove a few useless lines of code --- DLMF_preprocessing/src/latex_constraint_modifier.py | 5 +---- DLMF_preprocessing/test/test_latex_constraint_modifier.py | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/DLMF_preprocessing/src/latex_constraint_modifier.py b/DLMF_preprocessing/src/latex_constraint_modifier.py index 72a0a90..08ddcd7 100644 --- a/DLMF_preprocessing/src/latex_constraint_modifier.py +++ b/DLMF_preprocessing/src/latex_constraint_modifier.py @@ -40,10 +40,7 @@ def find_surrounding(line, function): if line[j] in list(')]}'): count -= 1 if count == 0: - if j == positions[0] + len(function): - positions[0] = positions[1] - else: - positions[1] = j + 1 + positions[1] = j + 1 break return positions[0], positions[1] diff --git a/DLMF_preprocessing/test/test_latex_constraint_modifier.py b/DLMF_preprocessing/test/test_latex_constraint_modifier.py index 3dfc003..ede2571 100644 --- a/DLMF_preprocessing/test/test_latex_constraint_modifier.py +++ b/DLMF_preprocessing/test/test_latex_constraint_modifier.py @@ -15,3 +15,4 @@ class TestReplace(TestCase): class TestDollarsign(TestCase): +class TestMain(TestCase): \ No newline at end of file From 38979015a88336d18074b6511018e66eb734f410 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 15:36:05 -0400 Subject: [PATCH 338/402] Add spacing --- .../test/test_latex_constraint_modifier.py | 16 ++++++++++++---- eCF/test/test_main.py | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/DLMF_preprocessing/test/test_latex_constraint_modifier.py b/DLMF_preprocessing/test/test_latex_constraint_modifier.py index ede2571..f901bf3 100644 --- a/DLMF_preprocessing/test/test_latex_constraint_modifier.py +++ b/DLMF_preprocessing/test/test_latex_constraint_modifier.py @@ -5,14 +5,22 @@ from unittest import TestCase from latex_constraint_modifier import * +import os +PATHR = os.path.dirname(os.path.realpath(__file__)) + '/data/in.tex' +PATHW = os.path.dirname(os.path.realpath(__file__)) + '/data/out.tex' -class TestCombinePercent(TestCase): +#class TestFindSurrounding(TestCase): -class TestReplace(TestCase): +#class TestCombinePercent(TestCase): -class TestDollarsign(TestCase): +#class TestReplace(TestCase): + + +#class TestDollarsign(TestCase): + + +class TestMain(TestCase): -class TestMain(TestCase): \ No newline at end of file diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index fde72f5..9ec83a4 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -48,4 +48,4 @@ def test_gen(self): '\\end{equation}\n' '\n' '\n' - '\\end{document}\n')) \ No newline at end of file + '\\end{document}\n')) From 5cfadac6fb7f202a9cc92286b02ef2919f798888 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 16:09:05 -0400 Subject: [PATCH 339/402] Add unittests to latex_constraint_modifier.py --- DLMF_preprocessing/test/data/correctout.tex | 84 +++++++++++++++++++ DLMF_preprocessing/test/data/in.tex | 70 ++++++++++++++++ DLMF_preprocessing/test/data/out.tex | 0 DLMF_preprocessing/test/data/testout.tex | 84 +++++++++++++++++++ .../test/test_latex_constraint_modifier.py | 23 +++-- eCF/src/mathematica_to_latex.py | 5 +- eCF/test/data/test.tex | 4 +- eCF/test/test_main.py | 6 +- 8 files changed, 255 insertions(+), 21 deletions(-) create mode 100644 DLMF_preprocessing/test/data/correctout.tex delete mode 100644 DLMF_preprocessing/test/data/out.tex create mode 100644 DLMF_preprocessing/test/data/testout.tex diff --git a/DLMF_preprocessing/test/data/correctout.tex b/DLMF_preprocessing/test/data/correctout.tex new file mode 100644 index 0000000..8614bab --- /dev/null +++ b/DLMF_preprocessing/test/data/correctout.tex @@ -0,0 +1,84 @@ + +\documentclass{article} + +\usepackage{amsmath} +\usepackage{amsthm} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} +\usepackage{DLMFfcns} +\usepackage{graphicx} +\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} + +\begin{document} + + +% \constraint{ +% \substitution{ +% \drmfnote{ +% \drmfname{ +% \proof{ +% \mathematicatag{ +% \mathematicareference{ +% \mapletag +% \category + + +\begin{equation} + tests for each metadata (single) +\end{equation} +\begin{flushright} + {\bf C}:~text \\[0.2cm] + {\bf S}:~text \\[0.2cm] + {\bf NOTE}:~text \\[0.2cm] + {\bf NAME}:~text \\[0.2cm] + {\bf PROOF}:~text \\[0.2cm] + {\bf MtT}:~text \\[0.2cm] + {\bf MtR}:~text \\[0.2cm] + {\bf MpT}:~text \\[0.2cm] + {\bf CAT}:~text +\end{flushright} + +\begin{equation} + tests for each metadata (multiple) +\end{equation} +\begin{flushright} + {\bf C}:~a \\[0.2cm] + {\bf C}:~ b \\[0.2cm] + {\bf S}:~a \\[0.2cm] + {\bf S}:~ b \\[0.2cm] + {\bf NOTE}:~a \\[0.2cm] + {\bf NOTE}:~ b \\[0.2cm] + {\bf NAME}:~a \\[0.2cm] + {\bf NAME}:~ b \\[0.2cm] + {\bf PROOF}:~a \\[0.2cm] + {\bf PROOF}:~ b \\[0.2cm] + {\bf MtT}:~${\displaystyle \tt{a }}$ \\[0.2cm] + {\bf MtT}:~${\displaystyle \tt{ b}}$ \\[0.2cm] + {\bf MtR}:~${\displaystyle \text{a }}$ \\[0.2cm] + {\bf MtR}:~${\displaystyle \text{ b}}$ \\[0.2cm] + {\bf MpT}:~${\displaystyle \tt{a }}$ \\[0.2cm] + {\bf MpT}:~${\displaystyle \tt{ b}}$ \\[0.2cm] + {\bf CAT}:~${\displaystyle \text{a }}$ \\[0.2cm] + {\bf CAT}:~${\displaystyle \text{ b}}$ +\end{flushright} + +\begin{equation} + tests for percent combination +\end{equation} +\begin{flushright} + {\bf C}:~ a \\[0.2cm] + {\bf NOTE}:~this is a multiline note. +\end{flushright} + +\begin{equation} + tests for dollarsign conversion +\end{equation} +\begin{flushright} + {\bf C}:~${\displaystyle a}$ ${\displaystyle alreadyconverted}$ +\end{flushright} + + +\end{document} diff --git a/DLMF_preprocessing/test/data/in.tex b/DLMF_preprocessing/test/data/in.tex index e69de29..3a40265 100644 --- a/DLMF_preprocessing/test/data/in.tex +++ b/DLMF_preprocessing/test/data/in.tex @@ -0,0 +1,70 @@ + +\documentclass{article} + +\usepackage{amsmath} +\usepackage{amsthm} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} +\usepackage{DLMFfcns} +\usepackage{graphicx} +\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} + +\begin{document} + + +% \constraint{ +% \substitution{ +% \drmfnote{ +% \drmfname{ +% \proof{ +% \mathematicatag{ +% \mathematicareference{ +% \mapletag +% \category + + +\begin{equation} + tests for each metadata (single) +% \constraint{text} +% \substitution{text} +% \drmfnote{text} +% \drmfname{text} +% \proof{text} +% \mathematicatag{text} +% \mathematicareference{text} +% \mapletag{text} +% \category{text} +\end{equation} + +\begin{equation} + tests for each metadata (multiple) +% \constraint{a & b} +% \substitution{a & b} +% \drmfnote{a & b} +% \drmfname{a & b} +% \proof{a & b} +% \mathematicatag{$\tt{a & b}$} +% \mathematicareference{$\text{a & b}$} +% \mapletag{$\tt{a & b}$} +% \category{$\text{a & b}$} +\end{equation} + +\begin{equation} + tests for percent combination +% \constraint{ +% a} +% \drmfnote{this +% is a +% multiline note.} +\end{equation} + +\begin{equation} + tests for dollarsign conversion +% \constraint{$a$ ${\displaystyle alreadyconverted}$} +\end{equation} + + +\end{document} \ No newline at end of file diff --git a/DLMF_preprocessing/test/data/out.tex b/DLMF_preprocessing/test/data/out.tex deleted file mode 100644 index e69de29..0000000 diff --git a/DLMF_preprocessing/test/data/testout.tex b/DLMF_preprocessing/test/data/testout.tex new file mode 100644 index 0000000..8614bab --- /dev/null +++ b/DLMF_preprocessing/test/data/testout.tex @@ -0,0 +1,84 @@ + +\documentclass{article} + +\usepackage{amsmath} +\usepackage{amsthm} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{breqn} +\usepackage{DLMFmath} +\usepackage{DRMFfcns} +\usepackage{DLMFfcns} +\usepackage{graphicx} +\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} + +\begin{document} + + +% \constraint{ +% \substitution{ +% \drmfnote{ +% \drmfname{ +% \proof{ +% \mathematicatag{ +% \mathematicareference{ +% \mapletag +% \category + + +\begin{equation} + tests for each metadata (single) +\end{equation} +\begin{flushright} + {\bf C}:~text \\[0.2cm] + {\bf S}:~text \\[0.2cm] + {\bf NOTE}:~text \\[0.2cm] + {\bf NAME}:~text \\[0.2cm] + {\bf PROOF}:~text \\[0.2cm] + {\bf MtT}:~text \\[0.2cm] + {\bf MtR}:~text \\[0.2cm] + {\bf MpT}:~text \\[0.2cm] + {\bf CAT}:~text +\end{flushright} + +\begin{equation} + tests for each metadata (multiple) +\end{equation} +\begin{flushright} + {\bf C}:~a \\[0.2cm] + {\bf C}:~ b \\[0.2cm] + {\bf S}:~a \\[0.2cm] + {\bf S}:~ b \\[0.2cm] + {\bf NOTE}:~a \\[0.2cm] + {\bf NOTE}:~ b \\[0.2cm] + {\bf NAME}:~a \\[0.2cm] + {\bf NAME}:~ b \\[0.2cm] + {\bf PROOF}:~a \\[0.2cm] + {\bf PROOF}:~ b \\[0.2cm] + {\bf MtT}:~${\displaystyle \tt{a }}$ \\[0.2cm] + {\bf MtT}:~${\displaystyle \tt{ b}}$ \\[0.2cm] + {\bf MtR}:~${\displaystyle \text{a }}$ \\[0.2cm] + {\bf MtR}:~${\displaystyle \text{ b}}$ \\[0.2cm] + {\bf MpT}:~${\displaystyle \tt{a }}$ \\[0.2cm] + {\bf MpT}:~${\displaystyle \tt{ b}}$ \\[0.2cm] + {\bf CAT}:~${\displaystyle \text{a }}$ \\[0.2cm] + {\bf CAT}:~${\displaystyle \text{ b}}$ +\end{flushright} + +\begin{equation} + tests for percent combination +\end{equation} +\begin{flushright} + {\bf C}:~ a \\[0.2cm] + {\bf NOTE}:~this is a multiline note. +\end{flushright} + +\begin{equation} + tests for dollarsign conversion +\end{equation} +\begin{flushright} + {\bf C}:~${\displaystyle a}$ ${\displaystyle alreadyconverted}$ +\end{flushright} + + +\end{document} diff --git a/DLMF_preprocessing/test/test_latex_constraint_modifier.py b/DLMF_preprocessing/test/test_latex_constraint_modifier.py index f901bf3..ede45e8 100644 --- a/DLMF_preprocessing/test/test_latex_constraint_modifier.py +++ b/DLMF_preprocessing/test/test_latex_constraint_modifier.py @@ -7,20 +7,17 @@ import os PATHR = os.path.dirname(os.path.realpath(__file__)) + '/data/in.tex' -PATHW = os.path.dirname(os.path.realpath(__file__)) + '/data/out.tex' - - -#class TestFindSurrounding(TestCase): - - -#class TestCombinePercent(TestCase): - - -#class TestReplace(TestCase): - - -#class TestDollarsign(TestCase): +PATHW = os.path.dirname(os.path.realpath(__file__)) + '/data/testout.tex' +PATHC = os.path.dirname(os.path.realpath(__file__)) + '/data/correctout.tex' class TestMain(TestCase): + def test_generation(self): + main(PATHR, PATHW) + with open(PATHW, 'r') as r: + out = r.read() + with open(PATHC, 'r') as c: + correct = c.read() + + self.assertEqual(out, correct) diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index c87392c..154be73 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -969,10 +969,9 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', references[mtt] + '}$}' except KeyError: pass - line += '\n\\end{equation}' - - # print(line) + line = ' ' + line + '\n\\end{equation}' + print line latex.write(line + '\n') latex.write('\n\n\\end{document}\n') diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index fbcacdb..7ff4f9a 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -16,13 +16,13 @@ \begin{equation} -equation + equation % \mathematicatag{$\tt{description, number}$} % \mathematicareference{$\text{test reference line 1&test reference line 2}$} \end{equation} \begin{equation} -equation + equation % \mathematicatag{$\tt{nodescription, number}$} \end{equation} diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 9ec83a4..4ccaa9b 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -14,7 +14,7 @@ class TestMain(TestCase): - def test_gen(self): + def test_generation(self): main(pathw=PATHW, pathr=PATHR, pathref=PATHREF) with open(PATHW, 'r') as l: latex = l.read() @@ -37,13 +37,13 @@ def test_gen(self): '\n' '\n' '\\begin{equation}\n' - 'equation\n' + ' equation\n' '% \\mathematicatag{$\\tt{description, number}$}\n' '% \\mathematicareference{$\\text{test reference line 1&test reference line 2}$}\n' '\\end{equation}\n' '\n' '\\begin{equation}\n' - 'equation\n' + ' equation\n' '% \\mathematicatag{$\\tt{nodescription, number}$}\n' '\\end{equation}\n' '\n' From a8ef285412a7015aa7bf9082ab316814f4d6fd6d Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 16:11:13 -0400 Subject: [PATCH 340/402] Remove import * --- DLMF_preprocessing/test/test_latex_constraint_modifier.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DLMF_preprocessing/test/test_latex_constraint_modifier.py b/DLMF_preprocessing/test/test_latex_constraint_modifier.py index ede45e8..77ea343 100644 --- a/DLMF_preprocessing/test/test_latex_constraint_modifier.py +++ b/DLMF_preprocessing/test/test_latex_constraint_modifier.py @@ -3,9 +3,10 @@ __status__ = 'Development' from unittest import TestCase -from latex_constraint_modifier import * +from latex_constraint_modifier import main import os + PATHR = os.path.dirname(os.path.realpath(__file__)) + '/data/in.tex' PATHW = os.path.dirname(os.path.realpath(__file__)) + '/data/testout.tex' PATHC = os.path.dirname(os.path.realpath(__file__)) + '/data/correctout.tex' From 3513c44b17d4e4bc49f31883633cb79e59db4970 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 16:23:34 -0400 Subject: [PATCH 341/402] Fix minor issues --- DLMF_preprocessing/src/latex_constraint_modifier.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DLMF_preprocessing/src/latex_constraint_modifier.py b/DLMF_preprocessing/src/latex_constraint_modifier.py index 08ddcd7..56721f4 100644 --- a/DLMF_preprocessing/src/latex_constraint_modifier.py +++ b/DLMF_preprocessing/src/latex_constraint_modifier.py @@ -18,7 +18,7 @@ def find_surrounding(line, function): - # (str, str) -> tuple + # (str, str) -> list """ Finds the indices of the beginning and end of a function; this is the main function that powers the converter. @@ -43,7 +43,7 @@ def find_surrounding(line, function): positions[1] = j + 1 break - return positions[0], positions[1] + return positions def combine_percent(lines): @@ -169,8 +169,8 @@ def main(pathr, pathw): help='path of input .tex file, with the current' ' directory as the starting point', ) parser.add_argument('PATHW', type=str, - help='path of file to be outputted to, with the current' - ' directory as the starting point') + help='path of file to be outputted to, with the' + ' current directory as the starting point') args = parser.parse_args() main(args.PATHR, args.PATHW) From 26fcd49de3df72a0e4c4fea6614cb13c85aaf749 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Wed, 24 Aug 2016 16:33:47 -0400 Subject: [PATCH 342/402] Change display of log to ln --- eCF/data/functions | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eCF/data/functions b/eCF/data/functions index 5f63087..5a51260 100644 --- a/eCF/data/functions +++ b/eCF/data/functions @@ -75,8 +75,8 @@ KroneckerDelta, \Kronecker, ({-}{0}, {-}{-}), () LaguerreL, \Laguerre, ({-}@{-}, [-]{-}@{-}), () LerchPhi, \LerchPhi, (@{-}{-}{-}), (HurwitzLerchPhi) - Log, \log, (@{-}), (PolyLog, LogInt, LogGamma, ProductLog) - LogGamma, \log@@, ({\EulerGamma@{-}}), () + Log, \ln, (@{-}), (PolyLog, LogInt, LogGamma, ProductLog) + LogGamma, \ln, (@@{\EulerGamma@{-}}), () LogIntegral, \LogInt, (@{-}), () LucasL, \LucasL, ({-}, {-}@{-}), () Max, \max, ((-,-), (-,-,-)), () From 1f2546f058eb757c640e52a6837fcedf99fbc430 Mon Sep 17 00:00:00 2001 From: Kevin Chen Date: Wed, 24 Aug 2016 16:38:39 -0400 Subject: [PATCH 343/402] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 095c02d..8b5f07f 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,6 @@ The project is located in the `maple2latex` folder. This Python code (mostly developed by Kevin Chen) translates Mathematica files to LaTeX. -The project is currently awaiting approval to be merged into the main branch of the repository. - ## KLSadd Insertion Project `linetest.py` and `updateChapters.py` written by Rahul Shah and Edward Bian From e22364ce9bbbc1f11d66055f185cc8a9bd4cf2d4 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 25 Aug 2016 15:31:51 -0400 Subject: [PATCH 344/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 2 + .../test/test_fix_chapter_sort.py | 124 +++++++++--------- 2 files changed, 64 insertions(+), 62 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index ea703e2..e715944 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -87,6 +87,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref :param chap: The destination of inserted sections. :param word: The keyword that is being processed. :param sortloc: The location in the list of words, of the word being sorted. + :param klsaddparas: + :param sortmatch_2: :return: This function outputs the processed chapter into a larger function for further processing. """ hyper_headers_chap = [] diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index af24eb0..205bf32 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -1,62 +1,62 @@ -# -# __author__ = 'Edward Bian' -# __status__ = 'Development' -# -# from unittest import TestCase -# from updateChapters import fix_chapter_sort -# -# -# class TestFixChapterSort(TestCase): -# def test_fix_chapter_sort(self): -# self.assertEquals(fix_chapter_sort(['%' -# , '\\subsection*{9.1 Wilson}' -# , '\\paragraph{Hypergeometric Representation}' -# , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' -# , 'in $a,b,c,d$.' -# , '\\renewcommand{\\refname}{Standard references}'] -# ,['\\section{Wilson}\\index{Wilson polynomials}' -# ,'\\subsection*{Hypergeometric representation}' -# ,'\\begin{eqnarray}' -# ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' -# ,'\\end{eqnarray}' -# ,'\\subsection*{Orthogonality relation}' -# ,'\\begin{eqnarray}' -# ,'\\label{OrthIWilson}' -# ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' -# ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9]) -# ,['\\section{Wilson}\\index{Wilson polynomials}' -# , '\\subsection*{Hypergeometric representation}' -# , '\\begin{eqnarray}' -# , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' -# , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' -# , '\\subsection*{Orthogonality relation}' -# , '\\begin{eqnarray}' -# , '\\label{OrthIWilson}' -# , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' -# , '\\end{eqnarray}']) -# self.assertEquals(fix_chapter_sort(['%' -# , '\\subsection*{9.1 Wilson}' -# , '\\paragraph{Orthogonality}' -# , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' -# , 'in $a,b,c,d$.' -# , '\\renewcommand{\\refname}{Standard references}'] -# , ['\\section{Wilson}\\index{Wilson polynomials}' -# , '\\subsection*{Hypergeometric representation}' -# , '\\begin{eqnarray}' -# , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' -# , '\\end{eqnarray}' -# , '\\subsection*{Orthogonality}' -# , '\\begin{eqnarray}' -# , '\\label{OrthIWilson}' -# , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' -# , '\\end{eqnarray}'], 'Memes', 0, [1, 2, 5], [], [0, 1, 5, 9]) -# , ['\\section{Wilson}\\index{Wilson polynomials}' -# , '\\subsection*{Hypergeometric representation}' -# , '\\begin{eqnarray}' -# , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' -# , '\\end{eqnarray}' -# , '\\subsection*{Orthogonality}' -# , '\\begin{eqnarray}' -# , '\\label{OrthIWilson}' -# , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' -# , '\\end{eqnarray}']) \ No newline at end of file + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import fix_chapter_sort + + +class TestFixChapterSort(TestCase): + def test_fix_chapter_sort(self): + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + ,['\\section{Wilson}\\index{Wilson polynomials}' + ,'\\subsection*{Hypergeometric representation}' + ,'\\begin{eqnarray}' + ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + ,'\\end{eqnarray}' + ,'\\subsection*{Orthogonality relation}' + ,'\\begin{eqnarray}' + ,'\\label{OrthIWilson}' + ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9],[[0, 0], [0, 0]]) + ,['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Orthogonality}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Memes', 0, [1, 2, 5], [], [0, 1, 5, 9],[[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) \ No newline at end of file From 0cac986c138e4cf910ab4c3a3b4fc08d5afa0f3b Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 25 Aug 2016 16:27:03 -0400 Subject: [PATCH 345/402] Unit Tests --- .../test/test_fix_chapter_sort.py | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 205bf32..8f1e6aa 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -49,7 +49,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Memes', 0, [1, 2, 5], [], [0, 1, 5, 9],[[0, 0], [0, 0]]) + , '\\end{eqnarray}'], 'Orthogonality', 0, [1, 2, 5], [], [0, 1, 5, 9],[[0, 0], [0, 0]]) , ['\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' @@ -58,5 +58,57 @@ def test_fix_chapter_sort(self): , '\\subsection*{Orthogonality}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}\\paragraph{\\bf KLS Addendum: Orthogonality}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Special Value}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Special value', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Special value}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Symmetry}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Symmetry', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' , '\\end{eqnarray}']) \ No newline at end of file From 042010c92ba4384570f1afde5157112eed2ddad2 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Thu, 25 Aug 2016 16:53:26 -0400 Subject: [PATCH 346/402] Unit Tests --- KLSadd_insertion/src/updateChapters.py | 5 +++-- KLSadd_insertion/test/test_fix_chapter_sort.py | 16 +++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index e715944..1909da2 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -161,8 +161,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref chap9 = 1 else: offset = sorter_check[sortloc][1] - if special_input == 1: - offset = 8 + # if special_input == 1: + # offset = 8 if special_input in (2, 3): name_chap = 'hypergeometric representation' @@ -201,6 +201,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref # print hyper_headers_chap # print word sortmatch_2.append(k_hyper_sub_chap) + print khyper_header_chap return chap def cut_words(word_to_find, word_to_search_in): diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 8f1e6aa..c618ea1 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -36,11 +36,12 @@ def test_fix_chapter_sort(self): , '\\end{eqnarray}']) self.assertEquals(fix_chapter_sort(['%' , '\\subsection*{9.1 Wilson}' + , '\\subsection*{14.1 Askey}' , '\\paragraph{Orthogonality}' , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' , 'in $a,b,c,d$.' , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Wilson}\\index{Wilson polynomials}' + , ['\\section{Askey}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' @@ -49,8 +50,8 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Orthogonality', 0, [1, 2, 5], [], [0, 1, 5, 9],[[0, 0], [0, 0]]) - , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\end{eqnarray}'], 'Orthogonality', 0, [1, 2, 3, 6], [], [0, 1, 5, 9],[[1, 0], [1, 0]]) + , ['\\section{Askey}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' @@ -87,12 +88,13 @@ def test_fix_chapter_sort(self): , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' , '\\end{eqnarray}']) self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' + , '\\subsection*{9.1 Wilson)' + , '\\subsection*{9.2 Pseudo Jacobi (or Routh-Romanovski)}' , '\\paragraph{Symmetry}' , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' , 'in $a,b,c,d$.' , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Wilson}\\index{Wilson polynomials}' + , ['\\section{Pseudo Jacobi}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' @@ -101,8 +103,8 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Symmetry', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) - , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\end{eqnarray}'], 'Symmetry', 0, [1, 2, 3, 6], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Pseudo Jacobi}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' From 3190529428bce5072298f0b1b96c096e10646a89 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 09:52:37 -0400 Subject: [PATCH 347/402] Testing Something --- KLSadd_insertion/test/test_fix_chapter_sort.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index c618ea1..01a8d38 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -72,7 +72,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}' - , '\\subsection*{Orthogonality}' + , '\\section*{Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' @@ -82,7 +82,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Special value}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Orthogonality}' + , '\\section*{Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' From 84cbb61d7b27d24a69bf3b81303e9adf945180ff Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 09:56:05 -0400 Subject: [PATCH 348/402] Testing Something --- KLSadd_insertion/test/test_fix_chapter_sort.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 01a8d38..f7d9c73 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -72,7 +72,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}' - , '\\section*{Hypergeometric representation}' + , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' @@ -82,7 +82,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Special value}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\section*{Hypergeometric representation}' + , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' From d7fee73c35e65c9d3e3e4fe962d61a7dfc789829 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 09:59:11 -0400 Subject: [PATCH 349/402] Testing Something --- KLSadd_insertion/test/test_fix_chapter_sort.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index f7d9c73..790d87f 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -72,7 +72,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}' - , '\\subsection*{Hypergeometric representation}' + , '\\subsection{Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' @@ -82,7 +82,7 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Special value}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Hypergeometric representation}' + , '\\subsection{Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' From 74b0756bbbf65094943c67854f5459713f3ab5d0 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 11:01:19 -0400 Subject: [PATCH 350/402] Testing Something --- .../test/test_fix_chapter_sort.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 790d87f..af7f0bf 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -113,4 +113,30 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Basic Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Basic Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' , '\\end{eqnarray}']) \ No newline at end of file From 174da2236f219a746a1a731f128eb60b7ca28a9f Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 11:29:54 -0400 Subject: [PATCH 351/402] Testing Something --- KLSadd_insertion/test/test_fix_chapter_sort.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index af7f0bf..d0b6372 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -119,23 +119,25 @@ def test_fix_chapter_sort(self): , '\\paragraph{Hypergeometric Representation}' , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' , 'in $a,b,c,d$.' + , '\\paragraph{Orthogonality relation}' + , 'Words and Stuff' , '\\renewcommand{\\refname}{Standard references}'] , ['\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}' - , '\\subsection*{Basic Hypergeometric representation}' + , '\\subsection*{Orthogonality relation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5, 7], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) , ['\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Basic Hypergeometric representation}' + , '\\subsection*{Orthogonality relation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' From cb607a37db63a3586e0c060965624f9e9bbc3053 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 11:32:47 -0400 Subject: [PATCH 352/402] Testing Something --- KLSadd_insertion/test/test_fix_chapter_sort.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index d0b6372..af7f0bf 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -119,25 +119,23 @@ def test_fix_chapter_sort(self): , '\\paragraph{Hypergeometric Representation}' , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' , 'in $a,b,c,d$.' - , '\\paragraph{Orthogonality relation}' - , 'Words and Stuff' , '\\renewcommand{\\refname}{Standard references}'] , ['\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}' - , '\\subsection*{Orthogonality relation}' + , '\\subsection*{Basic Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5, 7], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) , ['\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Orthogonality relation}' + , '\\subsection*{Basic Hypergeometric representation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' From b398a63f57d9d76c12f1042942448cdb8cbfbc84 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 26 Aug 2016 14:20:07 -0400 Subject: [PATCH 353/402] Testing Something --- .../test/test_fix_chapter_sort.py | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index af7f0bf..8a71fd4 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -139,4 +139,24 @@ def test_fix_chapter_sort(self): , '\\begin{eqnarray}' , '\\label{OrthIWilson}' , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) \ No newline at end of file + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Symmetry}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + ,'\\paragraph{Trivial Symmetry}' + , 'Words' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + ,'%'] + , 'Symmetry', 0, [1, 2, 4, 6], [], [0, 1, 5], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric\\paragraph{\\bf KLS Addendum: Symmetry}\nWords' + , '%']) \ No newline at end of file From 46e8cd22b1a709f0974863a849b72d2575d7f02f Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 26 Aug 2016 16:06:25 -0400 Subject: [PATCH 354/402] Add conversion for E to \expe and add conversion for trig and hyperbolic functions with powers following it --- DLMF_preprocessing/test/data/correctout.tex | 6 +-- DLMF_preprocessing/test/data/in.tex | 6 +-- DLMF_preprocessing/test/data/testout.tex | 6 +-- eCF/src/mathematica_to_latex.py | 52 ++++++++++++++------- eCF/test/data/test.tex | 6 +-- eCF/test/test_main.py | 6 +-- eCF/test/test_master_function.py | 31 ++++++++---- eCF/test/test_replace_operators.py | 2 + 8 files changed, 63 insertions(+), 52 deletions(-) diff --git a/DLMF_preprocessing/test/data/correctout.tex b/DLMF_preprocessing/test/data/correctout.tex index 8614bab..7b049bf 100644 --- a/DLMF_preprocessing/test/data/correctout.tex +++ b/DLMF_preprocessing/test/data/correctout.tex @@ -2,14 +2,10 @@ \documentclass{article} \usepackage{amsmath} -\usepackage{amsthm} -\usepackage{amssymb} \usepackage{amsfonts} -\usepackage{breqn} +\usepackage{amssymb} \usepackage{DLMFmath} \usepackage{DRMFfcns} -\usepackage{DLMFfcns} -\usepackage{graphicx} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} \begin{document} diff --git a/DLMF_preprocessing/test/data/in.tex b/DLMF_preprocessing/test/data/in.tex index 3a40265..b37dee5 100644 --- a/DLMF_preprocessing/test/data/in.tex +++ b/DLMF_preprocessing/test/data/in.tex @@ -2,14 +2,10 @@ \documentclass{article} \usepackage{amsmath} -\usepackage{amsthm} -\usepackage{amssymb} \usepackage{amsfonts} -\usepackage{breqn} +\usepackage{amssymb} \usepackage{DLMFmath} \usepackage{DRMFfcns} -\usepackage{DLMFfcns} -\usepackage{graphicx} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} \begin{document} diff --git a/DLMF_preprocessing/test/data/testout.tex b/DLMF_preprocessing/test/data/testout.tex index 8614bab..7b049bf 100644 --- a/DLMF_preprocessing/test/data/testout.tex +++ b/DLMF_preprocessing/test/data/testout.tex @@ -2,14 +2,10 @@ \documentclass{article} \usepackage{amsmath} -\usepackage{amsthm} -\usepackage{amssymb} \usepackage{amsfonts} -\usepackage{breqn} +\usepackage{amssymb} \usepackage{DLMFmath} \usepackage{DRMFfcns} -\usepackage{DLMFfcns} -\usepackage{graphicx} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} \begin{document} diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 154be73..755e82a 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -43,10 +43,13 @@ LEFT_BRACKETS = list('([{') RIGHT_BRACKETS = list(')]}') -TRIG = ('ArcCos', 'ArcCosh', 'ArcCot', 'ArcCoth', 'ArcCsc', 'ArcCsch', - 'ArcSec', 'ArcSech', 'ArcSin', 'ArcSinh', 'ArcTan', 'ArcTanh', - 'Cos', 'Cosh', 'Cot', 'Coth', 'Csc', 'Csch', 'Sec', 'Sech', 'Sinc', - 'Sin', 'Sinh', 'Tan', 'Tanh') +TRIG_OUTER = ('ArcCos', 'ArcCosh', 'ArcCot', 'ArcCoth', 'ArcCsc', 'ArcCsch', + 'ArcSec', 'ArcSech', 'ArcSin', 'ArcSinh', 'ArcTan', 'ArcTanh', + 'Sinc') +TRIG_INNER = ('Cos', 'Cot', 'Csc', 'Sec', 'Sin', 'Tan', + 'Cosh', 'Coth', 'Csch', 'Sech', 'Sinh', 'Tanh') +E_EXCEPT = ('EulerGamma', 'Epsilon', 'EulerConstant', 'EulerBeta', + 'ExpIntn', 'ExpInti', 'CompEllIntE', 'CompEllIntK') def find_surrounding(line, function, ex=(), start=0): @@ -201,7 +204,6 @@ def master_function(line, params): m, l, sep, ex = params[:5] sep = [i.split('-') for i in sep] multi = list('+-*/') - for _ in range(line.count(m)): try: pos @@ -234,15 +236,27 @@ def master_function(line, params): # If the arguments in a trig function are more than one variable, # then instead of "@@" make it "@" - if m in TRIG and \ + if (m in TRIG_OUTER or m in TRIG_INNER) and \ sum([args[0].count(element) for element in multi]) != 0: sep[0][0] = sep[0][0].replace('@@', '@') # Add parens around ambiguous functions (trig functions) - if m in TRIG and len(line) != pos[1] and line[pos[1]] == '^': + if m in TRIG_OUTER and len(line) != pos[1] and line[pos[1]] == '^': line = line[:pos[0]] + '(' + l + \ '%s'.join(sep[[len(y) for y in sep] .index(len(args) + 1)]) + ')' + line[pos[1]:] + # Add the inner square, like \cos^2{x} + elif m in TRIG_INNER and len(line) != pos[1] and \ + line[pos[1]] == '^': + if line[pos[1] + 1] == '{' and line[pos[1] + 3] == '}': + line = line[:pos[0]] + l + line[pos[1]:pos[1] + 4] + \ + '%s'.join(sep[[len(y) for y in sep]. + index(len(args) + 1)]) + line[pos[1] + 4:] + else: + line = line[:pos[0]] + '(' + l + \ + '%s'.join(sep[[len(y) for y in sep]. + index(len(args) + 1)]) + ')' + \ + line[pos[1]:] else: line = line[:pos[0]] + l + \ '%s'.join(sep[[len(y) for y in sep]. @@ -316,7 +330,6 @@ def carat(line): while i != len(line): if line[i] == '^': - print(line) k = search(line, i, list('*/+-=, '), 1) if line[i + 1] == '(' and line[k] == ')': line = line[:i] + '^{' + line[i + 2:k] + '}' + line[k + 1:] @@ -868,6 +881,15 @@ def replace_operators(line): line = line.replace('GoldenRatio', '\\GoldenRatio') line = line.replace('Pi', '\\pi') line = line.replace('CalculateData`Private`nu', '\\nu') + line = line.replace('\\Jacobisn@{t}{m ^ {2}} ^ {2}', + '\\Jacobisn^{2}@{t}{m ^ {2}}') + + # Replaces "E" constant with "\\expe" + for word in E_EXCEPT: + line = line.replace(word, word.replace('E', 'A')) + line = line.replace('E', '\\expe') + for word in E_EXCEPT: + line = line.replace(word.replace('E', 'A'), word) return line @@ -893,7 +915,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'Identities.m', + pathr=DIR_NAME + 'IdentitiesTest.m', pathref=DIR_NAME + 'References.txt'): # ((str, str)) -> None """ @@ -912,14 +934,10 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', latex.write('\n\\documentclass{article}\n\n' '\\usepackage{amsmath}\n' - '\\usepackage{amsthm}\n' - '\\usepackage{amssymb}\n' '\\usepackage{amsfonts}\n' - '\\usepackage{breqn}\n' + '\\usepackage{amssymb}\n' '\\usepackage{DLMFmath}\n' '\\usepackage{DRMFfcns}\n' - '\\usepackage{DLMFfcns}\n' - '\\usepackage{graphicx}\n' '\\usepackage[paperwidth=15in, paperheight=20in, ' 'margin=0.5in]{geometry}\n\n' '\\begin{document}\n\n\n') @@ -940,11 +958,11 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', line = line.replace('EulerGamma', '\\EulerConstant') + line = carat(line) + for func in FUNCTION_CONVERSIONS: line = master_function(line, func) - line = carat(line) - line = beta(line) line = cfk(line) line = gamma(line) @@ -971,7 +989,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', pass line = ' ' + line + '\n\\end{equation}' - print line + # print line latex.write(line + '\n') latex.write('\n\n\\end{document}\n') diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index 7ff4f9a..1e19a81 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -2,14 +2,10 @@ \documentclass{article} \usepackage{amsmath} -\usepackage{amsthm} -\usepackage{amssymb} \usepackage{amsfonts} -\usepackage{breqn} +\usepackage{amssymb} \usepackage{DLMFmath} \usepackage{DRMFfcns} -\usepackage{DLMFfcns} -\usepackage{graphicx} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} \begin{document} diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 4ccaa9b..8c38723 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -23,14 +23,10 @@ def test_generation(self): '\\documentclass{article}\n' '\n' '\\usepackage{amsmath}\n' - '\\usepackage{amsthm}\n' - '\\usepackage{amssymb}\n' '\\usepackage{amsfonts}\n' - '\\usepackage{breqn}\n' + '\\usepackage{amssymb}\n' '\\usepackage{DLMFmath}\n' '\\usepackage{DRMFfcns}\n' - '\\usepackage{DLMFfcns}\n' - '\\usepackage{graphicx}\n' '\\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry}\n' '\n' '\\begin{document}\n' diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index 56f20f8..53d0025 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -25,10 +25,11 @@ FUNCTION_CONVERSIONS[index] = tuple(FUNCTION_CONVERSIONS[index]) FUNCTION_CONVERSIONS = tuple(FUNCTION_CONVERSIONS) -TRIG = ('ArcCos', 'ArcCosh', 'ArcCot', 'ArcCoth', 'ArcCsc', 'ArcCsch', - 'ArcSec', 'ArcSech', 'ArcSin', 'ArcSinh', 'ArcTan', 'ArcTanh', - 'Cos', 'Cosh', 'Cot', 'Coth', 'Csc', 'Csch', 'Sec', 'Sech', 'Sinc', - 'Sin', 'Sinh', 'Tan', 'Tanh') +TRIG_OUTER = ('ArcCos', 'ArcCosh', 'ArcCot', 'ArcCoth', 'ArcCsc', 'ArcCsch', + 'ArcSec', 'ArcSech', 'ArcSin', 'ArcSinh', 'ArcTan', 'ArcTanh', + 'Sinc') +TRIG_INNER = ('Cos', 'Cot', 'Csc', 'Sec', 'Sin', 'Tan', + 'Cosh', 'Coth', 'Csch', 'Sech', 'Sinh', 'Tanh') MULTI = list('+-*/') @@ -73,18 +74,28 @@ def test_conversion(self): else: self.assertEqual(master_function(before, function), after) self.assertEqual(master_function('--{0}--'.format(before), function), '--{0}--'.format(after)) - if function[0] in TRIG: + + # Test single and double "@" signs + if function[0] in TRIG_OUTER or function[0] in TRIG_INNER: for sep in MULTI: before2 = before[:-1] + sep + 'b]' after2 = after.replace('@@', '@')[:-1] + sep + 'b}' self.assertEqual(master_function(before2, function), after2) self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) - before2 += '^' - after2 = '(' + after2 + ')^' - self.assertEqual(master_function(before2, function), after2) - self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) - + # Test parentheses placement for powers in functions + if function[0] in TRIG_OUTER: + before2 = before + '^' + after2 = '(' + after + ')^' + self.assertEqual(master_function(before2, function), after2) + self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) + if function[0] in TRIG_INNER: + before2 = before + '^{b}' + after2 = after[:-5] + '^{b}@@{a}' + self.assertEqual(master_function(before2, function), after2) + self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) + + # Test an exception if function[0] == 'D': self.assertEqual(master_function('\\[Delta]', function), '\\[Delta]') diff --git a/eCF/test/test_replace_operators.py b/eCF/test/test_replace_operators.py index d129ce2..e88fac5 100644 --- a/eCF/test/test_replace_operators.py +++ b/eCF/test/test_replace_operators.py @@ -34,6 +34,8 @@ def test_constants(self): self.assertEqual(replace_operators('GoldenRatio'), '\\GoldenRatio') self.assertEqual(replace_operators('Pi'), '\\pi') self.assertEqual(replace_operators('CalculateData`Private`nu'), '\\nu') + self.assertEqual(replace_operators('E EulerGamma Epsilon EulerConstant EulerBeta ExpIntn ExpInti CompEllIntE CompEllIntK'), + '\\expe EulerGamma Epsilon EulerConstant EulerBeta ExpIntn ExpInti CompEllIntE CompEllIntK') def test_with_percent(self): self.assertEqual(replace_operators('(%('), '\\left( %(') From e9e1bbdd5b21ad43b7be7a347e1d2dab62d5d441 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 26 Aug 2016 16:21:57 -0400 Subject: [PATCH 355/402] Fix test cases for more coverage --- eCF/test/test_master_function.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eCF/test/test_master_function.py b/eCF/test/test_master_function.py index 53d0025..41ef177 100644 --- a/eCF/test/test_master_function.py +++ b/eCF/test/test_master_function.py @@ -83,12 +83,12 @@ def test_conversion(self): self.assertEqual(master_function(before2, function), after2) self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) - # Test parentheses placement for powers in functions - if function[0] in TRIG_OUTER: - before2 = before + '^' - after2 = '(' + after + ')^' - self.assertEqual(master_function(before2, function), after2) - self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) + before2 = before + '^{b+c}' + after2 = '(' + after + ')^{b+c}' + self.assertEqual(master_function(before2, function), after2) + self.assertEqual(master_function('--{0}--'.format(before2), function), '--{0}--'.format(after2)) + + # Test powers for trig and hyperbolic functions if function[0] in TRIG_INNER: before2 = before + '^{b}' after2 = after[:-5] + '^{b}@@{a}' From 015f7dda8d409f140a208dcfe841e1e57e002307 Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Fri, 26 Aug 2016 16:40:53 -0400 Subject: [PATCH 356/402] Add line to generation --- DLMF_preprocessing/test/data/correctout.tex | 1 + DLMF_preprocessing/test/data/in.tex | 1 + DLMF_preprocessing/test/data/testout.tex | 1 + eCF/src/mathematica_to_latex.py | 5 +++-- eCF/test/data/test.tex | 1 + eCF/test/test_main.py | 1 + 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/DLMF_preprocessing/test/data/correctout.tex b/DLMF_preprocessing/test/data/correctout.tex index 7b049bf..f6d7a9f 100644 --- a/DLMF_preprocessing/test/data/correctout.tex +++ b/DLMF_preprocessing/test/data/correctout.tex @@ -4,6 +4,7 @@ \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} +\usepackage{breqn} \usepackage{DLMFmath} \usepackage{DRMFfcns} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} diff --git a/DLMF_preprocessing/test/data/in.tex b/DLMF_preprocessing/test/data/in.tex index b37dee5..cdd1670 100644 --- a/DLMF_preprocessing/test/data/in.tex +++ b/DLMF_preprocessing/test/data/in.tex @@ -4,6 +4,7 @@ \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} +\usepackage{breqn} \usepackage{DLMFmath} \usepackage{DRMFfcns} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} diff --git a/DLMF_preprocessing/test/data/testout.tex b/DLMF_preprocessing/test/data/testout.tex index 7b049bf..f6d7a9f 100644 --- a/DLMF_preprocessing/test/data/testout.tex +++ b/DLMF_preprocessing/test/data/testout.tex @@ -4,6 +4,7 @@ \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} +\usepackage{breqn} \usepackage{DLMFmath} \usepackage{DRMFfcns} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} diff --git a/eCF/src/mathematica_to_latex.py b/eCF/src/mathematica_to_latex.py index 755e82a..f97771d 100644 --- a/eCF/src/mathematica_to_latex.py +++ b/eCF/src/mathematica_to_latex.py @@ -915,7 +915,7 @@ def replace_vars(line): def main(pathw=DIR_NAME + 'newIdentities.tex', - pathr=DIR_NAME + 'IdentitiesTest.m', + pathr=DIR_NAME + 'Identities.m', pathref=DIR_NAME + 'References.txt'): # ((str, str)) -> None """ @@ -936,6 +936,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', '\\usepackage{amsmath}\n' '\\usepackage{amsfonts}\n' '\\usepackage{amssymb}\n' + '\\usepackage{breqn}\n' '\\usepackage{DLMFmath}\n' '\\usepackage{DRMFfcns}\n' '\\usepackage[paperwidth=15in, paperheight=20in, ' @@ -989,7 +990,7 @@ def main(pathw=DIR_NAME + 'newIdentities.tex', pass line = ' ' + line + '\n\\end{equation}' - # print line + print line latex.write(line + '\n') latex.write('\n\n\\end{document}\n') diff --git a/eCF/test/data/test.tex b/eCF/test/data/test.tex index 1e19a81..bef7adc 100644 --- a/eCF/test/data/test.tex +++ b/eCF/test/data/test.tex @@ -4,6 +4,7 @@ \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} +\usepackage{breqn} \usepackage{DLMFmath} \usepackage{DRMFfcns} \usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry} diff --git a/eCF/test/test_main.py b/eCF/test/test_main.py index 8c38723..f102f6d 100644 --- a/eCF/test/test_main.py +++ b/eCF/test/test_main.py @@ -25,6 +25,7 @@ def test_generation(self): '\\usepackage{amsmath}\n' '\\usepackage{amsfonts}\n' '\\usepackage{amssymb}\n' + '\\usepackage{breqn}\n' '\\usepackage{DLMFmath}\n' '\\usepackage{DRMFfcns}\n' '\\usepackage[paperwidth=15in, paperheight=20in, margin=0.5in]{geometry}\n' From 260e0db69f60371f38f6716928125668687a8bbd Mon Sep 17 00:00:00 2001 From: KChen1250 Date: Tue, 6 Sep 2016 17:07:48 -0400 Subject: [PATCH 357/402] Add fix for spacing before constraing --- DLMF_preprocessing/src/latex_constraint_modifier.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DLMF_preprocessing/src/latex_constraint_modifier.py b/DLMF_preprocessing/src/latex_constraint_modifier.py index 56721f4..f58c117 100644 --- a/DLMF_preprocessing/src/latex_constraint_modifier.py +++ b/DLMF_preprocessing/src/latex_constraint_modifier.py @@ -144,7 +144,7 @@ def main(pathr, pathw): :return: None """ with open(pathr, 'r') as b: - before = b.read().split('\n') + before = [c.replace(' %', '%') for c in b.read().split('\n')] before = combine_percent(before) From 769f962c64ee07bf7388c954dba4ba139046c4af Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 9 Sep 2016 16:48:45 -0400 Subject: [PATCH 358/402] Unit test fixes --- KLSadd_insertion/src/updateChapters.py | 57 +++--- KLSadd_insertion/test/test_chap1_placer.py | 2 +- KLSadd_insertion/test/test_fix_chapter.py | 162 ++++++++++++++++++ .../test/test_fix_chapter_sort.py | 2 +- .../test/test_generic_functions.py | 2 +- .../test/test_reference_placer.py | 6 +- 6 files changed, 203 insertions(+), 28 deletions(-) create mode 100644 KLSadd_insertion/test/test_fix_chapter.py diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 1909da2..d0e162c 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -35,7 +35,7 @@ def chap1placer(chap1, kls, klsaddparas): intro_to_add = ''.join(kls_sub_chap1) chap1 = chap1[:len(chap1)-1] chap1 = ''.join(chap1) - total_chap1 = chap1 + "\\paragraph{\\large\\bf KLS Addendum: Generalities}" + intro_to_add + "\\end{document}" + total_chap1 = chap1 + "\\paragraph{\\bf KLS Addendum: Generalities}" + intro_to_add + "\\end{document}" return total_chap1 @@ -96,12 +96,15 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref special_input = 0 name_chap = word.lower() + print name_chap if name_chap == "orthogonality": special_input = 1 elif name_chap == "special value": special_input = 2 elif name_chap == "symmetry": special_input = 3 + elif name_chap == "bilateral generating function": + special_input = 4 khyper_header_chap = [] k_hyper_sub_chap = [] @@ -115,7 +118,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) if temp.lower() == 'wilson': chapterstart = True - if special_input in (0, 2) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ + if special_input in (0, 2, 4) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ (special_input in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): for item in klsaddparas: @@ -135,9 +138,13 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref item = 0 while item < len(khyper_header_chap): try: - if khyper_header_chap[item] == khyper_header_chap[item+1]: + if khyper_header_chap[item] == khyper_header_chap[item + 1] and "generating functions" in name_chap: + k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: Bilateral generating functions}" + k_hyper_sub_chap[item + 1] + khyper_header_chap[item] = "memes" + k_hyper_sub_chap[item] = "memes" + elif khyper_header_chap[item] == khyper_header_chap[item+1]: k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: " + \ - word + "}\n" + k_hyper_sub_chap[item + 1] + word + "}" + k_hyper_sub_chap[item + 1] khyper_header_chap[item] = "memes" k_hyper_sub_chap[item] = "memes" else: @@ -179,7 +186,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref temp = line[9:line.find("}", 7)] if name_chap in line.lower(): - if special_input in (0, 2, 3) or special_input == 1 and "orthogonality relation" not in line: + if special_input in (0, 2, 3, 4) or special_input == 1 and "orthogonality relation" not in line: hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in @@ -201,9 +208,14 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref # print hyper_headers_chap # print word sortmatch_2.append(k_hyper_sub_chap) + if "generating function" in name_chap: + print "Stuff for checking" + print k_hyper_sub_chap print khyper_header_chap + print hyper_headers_chap return chap + def cut_words(word_to_find, word_to_search_in): """ This function checks through the outputs of later sections and removes duplicates, so that the output file does @@ -219,10 +231,10 @@ def cut_words(word_to_find, word_to_search_in): b = word_to_search_in precheck = 1 if a in b: - if "\\paragraph{\\large\\bf KLSadd: " in b or "\\subsubsection*{\\large\\bf KLSadd: " in b: + if "\\paragraph{\\bf KLS Addendum: " in b or "\\subsubsection*{\\bf KLS Addendum: " in b: while True: - if "\\paragraph{\\large\\bf KLSadd: " in b[b.find(a)-precheck:b.find(a)] or \ - "\\subsubsection*{\\large\\bf KLSadd: " in b[b.find(a) - precheck:b.find(a)]: + if "\\paragraph{\\bf KLS Addendum: " in b[b.find(a)-precheck:b.find(a)] or \ + "\\subsubsection*{\\bf KLS Addendum: " in b[b.find(a) - precheck:b.find(a)]: return b[:b.find(a) - precheck] + b[b.find(a) + len(a):] else: precheck += 1 @@ -254,7 +266,7 @@ def prepare_for_pdf(chap): def get_commands(kls, new_commands): """ - This method reads in relevant commands that are in KLSadd.tex and returns them as a list + This method reads in relevant commands that are in KLS Addendum.tex and returns them as a list :param kls: The addendum is the source of what is being found :return: @@ -283,7 +295,7 @@ def insert_commands(kls, chap, cms): """ # reads in the newCommands[] and puts them in chap begin_index = -1 # the index of the "begin document" keyphrase, this is where the new commands need to be inserted. - # find index of begin document in KLSadd + # find index of begin document in KLS Addendum index = 0 for word in kls: @@ -393,17 +405,17 @@ def reference_placer(chap, references, p, chapticker2): # Place before References paragraph word1 = str(p[count]) if designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: - chap[i - 2] += "%Begin KLSadd additions" + chap[i - 2] += "%Begin KLS Addendum additions" chap[i - 2] += p[count] - chap[i - 2] += "%End of KLSadd additions" + chap[i - 2] += "%End of KLS Addendum additions" count += 1 else: while designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: word1 = str(p[count]) if designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: - chap[i - 2] += "%Begin KLSadd additions" + chap[i - 2] += "%Begin KLS Addendum additions" chap[i - 2] += p[count] - chap[i - 2] += "%End of KLSadd additions" + chap[i - 2] += "%End of KLS Addendum additions" count += 1 else: count += 1 @@ -431,7 +443,6 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha for i in kls_list_all: fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) sort_location += 1 - print sorter_check for a in range(len(paragraphs_to_be_added)-1): for b in sortmatch_2: @@ -445,6 +456,11 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha #print c elif "%" == c[-1]: c = c[:-2] + # if "Formula (9.8.15) was first obtained by Brafman" in c and "Formula (9.8.15) was first obtained by Brafman"in paragraphs_to_be_added[a]: + # print c + # print "DING" + # print paragraphs_to_be_added[a] + paragraphs_to_be_added[a] = cut_words(c, paragraphs_to_be_added[a]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) @@ -478,6 +494,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha if '\\myciteKLS' in chap[ticker1]: chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') ticker1 += 1 + print chap return chap @@ -509,16 +526,16 @@ def main(): sorter_check = new_keywords(addendum, kls_list_full)[1] for item in addendum: - addendum[addendum.index(item)] = item.replace("\\eqref{","\\eqref{KLSadd: ") + addendum[addendum.index(item)] = item.replace("\\eqref{","\\eqref{KLS Addendum: ") for word in addendum: if "paragraph{" in word: lenword = len(word) - 1 - temp = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + word[word.find("{") + 1: lenword] + temp = word[0:word.find("{") + 1] + "\\bf KLS Addendum: " + word[word.find("{") + 1: lenword] addendum[addendum.index(word)] = temp if "subsubsection*{" in word: lenword = len(word) - 1 - addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\large\\bf KLSadd: " + \ + addendum[addendum.index(word)] = word[0:word.find("{") + 1] + "\\bf KLS Addendum: " + \ word[word.find("{") + 1: lenword] index = 0 indexes = [] @@ -596,14 +613,10 @@ def main(): # call the fixChapter method to get a list with the addendum paragraphs added in chapticker2 = 0 str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3, sorter_check)) - print sorter_check - print "DING" chapticker2 += 1 str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref14_3, sorter_check)) - print "DING" - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part # is where the lists representing the words/strings in the chapter are joined together and updated as a string! diff --git a/KLSadd_insertion/test/test_chap1_placer.py b/KLSadd_insertion/test/test_chap1_placer.py index 0cde1ab..121e02e 100644 --- a/KLSadd_insertion/test/test_chap1_placer.py +++ b/KLSadd_insertion/test/test_chap1_placer.py @@ -12,5 +12,5 @@ def test_chap1_placer(self): self.assertEquals(chap1placer(['WordsAndSomeMoreWords','SampleEquation', '\\end{document}'] , ['\\subsection*{Generalities}', '\\paragraph{MathFunction}', 'MathEquations', 'WordsAndStuff', '\\subsection*{9.1 Wilson}', '\\paragraph{Symmetry}', 'WordsAndStuff'], [0,1,4,5]) - , 'WordsAndSomeMoreWordsSampleEquation\\paragraph{\\large\\bf KLS Addendum: Generalities}\\paragraph{MathFunction}MathEquationsWordsAndStuff\\end{document}') + , 'WordsAndSomeMoreWordsSampleEquation\\paragraph{\\bf KLS Addendum: Generalities}\\paragraph{MathFunction}MathEquationsWordsAndStuff\\end{document}') diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py new file mode 100644 index 0000000..8a71fd4 --- /dev/null +++ b/KLSadd_insertion/test/test_fix_chapter.py @@ -0,0 +1,162 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import fix_chapter_sort + + +class TestFixChapterSort(TestCase): + def test_fix_chapter_sort(self): + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + ,['\\section{Wilson}\\index{Wilson polynomials}' + ,'\\subsection*{Hypergeometric representation}' + ,'\\begin{eqnarray}' + ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + ,'\\end{eqnarray}' + ,'\\subsection*{Orthogonality relation}' + ,'\\begin{eqnarray}' + ,'\\label{OrthIWilson}' + ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9],[[0, 0], [0, 0]]) + ,['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\subsection*{14.1 Askey}' + , '\\paragraph{Orthogonality}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Askey}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Orthogonality', 0, [1, 2, 3, 6], [], [0, 1, 5, 9],[[1, 0], [1, 0]]) + , ['\\section{Askey}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}\\paragraph{\\bf KLS Addendum: Orthogonality}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Special Value}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Special value', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Special value}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson)' + , '\\subsection*{9.2 Pseudo Jacobi (or Routh-Romanovski)}' + , '\\paragraph{Symmetry}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Pseudo Jacobi}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Symmetry', 0, [1, 2, 3, 6], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Pseudo Jacobi}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Orthogonality}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Basic Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\subsection*{Basic Hypergeometric representation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter_sort(['%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Symmetry}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + ,'\\paragraph{Trivial Symmetry}' + , 'Words' + , '\\renewcommand{\\refname}{Standard references}'] + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + ,'%'] + , 'Symmetry', 0, [1, 2, 4, 6], [], [0, 1, 5], [[0, 0], [0, 0]]) + , ['\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric\\paragraph{\\bf KLS Addendum: Symmetry}\nWords' + , '%']) \ No newline at end of file diff --git a/KLSadd_insertion/test/test_fix_chapter_sort.py b/KLSadd_insertion/test/test_fix_chapter_sort.py index 8a71fd4..8acda86 100644 --- a/KLSadd_insertion/test/test_fix_chapter_sort.py +++ b/KLSadd_insertion/test/test_fix_chapter_sort.py @@ -158,5 +158,5 @@ def test_fix_chapter_sort(self): , '\\subsection*{Hypergeometric representation}' , '\\begin{eqnarray}' , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric\\paragraph{\\bf KLS Addendum: Symmetry}\nWords' + , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric\\paragraph{\\bf KLS Addendum: Symmetry}Words' , '%']) \ No newline at end of file diff --git a/KLSadd_insertion/test/test_generic_functions.py b/KLSadd_insertion/test/test_generic_functions.py index 5ff7c81..665dfdc 100644 --- a/KLSadd_insertion/test/test_generic_functions.py +++ b/KLSadd_insertion/test/test_generic_functions.py @@ -26,7 +26,7 @@ class TestCutWords(TestCase): def test_cut_words(self): self.assertEquals(cut_words('MoreWords','WordsAndSomeMoreWords'), 'WordsAndSome') self.assertEquals(cut_words('SupposedToFail', 'WordsAndSomeMoreWords'), 'WordsAndSomeMoreWords') - self.assertEquals(cut_words('StuffFromAddenum', '''\\paragraph{\\large\\bf KLSadd: TestCase}StuffFromAddenum\\begin{equation}\\end{equation}'''), + self.assertEquals(cut_words('StuffFromAddenum', '''StuffFromAddenum\\begin{equation}\\end{equation}'''), '''\\begin{equation}\\end{equation}''') diff --git a/KLSadd_insertion/test/test_reference_placer.py b/KLSadd_insertion/test/test_reference_placer.py index dd92a6d..f17989c 100644 --- a/KLSadd_insertion/test/test_reference_placer.py +++ b/KLSadd_insertion/test/test_reference_placer.py @@ -20,7 +20,7 @@ def test_reference_placer(self): , '\\begin{eqnarray}' , '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' - , 'with $N$ a nonnegative integer.%Begin KLSadd additions\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLSadd additions', '\\subsection*{References}', + , 'with $N$ a nonnegative integer.%Begin KLS Addendum additions\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLS Addendum additions', '\\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}']) self.assertEquals(reference_placer(['\\section{Racah}\\index{Racah polynomials}', @@ -34,7 +34,7 @@ def test_reference_placer(self): , '\\begin{eqnarray}' , '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' - , 'with $N$ a nonnegative integer.%Begin KLSadd additions\\subsection*{14.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLSadd additions', '\\subsection*{References}', + , 'with $N$ a nonnegative integer.%Begin KLS Addendum additions\\subsection*{14.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLS Addendum additions', '\\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}']) self.assertEquals(reference_placer(['\\section{Racah}\\index{Racah polynomials}', @@ -48,5 +48,5 @@ def test_reference_placer(self): , '\\begin{eqnarray}' , '\\label{DefRacah}', '& &R_n(\lambda(x);\alpha,\beta,\gamma,\delta)\nonumber\\' , '& &{}=\hyp{4}{3}{-n,n+\alpha+\beta+1,-x,', '\end{eqnarray}' - , 'with $N$ a nonnegative integer.%Begin KLSadd additions\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLSadd additions', '\\subsection*{References}', + , 'with $N$ a nonnegative integer.%Begin KLS Addendum additions\\subsection*{9.1 Racah}\\label{sec9.1}\\paragraph{\\large\\bf KLSadd: Hypergeometric representation}In addition to (9.1.1) we have%End of KLS Addendum additions', '\\subsection*{References}', '\cite{Askey89I}, \cite{AskeyWilson79}, \cite{AskeyWilson85}']) \ No newline at end of file From 95ec36204f1d81114e0d160d319f4e82bf18d86d Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 9 Sep 2016 16:55:33 -0400 Subject: [PATCH 359/402] Unit test fixes --- KLSadd_insertion/test/test_fix_chapter.py | 170 ++-------------------- 1 file changed, 15 insertions(+), 155 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py index 8a71fd4..8b4635e 100644 --- a/KLSadd_insertion/test/test_fix_chapter.py +++ b/KLSadd_insertion/test/test_fix_chapter.py @@ -3,160 +3,20 @@ __status__ = 'Development' from unittest import TestCase -from updateChapters import fix_chapter_sort +from updateChapters import fix_chapter -class TestFixChapterSort(TestCase): - def test_fix_chapter_sort(self): - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\paragraph{Hypergeometric Representation}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - ,['\\section{Wilson}\\index{Wilson polynomials}' - ,'\\subsection*{Hypergeometric representation}' - ,'\\begin{eqnarray}' - ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - ,'\\end{eqnarray}' - ,'\\subsection*{Orthogonality relation}' - ,'\\begin{eqnarray}' - ,'\\label{OrthIWilson}' - ,'& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - ,'\\end{eqnarray}'],'Hypergeometric Representation',0,[1,2,5],[],[0, 1, 5, 9],[[0, 0], [0, 0]]) - ,['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Orthogonality relation}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\subsection*{14.1 Askey}' - , '\\paragraph{Orthogonality}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Askey}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection*{Orthogonality}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Orthogonality', 0, [1, 2, 3, 6], [], [0, 1, 5, 9],[[1, 0], [1, 0]]) - , ['\\section{Askey}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection*{Orthogonality}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}\\paragraph{\\bf KLS Addendum: Orthogonality}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\end{eqnarray}']) - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\paragraph{Special Value}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Special value', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Special value}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson)' - , '\\subsection*{9.2 Pseudo Jacobi (or Routh-Romanovski)}' - , '\\paragraph{Symmetry}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Pseudo Jacobi}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection*{Orthogonality}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Symmetry', 0, [1, 2, 3, 6], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) - , ['\\section{Pseudo Jacobi}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Orthogonality}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\paragraph{Hypergeometric Representation}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - , 'in $a,b,c,d$.' - , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - , '\\subsection*{Basic Hypergeometric representation}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}'], 'Hypergeometric Representation', 0, [1, 2, 5], [], [0, 1, 5, 9], [[0, 0], [0, 0]]) - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' - , '\\subsection*{Basic Hypergeometric representation}' - , '\\begin{eqnarray}' - , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' - , '\\end{eqnarray}']) - self.assertEquals(fix_chapter_sort(['%' - , '\\subsection*{9.1 Wilson}' - , '\\paragraph{Symmetry}' - , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' - ,'\\paragraph{Trivial Symmetry}' - , 'Words' - , '\\renewcommand{\\refname}{Standard references}'] - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}' - ,'%'] - , 'Symmetry', 0, [1, 2, 4, 6], [], [0, 1, 5], [[0, 0], [0, 0]]) - , ['\\section{Wilson}\\index{Wilson polynomials}' - , '\\subsection*{Hypergeometric representation}' - , '\\begin{eqnarray}' - , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - , '\\end{eqnarray}\\paragraph{\\bf KLS Addendum: Symmetry}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric\\paragraph{\\bf KLS Addendum: Symmetry}\nWords' - , '%']) \ No newline at end of file +# class TestFixChapter(TestCase): +# def test_fix_chapter(self): +# self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' +# , '\\newcommand\\half{\\frac12}' +# , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' +# , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' +# , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' +# , '\\subsection*{9.1 Wilson}' +# , '\\paragraph{Hypergeometric Representation}' +# , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' +# ,'\\paragraph{Something}' +# , 'Words' +# , '\\renewcommand{\\refname}{Standard references}' +# , '\\myciteKLS{SampleReference}' \ No newline at end of file From e982d172f1e4450d57652b01ef6bdf6e7eafbeff Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 11 Oct 2016 15:48:56 -0400 Subject: [PATCH 360/402] Main unit test --- KLSadd_insertion/test/test_fix_chapter.py | 111 +++++++++++++++++++--- 1 file changed, 97 insertions(+), 14 deletions(-) diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py index 8b4635e..9c1e7e1 100644 --- a/KLSadd_insertion/test/test_fix_chapter.py +++ b/KLSadd_insertion/test/test_fix_chapter.py @@ -6,17 +6,100 @@ from updateChapters import fix_chapter -# class TestFixChapter(TestCase): -# def test_fix_chapter(self): -# self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' -# , '\\newcommand\\half{\\frac12}' -# , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' -# , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' -# , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' -# , '\\subsection*{9.1 Wilson}' -# , '\\paragraph{Hypergeometric Representation}' -# , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' -# ,'\\paragraph{Something}' -# , 'Words' -# , '\\renewcommand{\\refname}{Standard references}' -# , '\\myciteKLS{SampleReference}' \ No newline at end of file +class TestFixChapter(TestCase): + def test_fix_chapter(self): + ''' + self.assertEquals(fix_chapter(['\section{Wilson}\index{Wilson polynomials}' + ,'\par' + ,'\subsection*{Hypergeometric representation}' + ,'\\begin{eqnarray}' + ,'\label{DefWilson}' + ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + ,'& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}.' + ,'\end{eqnarray}' + ,'\\newpage' + ,'\subsection*{Orthogonality relation}' + ,'If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then' + ,'\\begin{eqnarray}' + ,'\label{OrthIWilson}' + ,'\end{eqnarray}' + ,'\subsection*{References}'], + [14],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n\\n%\\n\\n%\\n\\n%\\n\\n'], + [#'\\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left(' + #,' \genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + #,'\\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(,' + #,' \genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + '%' + ,'\subsection*{9.1 Wilson}' + ,'\label{sec9.1}' + ,'%' + ,'\paragraph{Symmetry}' + ,'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric in $a,b,c,d$.' + ,'\\' + ,'This follows from the orthogonality relation (9.1.2)' + ,'together with the value of its coefficient of $y^n$ given in (9.1.5b).' + ,'Alternatively, combine (9.1.1) with \mycite{AAR}{Theorem 3.1.1}.\\' + ,'As a consequence, (9.1.12). Then the generating' + ,'functions (9.1.13), (9.1.14) will follow by symmetry in the parameters.' + ,'\\renewcommand{\\refname}{Standard references}'] + ,['Symmetry', 'Limit Relation', 'Special value'], 0, [],[1,4],[],[0,2,9,14] + , [[0,0],[0,0],[0,0],[0,0]]),[]) + ''' +#fix_chapter(chap, references , paragraphs_to_be_added , kls, kls_list_all (basically word), chapticker2, new_commands, klsaddparas, sortmatch_2, tempref, sorter_check): +#fix_chapter_sort(chap, [5] , [\\subsection*{9.1 Wilson}\n\\label{sec9.1}\n%\n, kls, word, sortloc(should be 0) , 0, , blank?, , klsaddparas, sortmatch_2, tempref, sorter_check): +# fix_chapter_sort( kls, chap, word, sortloc , klsaddparas, sortmatch_2, tempref, sorter_check): +# fix_chapter( chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands , klsaddparas, sortmatch_2, tempref, sorter_check): + self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' + , '\\newcommand\\half{\\frac12}' + , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'] + + + ,[5],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n'] + + , ['\\newcommand\\smallskipamount' + , '\\newcommand\\mybibitem[1]' + ,'%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + + + + , ['Hypergeometric Representation'] + , 0, [], [3, 4, 7], [], [5, 6, 11, 14], [[0, 0], [0, 0]]) + , ['\\newcommand\\mybibitem[1]' + , '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n' + , '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\newcommand\\half{\\frac12}' + , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\newcommand\\smallskipamount' + , '\\end{eqnarray}']) + + + + From d4fa9cfae627fd303f84267ba6af9da4fd5c3b11 Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Thu, 13 Oct 2016 16:54:03 +0200 Subject: [PATCH 361/402] Update README.md Add link to CSFS project --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b5f07f..b5b6afb 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ To achieve the desired result, one should execute the progams in the following o ## Maple CFSF Seeding Project -This Python code (developed by Joon Bang) translates Maple files from Annie Cuyt's continued fractions package for special functions (CFSF) to LaTeX. +This Python code (developed by Joon Bang) translates Maple files from Annie Cuyt's continued fractions package for special functions ([CFSF](http://www.swmath.org/software/13927)) to LaTeX. The project is located in the `maple2latex` folder. From 92702be77aa181db8122fb1102ca50bd17874159 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 14 Oct 2016 17:57:37 -0400 Subject: [PATCH 362/402] Filling in holes left by last commit --- KLSadd_insertion/test/test_fix_chapter.py | 109 ++++++++++-------- .../test/test_updateChapters_main.py | 105 +++++++++++++++++ 2 files changed, 166 insertions(+), 48 deletions(-) create mode 100644 KLSadd_insertion/test/test_updateChapters_main.py diff --git a/KLSadd_insertion/test/test_fix_chapter.py b/KLSadd_insertion/test/test_fix_chapter.py index 9c1e7e1..e50a4c4 100644 --- a/KLSadd_insertion/test/test_fix_chapter.py +++ b/KLSadd_insertion/test/test_fix_chapter.py @@ -8,49 +8,14 @@ class TestFixChapter(TestCase): def test_fix_chapter(self): - ''' - self.assertEquals(fix_chapter(['\section{Wilson}\index{Wilson polynomials}' - ,'\par' - ,'\subsection*{Hypergeometric representation}' - ,'\\begin{eqnarray}' - ,'\label{DefWilson}' - ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' - ,'& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}.' - ,'\end{eqnarray}' - ,'\\newpage' - ,'\subsection*{Orthogonality relation}' - ,'If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then' - ,'\\begin{eqnarray}' - ,'\label{OrthIWilson}' - ,'\end{eqnarray}' - ,'\subsection*{References}'], - [14],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n\\n%\\n\\n%\\n\\n%\\n\\n'], - [#'\\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left(' - #,' \genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' - #,'\\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(,' - #,' \genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' - '%' - ,'\subsection*{9.1 Wilson}' - ,'\label{sec9.1}' - ,'%' - ,'\paragraph{Symmetry}' - ,'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric in $a,b,c,d$.' - ,'\\' - ,'This follows from the orthogonality relation (9.1.2)' - ,'together with the value of its coefficient of $y^n$ given in (9.1.5b).' - ,'Alternatively, combine (9.1.1) with \mycite{AAR}{Theorem 3.1.1}.\\' - ,'As a consequence, (9.1.12). Then the generating' - ,'functions (9.1.13), (9.1.14) will follow by symmetry in the parameters.' - ,'\\renewcommand{\\refname}{Standard references}'] - ,['Symmetry', 'Limit Relation', 'Special value'], 0, [],[1,4],[],[0,2,9,14] - , [[0,0],[0,0],[0,0],[0,0]]),[]) - ''' + #fix_chapter(chap, references , paragraphs_to_be_added , kls, kls_list_all (basically word), chapticker2, new_commands, klsaddparas, sortmatch_2, tempref, sorter_check): #fix_chapter_sort(chap, [5] , [\\subsection*{9.1 Wilson}\n\\label{sec9.1}\n%\n, kls, word, sortloc(should be 0) , 0, , blank?, , klsaddparas, sortmatch_2, tempref, sorter_check): # fix_chapter_sort( kls, chap, word, sortloc , klsaddparas, sortmatch_2, tempref, sorter_check): # fix_chapter( chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands , klsaddparas, sortmatch_2, tempref, sorter_check): self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' - , '\\newcommand\\half{\\frac12}' + , '\\newcommand\half{\\frac50}' + , '\\newcommand\half{\\frac12}' , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' @@ -62,12 +27,58 @@ def test_fix_chapter(self): , '\\subsection*{Orthogonality relation}' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\myciteKLS' , '\\end{eqnarray}'] + ,[5],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n'] + , ['\\newcommand\\smallskipamount' + , '\\newcommand\\mybibitem[1]' + ,'%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['Hypergeometric Representation'] + , 0, [], [3, 4, 7], [['%ab']], [6, 7, 12, 15], [[0, 0], [0, 0]]) + # Expected output: + , ['\\newcommand\\mybibitem[1]' + , '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n' + , '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\newcommand\half{\\frac50}' + , '%\\newcommand\\half{\\frac12}' + , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '\\cite' + , '\\newcommand\\smallskipamount' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' + , '\\newcommand\half{\\frac50}' + , '\\newcommand\half{\\frac12}' + , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '\\myciteKLS' + , '\\end{eqnarray}'] ,[5],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n'] - , ['\\newcommand\\smallskipamount' , '\\newcommand\\mybibitem[1]' ,'%' @@ -76,17 +87,18 @@ def test_fix_chapter(self): , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' , 'in $a,b,c,d$.' , '\\renewcommand{\\refname}{Standard references}'] + , ['Hypergeometric Representation'] + , 0, [], [3, 4, 7], [['%a']], [6, 7, 12, 15], [[0, 0], [0, 0]]) + # Expected output: - - , ['Hypergeometric Representation'] - , 0, [], [3, 4, 7], [], [5, 6, 11, 14], [[0, 0], [0, 0]]) , ['\\newcommand\\mybibitem[1]' , '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n' , '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' - , '\\newcommand\\half{\\frac12}' - , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' - , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '\\newcommand\half{\\frac50}' + , '%\\newcommand\\half{\\frac12}' + , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' , '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' , '\\section{Wilson}\\index{Wilson polynomials}' , '\\subsection*{Hypergeometric representation}' @@ -96,10 +108,11 @@ def test_fix_chapter(self): , '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' , '\\begin{eqnarray}' , '\\label{OrthIWilson}' - , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\cite' , '\\newcommand\\smallskipamount' , '\\end{eqnarray}']) - +['\\newcommand\\mybibitem[1]', '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n', '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(', '\newcommand\\half{\x0crac12}', '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(', '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions', '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(', '\\section{Wilson}\\index{Wilson polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\', '\\end{eqnarray}', '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.', '\\begin{eqnarray}', '\\label{OrthIWilson}', '& &\\frac{1}{2\\pi}\\int_0^{\\infty}', '\\newcommand\\smallskipamount', '\\end{eqnarray}'] +['\\newcommand\\mybibitem[1]', '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n', '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(', '\\newcommand\\half{\\frac12}', '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(', '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions', '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(', '\\section{Wilson}\\index{Wilson polynomials}', '\\subsection*{Hypergeometric representation}', '\\begin{eqnarray}', '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\', '\\end{eqnarray}', '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.', '\\begin{eqnarray}', '\\label{OrthIWilson}', '& &\\frac{1}{2\\pi}\\int_0^{\\infty}', '\\newcommand\\smallskipamount', '\\end{eqnarray}'] diff --git a/KLSadd_insertion/test/test_updateChapters_main.py b/KLSadd_insertion/test/test_updateChapters_main.py new file mode 100644 index 0000000..9c1e7e1 --- /dev/null +++ b/KLSadd_insertion/test/test_updateChapters_main.py @@ -0,0 +1,105 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import fix_chapter + + +class TestFixChapter(TestCase): + def test_fix_chapter(self): + ''' + self.assertEquals(fix_chapter(['\section{Wilson}\index{Wilson polynomials}' + ,'\par' + ,'\subsection*{Hypergeometric representation}' + ,'\\begin{eqnarray}' + ,'\label{DefWilson}' + ,'& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + ,'& &{}=\hyp{4}{3}{-n,n+a+b+c+d-1,a+ix,a-ix}{a+b,a+c,a+d}{1}.' + ,'\end{eqnarray}' + ,'\\newpage' + ,'\subsection*{Orthogonality relation}' + ,'If $Re(a,b,c,d)>0$ and non-real parameters occur in conjugate pairs, then' + ,'\\begin{eqnarray}' + ,'\label{OrthIWilson}' + ,'\end{eqnarray}' + ,'\subsection*{References}'], + [14],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n\\n%\\n\\n%\\n\\n%\\n\\n'], + [#'\\newcommand{\hyp}[5]{\,\mbox{}_{#1}F_{#2}\!\left(' + #,' \genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + #,'\\newcommand{\qhyp}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(,' + #,' \genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + '%' + ,'\subsection*{9.1 Wilson}' + ,'\label{sec9.1}' + ,'%' + ,'\paragraph{Symmetry}' + ,'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric in $a,b,c,d$.' + ,'\\' + ,'This follows from the orthogonality relation (9.1.2)' + ,'together with the value of its coefficient of $y^n$ given in (9.1.5b).' + ,'Alternatively, combine (9.1.1) with \mycite{AAR}{Theorem 3.1.1}.\\' + ,'As a consequence, (9.1.12). Then the generating' + ,'functions (9.1.13), (9.1.14) will follow by symmetry in the parameters.' + ,'\\renewcommand{\\refname}{Standard references}'] + ,['Symmetry', 'Limit Relation', 'Special value'], 0, [],[1,4],[],[0,2,9,14] + , [[0,0],[0,0],[0,0],[0,0]]),[]) + ''' +#fix_chapter(chap, references , paragraphs_to_be_added , kls, kls_list_all (basically word), chapticker2, new_commands, klsaddparas, sortmatch_2, tempref, sorter_check): +#fix_chapter_sort(chap, [5] , [\\subsection*{9.1 Wilson}\n\\label{sec9.1}\n%\n, kls, word, sortloc(should be 0) , 0, , blank?, , klsaddparas, sortmatch_2, tempref, sorter_check): +# fix_chapter_sort( kls, chap, word, sortloc , klsaddparas, sortmatch_2, tempref, sorter_check): +# fix_chapter( chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands , klsaddparas, sortmatch_2, tempref, sorter_check): + self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' + , '\\newcommand\\half{\\frac12}' + , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\end{eqnarray}'] + + + ,[5],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n'] + + , ['\\newcommand\\smallskipamount' + , '\\newcommand\\mybibitem[1]' + ,'%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + + + + , ['Hypergeometric Representation'] + , 0, [], [3, 4, 7], [], [5, 6, 11, 14], [[0, 0], [0, 0]]) + , ['\\newcommand\\mybibitem[1]' + , '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n' + , '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\newcommand\\half{\\frac12}' + , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '& &\\frac{1}{2\\pi}\\int_0^{\\infty}' + , '\\newcommand\\smallskipamount' + , '\\end{eqnarray}']) + + + + From abc0536444284c5f24c0d6cab6d7902888aed413 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 14 Oct 2016 18:01:26 -0400 Subject: [PATCH 363/402] Fixes that go with unit tests --- KLSadd_insertion/src/updateChapters.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index d0e162c..7360301 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -208,11 +208,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref # print hyper_headers_chap # print word sortmatch_2.append(k_hyper_sub_chap) - if "generating function" in name_chap: - print "Stuff for checking" - print k_hyper_sub_chap - print khyper_header_chap - print hyper_headers_chap return chap @@ -278,7 +273,6 @@ def get_commands(kls, new_commands): new_commands.append(index - 1) if "mybibitem[1]" in word: new_commands.append(index) - print new_commands return kls[new_commands[0]:new_commands[1]] @@ -466,17 +460,19 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha reference_placer(chap, references, paragraphs_to_be_added, chapticker2) chap = prepare_for_pdf(chap) cms = get_commands(kls,new_commands) - print cms chap = insert_commands(kls, chap, cms) commentticker = 0 # These commands mess up PDF reading and mus tbe commented out + print"OUTPUT" for word in chap: word2 = chap[chap.index(word)-1] + print word2 if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2: if "\\newcommand\\half{\\frac12}" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd + print("TRIGGERED") elif "\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd @@ -487,14 +483,13 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha wordtoadd = "%" + word chap[commentticker] = wordtoadd commentticker += 1 - + print"END OUTPUT" ticker1 = 0 # Formatting to make the Latex file run while ticker1 < len(chap): if '\\myciteKLS' in chap[ticker1]: chap[ticker1] = chap[ticker1].replace('\\myciteKLS', '\\cite') ticker1 += 1 - print chap return chap From 5ba19031dc71d85c8facdafb2ab23504b1fa7fa9 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 20 Jul 2016 15:37:40 -0400 Subject: [PATCH 364/402] Fix issues with file paths --- maple2latex/src/main.py | 16 +++++---- maple2latex/src/translator.py | 2 +- maple2latex/test/test_translator.py | 53 ----------------------------- 3 files changed, 10 insertions(+), 61 deletions(-) delete mode 100644 maple2latex/test/test_translator.py diff --git a/maple2latex/src/main.py b/maple2latex/src/main.py index cbaadf9..c01657d 100644 --- a/maple2latex/src/main.py +++ b/maple2latex/src/main.py @@ -5,10 +5,10 @@ import os import copy -from src.translator import MapleEquation, make_equation +from translator import MapleEquation, make_equation TABLE = dict() # stores meaning of folder names -with open("data/section_names") as name_info: +with open("maple2latex/data/section_names") as name_info: for line in name_info.read().split("\n"): if line != "" and "%" not in line: key, value = line.split(" : ") @@ -28,7 +28,7 @@ "qhyper" ] -ROOT = "functions" # root directory +ROOT = "maple2latex/functions" # root directory class MapleFile(object): @@ -53,8 +53,9 @@ def translate_file(filename): # type: (str) """Translates all the formulae in a file.""" - with open("out/test.tex", "w") as test, open("out/primer") as primer: - test.write(primer.read() + MapleFile(filename).convert_formulae() + "\n\\end{document}") + with open("maple2latex/out/test.tex", "w") as test: + with open("maple2latex/out/primer") as primer: + test.write(primer.read() + MapleFile(filename).convert_formulae() + "\n\\end{document}") def translate_directories(): @@ -80,8 +81,9 @@ def translate_directories(): MapleFile(info[0] + "/" + file_name).convert_formulae() + "\n\n" # write output to file - with open("out/test.tex", "w") as test, open("out/primer") as primer: - test.write(primer.read() + result + "\n\\end{document}") + with open("maple2latex/out/test.tex", "w") as test: + with open("maple2latex/out/primer") as primer: + test.write(primer.read() + result + "\n\\end{document}") if __name__ == '__main__': translate_directories() diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index b1e8138..fad4e41 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -5,7 +5,7 @@ import copy import json -from src.maple_tokenize import tokenize +from maple_tokenize import tokenize INFO = json.loads(open("maple2latex/data/keys.json").read()) diff --git a/maple2latex/test/test_translator.py b/maple2latex/test/test_translator.py deleted file mode 100644 index 6c2914d..0000000 --- a/maple2latex/test/test_translator.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python - -__author__ = "Joon Bang" -__status__ = "Development" - -import json -from unittest import TestCase -import src.translator as t - -TEST_CASES = json.loads(open("maple2latex/test/test_cases.json").read())["translator"] - -parse_brackets_test_cases = TEST_CASES["parse_brackets"] -trim_parens_test_cases = TEST_CASES["trim_parens"] -basic_translate_test_cases = TEST_CASES["basic_translate"] -get_arguments_test_cases = TEST_CASES["get_arguments"] -translate_test_cases = TEST_CASES["translate"] -make_equation_test_cases = TEST_CASES["make_equation"] - - -class TestParseBrackets(TestCase): - def test_parse_brackets(self): - for case in parse_brackets_test_cases: - self.assertEqual(t.parse_brackets(case["exp"]), case["res"]) - - -class TestTrimParens(TestCase): - def test_trim_parens(self): - for case in trim_parens_test_cases: - self.assertEqual(t.trim_parens(case["exp"]), case["res"]) - - -class TestBasicTranslate(TestCase): - def test_basic_translate(self): - for case in basic_translate_test_cases: - self.assertEqual(t.basic_translate(case["exp"]), case["res"]) - - -class TestGetArguments(TestCase): - def test_get_arguments(self): - for case in get_arguments_test_cases: - self.assertEqual(t.get_arguments(case["function"], case["arg_string"]), case["res"]) - - -class TestTranslate(TestCase): - def test_translate(self): - for case in translate_test_cases: - self.assertEqual(t.translate(case["exp"]), case["res"]) - - -class TestMakeEquation(TestCase): - def test_make_equation(self): - for case in make_equation_test_cases: - self.assertEqual(t.make_equation(t.MapleEquation(case["eq"]), case["view_metadata"]), case["res"]) From 084627f918abf91d08f2b352a9faaeb87fa87314 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 21 Jul 2016 11:27:20 -0400 Subject: [PATCH 365/402] Add LatexEquation class to support sorting --- maple2latex/src/main.py | 68 +++++----- maple2latex/src/translator.py | 193 +++++++++++++++------------- maple2latex/test/test_cases.json | 8 +- maple2latex/test/test_translator.py | 53 ++++++++ 4 files changed, 197 insertions(+), 125 deletions(-) create mode 100644 maple2latex/test/test_translator.py diff --git a/maple2latex/src/main.py b/maple2latex/src/main.py index c01657d..b88765a 100644 --- a/maple2latex/src/main.py +++ b/maple2latex/src/main.py @@ -4,8 +4,7 @@ __status__ = "Development" import os -import copy -from translator import MapleEquation, make_equation +from translator import MapleEquation, LatexEquation TABLE = dict() # stores meaning of folder names with open("maple2latex/data/section_names") as name_info: @@ -14,7 +13,7 @@ key, value = line.split(" : ") TABLE[key] = value -FILES = [ # files to be translated +FILES = [ "bessel", "modbessel", "confluent", "confluentlimit", "kummer", "parabolic", "whittaker", "apery", "archimedes", "catalan", "delian", "eulersconstant", "eulersnumber", "goldenratio", "gompertz", @@ -26,9 +25,7 @@ "binet", "incompletegamma", "polygamma", "tetragamma", "trigamma", "hypergeometric", "qhyper" -] - -ROOT = "maple2latex/functions" # root directory +] # files to be translated class MapleFile(object): @@ -42,43 +39,56 @@ def obtain_formulae(self): return [MapleEquation(piece.split("\n")) for piece in contents.split("create(") if "):" in piece or ");" in piece] - def convert_formulae(self): - return '\n\n'.join([make_equation(copy.copy(formula)) for formula in self.formulae]) - def __str__(self): return "MapleFile of " + self.filename -def translate_file(filename): - # type: (str) - """Translates all the formulae in a file.""" - - with open("maple2latex/out/test.tex", "w") as test: - with open("maple2latex/out/primer") as primer: - test.write(primer.read() + MapleFile(filename).convert_formulae() + "\n\\end{document}") - - -def translate_directories(): +def translate_files(root_directory): # type: () - """Generates and writes the results of traversing the root directory and translating all Maple files.""" + """Generates and writes the results of traversing the root directory, and translating all files in FILES.""" - root_depth = len(ROOT.split("/")) + root_depth = len(root_directory.split("/")) - dirs = [d for d in os.walk(ROOT) if d[0].count("/") == root_depth] + dirs = [d for d in os.walk(root_directory) if d[0].count("/") == root_depth] - result = "" + sections = dict() for info in dirs: # search through directories - depth = len(["" for ch in info[0] if ch == "/"]) + depth = info[0].count("/") if depth == root_depth: # section - result += "\n\\section{" + TABLE[info[0].split("/")[-1]] + "}\n" + section = TABLE[info[0].split("/")[-1]] + sections[section] = dict() for file_name in info[2]: folder = ''.join(file_name.split(".")[:-1]) - if folder in FILES: # subsection - result += "\\subsection{" + TABLE[folder] + "}\n" + \ - MapleFile(info[0] + "/" + file_name).convert_formulae() + "\n\n" + if folder in FILES: + # generate equation code, sorted by equation number + subsection = TABLE[file_name[:-4]] + formulae = map(LatexEquation.from_maple, MapleFile(info[0] + "/" + file_name).formulae) + formulae = sorted(formulae, key=LatexEquation.get_sortable_label) + + repr_label = formulae[len(formulae) / 2].label + sections[section][subsection] = [repr_label, "\n".join(map(str, formulae))] + + # generate subsection headers + for section, subsections in sections.iteritems(): + print section + + keys = sorted(subsections.keys(), key=lambda x: subsections[x][0]) + + text = "" + for subsection in keys: + print " " + subsection + text += "\n\\subsection{" + subsection + "}\n" + text += subsections[subsection][1] + + sections[section] = text + + # generate section headers + result = "" + for section, section_data in sections.iteritems(): + result += "\\section{" + section + "}\n" + section_data + "\n\n\n" # write output to file with open("maple2latex/out/test.tex", "w") as test: @@ -86,4 +96,4 @@ def translate_directories(): test.write(primer.read() + result + "\n\\end{document}") if __name__ == '__main__': - translate_directories() + translate_files("maple2latex/functions") diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index fad4e41..e529f37 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -5,6 +5,7 @@ import copy import json +from string import ascii_lowercase from maple_tokenize import tokenize INFO = json.loads(open("maple2latex/data/keys.json").read()) @@ -13,7 +14,8 @@ SYMBOLS = INFO["symbols"] CONSTRAINTS = INFO["constraints"] -SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin"} +SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin", + "\\imaginarynumber": "i"} class MapleEquation(object): @@ -39,7 +41,7 @@ def __init__(self, inp): line[1] = str(temp)[1:-1] elif line[0] == "booklabelv1" and line[1] == '"",': - line[1] = "No label" + line[1] = "x.x.x" elif line[0] in ["booklabelv1", "booklabelv2", "general", "constraints", "begin", "parameters"]: line[1] = line[1].strip()[1:-2].strip() @@ -68,6 +70,100 @@ def __init__(self, inp): self.general = [self.fields["even"], self.fields["odd"]] +class LatexEquation(object): + def __init__(self, label, equation, metadata): + self.label = label + self.equation = equation + self.metadata = {"constraint": metadata[0], "category": metadata[1]} + + @classmethod + def from_maple(cls, eq): + # modify fields + eq.lhs = translate(eq.lhs) + eq.factor = translate(eq.fields["factor"]) + eq.front = translate(eq.fields["front"]) + + equation = eq.lhs + "\n = " + + if eq.factor == "1": + eq.factor = "" + + # translates the Maple information (with spacing) + if eq.eq_type == "series": + eq.general = translate(eq.general[0]) + + if eq.factor != "": + equation += eq.factor + " " + + elif eq.front != "": + equation += eq.front + "+" + + equation += "\\sum_{k=0}^\\infty " + + if eq.category == "power series": + equation += eq.general + elif eq.category == "asymptotic series": # make sure to fix asymptotic series + equation += "(" + eq.general + ")" + + elif eq.eq_type == "contfrac": + pieces = parse_brackets(eq.general[0])[0] + + if eq.begin != "": + eq.begin = parse_brackets(eq.begin) + + start = 1 # in case the value of start isn't assigned + + # add terms before general + if eq.front != "": + equation += eq.front + "+" + start = 1 + + if eq.begin != "": + for piece in eq.begin: + equation += make_frac(piece) + " \\subplus " + start += 1 + + if eq.factor != "": + if eq.factor == "-1": + equation += "-" + else: + equation += eq.factor + " " + + # trim unnecessary parentheses + for i, element in enumerate(pieces): + pieces[i] = trim_parens(translate(element)) + + if pieces != ["0", "1"]: + equation += "\\CFK{m}{" + str(start) + "}{\\infty}@@{" + pieces[0] + "}{" + pieces[1] + "}" + else: + equation += "\\dots" + + return cls(eq.label, replace_strings(equation, SPECIAL), [translate(eq.constraints), eq.category]) + + @classmethod + def get_sortable_label(cls, equation): + if equation.label == "x.x.x": + return [100, 100, 100] # should be three very large numbers + + label = copy.copy(equation.label) + for i, ch in enumerate(ascii_lowercase): + if label[-1] == ch: + label = label[:-1] + "." + str(i + 1) + + if label[-1] == ".": + label = label[:-1] + + return map(int, label.split(".")) + + def __str__(self): + metadata = "" + for k, v in self.metadata.iteritems(): + metadata += " % \\" + k + "{" + v + "}\n" + + return "\\begin{equation*}\\tag{" + self.label + "}\n " + self.equation + "\n" + \ + metadata + "\\end{equation*}\n" + + def replace_strings(string, keys): # type: (str, dict) -> str """Replaces key strings with their mapped value.""" @@ -77,11 +173,11 @@ def replace_strings(string, keys): return string -def parse_brackets(exp): +def parse_brackets(string): # type: ((str, list)) -> list """Obtains the contents from data encapsulated in square brackets.""" - exp = exp[1:-1].split(",") + exp = string[1:-1].split(",") for i, e in enumerate(exp): exp[i] = replace_strings(e, {"[": "", "]": ""}).strip() @@ -135,14 +231,14 @@ def basic_translate(exp): """Translates basic mathematical operations.""" # translates operations in place - for order in range(3): # order of operations + for order in range(3): # order of operations i = 0 while i < len(exp): modified = False # the imaginary number if exp[i] == "I": - exp[i] = "i" + exp[i] = "\\imaginarynumber" # factorial elif exp[i] == "!" and order == 0: @@ -166,7 +262,8 @@ def basic_translate(exp): # division elif exp[i] == "/" and order == 1: - for index in [i - 1, i + 1]: # removes extra parentheses + # remove extra parentheses + for index in [i - 1, i + 1]: exp[index] = trim_parens(exp[index]) exp[i - 1] = "\\frac{" + exp[i - 1] + "}{" + exp.pop(i + 1) + "}" modified = True @@ -279,85 +376,3 @@ def translate(exp): i -= 1 return basic_translate(exp) - - -def make_equation(eq, view_metadata=False): - # type: (MapleEquation{, bool}) -> str - """Make a LaTeX equation based on a MapleEquation object.""" - - # modify fields - eq.lhs = translate(eq.lhs) - eq.factor = translate(eq.fields["factor"]) - eq.front = translate(eq.fields["front"]) - - if eq.eq_type == "series": - eq.general = translate(eq.general[0]) - - elif eq.eq_type == "contfrac": - eq.general = parse_brackets(eq.general[0])[0] - - if eq.begin != "": - eq.begin = parse_brackets(eq.begin) - - equation = "\\begin{equation*}\\tag{" + eq.label + "}\n " + eq.lhs + "\n = " - - if eq.factor == "1": - eq.factor = "" - - # translates the Maple information (with spacing) - if eq.eq_type == "series": - if eq.factor != "": - equation += eq.factor + " " - - elif eq.front != "": - equation += eq.front + "+" - - equation += "\\sum_{k=0}^\\infty " - - if eq.category == "power series": - equation += eq.general - elif eq.category == "asymptotic series": # make sure to fix asymptotic series - equation += "(" + eq.general + ")" - - elif eq.eq_type == "contfrac": - start = 1 # in case the value of start isn't assigned - - # add terms before general - if eq.front != "": - equation += eq.front + "+" - start = 1 - - if eq.begin != "": - for piece in eq.begin: - equation += make_frac(piece) + " \\subplus " - start += 1 - - if eq.factor != "": - if eq.factor == "-1": - equation += "-" - else: - equation += eq.factor + " " - - # trim unnecessary parentheses - for i, element in enumerate(eq.general): - eq.general[i] = trim_parens(translate(element)) - - if eq.general != ["0", "1"]: - equation += "\\CFK{m}{" + str(start) + "}{\\infty}@@{" + eq.general[0] + "}{" + eq.general[1] + "}" - else: - equation += "\\dots" - - # adds metadata - if view_metadata: - equation += "\n\\end{equation*}" - equation += "\n\\begin{center}" - equation += "\nParameters: $$" + eq.parameters + "$$" - equation += "\n$$" + translate(eq.constraints) + "$$" - equation += "\n" + eq.category - equation += "\n\\end{center}" - else: - equation += "\n % \\constraint{$" + translate(eq.constraints) + "$}" - equation += "\n % \\category{" + eq.category + "}" - equation += "\n\\end{equation*}" - - return replace_strings(equation, SPECIAL) diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index 58c79fb..01ed4c4 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -85,7 +85,7 @@ } ], - "make_equation": [ + "test_from_maple": [ { "eq": [ "create( 'series',", @@ -96,7 +96,6 @@ "general = [ 2 * k - 3 ],", "constraints = { k::integer }," ], - "view_metadata": false, "res": "\\begin{equation*}\\tag{0.0.0}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\constraint{$k\\in\\mathbb{Z}$}\n % \\category{power series}\n\\end{equation*}" }, @@ -109,7 +108,6 @@ "front = 17,", "general = [ k / 2 ]," ], - "view_metadata": false, "res": "\\begin{equation*}\\tag{0.0.0}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\constraint{$$}\n % \\category{asymptotic series}\n\\end{equation*}" }, @@ -122,7 +120,6 @@ "factor = 15,", "general = [ [3, 5] ]," ], - "view_metadata": false, "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" }, @@ -136,7 +133,6 @@ "front = 3,", "general = [[4, 5]]," ], - "view_metadata": false, "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{2} \\subplus \\CFK{m}{2}{\\infty}@@{4}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" }, @@ -151,7 +147,6 @@ "front = 4,", "general = [[0, 1]]," ], - "view_metadata": false, "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\dots\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" }, @@ -167,7 +162,6 @@ "even = [[5, 6]],", "odd = [[7, 8]]," ], - "view_metadata": true, "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{5}{6}\n\\end{equation*}\n\\begin{center}\nParameters: $$$$\n$$$$\ntest_data\n\\end{center}" } ] diff --git a/maple2latex/test/test_translator.py b/maple2latex/test/test_translator.py new file mode 100644 index 0000000..30eeb22 --- /dev/null +++ b/maple2latex/test/test_translator.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +__author__ = "Joon Bang" +__status__ = "Development" + +import json +from unittest import TestCase +import src.translator as t + +TEST_CASES = json.loads(open("maple2latex/test/test_cases.json").read())["translator"] + +parse_brackets_test_cases = TEST_CASES["parse_brackets"] +trim_parens_test_cases = TEST_CASES["trim_parens"] +basic_translate_test_cases = TEST_CASES["basic_translate"] +get_arguments_test_cases = TEST_CASES["get_arguments"] +translate_test_cases = TEST_CASES["translate"] +from_maple_test_cases = TEST_CASES["from_maple"] + + +class TestParseBrackets(TestCase): + def test_parse_brackets(self): + for case in parse_brackets_test_cases: + self.assertEqual(t.parse_brackets(case["exp"]), case["res"]) + + +class TestTrimParens(TestCase): + def test_trim_parens(self): + for case in trim_parens_test_cases: + self.assertEqual(t.trim_parens(case["exp"]), case["res"]) + + +class TestBasicTranslate(TestCase): + def test_basic_translate(self): + for case in basic_translate_test_cases: + self.assertEqual(t.basic_translate(case["exp"]), case["res"]) + + +class TestGetArguments(TestCase): + def test_get_arguments(self): + for case in get_arguments_test_cases: + self.assertEqual(t.get_arguments(case["function"], case["arg_string"]), case["res"]) + + +class TestTranslate(TestCase): + def test_translate(self): + for case in translate_test_cases: + self.assertEqual(t.translate(case["exp"]), case["res"]) + + +class TestFromMaple(TestCase): + def test_from_maple(self): + for case in from_maple_test_cases: + self.assertEqual(t.LatexEquation.from_maple(t.MapleEquation(case["eq"])), case["res"]) \ No newline at end of file From 46e903430621a9155f6cd3eefc8028d3de91011a Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 21 Jul 2016 11:39:21 -0400 Subject: [PATCH 366/402] Fix test cases --- maple2latex/src/translator.py | 8 +++++--- maple2latex/test/test_cases.json | 32 ++++++++--------------------- maple2latex/test/test_translator.py | 2 +- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index e529f37..d284a54 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -157,9 +157,11 @@ def get_sortable_label(cls, equation): def __str__(self): metadata = "" - for k, v in self.metadata.iteritems(): - metadata += " % \\" + k + "{" + v + "}\n" - + for data_type, data in self.metadata.iteritems(): + if data_type in ["constraint"]: # mathmode + metadata += " % \\" + data_type + "{$" + data + "$}\n" + else: + metadata += " % \\" + data_type + "{" + data + "}\n" return "\\begin{equation*}\\tag{" + self.label + "}\n " + self.equation + "\n" + \ metadata + "\\end{equation*}\n" diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index 01ed4c4..0df535e 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -37,7 +37,7 @@ { "exp": ["\\pi", "*", "I"], - "res": "\\pi i" + "res": "\\pi\\imaginarynumber" } ], @@ -85,7 +85,7 @@ } ], - "test_from_maple": [ + "from_maple": [ { "eq": [ "create( 'series',", @@ -96,7 +96,7 @@ "general = [ 2 * k - 3 ],", "constraints = { k::integer }," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\constraint{$k\\in\\mathbb{Z}$}\n % \\category{power series}\n\\end{equation*}" + "res": "\\begin{equation*}\\tag{0.0.0}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\category{power series}\n % \\constraint{$k\\in\\mathbb{Z}$}\n\\end{equation*}\n" }, { @@ -108,7 +108,7 @@ "front = 17,", "general = [ k / 2 ]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\constraint{$$}\n % \\category{asymptotic series}\n\\end{equation*}" + "res": "\\begin{equation*}\\tag{0.0.0}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\category{asymptotic series}\n % \\constraint{$$}\n\\end{equation*}\n" }, { @@ -120,7 +120,7 @@ "factor = 15,", "general = [ [3, 5] ]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" }, { @@ -133,7 +133,7 @@ "front = 3,", "general = [[4, 5]]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{2} \\subplus \\CFK{m}{2}{\\infty}@@{4}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{2} \\subplus \\CFK{m}{2}{\\infty}@@{4}{5}\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" }, { @@ -145,24 +145,10 @@ "begin = [[1,2]],", "factor = 3,", "front = 4,", - "general = [[0, 1]]," + "even = [[0, 1]],", + "odd = [[2, 3]]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\dots\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" - }, - - { - "eq": [ - "create( 'contfrac', ", - "booklabelv1 = \"0.0.0\",", - "category = \"test_data\"", - "lhs = zeta,", - "begin = [[1,2]],", - "factor = -1,", - "front = 4,", - "even = [[5, 6]],", - "odd = [[7, 8]]," - ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{5}{6}\n\\end{equation*}\n\\begin{center}\nParameters: $$$$\n$$$$\ntest_data\n\\end{center}" + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\dots\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" } ] } diff --git a/maple2latex/test/test_translator.py b/maple2latex/test/test_translator.py index 30eeb22..512b174 100644 --- a/maple2latex/test/test_translator.py +++ b/maple2latex/test/test_translator.py @@ -50,4 +50,4 @@ def test_translate(self): class TestFromMaple(TestCase): def test_from_maple(self): for case in from_maple_test_cases: - self.assertEqual(t.LatexEquation.from_maple(t.MapleEquation(case["eq"])), case["res"]) \ No newline at end of file + self.assertEqual(str(t.LatexEquation.from_maple(t.MapleEquation(case["eq"]))), case["res"]) \ No newline at end of file From 562c177f83006e30d8386540b1a21d0a47e0001b Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 22 Jul 2016 13:10:44 -0400 Subject: [PATCH 367/402] Add basic substitutions --- maple2latex/data/keys.json | 46 ++++++++++++++++++++++- maple2latex/src/main.py | 11 ++++-- maple2latex/src/translator.py | 63 ++++++++++++++++++++++++++++---- maple2latex/test/test_cases.json | 2 +- 4 files changed, 109 insertions(+), 13 deletions(-) diff --git a/maple2latex/data/keys.json b/maple2latex/data/keys.json index a7ea2f8..01e8c0d 100644 --- a/maple2latex/data/keys.json +++ b/maple2latex/data/keys.json @@ -38,7 +38,7 @@ "exp": [ { "args": 1, - "repr": ["e^{", "}"] + "repr": ["\\expe^{", "}"] } ], @@ -433,6 +433,48 @@ "args": 1, "repr": ["(", ")"] } + ], + + "regincBeta": [ + { + "args": 3, + "repr": ["\\IncI{", "}@{", "}{", "}"] + } + ], + + "Beta": [ + { + "args": 2, + "repr": ["\\EulerBeta@{", "}{", "}"] + } + ], + + "gammacdf": [ + { + "args": 3, + "repr": ["\\GammaP@{", "}{", "}{", "}"] + } + ], + + "cgammacdf": [ + { + "args": 3, + "repr": ["\\GammaQ@{", "}{", "}{", "}"] + } + ], + + "cnormalI": [ + { + "args": 2, + "repr": ["\\RepInterfc{", "}@{", "}"] + } + ], + + "Mills": [ + { + "args": 1, + "repr": ["\\Mills@{", "}"] + } ] }, @@ -461,7 +503,7 @@ "psi": "\\psi", "omega": "\\omega", "Pi": "\\pi", - "I": "i", + "I": "\\ImaginaryNumber", "Catalan": "\\CatalansConstant", "infinity": "\\infty", "Delian": "\\sqrt[\\leftroot{-2}\\uproot{2} 3]{2}", diff --git a/maple2latex/src/main.py b/maple2latex/src/main.py index b88765a..3fe555a 100644 --- a/maple2latex/src/main.py +++ b/maple2latex/src/main.py @@ -24,7 +24,8 @@ "expintegrals", "related", "binet", "incompletegamma", "polygamma", "tetragamma", "trigamma", "hypergeometric", - "qhyper" + "qhyper", + "beta_f_t", "gamma_chisquare", "normal", "repeated" ] # files to be translated @@ -64,12 +65,16 @@ def translate_files(root_directory): folder = ''.join(file_name.split(".")[:-1]) if folder in FILES: # generate equation code, sorted by equation number - subsection = TABLE[file_name[:-4]] + subsection = TABLE[folder] formulae = map(LatexEquation.from_maple, MapleFile(info[0] + "/" + file_name).formulae) formulae = sorted(formulae, key=LatexEquation.get_sortable_label) repr_label = formulae[len(formulae) / 2].label - sections[section][subsection] = [repr_label, "\n".join(map(str, formulae))] + + if subsection in sections[section]: + sections[section][subsection][1] += "\n".join(map(str, formulae)) + else: + sections[section][subsection] = [repr_label, "\n".join(map(str, formulae))] # generate subsection headers for section, subsections in sections.iteritems(): diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index d284a54..3788b1e 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -15,7 +15,10 @@ CONSTRAINTS = INFO["constraints"] SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin", - "\\imaginarynumber": "i"} + "\\ImaginaryNumber": "i"} + +# TODO: gamma_chisquare.mpl (no macro.) +# TODO: normal.mpl (no macro.) class MapleEquation(object): @@ -74,7 +77,7 @@ class LatexEquation(object): def __init__(self, label, equation, metadata): self.label = label self.equation = equation - self.metadata = {"constraint": metadata[0], "category": metadata[1]} + self.metadata = metadata @classmethod def from_maple(cls, eq): @@ -88,6 +91,8 @@ def from_maple(cls, eq): if eq.factor == "1": eq.factor = "" + metadata = dict() + # translates the Maple information (with spacing) if eq.eq_type == "series": eq.general = translate(eq.general[0]) @@ -106,7 +111,44 @@ def from_maple(cls, eq): equation += "(" + eq.general + ")" elif eq.eq_type == "contfrac": - pieces = parse_brackets(eq.general[0])[0] + forms = list() + + if len(parse_brackets(eq.general[0])) > 1: + # print eq.label + forms = parse_brackets(eq.general[0]) + + if len(eq.general) == 2 or forms: + if not forms: # forms is empty + for form in eq.general: + forms += parse_brackets(form) + + replacements = list() + if len(eq.general) == 2: + replacements = ["2j", "2j+1"] + elif forms: + for i in range(len(forms)): + replacement = str(len(forms)) + "j" + if i < len(forms) - 1: + replacement += "-" + str(len(forms) - i - 1) + + replacements.append(replacement) + + for i, form in enumerate(forms): + for j, half in enumerate(form): + half = tokenize(half) + for k, ch in enumerate(half): + if ch == "m": + half[k] = "(" + replacements[i] + ")" + + form[j] = ' '.join(half) + + forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) + + metadata["substitution"] = ','.join(forms) + pieces = ["s_m", "1"] + + else: + pieces = parse_brackets(eq.general[0])[0] if eq.begin != "": eq.begin = parse_brackets(eq.begin) @@ -138,7 +180,10 @@ def from_maple(cls, eq): else: equation += "\\dots" - return cls(eq.label, replace_strings(equation, SPECIAL), [translate(eq.constraints), eq.category]) + metadata["constraint"] = translate(eq.constraints) + metadata["category"] = eq.category + + return cls(eq.label, replace_strings(equation, SPECIAL), metadata) @classmethod def get_sortable_label(cls, equation): @@ -158,10 +203,14 @@ def get_sortable_label(cls, equation): def __str__(self): metadata = "" for data_type, data in self.metadata.iteritems(): - if data_type in ["constraint"]: # mathmode - metadata += " % \\" + data_type + "{$" + data + "$}\n" + if data_type in ["constraint", "substitution"]: # mathmode + metadata += " % \\" + data_type + "{" + replace_strings(data, SPECIAL) + "}\n" else: metadata += " % \\" + data_type + "{" + data + "}\n" + + # if data_type in ["substitution"]: + # metadata += " " + replace_strings(data, SPECIAL) + "\n" + return "\\begin{equation*}\\tag{" + self.label + "}\n " + self.equation + "\n" + \ metadata + "\\end{equation*}\n" @@ -240,7 +289,7 @@ def basic_translate(exp): # the imaginary number if exp[i] == "I": - exp[i] = "\\imaginarynumber" + exp[i] = "\\ImaginaryNumber" # factorial elif exp[i] == "!" and order == 0: diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index 0df535e..3048031 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -37,7 +37,7 @@ { "exp": ["\\pi", "*", "I"], - "res": "\\pi\\imaginarynumber" + "res": "\\pi\\ImaginaryNumber" } ], From 1e66ce4a0cd1df40538ae81036c92e9050961818 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Mon, 1 Aug 2016 11:27:44 -0400 Subject: [PATCH 368/402] Update keys.json with new macros --- maple2latex/data/keys.json | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/maple2latex/data/keys.json b/maple2latex/data/keys.json index 01e8c0d..63a40fc 100644 --- a/maple2latex/data/keys.json +++ b/maple2latex/data/keys.json @@ -449,31 +449,45 @@ } ], + "cnormalI": [ + { + "args": 2, + "repr": ["\\RepInterfc{", "}@{", "}"] + } + ], + + "Mills": [ + { + "args": 1, + "repr": ["\\Mills@{", "}"] + } + ], + "gammacdf": [ { "args": 3, - "repr": ["\\GammaP@{", "}{", "}{", "}"] + "repr": ["\\RegGammaP@{", "}{", "}{", "}"] } ], "cgammacdf": [ { "args": 3, - "repr": ["\\GammaQ@{", "}{", "}{", "}"] + "repr": ["\\RegGammaQ@{", "}{", "}{", "}"] } ], - "cnormalI": [ + "normaldcdf": [ { - "args": 2, - "repr": ["\\RepInterfc{", "}@{", "}"] + "args": 1, + "repr": ["\\GaussDistF@{", "}"] } ], - "Mills": [ + "cnormaldcdf": [ { "args": 1, - "repr": ["\\Mills@{", "}"] + "repr": ["\\GaussDistQ@{", "}"] } ] }, From 82100b75e0fcda9a537eaa679c7570e88748e019 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 11 Aug 2016 12:04:20 -0400 Subject: [PATCH 369/402] Fix tests --- maple2latex/src/translator.py | 5 +---- maple2latex/test/test_cases.json | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 3788b1e..972fe4d 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -204,7 +204,7 @@ def __str__(self): metadata = "" for data_type, data in self.metadata.iteritems(): if data_type in ["constraint", "substitution"]: # mathmode - metadata += " % \\" + data_type + "{" + replace_strings(data, SPECIAL) + "}\n" + metadata += " % \\" + data_type + "{$" + replace_strings(data, SPECIAL) + "$}\n" else: metadata += " % \\" + data_type + "{" + data + "}\n" @@ -262,9 +262,6 @@ def trim_parens(exp): else: s.pop() - if len(s) != 0: - return exp - return test return exp diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index 3048031..02a6885 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -139,7 +139,7 @@ { "eq": [ "create( 'contfrac', ", - "booklabelv1 = \"0.0.0\",", + "booklabelv1 = \"\",", "category = \"test_data\"", "lhs = zeta,", "begin = [[1,2]],", @@ -148,7 +148,7 @@ "even = [[0, 1]],", "odd = [[2, 3]]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\dots\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" + "res": "\\begin{equation*}\\tag{x.x.x}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\constraint{$$}\n % \\substitution{$s_{2j} = \\frac{0}{1},s_{2j+1} = \\frac{2}{3}$}\n\\end{equation*}\n" } ] } From e082f587e334c328c1e3331683f469ff02ac4324 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 11 Aug 2016 14:40:05 -0400 Subject: [PATCH 370/402] Fix constraints --- maple2latex/data/keys.json | 15 +++++++++++++-- maple2latex/src/translator.py | 22 ++++++++++++++++++---- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/maple2latex/data/keys.json b/maple2latex/data/keys.json index 63a40fc..a3c75e7 100644 --- a/maple2latex/data/keys.json +++ b/maple2latex/data/keys.json @@ -489,6 +489,13 @@ "args": 1, "repr": ["\\GaussDistQ@{", "}"] } + ], + + "not": [ + { + "args": 1, + "repr": ["", ""] + } ] }, @@ -522,7 +529,10 @@ "infinity": "\\infty", "Delian": "\\sqrt[\\leftroot{-2}\\uproot{2} 3]{2}", "Theodorus": "\\sqrt{3}", - "integer": "\\mathbb{Z}" + "integer": "\\mathbb{Z}", + "or": "\\lor ", + "and": "\\wedge ", + "realcons": "\\RR" }, "constraints": { @@ -536,6 +546,7 @@ "::positive": "> 0", "::nonnegative": "\\geq 0", "::nonneg": "\\geq 0", - "::": "\\in " + "::": "\\in ", + "<>": "\\neq " } } \ No newline at end of file diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 972fe4d..7dfb66a 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -17,9 +17,6 @@ SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin", "\\ImaginaryNumber": "i"} -# TODO: gamma_chisquare.mpl (no macro.) -# TODO: normal.mpl (no macro.) - class MapleEquation(object): def __init__(self, inp): @@ -114,7 +111,6 @@ def from_maple(cls, eq): forms = list() if len(parse_brackets(eq.general[0])) > 1: - # print eq.label forms = parse_brackets(eq.general[0]) if len(eq.general) == 2 or forms: @@ -204,6 +200,8 @@ def __str__(self): metadata = "" for data_type, data in self.metadata.iteritems(): if data_type in ["constraint", "substitution"]: # mathmode + if data == "": + data = "Empty" metadata += " % \\" + data_type + "{$" + replace_strings(data, SPECIAL) + "$}\n" else: metadata += " % \\" + data_type + "{" + data + "}\n" @@ -334,6 +332,22 @@ def get_arguments(function, arg_string): if arg_string == ["(", ")"]: return [] + elif function == "not": + inversion = {"<": "\\geq ", ">": "\\leq ", "\\in": "\\notin "} + + for i, ch in enumerate(arg_string): + if ch in inversion: + arg_string[i] = inversion[ch] + + args = [basic_translate(arg_string[1:-1])] + + elif function == "RealRange": + for i, piece in enumerate(arg_string): + if trim_parens(piece) != piece: + arg_string[i] = trim_parens(piece) + + args = basic_translate(arg_string[1:-1]).split(",") + # handling for hypergeometric, q-hypergeometric functions elif function in ["hypergeom", "qhyper"]: args = list() From b5fbe242dfe73beb2c2fa9bd677d38c9013a893e Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 11:02:56 -0400 Subject: [PATCH 371/402] Add selective parenthese handling --- maple2latex/data/keys.json | 249 +++++++++++++++++----------------- maple2latex/src/translator.py | 63 +++++---- 2 files changed, 168 insertions(+), 144 deletions(-) diff --git a/maple2latex/data/keys.json b/maple2latex/data/keys.json index a3c75e7..51b9e5d 100644 --- a/maple2latex/data/keys.json +++ b/maple2latex/data/keys.json @@ -1,283 +1,311 @@ { "functions": { - "sqrt": [ + "sin": [ { "args": 1, - "repr": ["\\sqrt{", "}"] + "repr": ["\\sin@{", "}"] } ], - "sin": [ + "cos": [ { "args": 1, - "repr": ["\\sin(", ")"] + "repr": ["\\cos@{", "}"] } ], - "cos": [ + "tan": [ { "args": 1, - "repr": ["\\cos(", ")"] + "repr": ["\\tan@{", "}"] } ], - "tan": [ + "arccos": [ { "args": 1, - "repr": ["\\tan(", ")"] + "repr": ["\\acos@{", "}"] } ], - "abs": [ + "arccosh": [ { "args": 1, - "repr": ["\\abs{", "}"] + "repr": ["\\acosh@{", "}"] } ], - "exp": [ + "arcsin": [ { "args": 1, - "repr": ["\\expe^{", "}"] + "repr": ["\\asin@{", "}"] } ], - "log": [ + "arcsinh": [ { "args": 1, - "repr": ["\\log{(", ")}"] - }, + "repr": ["\\asinh@{", "}"] + } + ], + "arctan": [ { - "args": 2, - "repr": ["\\log_{", "} {(", ")}"] + "args": 1, + "repr": ["\\atan@{", "}"] } ], - "ln": [ + "arctanh": [ { "args": 1, - "repr": ["\\ln{(", ")}"] + "repr": ["\\atanh@{", "}"] } ], - "floor": [ + "sinh": [ { "args": 1, - "repr": ["\\floor{", "}"] + "repr": ["\\sinh@{", "}"] } ], - "sum": [ + "cosh": [ { - "args": 3, - "repr": ["\\sum_{", "}^{", "} (", ")"] + "args": 1, + "repr": ["\\cosh@{", "}"] } ], - "GAMMA": [ + "coth": [ { "args": 1, - "repr": ["\\EulerGamma@{", "}"] + "repr": ["\\coth@{", "}"] } ], - "bernoulli": [ + "tanh": [ { "args": 1, - "repr": ["\\BernoulliB{", "}"] + "repr": ["\\tanh@{", "}"] } ], - "BesselI": [ + "erfc": [ { - "args": 2, - "repr": ["\\BesselI{", "}@{", "}"] + "args": 1, + "repr": ["\\erfc@{", "}"] } ], - "BesselJ": [ + "erf": [ { - "args": 2, - "repr": ["\\BesselJ{", "}@{", "}"] + "args": 1, + "repr": ["\\erf@{", "}"] } ], - "BesselK": [ + "log": [ + { + "args": 1, + "repr": ["\\log@{", "}"] + }, + { "args": 2, - "repr": ["\\BesselK{", "}@{", "}"] + "repr": ["\\log_{", "}@{", "}"] } ], - "BesselY": [ + "ln": [ { - "args": 2, - "repr": ["\\BesselY{", "}@{", "}"] + "args": 1, + "repr": ["\\ln@{", "}"] } ], - "dawson": [ + "cerf": [ { "args": 1, - "repr": ["\\DawsonsInt@{", "}"] + "repr": ["\\erfw@{", "}"] } ], - "Ei": [ + "Ein": [ + { + "args": 1, + "repr": ["\\ExpIntEin@{", "}"] + } + ], + + "erfcI": [ { "args": 2, - "repr": ["\\ExpIntn{", "}@{", "}"] - }, + "repr": ["I^{", "} \\erfc@{", "}"] + } + ], + "sqrt": [ { "args": 1, - "repr": ["\\ExpInt@{", "}"] + "repr": ["\\sqrt{", "}"] } ], - "erfc": [ + "abs": [ { "args": 1, - "repr": ["\\erfc@@{(", ")}"] + "repr": ["\\abs{", "}"] } ], - "erf": [ + "exp": [ { "args": 1, - "repr": ["\\erf@@{(", ")}"] + "repr": ["\\expe^{", "}"] } ], - "FresnelC": [ + "floor": [ { "args": 1, - "repr": ["\\FresnelCos@{", "}"] + "repr": ["\\floor{", "}"] } ], - "FresnelS": [ + "sum": [ { - "args": 1, - "repr": ["\\FresnelSin@{", "}"] + "args": 3, + "repr": ["\\sum_{", "}^{", "} (", ")"] } ], - "HankelH1": [ + "GAMMA": [ { - "args": 2, - "repr": ["\\HankelHi{", "}@{", "}"] + "args": 1, + "repr": ["\\EulerGamma@{", "}"] } ], - "KummerU": [ + "bernoulli": [ { - "args": 3, - "repr": ["\\KummerU@{", "}{", "}{", "}"] + "args": 1, + "repr": ["\\BernoulliB{", "}"] } ], - "CylinderU": [ + "BesselI": [ { "args": 2, - "repr": ["\\ParabolicU@{", "}{", "}"] + "repr": ["\\BesselI{", "}@{", "}"] } ], - "Psi": [ + "BesselJ": [ { "args": 2, - "repr": ["\\polygamma{", "}@{", "}"] - }, + "repr": ["\\BesselJ{", "}@{", "}"] + } + ], + "BesselK": [ { - "args": 1, - "repr": ["\\digamma@{", "}"] + "args": 2, + "repr": ["\\BesselK{", "}@{", "}"] } ], - "WhittakerW": [ + "BesselY": [ { - "args": 3, - "repr": ["\\WhitW{", "}{", "}@{", "}"] + "args": 2, + "repr": ["\\BesselY{", "}@{", "}"] } ], - "Zeta": [ + "dawson": [ { "args": 1, - "repr": ["\\RiemannZeta@{", "}"] + "repr": ["\\DawsonsInt@{", "}"] } ], - "arccos": [ + "Ei": [ + { + "args": 2, + "repr": ["\\ExpIntn{", "}@{", "}"] + }, + { "args": 1, - "repr": ["\\Acos@@{(", ")}"] + "repr": ["\\ExpInt@{", "}"] } ], - "arccosh": [ + "FresnelC": [ { "args": 1, - "repr": ["\\Acosh@@{(", ")}"] + "repr": ["\\FresnelCos@{", "}"] } ], - "arcsin": [ + "FresnelS": [ { "args": 1, - "repr": ["\\Asin@@{(", ")}"] + "repr": ["\\FresnelSin@{", "}"] } ], - "arcsinh": [ + "HankelH1": [ { - "args": 1, - "repr": ["\\Asinh@@{(", ")}"] + "args": 2, + "repr": ["\\HankelHi{", "}@{", "}"] } ], - "arctan": [ + "KummerU": [ { - "args": 1, - "repr": ["\\Atan@@{(", ")}"] + "args": 3, + "repr": ["\\KummerU@{", "}{", "}{", "}"] } ], - "arctanh": [ + "CylinderU": [ { - "args": 1, - "repr": ["\\Atanh@@{(", ")}"] + "args": 2, + "repr": ["\\ParabolicU@{", "}{", "}"] } ], - "sinh": [ + "Psi": [ + { + "args": 2, + "repr": ["\\polygamma{", "}@{", "}"] + }, + { "args": 1, - "repr": ["\\sinh@@{(", ")}"] + "repr": ["\\digamma@{", "}"] } ], - "cosh": [ + "special-trigamma": [ { "args": 1, - "repr": ["\\cosh@@{(", ")}"] + "repr": ["\\digamma'@{", "}"] } ], - "coth": [ + "WhittakerW": [ { - "args": 1, - "repr": ["\\coth@@{(", ")}"] + "args": 3, + "repr": ["\\WhitW{", "}{", "}@{", "}"] } ], - "tanh": [ + "Zeta": [ { "args": 1, - "repr": ["\\tanh@@{(", ")}"] + "repr": ["\\RiemannZeta@{", "}"] } ], @@ -330,27 +358,6 @@ } ], - "cerf": [ - { - "args": 1, - "repr": ["\\erfw@@{(", ")}"] - } - ], - - "Ein": [ - { - "args": 1, - "repr": ["\\ExpIntEin@{", "}"] - } - ], - - "erfcI": [ - { - "args": 2, - "repr": ["I^{", "} \\erfc@@{(", ")}"] - } - ], - "hankelsymb": [ { "args": 2, @@ -417,7 +424,7 @@ "argument": [ { "args": 1, - "repr": ["\\arg{(", ")}"] + "repr": ["\\arg@{", "}"] } ], @@ -514,7 +521,7 @@ "mu": "\\mu", "nu": "\\nu", "xi": "\\xi", - "pi": "\\pi", + "pi": "\\cpi", "rho": "\\rho", "sigma": "\\sigma", "tau": "\\tau", @@ -524,7 +531,6 @@ "psi": "\\psi", "omega": "\\omega", "Pi": "\\pi", - "I": "\\ImaginaryNumber", "Catalan": "\\CatalansConstant", "infinity": "\\infty", "Delian": "\\sqrt[\\leftroot{-2}\\uproot{2} 3]{2}", @@ -532,7 +538,8 @@ "integer": "\\mathbb{Z}", "or": "\\lor ", "and": "\\wedge ", - "realcons": "\\RR" + "realcons": "\\RR", + "I": "\\iunit" }, "constraints": { diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 7dfb66a..12ef620 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -14,8 +14,10 @@ SYMBOLS = INFO["symbols"] CONSTRAINTS = INFO["constraints"] -SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin", - "\\ImaginaryNumber": "i"} +SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin"} + +MULTI_ARGS = ["sin", "cos", "tan", "arccos", "arccosh", "arcsin", "arcsinh", "arctanh", "sinh", "cosh", "coth", "tanh", + "erfc", "erf", "log", "ln"] class MapleEquation(object): @@ -239,12 +241,15 @@ def parse_brackets(string): def trim_parens(exp): - # type: (str) -> str + # type: (str/list) -> str """Removes unnecessary parentheses.""" - if exp == "": + if type(exp) == str and exp == "": return "" + elif type(exp) == list and exp == []: + return [] + # checks whether the outer set of parentheses are necessary if exp[0] == "(" and exp[-1] == ")": test = exp[1:-1] @@ -282,12 +287,8 @@ def basic_translate(exp): while i < len(exp): modified = False - # the imaginary number - if exp[i] == "I": - exp[i] = "\\ImaginaryNumber" - # factorial - elif exp[i] == "!" and order == 0: + if exp[i] == "!" and order == 0: exp[i - 1] += "!" modified = True @@ -328,9 +329,11 @@ def get_arguments(function, arg_string): # type: (str, list) -> list """Obtains the arguments of a function.""" + parens_mod = False + # no arguments - if arg_string == ["(", ")"]: - return [] + if not arg_string: + args = [] elif function == "not": inversion = {"<": "\\geq ", ">": "\\leq ", "\\in": "\\notin "} @@ -339,19 +342,24 @@ def get_arguments(function, arg_string): if ch in inversion: arg_string[i] = inversion[ch] - args = [basic_translate(arg_string[1:-1])] + args = [basic_translate(arg_string)] elif function == "RealRange": for i, piece in enumerate(arg_string): if trim_parens(piece) != piece: arg_string[i] = trim_parens(piece) - args = basic_translate(arg_string[1:-1]).split(",") + args = basic_translate(arg_string).split(",") + + # handling for trigamma + elif function == "Psi" and arg_string[0] == "1": + function = "special-trigamma" + args = basic_translate(arg_string[2]) # handling for hypergeometric, q-hypergeometric functions elif function in ["hypergeom", "qhyper"]: args = list() - for s in ' '.join(arg_string[1:-1]).split("] , "): + for s in ' '.join(arg_string).split("] , "): args.append(basic_translate(replace_strings(s, {"[": "", "]": ""}).split())) if function == "qhyper": @@ -366,26 +374,35 @@ def get_arguments(function, arg_string): # handling for sums elif function == "sum": - args = basic_translate(arg_string[1:-1]).split(",") + args = basic_translate(arg_string).split(",") args = args.pop(1).split("..") + [args[0]] if args[1] == "infinity": args[1] = "\\infty" + elif function in MULTI_ARGS and len(arg_string) == 1: + parens_mod = True + args = basic_translate(arg_string).split(",") + else: - args = basic_translate(arg_string[1:-1]).split(",") + args = basic_translate(arg_string).split(",") - return args + result = list() + for n in FUNCTIONS: + for variant in FUNCTIONS[n]: + if function == n and len(args) == variant["args"]: + result = copy.copy(variant["repr"]) + + if parens_mod: + result[0] = result[0].replace("@", "@@") # make the macro without parens + + return [result, args] def generate_function(name, args): # type: (str, list) -> str """Generate a function with the provided function name and arguments.""" - result = list() - for n in FUNCTIONS: - for variant in FUNCTIONS[n]: - if name == n and len(args) == variant["args"]: - result = copy.copy(variant["repr"]) + result, args = get_arguments(name, args) # places arguments between shell of function for n in range(1, len(result)): @@ -423,7 +440,7 @@ def translate(exp): if exp[i - 1] in FUNCTIONS: # handling for functions i -= 1 - piece = generate_function(exp[i], get_arguments(exp[i], piece)) + piece = generate_function(exp[i], trim_parens(piece)) else: piece = basic_translate(piece) From ec3213b20b860ea522902199591c5b44cb0ce12a Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 11:11:02 -0400 Subject: [PATCH 372/402] Add Binet function --- maple2latex/data/keys.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maple2latex/data/keys.json b/maple2latex/data/keys.json index 51b9e5d..06412fa 100644 --- a/maple2latex/data/keys.json +++ b/maple2latex/data/keys.json @@ -503,6 +503,13 @@ "args": 1, "repr": ["", ""] } + ], + + "Binet": [ + { + "args": 1, + "repr": ["\\Binet@{", "}"] + } ] }, From 68a151fb79294ea53812eb983cf0f01ba30f7ad6 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 12 Aug 2016 11:30:17 -0400 Subject: [PATCH 373/402] Fix unit tests --- maple2latex/src/translator.py | 6 ++---- maple2latex/test/test_cases.json | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 12ef620..89a5b81 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -202,8 +202,6 @@ def __str__(self): metadata = "" for data_type, data in self.metadata.iteritems(): if data_type in ["constraint", "substitution"]: # mathmode - if data == "": - data = "Empty" metadata += " % \\" + data_type + "{$" + replace_strings(data, SPECIAL) + "$}\n" else: metadata += " % \\" + data_type + "{" + data + "}\n" @@ -326,8 +324,8 @@ def basic_translate(exp): def get_arguments(function, arg_string): - # type: (str, list) -> list - """Obtains the arguments of a function.""" + # type: (str, list) -> (list, list) + """Generates the function pieces and the arguments.""" parens_mod = False diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index 02a6885..fe3b3d9 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -36,52 +36,52 @@ }, { - "exp": ["\\pi", "*", "I"], - "res": "\\pi\\ImaginaryNumber" + "exp": ["\\cpi", "*", "3"], + "res": "\\cpi 3" } ], "get_arguments": [ { "function": "rabbit", - "arg_string": ["(", ")"], - "res": [] + "arg_string": [], + "res": [["\\rabbitConstant"], []] }, { "function": "hypergeom", - "arg_string": ["(", "[1", ",", "2]", ",", "[]", ",", "4", ")"], - "res": ["2", "0", "1,2", "", "4"] + "arg_string": ["[1", ",", "2]", ",", "[]", ",", "4"], + "res": [["\\HyperpFq{", "}{", "}@@{", "}{", "}{", "}"], ["2", "0", "1,2", "", "4"]] }, { "function": "qhyper", - "arg_string": ["(", "[1", ",", "2", ",", "3]", ",", "[4", ",", "5]", ",", "6", ",", "7", ")"], - "res": ["3", "2", "1,2,3", "4,5", "6", "7"] + "arg_string": ["[1", ",", "2", ",", "3]", ",", "[4", ",", "5]", ",", "6", ",", "7"], + "res": [["\\qHyperrphis{", "}{", "}@@{", "}{", "}{", "}{", "}"], ["3", "2", "1,2,3", "4,5", "6", "7"]] }, { "function": "sum", - "arg_string": ["(", "m", ",", "1..infinity", ")"], - "res": ["1", "\\infty", "m"] + "arg_string": ["m", ",", "1..infinity"], + "res": [["\\sum_{", "}^{", "} (", ")"], ["1", "\\infty", "m"]] }, { "function": "BesselJ", - "arg_string": ["(", "\\nu", ",", "z", ")"], - "res": ["\\nu", "z"] + "arg_string": ["\\nu", ",", "z"], + "res": [["\\BesselJ{", "}@{", "}"], ["\\nu", "z"]] } ], "translate": [ { "exp": "sin(x)", - "res": "\\sin(x)" + "res": "\\sin@@{x}" }, { "exp": "log[beta](nu)", - "res": "\\log_{\\beta} {(\\nu)}" + "res": "\\log_{\\beta}@{\\nu}" } ], From 3eedb129ef467187893e4ac5b9efdb38ee4876af Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 16 Aug 2016 20:16:44 -0400 Subject: [PATCH 374/402] Update README.md --- maple2latex/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/maple2latex/README.md b/maple2latex/README.md index e69de29..5fe9d94 100644 --- a/maple2latex/README.md +++ b/maple2latex/README.md @@ -0,0 +1,19 @@ +# Maple CFSF Seeding Project +This project uses Python to convert the continued fractions for special functions library, written in Maple, into LaTeX. + +## Prerequisites +This program requires Python 2.6+ to run. + +## Usage +To run the program, ensure that you are in the directory where maple2latex is located. Then, run the command `python maple2latex/src/main.py`. + +Currently, the program translates only the CFSF library of functions. In the future, support will be added for +translating individual .mpl files. + +## Code Explanation +There are three files, `main.py`, `maple_tokenize.py`, and `translator.py`. The bulk of the code is located in `translator.py.` + +The program works by parsing through "tokens," which are created by running the `tokenize` function on a string. +It then goes through the tokens, joining them when necessary. It initially joins terms grouped in parentheses, starting from +the innermost set of parentheses and working its way outwards. It has separate functions handling translation of mathematical +functions, and basic operations (addition, multiplication, division, etc.). From b4c335933bf5b8efc64c6293e4a5937279fe83cc Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 16 Aug 2016 20:23:48 -0400 Subject: [PATCH 375/402] Add .gitignore --- main_page/.gitignore | 5 +++++ maple2latex/.gitignore | 11 +++++++++++ 2 files changed, 16 insertions(+) create mode 100644 main_page/.gitignore create mode 100644 maple2latex/.gitignore diff --git a/main_page/.gitignore b/main_page/.gitignore new file mode 100644 index 0000000..dbf9da8 --- /dev/null +++ b/main_page/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +backups/ +../.DS_Store +*Glossary.csv* +!test/fake.Glossary.csv diff --git a/maple2latex/.gitignore b/maple2latex/.gitignore new file mode 100644 index 0000000..10d7823 --- /dev/null +++ b/maple2latex/.gitignore @@ -0,0 +1,11 @@ +functions/ +out/ +!out/test.pdf +notes.txt +resources/ +.DS_Store +../.DS_Store +*differences.py +../AzeemOldCode/ +../tex2wiki/ +../main_page/ From fa8c15bc468e553f103bdcc520499177f984e98a Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 17 Aug 2016 10:07:12 -0400 Subject: [PATCH 376/402] Update .gitignore --- main_page/.gitignore | 1 - maple2latex/.gitignore | 6 ------ 2 files changed, 7 deletions(-) diff --git a/main_page/.gitignore b/main_page/.gitignore index dbf9da8..3caccc4 100644 --- a/main_page/.gitignore +++ b/main_page/.gitignore @@ -1,5 +1,4 @@ .DS_Store backups/ -../.DS_Store *Glossary.csv* !test/fake.Glossary.csv diff --git a/maple2latex/.gitignore b/maple2latex/.gitignore index 10d7823..1beb704 100644 --- a/maple2latex/.gitignore +++ b/maple2latex/.gitignore @@ -1,11 +1,5 @@ functions/ out/ -!out/test.pdf notes.txt resources/ .DS_Store -../.DS_Store -*differences.py -../AzeemOldCode/ -../tex2wiki/ -../main_page/ From 492943ce5d7f5d75d5317d56ef17a607ccc1f4a5 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 17 Aug 2016 10:37:46 -0400 Subject: [PATCH 377/402] Fix unit tests --- maple2latex/src/translator.py | 8 +-- maple2latex/test/test_cases.json | 93 ++++++++++++++++++++++++++++- maple2latex/test/test_translator.py | 9 ++- 3 files changed, 102 insertions(+), 8 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 89a5b81..be41033 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -183,8 +183,8 @@ def from_maple(cls, eq): return cls(eq.label, replace_strings(equation, SPECIAL), metadata) - @classmethod - def get_sortable_label(cls, equation): + @staticmethod + def get_sortable_label(equation): if equation.label == "x.x.x": return [100, 100, 100] # should be three very large numbers @@ -242,7 +242,7 @@ def trim_parens(exp): # type: (str/list) -> str """Removes unnecessary parentheses.""" - if type(exp) == str and exp == "": + if type(exp) in [unicode, str] and exp == "": return "" elif type(exp) == list and exp == []: @@ -352,7 +352,7 @@ def get_arguments(function, arg_string): # handling for trigamma elif function == "Psi" and arg_string[0] == "1": function = "special-trigamma" - args = basic_translate(arg_string[2]) + args = [basic_translate(arg_string[2])] # handling for hypergeometric, q-hypergeometric functions elif function in ["hypergeom", "qhyper"]: diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index fe3b3d9..e316eeb 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -26,6 +26,16 @@ { "exp": "((1 + 2))", "res": "(1 + 2)" + }, + + { + "exp": "", + "res": "" + }, + + { + "exp": [], + "res": [] } ], @@ -70,6 +80,24 @@ "function": "BesselJ", "arg_string": ["\\nu", ",", "z"], "res": [["\\BesselJ{", "}@{", "}"], ["\\nu", "z"]] + }, + + { + "function": "RealRange", + "arg_string": ["0", ",", "(1)"], + "res": [["(", ", ", ")"], ["0", "1"]] + }, + + { + "function": "Psi", + "arg_string": ["1", ",", "x"], + "res": [["\\digamma'@{", "}"], ["x"]] + }, + + { + "function": "not", + "arg_string": ["x", "<", "3"], + "res": [["", ""], ["x\\geq 3"]] } ], @@ -129,11 +157,15 @@ "booklabelv1 = \"0.0.0\",", "category = \"test_data\"", "lhs = zeta,", - "begin = [[1,2]],", + "begin = map(proc (x) [1, x] end proc,", + "[", + "1,2,3,4,5,6,7,8,9,10,11", + "]),", "front = 3,", - "general = [[4, 5]]," + "factor = 1,", + "general = [[0, 1]]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{2} \\subplus \\CFK{m}{2}{\\infty}@@{4}{5}\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{1} \\subplus \\frac{1}{2} \\subplus \\frac{1}{3} \\subplus \\frac{1}{4} \\subplus \\frac{1}{5} \\subplus \\frac{1}{6} \\subplus \\frac{1}{7} \\subplus \\frac{1}{8} \\subplus \\frac{1}{9} \\subplus \\frac{1}{10} \\subplus \\dots\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" }, { @@ -149,6 +181,61 @@ "odd = [[2, 3]]," ], "res": "\\begin{equation*}\\tag{x.x.x}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\constraint{$$}\n % \\substitution{$s_{2j} = \\frac{0}{1},s_{2j+1} = \\frac{2}{3}$}\n\\end{equation*}\n" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "factor = -1,", + "front = 4,", + "general = [[m, 2], [2, 3], [3, 4]]," + ], + "res": "\\begin{equation*}\\tag{x.x.x}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\constraint{$$}\n % \\substitution{$s_{3j-2} = \\frac{\\left(3j-2\\right)}{2},s_{3j-1} = \\frac{2}{3},s_{3j} = \\frac{3}{4}$}\n\\end{equation*}\n" + } + ], + + "get_sortable_label": [ + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "factor = 3,", + "front = 4,", + "even = [[0, 1]],", + "odd = [[2, 3]]," + ], + "res": [100, 100, 100] + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"3.4.5a\",", + "category = \"test_data\"", + "lhs = zeta,", + "factor = 15,", + "general = [ [3, 5] ]," + ], + "res": [3, 4, 5, 1] + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"3.4.5.\",", + "category = \"test_data\"", + "lhs = zeta,", + "factor = 15,", + "general = [ [3, 5] ]," + ], + "res": [3, 4, 5] } ] } diff --git a/maple2latex/test/test_translator.py b/maple2latex/test/test_translator.py index 512b174..c0a09c2 100644 --- a/maple2latex/test/test_translator.py +++ b/maple2latex/test/test_translator.py @@ -15,6 +15,7 @@ get_arguments_test_cases = TEST_CASES["get_arguments"] translate_test_cases = TEST_CASES["translate"] from_maple_test_cases = TEST_CASES["from_maple"] +get_sortable_label_test_cases = TEST_CASES["get_sortable_label"] class TestParseBrackets(TestCase): @@ -50,4 +51,10 @@ def test_translate(self): class TestFromMaple(TestCase): def test_from_maple(self): for case in from_maple_test_cases: - self.assertEqual(str(t.LatexEquation.from_maple(t.MapleEquation(case["eq"]))), case["res"]) \ No newline at end of file + self.assertEqual(str(t.LatexEquation.from_maple(t.MapleEquation(case["eq"]))), case["res"]) + + +class TestGetSortableLabel(TestCase): + def test_get_sortable_label(self): + for case in get_sortable_label_test_cases: + self.assertEqual(t.LatexEquation.get_sortable_label(t.MapleEquation(case["eq"])), case["res"]) From a6e7085ab15fa6f3b5343dc2b4a6039116ff8f32 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 17 Aug 2016 10:59:35 -0400 Subject: [PATCH 378/402] Fix landscape issues --- maple2latex/src/translator.py | 57 +++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index be41033..d99b326 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -112,6 +112,7 @@ def from_maple(cls, eq): elif eq.eq_type == "contfrac": forms = list() + # substitution handling if len(parse_brackets(eq.general[0])) > 1: forms = parse_brackets(eq.general[0]) @@ -120,29 +121,7 @@ def from_maple(cls, eq): for form in eq.general: forms += parse_brackets(form) - replacements = list() - if len(eq.general) == 2: - replacements = ["2j", "2j+1"] - elif forms: - for i in range(len(forms)): - replacement = str(len(forms)) + "j" - if i < len(forms) - 1: - replacement += "-" + str(len(forms) - i - 1) - - replacements.append(replacement) - - for i, form in enumerate(forms): - for j, half in enumerate(form): - half = tokenize(half) - for k, ch in enumerate(half): - if ch == "m": - half[k] = "(" + replacements[i] + ")" - - form[j] = ' '.join(half) - - forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) - - metadata["substitution"] = ','.join(forms) + metadata["substitution"] = ','.join(perform_substitution(eq, forms)) pieces = ["s_m", "1"] else: @@ -323,6 +302,35 @@ def basic_translate(exp): return ''.join(exp) +def perform_substitution(eq, forms): + # (MapleEquation, list) -> list + """Performs variable substitutions on the strings in eq.general.""" + + replacements = list() + if len(eq.general) == 2: + replacements = ["2j", "2j+1"] + elif forms: + for i, _ in enumerate(forms): + replacement = str(len(forms)) + "j" + if i < len(forms) - 1: + replacement += "-" + str(len(forms) - i - 1) + + replacements.append(replacement) + + for i, form in enumerate(forms): + for j, half in enumerate(form): + half = tokenize(half) + for k, ch in enumerate(half): + if ch == "m": + half[k] = "(" + replacements[i] + ")" + + form[j] = ' '.join(half) + + forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) + + return forms + + def get_arguments(function, arg_string): # type: (str, list) -> (list, list) """Generates the function pieces and the arguments.""" @@ -333,6 +341,7 @@ def get_arguments(function, arg_string): if not arg_string: args = [] + # handling for not elif function == "not": inversion = {"<": "\\geq ", ">": "\\leq ", "\\in": "\\notin "} @@ -342,6 +351,7 @@ def get_arguments(function, arg_string): args = [basic_translate(arg_string)] + # handling for ranges (constraints) elif function == "RealRange": for i, piece in enumerate(arg_string): if trim_parens(piece) != piece: @@ -377,6 +387,7 @@ def get_arguments(function, arg_string): if args[1] == "infinity": args[1] = "\\infty" + # handling for function in case it has optional parentheses elif function in MULTI_ARGS and len(arg_string) == 1: parens_mod = True args = basic_translate(arg_string).split(",") From 622105e29410b5016b48880081ee5d7d8dbde9a5 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 18 Aug 2016 13:58:29 -0400 Subject: [PATCH 379/402] Improve code quality --- maple2latex/src/translator.py | 110 ++++++++++++++-------------------- 1 file changed, 46 insertions(+), 64 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index d99b326..8c3d7ce 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -110,43 +110,58 @@ def from_maple(cls, eq): equation += "(" + eq.general + ")" elif eq.eq_type == "contfrac": - forms = list() + forms = parse_brackets(eq.general[0]) - # substitution handling - if len(parse_brackets(eq.general[0])) > 1: - forms = parse_brackets(eq.general[0]) - - if len(eq.general) == 2 or forms: - if not forms: # forms is empty + if len(eq.general) == 2 or len(forms) > 1: + if len(forms) == 1: + forms = list() for form in eq.general: forms += parse_brackets(form) - metadata["substitution"] = ','.join(perform_substitution(eq, forms)) + replacements = list() + if len(eq.general) == 2: + replacements = ["2j", "2j+1"] + elif forms: + for i in range(len(forms)): + replacement = str(len(forms)) + "j" + if i < len(forms) - 1: + replacement += "-" + str(len(forms) - i - 1) + + replacements.append(replacement) + + for i, form in enumerate(forms): + for j, half in enumerate(form): + half = tokenize(half) + for k, ch in enumerate(half): + if ch == "m": + half[k] = "(" + replacements[i] + ")" + + form[j] = ' '.join(half) + + forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) + + metadata["substitution"] = ','.join(forms) pieces = ["s_m", "1"] else: pieces = parse_brackets(eq.general[0])[0] - if eq.begin != "": - eq.begin = parse_brackets(eq.begin) - start = 1 # in case the value of start isn't assigned + eq.begin = parse_brackets(eq.begin) + for piece in eq.begin: + equation += make_frac(piece) + " \\subplus " + start += 1 + # add terms before general if eq.front != "": equation += eq.front + "+" start = 1 - if eq.begin != "": - for piece in eq.begin: - equation += make_frac(piece) + " \\subplus " - start += 1 - - if eq.factor != "": - if eq.factor == "-1": - equation += "-" - else: - equation += eq.factor + " " + if eq.factor == "-1": + equation += "-" + elif eq.factor != "": + equation += eq.factor + " " # trim unnecessary parentheses for i, element in enumerate(pieces): @@ -162,20 +177,17 @@ def from_maple(cls, eq): return cls(eq.label, replace_strings(equation, SPECIAL), metadata) - @staticmethod - def get_sortable_label(equation): + @classmethod + def get_sortable_label(cls, equation): if equation.label == "x.x.x": - return [100, 100, 100] # should be three very large numbers + return [float("inf"), float("inf"), float("inf")] # should be three very large numbers label = copy.copy(equation.label) for i, ch in enumerate(ascii_lowercase): if label[-1] == ch: label = label[:-1] + "." + str(i + 1) - if label[-1] == ".": - label = label[:-1] - - return map(int, label.split(".")) + return map(int, filter(lambda x: x != "", label.split("."))) def __str__(self): metadata = "" @@ -205,9 +217,11 @@ def parse_brackets(string): # type: ((str, list)) -> list """Obtains the contents from data encapsulated in square brackets.""" + if string == "": + return "" + + string = replace_strings(string, {"[": "", "]": ""}) exp = string[1:-1].split(",") - for i, e in enumerate(exp): - exp[i] = replace_strings(e, {"[": "", "]": ""}).strip() i = 0 while i + 1 < len(exp): @@ -221,7 +235,7 @@ def trim_parens(exp): # type: (str/list) -> str """Removes unnecessary parentheses.""" - if type(exp) in [unicode, str] and exp == "": + if type(exp) == str and exp == "": return "" elif type(exp) == list and exp == []: @@ -302,35 +316,6 @@ def basic_translate(exp): return ''.join(exp) -def perform_substitution(eq, forms): - # (MapleEquation, list) -> list - """Performs variable substitutions on the strings in eq.general.""" - - replacements = list() - if len(eq.general) == 2: - replacements = ["2j", "2j+1"] - elif forms: - for i, _ in enumerate(forms): - replacement = str(len(forms)) + "j" - if i < len(forms) - 1: - replacement += "-" + str(len(forms) - i - 1) - - replacements.append(replacement) - - for i, form in enumerate(forms): - for j, half in enumerate(form): - half = tokenize(half) - for k, ch in enumerate(half): - if ch == "m": - half[k] = "(" + replacements[i] + ")" - - form[j] = ' '.join(half) - - forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) - - return forms - - def get_arguments(function, arg_string): # type: (str, list) -> (list, list) """Generates the function pieces and the arguments.""" @@ -341,7 +326,6 @@ def get_arguments(function, arg_string): if not arg_string: args = [] - # handling for not elif function == "not": inversion = {"<": "\\geq ", ">": "\\leq ", "\\in": "\\notin "} @@ -351,7 +335,6 @@ def get_arguments(function, arg_string): args = [basic_translate(arg_string)] - # handling for ranges (constraints) elif function == "RealRange": for i, piece in enumerate(arg_string): if trim_parens(piece) != piece: @@ -362,7 +345,7 @@ def get_arguments(function, arg_string): # handling for trigamma elif function == "Psi" and arg_string[0] == "1": function = "special-trigamma" - args = [basic_translate(arg_string[2])] + args = basic_translate(arg_string[2]) # handling for hypergeometric, q-hypergeometric functions elif function in ["hypergeom", "qhyper"]: @@ -387,7 +370,6 @@ def get_arguments(function, arg_string): if args[1] == "infinity": args[1] = "\\infty" - # handling for function in case it has optional parentheses elif function in MULTI_ARGS and len(arg_string) == 1: parens_mod = True args = basic_translate(arg_string).split(",") From 8eaf3657c14da5cfe3e6611a11755fb56753e554 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 6 Sep 2016 14:03:30 -0400 Subject: [PATCH 380/402] Fix unit tests (again) --- .DS_Store | Bin 6148 -> 0 bytes maple2latex/src/main.py | 29 +++-- maple2latex/src/translator.py | 197 ++++++++++++++++--------------- maple2latex/test/test_cases.json | 14 +-- 4 files changed, 128 insertions(+), 112 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 13a31254b7e6c325c5ff2fb524c0a254b62b3d0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO>fgc5S?vPa8n^%0a7I{K7v$GQ_+uOnx>!%3Q<#9A&P=s8)D&lqr`1msz^C= z<-(co|AFAd4}hP-sk~Wlk)5{J3eb)<`^M{eJNE2kH%mmKvg4PCY$CFtjD;ea6NI0$ z9+M&6a{(yS7*%p9CP~k588I0!8Ti{Xz`xxhEl@-O?NR3UyBx_aFOnXf^WtzDdhJjN zETR!`UV;Md*a|=db%{}luGlxN#|g0esh+n0l}D}KtGDmofB5+6^OvtG0VJ>`D7mEZ2)@BMB|W?Kb{xt0IXswMRH;v> z36z+Ap1l2h;)%;GJ6#slP#7)vMygnXyuX^Ltp6yAVhP1uMWHO6RFcfdm86Bz3s8g! z-pEDk4n*J*%to-Ni#K@zJ<*>FE;l~tXCr!otg*8RXQG%4m<;?w8Q}H7fijjg_ES_# z2O4z*02a`#1UCO&V2-1)tg)XWo&?gk3 zqGNnVxsxcTXj+p2lYx8&hSOV{_y48S&;NOnxic9s8ThX dict + """Obtain data from the functions/ directory.""" sections = dict() for info in dirs: # search through directories @@ -76,15 +71,25 @@ def translate_files(root_directory): else: sections[section][subsection] = [repr_label, "\n".join(map(str, formulae))] + return sections + + +def translate_files(root_directory): + # type: () + """Generates and writes the results of traversing the root directory, and translating all files in FILES.""" + + root_depth = len(root_directory.split("/")) + + dirs = [d for d in os.walk(root_directory) if d[0].count("/") == root_depth] + + sections = get_sections_data(dirs, root_depth=root_depth) + # generate subsection headers for section, subsections in sections.iteritems(): - print section - keys = sorted(subsections.keys(), key=lambda x: subsections[x][0]) text = "" for subsection in keys: - print " " + subsection text += "\n\\subsection{" + subsection + "}\n" text += subsections[subsection][1] @@ -98,7 +103,7 @@ def translate_files(root_directory): # write output to file with open("maple2latex/out/test.tex", "w") as test: with open("maple2latex/out/primer") as primer: - test.write(primer.read() + result + "\n\\end{document}") + test.write(primer.read() + result + "\n\\end{document}\n") if __name__ == '__main__': translate_files("maple2latex/functions") diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 8c3d7ce..8fa3e7f 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -5,6 +5,7 @@ import copy import json +import sys from string import ascii_lowercase from maple_tokenize import tokenize @@ -42,9 +43,6 @@ def __init__(self, inp): temp = temp[:10] line[1] = str(temp)[1:-1] - elif line[0] == "booklabelv1" and line[1] == '"",': - line[1] = "x.x.x" - elif line[0] in ["booklabelv1", "booklabelv2", "general", "constraints", "begin", "parameters"]: line[1] = line[1].strip()[1:-2].strip() @@ -67,7 +65,7 @@ def __init__(self, inp): # even-odd case handling if "general" in self.fields: - self.general = [self.fields["general"]] + self.general = self.fields["general"] elif "even" in self.fields and "odd" in self.fields: self.general = [self.fields["even"], self.fields["odd"]] @@ -80,88 +78,61 @@ def __init__(self, label, equation, metadata): @classmethod def from_maple(cls, eq): + # (List[MapleEquation]) -> LatexEquation # modify fields eq.lhs = translate(eq.lhs) eq.factor = translate(eq.fields["factor"]) eq.front = translate(eq.fields["front"]) - - equation = eq.lhs + "\n = " + eq.begin = parse_brackets(eq.begin) if eq.factor == "1": eq.factor = "" + equation = eq.lhs + "\n = " metadata = dict() # translates the Maple information (with spacing) if eq.eq_type == "series": - eq.general = translate(eq.general[0]) - - if eq.factor != "": - equation += eq.factor + " " - - elif eq.front != "": - equation += eq.front + "+" - + # add factor and front with accompanying symbols, if they exist + equation += evaluate(eq.factor + " ", eq.factor) + evaluate(eq.front + "+", eq.front) equation += "\\sum_{k=0}^\\infty " + eq.general = translate(eq.general) + if eq.category == "power series": equation += eq.general elif eq.category == "asymptotic series": # make sure to fix asymptotic series equation += "(" + eq.general + ")" elif eq.eq_type == "contfrac": - forms = parse_brackets(eq.general[0]) - - if len(eq.general) == 2 or len(forms) > 1: - if len(forms) == 1: - forms = list() - for form in eq.general: - forms += parse_brackets(form) - - replacements = list() - if len(eq.general) == 2: - replacements = ["2j", "2j+1"] - elif forms: - for i in range(len(forms)): - replacement = str(len(forms)) + "j" - if i < len(forms) - 1: - replacement += "-" + str(len(forms) - i - 1) - - replacements.append(replacement) - - for i, form in enumerate(forms): - for j, half in enumerate(form): - half = tokenize(half) - for k, ch in enumerate(half): - if ch == "m": - half[k] = "(" + replacements[i] + ")" - - form[j] = ' '.join(half) - - forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) - - metadata["substitution"] = ','.join(forms) + # obtain data from eq.general + try: + pieces = parse_brackets(eq.general) + except AttributeError: # in form of even, odd + pieces = list() + for piece in eq.general: + pieces += parse_brackets(piece) + + # if there are multiple forms (requires substitution) + if len(pieces) > 1: + metadata["substitution"] = ','.join(perform_substitution(eq, pieces)) pieces = ["s_m", "1"] - else: - pieces = parse_brackets(eq.general[0])[0] + pieces = pieces[0] start = 1 # in case the value of start isn't assigned - eq.begin = parse_brackets(eq.begin) + # add terms before general + equation += evaluate(eq.front + "+", eq.front) + for piece in eq.begin: equation += make_frac(piece) + " \\subplus " start += 1 - # add terms before general - if eq.front != "": - equation += eq.front + "+" - start = 1 - if eq.factor == "-1": equation += "-" - elif eq.factor != "": - equation += eq.factor + " " + else: + equation += evaluate(eq.factor + " ", eq.factor) # trim unnecessary parentheses for i, element in enumerate(pieces): @@ -174,13 +145,14 @@ def from_maple(cls, eq): metadata["constraint"] = translate(eq.constraints) metadata["category"] = eq.category + metadata["mapletag"] = eq.label return cls(eq.label, replace_strings(equation, SPECIAL), metadata) - @classmethod - def get_sortable_label(cls, equation): - if equation.label == "x.x.x": - return [float("inf"), float("inf"), float("inf")] # should be three very large numbers + @staticmethod + def get_sortable_label(equation): + if equation.label == "": + return [sys.maxsize, sys.maxsize, sys.maxsize] label = copy.copy(equation.label) for i, ch in enumerate(ascii_lowercase): @@ -192,16 +164,25 @@ def get_sortable_label(cls, equation): def __str__(self): metadata = "" for data_type, data in self.metadata.iteritems(): + if data == "": + continue + if data_type in ["constraint", "substitution"]: # mathmode metadata += " % \\" + data_type + "{$" + replace_strings(data, SPECIAL) + "$}\n" else: - metadata += " % \\" + data_type + "{" + data + "}\n" + metadata += " % \\" + data_type + "{" + data + "}\n"\ + + return "\\begin{equation}\n " + self.equation + "\n" + metadata + "\\end{equation}\n" - # if data_type in ["substitution"]: - # metadata += " " + replace_strings(data, SPECIAL) + "\n" - return "\\begin{equation*}\\tag{" + self.label + "}\n " + self.equation + "\n" + \ - metadata + "\\end{equation*}\n" +def evaluate(data, key): + # (Any, bool) -> Any + """ + Will return data as long as key is not False. + If key is False, returns 0 or blank string, depending on type(data). + Used as replacement for "if data != "": ...", and similar statements. + """ + return data * bool(key) def replace_strings(string, keys): @@ -214,14 +195,15 @@ def replace_strings(string, keys): def parse_brackets(string): - # type: ((str, list)) -> list + # type: (str) -> List[str] """Obtains the contents from data encapsulated in square brackets.""" - if string == "": + if not string: return "" - string = replace_strings(string, {"[": "", "]": ""}) exp = string[1:-1].split(",") + for i, e in enumerate(exp): + exp[i] = replace_strings(e, {"[": "", "]": ""}).strip() i = 0 while i + 1 < len(exp): @@ -232,12 +214,11 @@ def parse_brackets(string): def trim_parens(exp): - # type: (str/list) -> str + # type: (str/List[str]) -> str """Removes unnecessary parentheses.""" - if type(exp) == str and exp == "": + if type(exp) in [unicode, str] and exp == "": return "" - elif type(exp) == list and exp == []: return [] @@ -262,14 +243,14 @@ def trim_parens(exp): def make_frac(parts): - # type: (list) -> str + # type: (List[str]) -> str """Generate a LaTeX fraction from its numerator and denominator.""" return translate("(" + parts[0] + ") / (" + parts[1] + ")") def basic_translate(exp): - # type: (list) -> str + # type: (List[str]) -> str """Translates basic mathematical operations.""" # translates operations in place @@ -316,17 +297,47 @@ def basic_translate(exp): return ''.join(exp) -def get_arguments(function, arg_string): - # type: (str, list) -> (list, list) +def perform_substitution(eq, forms): + # (MapleEquation, List[str]) -> List[str] + """Performs variable substitutions on the strings in eq.general.""" + + replacements = list() + if len(eq.general) == 2: + replacements = ["2j", "2j+1"] + elif forms: + for i, _ in enumerate(forms): + replacement = str(len(forms)) + "j" + if i < len(forms) - 1: + replacement += "-" + str(len(forms) - i - 1) + + replacements.append(replacement) + + for i, form in enumerate(forms): + for j, half in enumerate(form): + half = tokenize(half) + for k, ch in enumerate(half): + if ch == "m": + half[k] = "(" + replacements[i] + ")" + + form[j] = ' '.join(half) + + forms[i] = "s_{" + replacements[i] + "} = " + make_frac(form) + + return forms + + +def get_arguments(function_name, arg_string): + # type: (str, List[str]) -> (List[str], List[str]) """Generates the function pieces and the arguments.""" parens_mod = False # no arguments - if not arg_string: + if not arg_string: # arg_string == [] args = [] - elif function == "not": + # handling for not + elif function_name == "not": inversion = {"<": "\\geq ", ">": "\\leq ", "\\in": "\\notin "} for i, ch in enumerate(arg_string): @@ -335,7 +346,8 @@ def get_arguments(function, arg_string): args = [basic_translate(arg_string)] - elif function == "RealRange": + # handling for ranges (constraints) + elif function_name == "RealRange": for i, piece in enumerate(arg_string): if trim_parens(piece) != piece: arg_string[i] = trim_parens(piece) @@ -343,34 +355,32 @@ def get_arguments(function, arg_string): args = basic_translate(arg_string).split(",") # handling for trigamma - elif function == "Psi" and arg_string[0] == "1": - function = "special-trigamma" - args = basic_translate(arg_string[2]) + elif function_name == "Psi" and arg_string[0] == "1": + function_name = "special-trigamma" + args = [basic_translate(arg_string[2])] # handling for hypergeometric, q-hypergeometric functions - elif function in ["hypergeom", "qhyper"]: + elif function_name in ["hypergeom", "qhyper"]: args = list() for s in ' '.join(arg_string).split("] , "): args.append(basic_translate(replace_strings(s, {"[": "", "]": ""}).split())) - if function == "qhyper": + if function_name == "qhyper": args += args.pop(2).split(",") for p, i in enumerate([1, 0]): - arg_count = 0 - if args[i + p] != "": - arg_count = args[i + p].count(",") + 1 - + arg_count = evaluate(args[i + p].count(",") + 1, args[i + p]) args.insert(0, str(arg_count)) # handling for sums - elif function == "sum": + elif function_name == "sum": args = basic_translate(arg_string).split(",") args = args.pop(1).split("..") + [args[0]] if args[1] == "infinity": args[1] = "\\infty" - elif function in MULTI_ARGS and len(arg_string) == 1: + # handling for function in case it has optional parentheses + elif function_name in MULTI_ARGS and len(arg_string) == 1: parens_mod = True args = basic_translate(arg_string).split(",") @@ -378,19 +388,20 @@ def get_arguments(function, arg_string): args = basic_translate(arg_string).split(",") result = list() - for n in FUNCTIONS: - for variant in FUNCTIONS[n]: - if function == n and len(args) == variant["args"]: + for function in FUNCTIONS: + for variant in FUNCTIONS[function]: + if function_name == function and len(args) == variant["args"]: result = copy.copy(variant["repr"]) + # modify macro to form without parentheses if parens_mod: - result[0] = result[0].replace("@", "@@") # make the macro without parens + result[0] = result[0].replace("@", "@@") return [result, args] def generate_function(name, args): - # type: (str, list) -> str + # type: (str, List[str]) -> str """Generate a function with the provided function name and arguments.""" result, args = get_arguments(name, args) diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json index e316eeb..85881ee 100644 --- a/maple2latex/test/test_cases.json +++ b/maple2latex/test/test_cases.json @@ -124,7 +124,7 @@ "general = [ 2 * k - 3 ],", "constraints = { k::integer }," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\category{power series}\n % \\constraint{$k\\in\\mathbb{Z}$}\n\\end{equation*}\n" + "res": "\\begin{equation}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\category{power series}\n % \\mapletag{0.0.0}\n % \\constraint{$k\\in\\mathbb{Z}$}\n\\end{equation}\n" }, { @@ -136,7 +136,7 @@ "front = 17,", "general = [ k / 2 ]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\category{asymptotic series}\n % \\constraint{$$}\n\\end{equation*}\n" + "res": "\\begin{equation}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\category{asymptotic series}\n % \\mapletag{0.0.0}\n\\end{equation}\n" }, { @@ -148,7 +148,7 @@ "factor = 15,", "general = [ [3, 5] ]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" + "res": "\\begin{equation}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\category{test_data}\n % \\mapletag{0.0.0}\n\\end{equation}\n" }, { @@ -165,7 +165,7 @@ "factor = 1,", "general = [[0, 1]]," ], - "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{1} \\subplus \\frac{1}{2} \\subplus \\frac{1}{3} \\subplus \\frac{1}{4} \\subplus \\frac{1}{5} \\subplus \\frac{1}{6} \\subplus \\frac{1}{7} \\subplus \\frac{1}{8} \\subplus \\frac{1}{9} \\subplus \\frac{1}{10} \\subplus \\dots\n % \\category{test_data}\n % \\constraint{$$}\n\\end{equation*}\n" + "res": "\\begin{equation}\n \\zeta\n = 3+\\frac{1}{1} \\subplus \\frac{1}{2} \\subplus \\frac{1}{3} \\subplus \\frac{1}{4} \\subplus \\frac{1}{5} \\subplus \\frac{1}{6} \\subplus \\frac{1}{7} \\subplus \\frac{1}{8} \\subplus \\frac{1}{9} \\subplus \\frac{1}{10} \\subplus \\dots\n % \\category{test_data}\n % \\mapletag{0.0.0}\n\\end{equation}\n" }, { @@ -180,7 +180,7 @@ "even = [[0, 1]],", "odd = [[2, 3]]," ], - "res": "\\begin{equation*}\\tag{x.x.x}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\constraint{$$}\n % \\substitution{$s_{2j} = \\frac{0}{1},s_{2j+1} = \\frac{2}{3}$}\n\\end{equation*}\n" + "res": "\\begin{equation}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\substitution{$s_{2j} = \\frac{0}{1},s_{2j+1} = \\frac{2}{3}$}\n\\end{equation}\n" }, { @@ -194,7 +194,7 @@ "front = 4,", "general = [[m, 2], [2, 3], [3, 4]]," ], - "res": "\\begin{equation*}\\tag{x.x.x}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\constraint{$$}\n % \\substitution{$s_{3j-2} = \\frac{\\left(3j-2\\right)}{2},s_{3j-1} = \\frac{2}{3},s_{3j} = \\frac{3}{4}$}\n\\end{equation*}\n" + "res": "\\begin{equation}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{s_m}{1}\n % \\category{test_data}\n % \\substitution{$s_{3j-2} = \\frac{\\left(3j-2\\right)}{2},s_{3j-1} = \\frac{2}{3},s_{3j} = \\frac{3}{4}$}\n\\end{equation}\n" } ], @@ -211,7 +211,7 @@ "even = [[0, 1]],", "odd = [[2, 3]]," ], - "res": [100, 100, 100] + "res": [9223372036854775807, 9223372036854775807, 9223372036854775807] }, { From 9144b1706c3c00a1a9a7e259efa943da4c30847c Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Fri, 28 Oct 2016 17:19:11 -0400 Subject: [PATCH 381/402] Add option for output directory --- maple2latex/src/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/maple2latex/src/main.py b/maple2latex/src/main.py index 49de8cb..36fe1df 100644 --- a/maple2latex/src/main.py +++ b/maple2latex/src/main.py @@ -74,7 +74,7 @@ def get_sections_data(dirs, root_depth=0): return sections -def translate_files(root_directory): +def translate_files(root_directory, output_file): # type: () """Generates and writes the results of traversing the root directory, and translating all files in FILES.""" @@ -101,9 +101,9 @@ def translate_files(root_directory): result += "\\section{" + section + "}\n" + section_data + "\n\n\n" # write output to file - with open("maple2latex/out/test.tex", "w") as test: + with open(output_file, "w") as test: with open("maple2latex/out/primer") as primer: test.write(primer.read() + result + "\n\\end{document}\n") if __name__ == '__main__': - translate_files("maple2latex/functions") + translate_files("maple2latex/functions", "maple2latex/out/test.tex") From 084cef7e9f6a2d58b3df1228b7b0f66297ce43b2 Mon Sep 17 00:00:00 2001 From: Joon Date: Wed, 23 Nov 2016 20:49:49 -0500 Subject: [PATCH 382/402] Polish methods, fix bug with equation handling --- tex2wiki/src/tex2wiki.py | 96 ++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index 8aa4c5e..2d12bbe 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -1,9 +1,10 @@ __author__ = "Joon Bang" __status__ = "Prototype" -INPUT_FILE = "tex2wiki/data/01outb.tex" -OUTPUT_FILE = "tex2wiki/data/01outb.mmd" +INPUT_FILE = "tex2wiki/data/test.tex" +OUTPUT_FILE = "tex2wiki/data/test.mmd" GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" +TITLE_STRING = "Orthogonal Polynomials" METADATA_TYPES = ["substitution", "constraint"] METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} @@ -18,7 +19,7 @@ def __init__(self, label, equation, metadata): def generate_html(tag_name, text, options=None, spacing=2): - # (str, str(, dict, bool)) -> str + # type: (str, str(, dict, bool)) -> str """ Generates an html tag, with optional html parameters. When spacing = 0, there should be no spacing. @@ -42,9 +43,8 @@ def generate_html(tag_name, text, options=None, spacing=2): def generate_math_html(text, options=None, spacing=True): - """ - Special case of generate_html, where the tag is "math". - """ + # type: (str(, dict, bool)) -> str + """Special case of generate_html, where the tag is "math".""" if options is None: options = {} @@ -60,8 +60,8 @@ def generate_math_html(text, options=None, spacing=True): def generate_link(left, right=""): - """Generates a link thingie.""" - + # type: (str(, str)) -> str + """Generates a MediaWiki link.""" if right == "": return "[[" + left + "|" + left + "]]" @@ -69,7 +69,8 @@ def generate_link(left, right=""): def multi_split(s, seps): - """Copy pasted from internet!""" + # type: (str, list) -> list + """Splits a string on multiple characters.""" res = [s] for sep in seps: s, res = res, [] @@ -79,14 +80,16 @@ def multi_split(s, seps): def convert_dollar_signs(string): + # type: (str) -> str + """Converts dollar signs to html for math mode.""" count = 0 result = "" for i, ch in enumerate(string): - if ch == "$" and count % 2 == 0: - result += "{\\displaystyle " - count += 1 - elif ch == "$": - result += "}" + if ch == "$": + if count % 2 == 0: + result += "{\\displaystyle " + else: + result += "}" count += 1 else: result += ch @@ -94,24 +97,9 @@ def convert_dollar_signs(string): return result -def format_formula(formula): - if formula[0] == ":": - return formula[1:].zfill(2) - - formula = multi_split(formula.split("Formula:", 1)[1], [".", ":"]) - - for j in [-1, -2, -3]: - formula[j] = formula[j].zfill(2) - - if len(formula) == 3: - formula = formula[0] + "." + formula[1] + ":" + formula[2] - else: - formula = ":".join(formula[:-3]) + ":" + formula[-3] + "." + formula[-2] + ":" + formula[-1] - - return formula - - def format_metadata(string): + # type: (str) -> str + """Formats the metadata of an equation.""" if string == "": return "" @@ -134,20 +122,22 @@ def format_metadata(string): def extract_data(data): + # type: (list) -> list + """Extracts the equations and pertinent data from the tex file.""" result = list() + for section_data in data: equations = section_data[1][:-1] for i, equation in enumerate(equations): # formula stuff try: - formula = format_formula(get_data_str(equation, latex="\\formula")) + formula = get_data_str(equation, latex="\\mapletag") except IndexError: # there is no formula. break - equation = equation.split("\n")[1:] + equation = equation.split("\n") # get metadata - percent_list = list() raw_metadata = "" j = 0 @@ -161,8 +151,6 @@ def extract_data(data): for data_type in METADATA_TYPES: metadata[data_type] = format_metadata(get_data_str(raw_metadata, latex="\\"+data_type)) - # print metadata - equations[i] = LatexEquation(formula, '\n'.join(equation), metadata) result.append([section_data[0], equations]) @@ -171,6 +159,8 @@ def extract_data(data): def find_end(text, left_delimiter, right_delimiter, start=0): + # type: (str, str, str(, int)) -> int + """A .find that accounts for nested delimiters.""" net = 0 # left delimiters encountered - right delimiters encountered for i, ch in enumerate(text[start:]): if ch == left_delimiter: @@ -185,14 +175,19 @@ def find_end(text, left_delimiter, right_delimiter, start=0): def get_data_str(text, latex=""): - if latex + "{" not in text: + # type: (str(, str)) -> str + """Gets the string in between curly brackets.""" + start = text.find(latex + "{") + + if start == -1: return "" - start = text.find(latex + "{") return text[start + len(latex + "{"):find_end(text, "{", "}", start)] def generate_nav_bar(info): + # type: (list) -> list + """Generates the navigation bar code for a page.""" links = list() for link, text in info: link = link.replace("''", "") @@ -200,8 +195,8 @@ def generate_nav_bar(info): links.append(generate_link(link, text)) nav_section = generate_html("div", "<< " + links[0], options={"id": "alignleft"}, spacing=1) + "\n" + \ - generate_html("div", links[1], options={"id": "aligncenter"}, spacing=1) + "\n" + \ - generate_html("div", links[2] + " >>", options={"id": "alignright"}, spacing=1) + generate_html("div", links[1], options={"id": "aligncenter"}, spacing=1) + "\n" + \ + generate_html("div", links[2] + " >>", options={"id": "alignright"}, spacing=1) header = generate_html("div", nav_section, options={"id": "drmf_head"}) footer = generate_html("div", nav_section, options={"id": "drmf_foot"}) @@ -210,7 +205,7 @@ def generate_nav_bar(info): def get_macro_name(macro): - # (str) -> str + # type: (str) -> str """Obtains the macro name.""" macro_name = "" for ch in macro: @@ -223,7 +218,7 @@ def get_macro_name(macro): def find_all(pattern, string): - # (str, str) -> generator + # type: (str, str) -> generator """Finds all instances of pattern in string.""" i = string.find(pattern) @@ -233,7 +228,7 @@ def find_all(pattern, string): def get_symbols(text, glossary): - # (str, dict) -> str + # type: (str, dict) -> str """Generates span text based on symbols present in text.""" symbols = set() @@ -275,18 +270,20 @@ def get_symbols(text, glossary): def create_general_pages(data, title): + # type: (list, str) -> str + """Creates the 'index' pages for each section.""" ret = "" # get list of section names section_names = [d[0] for d in data] - section_names = ["Orthogonal Polynomials"] + section_names + ["Orthogonal Polynomials"] + section_names = [TITLE_STRING] + section_names + [TITLE_STRING] for i, section_data in enumerate(data): section_name = section_data[0] result = "drmf_bof\n'''" + section_name.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" # get header and footer - center_text = ("Orthogonal Polynomials" + "#Sections in " + title).replace(" ", "_") + center_text = (TITLE_STRING + "#Sections in " + title).replace(" ", "_") link_info = [[section_names[i], section_names[i]], [center_text, section_names[i + 1]], [section_names[i + 2], section_names[i + 2]]] header, footer = generate_nav_bar(link_info) @@ -295,9 +292,7 @@ def create_general_pages(data, title): text = "" for eq in section_data[1]: - # equation is of type LatexEquation - print eq - print + # equation should be of type LatexEquation text += generate_math_html(eq.equation, options={"id": eq.label}) metadata_exists = False @@ -318,6 +313,8 @@ def create_general_pages(data, title): def create_specific_pages(data, glossary): + # type: (list, dict) -> str + """Creates specific pages for each formula.""" formulae = list() for section_data in data: for equations in section_data[1:]: @@ -325,7 +322,7 @@ def create_specific_pages(data, glossary): formulae.append("Formula:" + eq.label) formulae.append(section_data[0]) - formulae = ["Orthogonal Polynomials"] + formulae[:-1] + ["Orthogonal Polynomials"] + formulae = [TITLE_STRING] + formulae[:-1] + [TITLE_STRING] i = 0 pages = list() @@ -404,6 +401,7 @@ def main(): data.append([section_name, equations]) data = extract_data(data) + output = create_general_pages(data, title) + create_specific_pages(data, glossary) with open(OUTPUT_FILE, "w") as output_file: From 3cbbac2905d59713d7ecf555e6a8867c0494970d Mon Sep 17 00:00:00 2001 From: Joon Date: Sun, 27 Nov 2016 19:18:48 -0500 Subject: [PATCH 383/402] Lay framework for better data storage/management --- tex2wiki/src/tex2wiki.py | 89 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index 2d12bbe..5ce3a1c 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -4,7 +4,7 @@ INPUT_FILE = "tex2wiki/data/test.tex" OUTPUT_FILE = "tex2wiki/data/test.mmd" GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" -TITLE_STRING = "Orthogonal Polynomials" +TITLE_STRING = "CFSF Dataset" METADATA_TYPES = ["substitution", "constraint"] METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} @@ -17,6 +17,56 @@ def __init__(self, label, equation, metadata): self.equation = equation self.metadata = metadata + def __str__(self): + return self.label + "\n" + self.equation + "\n" + str(self.metadata) + + @staticmethod + def make_from_raw(raw): + equations = raw[:-1] + for i, equation in enumerate(equations): + # formula stuff + try: + formula = get_data_str(equation, latex="\\mapletag") + except IndexError: # there is no formula. + break + + equation = equation.split("\n") + + # get metadata + raw_metadata = "" + + j = 0 + while j < len(equation): + if "%" in equation[j]: + raw_metadata += equation.pop(j)[1:].strip().strip("\n") + "\n" + else: + j += 1 + + metadata = dict() + for data_type in METADATA_TYPES: + metadata[data_type] = format_metadata(get_data_str(raw_metadata, latex="\\" + data_type)) + + equations[i] = LatexEquation(formula, '\n'.join(equation), metadata) + + return equations + + +class DataUnit(object): + def __init__(self, title, subunits): + self.title = title + self.subunits = subunits + + def __str__(self): + result = self.title + "\n" + + if type(self.subunits) == list and type(self.subunits[0]) == DataUnit: + for sub in self.subunits: + result += str(sub) + "\n" + else: + result += str([str(eq) for eq in self.subunits]) + "\n" + + return result + def generate_html(tag_name, text, options=None, spacing=2): # type: (str, str(, dict, bool)) -> str @@ -376,6 +426,39 @@ def create_specific_pages(data, glossary): return "\n".join(pages) + "\n" +def section_split(string, sub=0): + # type: (str) -> DataUnit + """ + Split string into DataTree objects. + Will eventually become replacement for large part of main() + extract_data(), + and should theoretically make the create_general_pages and create_specific_pages methods simpler, + as well as more easily store all data from the .tex file. + """ + + string = string.split("\\" + sub * "sub" + "section") + + # base case; when depth too far + if len(string) == 1: + title = get_data_str(string[0]).replace("$", "''") + + equations = string[0].split("\\end{equation}") + for i, equation in enumerate(equations[:-1]): + equations[i] = equation.split("\\begin{equation}", 1)[1].strip() + + equations = LatexEquation.make_from_raw(equations) + + return DataUnit(title, equations) + + chunk_data = list() # list of DataSection + + for chunk in string[1:]: + chunk_data.append(section_split(chunk, sub + 1)) + + title = get_data_str(string[0]).replace("$", "''") + + return DataUnit(title, chunk_data) + + def main(): with open(INPUT_FILE) as input_file: text = input_file.read() @@ -387,6 +470,10 @@ def main(): glossary[get_macro_name(row[0])] = row text = text.split("\\begin{document}", 1)[1] + + info = section_split(text) # creates tree, split into section, subsection, subsubsection, etc. + # TODO: change create_general_pages & create_specific_pages to utilize DataUnit format rather than list format + text = text.split("\\section") title = get_data_str(text[0]) From eb001541991b4ea96e3b314d9935f73537ef285a Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 9 Dec 2016 17:05:34 -0500 Subject: [PATCH 384/402] Updated README according to Github --- KLSadd_insertion/README.md | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index 104f5d4..451afd9 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -1,8 +1,8 @@ ##KLS Addendum Insertion Project -This project uses Python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to +This project uses python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to ``` -Python updateChapters.py +python updateChapters.py ``` The program must have a tempchap9.tex and a tempchap14.tex as well as the KLSadd.tex file in the same directory! The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. @@ -25,17 +25,19 @@ First: the files - KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be *inserted* into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf - - chap09.tex and chap14.tex: these are chapter files. These are LATEX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections + - chap09.tex and chap14.tex: these are chapter files. These are LaTeX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections - - updateChapters.py: this is our code. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. + - updateChapters.py: This is thr code currently being worked on and sorting chapters. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. - linetest.py: this abomination of code is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. - - newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what the output to updateChapters.py should be like!!!!!!! + - newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what a standard output looks like. They are no longer up to date for updateChapters as it sorts by subsection, but still serve as good reference Next: the specifications -Toward the end of every section in the chapter file, there is a subsection called "References". It basically just contains a bunch of references to sources and other papers. Every paragraph in every subsection in KLSadd.tex must be put *before* the "References" subsection in the corresponding section in the chapter file. For example: +Each section has subsections like "Hypergeometric Representation", sections in KLSadd with "Hypergeometric Representation" should be seorted there. + +Toward the end of every section in the chapter file, there is a subsection called "References". It basically just contains a bunch of references to sources and other papers. This is where unsorted materials go For example: **These aren't real sections, obviously, just an example** in chap09.tex: @@ -56,28 +58,13 @@ The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric in $a,b,c,d$. ``` -So in the chapter 9 file, section 15 "Dogs", before the References subsection, we need to add in the Beagles paragraph. HOWEVER, there are some changes that need to be made before we insert. The easiest change is adding a comment that tells us something was inserted. We just append something like "%RS insertion begin" and "%RS insertion complete" before and after, respectively, the Beagles paragraph when we insert. Another change is adding \large\bf before the paragraph name. This changes the size and format so it looks prettier. So the heading in this example would be: +So in the chapter 9 file, section 15 "Dogs", We change the formatting with "\bf KLS Addendum: ". This changes the format so it looks prettier and stands out. So the heading in this example would be: ```latex -\paragraph{\large\bf Beagles} +\paragraph{\bf KLS Addendum: Beagles} ``` --- -So after updateChapters.py is called, the chapter 9 file should look like this: - -```latex -\section{Dogs}\index{Dog polynomials} -\subsection*{Hypergeometric dogs} -blah blah blah -%RS insertion begin -\paragraph{\large\bf Beagles} -The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric -in $a,b,c,d$. -%RS insertion complete -\subsection*{References} -\cite{Dogs101} -``` - The variables: These are the variables in the beginning @@ -88,13 +75,13 @@ These are the variables in the beginning -mathPeople: this holds the *name* of every section in KLSadd. It stores names like Wilson, Racah, Dual Hahn, etc. In our example with the Dogs above, it would hold "Dogs". This is useful to finding where to insert the correct paragraph --newCommands: this is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LATEX files into PDF files and they need to be copied over into both chapter files +-newCommands: this is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LaTeX files into PDF files and they need to be copied over into both chapter files -comms: holds the actual strings of the commands found from the line numbers stored in newCommands --- -The methods: +The functions: -prepareForPDF(chap): this method inserts some packages needed by LATEX files to be turned into pdf files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. From 7938b41304030084e859ed32b8ec99e4b90fc784 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 9 Dec 2016 17:15:44 -0500 Subject: [PATCH 385/402] Updated comments according to Github --- KLSadd_insertion/src/linetest.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/KLSadd_insertion/src/linetest.py b/KLSadd_insertion/src/linetest.py index 19de78a..4d738a7 100644 --- a/KLSadd_insertion/src/linetest.py +++ b/KLSadd_insertion/src/linetest.py @@ -1,10 +1,7 @@ """ -TODO: Rewrite the whole thing so another human being can read it -jeez this is like my handwriting; it's nonsense to everyone but me -This started out as a test file but I just kept writing it -and writing it -and writing it -and now its the project +Written by Rahul Shah +Outdated project in terms of function, now that updateChapters does what it does and more + Kept for reference """ entireFile = "" From f0c5b3761cfeb437fd887ef813c4644c707a5941 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 13 Dec 2016 18:00:55 -0500 Subject: [PATCH 386/402] Comment changes --- KLSadd_insertion/src/updateChapters.py | 171 ++++++++++++++++--------- 1 file changed, 111 insertions(+), 60 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 7360301..749db96 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -13,23 +13,34 @@ # sorter_check = [[0 for _ in range(w)] for __ in range(h)] -def chap1placer(chap1, kls, klsaddparas): - chapterstart = True +def chap_1_placer(chap1, kls, klsaddparas): + """ + + :param chap1: Chapter 1 text file + :param kls: KLSadd, the addendum + :param klsaddparas: Paragraphs that the code has identified to be sorted + :return: Returns chapter 1 with the sections inserted into the right place from the introduction of KLSadd + """ + chapter_start = True index = 0 kls_sub_chap1 = [] kls_header_chap1 = [] for item in kls: index += 1 line = str(item) + print line if "\\subsection" in line: temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) - if chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line): + # The 12 is not arbitrary and comes from the number of characters in "//subsection{" + if chapter_start and ("\\paragraph{" in line or "\\subsubsection*{" in line): + print chapter_start + print line for item in klsaddparas: if index < item: klsloc = klsaddparas.index(item) break t = ''.join(kls[index-1: klsaddparas[klsloc]]) - kls_sub_chap1.append(t) # append the whole paragraph, pray every paragraph ends with a % comment + kls_sub_chap1.append(t) # append the whole paragraph, every paragraph should end with a % comment kls_header_chap1.append(temp) # append the name of subsection break intro_to_add = ''.join(kls_sub_chap1) @@ -39,14 +50,14 @@ def chap1placer(chap1, kls, klsaddparas): return total_chap1 -def extraneous_section_deleter(list): +def extraneous_section_deleter(entered_list): """ Removes sections that are irrelevant and will slow or confuse the program - :param list: + :param entered_list: List of paragraphs :return: Extraneous name free output """ - return [item for item in list if "reference" not in item.lower() and "limit relation" not in item.lower() + return [item for item in entered_list if "reference" not in item.lower() and "limit relation" not in item.lower() and "symmetry" not in item.lower() and " hypergeometric representation" not in item.lower() and "hypergeometric representation " not in item.lower()] @@ -94,9 +105,9 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref hyper_headers_chap = [] hyper_subs_chap = [] + special_input = 0 name_chap = word.lower() - print name_chap if name_chap == "orthogonality": special_input = 1 elif name_chap == "special value": @@ -121,6 +132,10 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref if special_input in (0, 2, 4) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ (special_input in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): + testing = item + if "Basic hypergeometric representation" in testing: + print item + print "DETECTED" for item in klsaddparas: if index < item: klsloc = klsaddparas.index(item) @@ -128,7 +143,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref t = ''.join(kls[index: klsaddparas[klsloc]]) k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment khyper_header_chap.append(temp) # append the name of subsection - + if "Basic hypergeometric representation" in testing: + print t for item in khyper_header_chap: if item == "Pseudo Jacobi (or Routh-Romanovski)": khyper_header_chap[khyper_header_chap.index(item)] = "Pseudo Jacobi" @@ -140,25 +156,25 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref try: if khyper_header_chap[item] == khyper_header_chap[item + 1] and "generating functions" in name_chap: k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: Bilateral generating functions}" + k_hyper_sub_chap[item + 1] - khyper_header_chap[item] = "memes" - k_hyper_sub_chap[item] = "memes" + khyper_header_chap[item] = "/x00" + k_hyper_sub_chap[item] = "/x00" elif khyper_header_chap[item] == khyper_header_chap[item+1]: k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: " + \ word + "}" + k_hyper_sub_chap[item + 1] - khyper_header_chap[item] = "memes" - k_hyper_sub_chap[item] = "memes" + khyper_header_chap[item] = "/x00" + k_hyper_sub_chap[item] = "/x00" else: item += 1 except IndexError: item += 1 - a = 0 - while a < len(khyper_header_chap): - if khyper_header_chap[a] == "memes": - del khyper_header_chap[a] - del k_hyper_sub_chap[a] + temp_counter = 0 + while temp_counter < len(khyper_header_chap): + if khyper_header_chap[temp_counter] == "/x00": + del khyper_header_chap[temp_counter] + del k_hyper_sub_chap[temp_counter] else: - a += 1 + temp_counter += 1 #global sorter_check chap9 = 0 @@ -174,8 +190,11 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref if special_input in (2, 3): name_chap = 'hypergeometric representation' + # Uses of numbers like 12, or 9 are for specific lengths of strings (like \\subsection{) where the # section does not change + ''' + ''' for d in range(0, len(tempref)): # check every section and subsection line item = tempref[d] line = str(chap[item]) @@ -187,20 +206,41 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref if name_chap in line.lower(): if special_input in (0, 2, 3, 4) or special_input == 1 and "orthogonality relation" not in line: + + hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in - + ''' + Section below should + ''' + counteri = 0 + for i in khyper_header_chap: + i = i.replace(' I','~I') + khyper_header_chap[counteri] = i + if "Discrete $q$-Hermite II" in i: + print("FIX ACTIVATED") + #khyper_header_chap[counteri] = "Discrete $q$-Hermite~II" + counteri += 1; + + print khyper_header_chap if temp in khyper_header_chap: + print temp try: chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" + \ k_hyper_sub_chap[k_hyp_index_iii + offset] + if "\wt h_n(x;q)=x^n\,\qhyp21{q^{-n},q^{-n+1}}0{q^2,-q^2 x^{-2}}." in k_hyper_sub_chap[k_hyp_index_iii + offset]: + print k_hyper_sub_chap[k_hyp_index_iii + offset] + print "LOCATED" if chap9 == 1: sorter_check[sortloc][1] += 1 k_hyp_index_iii += 1 except IndexError: print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") - - + ''' + ''' + if sortloc == 7: + with open(DATA_DIR + "testoutput.tex", "w") as thing: + thing.write(''.join(chap)) if len(hyper_headers_chap) != 0: # print "Stuff for checking" # print k_hyper_sub_chap @@ -222,23 +262,23 @@ def cut_words(word_to_find, word_to_search_in): :param word_to_search_in: The big word that is being searched :return: The big word without the word that was searched for """ - a = word_to_find - b = word_to_search_in + find_this_string = word_to_find + search_in_this_string = word_to_search_in precheck = 1 - if a in b: - if "\\paragraph{\\bf KLS Addendum: " in b or "\\subsubsection*{\\bf KLS Addendum: " in b: + if find_this_string in search_in_this_string: + if "\\paragraph{\\bf KLS Addendum: " in search_in_this_string or "\\subsubsection*{\\bf KLS Addendum: " in search_in_this_string: while True: - if "\\paragraph{\\bf KLS Addendum: " in b[b.find(a)-precheck:b.find(a)] or \ - "\\subsubsection*{\\bf KLS Addendum: " in b[b.find(a) - precheck:b.find(a)]: - return b[:b.find(a) - precheck] + b[b.find(a) + len(a):] + if "\\paragraph{\\bf KLS Addendum: " in search_in_this_string[search_in_this_string.find(find_this_string)-precheck:search_in_this_string.find(find_this_string)] or \ + "\\subsubsection*{\\bf KLS Addendum: " in search_in_this_string[search_in_this_string.find(find_this_string) - precheck:search_in_this_string.find(find_this_string)]: + return search_in_this_string[:search_in_this_string.find(find_this_string) - precheck] + search_in_this_string[search_in_this_string.find(find_this_string) + len(find_this_string):] else: precheck += 1 else: - cut = b[:b.find(a)] + b[b.find(a) + len(a):] + cut = search_in_this_string[:search_in_this_string.find(find_this_string)] + search_in_this_string[search_in_this_string.find(find_this_string) + len(find_this_string):] return cut else: - return b + return search_in_this_string def prepare_for_pdf(chap): @@ -296,11 +336,11 @@ def insert_commands(kls, chap, cms): index += 1 if "begin{document}" in word: begin_index += index - tempIndex = 0 + temp_index = 0 for i in cms: - chap.insert(begin_index + tempIndex, i) - tempIndex += 1 + chap.insert(begin_index + temp_index, i) + temp_index += 1 return chap @@ -325,15 +365,15 @@ def find_references(chapter, chapticker, math_people): elif chapticker == 1: chaptercheck = str(14) # canAdd tells the program whether the next section is a reference - canadd = False + add_next_section = False for word in chapter: index += 1 special_detector = 1 # check sections and subsections if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): - w = word[word.find("{")+1: word.find("}")] - ws = word[word.find("{")+1: word.find("~")] + processed_word = word[word.find("{")+1: word.find("}")] + specially_formatted_word = word[word.find("{")+1: word.find("~")] if "bessel" in word.lower() and chapticker == 0: ref9_3.append(index) if ("big $q$-legendre" in word.lower() or "little $q$-legendre" in word.lower() or "continuous $q$-legendre" in word.lower()) and chapticker == 1: @@ -341,22 +381,22 @@ def find_references(chapter, chapticker, math_people): for unit in math_people: subunit = unit[unit.find(" ")+1: unit.find("#")] # System of checks that verifies if section is in chapter - if (w in subunit or ws in subunit) and (chaptercheck in unit) and len(w) == len(subunit) or\ - ("Pseudo Jacobi" in w and "Pseudo Jacobi (or Routh-Romanovski)" in subunit): - canadd = True + if (processed_word in subunit or specially_formatted_word in subunit) and (chaptercheck in unit) and len(processed_word) == len(subunit) or\ + ("Pseudo Jacobi" in processed_word and "Pseudo Jacobi (or Routh-Romanovski)" in subunit): + add_next_section = True if chapticker == 0: ref9_3.append(index) elif chapticker == 1: ref14_3.append(index) special_detector = 0 - if "\\subsection*{References}" in word and canadd: + if "\\subsection*{References}" in word and add_next_section: # Appends valid locations references.append(index) if chapticker == 0: ref9_3.append(index) elif chapticker == 1: ref14_3.append(index) - canadd = False + add_next_section = False if "subsection*{" in word and "References" not in word: if chapticker == 0: ref9_3.append(index) @@ -384,7 +424,7 @@ def reference_placer(chap, references, p, chapticker2): :param references: List containing references :param p: List containing additions to be added. :param chapticker2: Which chapter is being searched (9 or 14). - :return: + :return: Returns the chapter, complete with additions """ # count is used to represent the values in count count = 0 @@ -429,7 +469,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha :param kls: The addendum that contains sections to be added (not processed). :param kls_list_all: List of all identified keywords, fed into the chapter sorter. :param chapticker2: Which chapter is being searched (9 or 14). - :return: + :return: entire chapter, with all other methods applied to it """ sort_location = 0 @@ -438,36 +478,41 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) sort_location += 1 - for a in range(len(paragraphs_to_be_added)-1): - for b in sortmatch_2: - for c in b: + print "SEARCH HERE FIRST" + print paragraphs_to_be_added + for paragraph in range(len(paragraphs_to_be_added)): + for subsection in sortmatch_2: + for lines_in_subsection in subsection: with open(DATA_DIR + "compare.tex", "a") as spook: - spook.write(paragraphs_to_be_added[a]) + spook.write(paragraphs_to_be_added[paragraph]) spook.write("NEXT: ") - if "%" == c[-2]: - c = c[:-3] + if "%" == lines_in_subsection[-2]: + lines_in_subsection = lines_in_subsection[:-3] #print "memes" #print c - elif "%" == c[-1]: - c = c[:-2] + elif "%" == lines_in_subsection[-1]: + lines_in_subsection = lines_in_subsection[:-2] # if "Formula (9.8.15) was first obtained by Brafman" in c and "Formula (9.8.15) was first obtained by Brafman"in paragraphs_to_be_added[a]: # print c # print "DING" # print paragraphs_to_be_added[a] - - paragraphs_to_be_added[a] = cut_words(c, paragraphs_to_be_added[a]) + if "\wt h_n(x;q)=x^n\,\qhyp21{q^{-n},q^{-n+1}}0{q^2,-q^2 x^{-2}}." in lines_in_subsection: + print "OUTPUTS" + print lines_in_subsection + print paragraphs_to_be_added[paragraph] + paragraphs_to_be_added[paragraph] = cut_words(lines_in_subsection, paragraphs_to_be_added[paragraph]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) + chap = prepare_for_pdf(chap) cms = get_commands(kls,new_commands) chap = insert_commands(kls, chap, cms) commentticker = 0 # These commands mess up PDF reading and mus tbe commented out - print"OUTPUT" + print "OUTPUT" for word in chap: word2 = chap[chap.index(word)-1] - print word2 if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2: if "\\newcommand\\half{\\frac12}" in word: wordtoadd = "%" + word @@ -498,7 +543,6 @@ def main(): Runs all of the other functions and outputs their results into an output file as well as putting together the list of additions that is fed into fix_chapter. - :return: """ chap_nums = [] new_commands = [] # used to hold the indexes of the commands @@ -566,7 +610,9 @@ def main(): # now indexes holds all of the places there is a section # using these indexes, get all of the words in between and add that to the paras[] paras = [] + for i in range(len(indexes)-1): + box = ''.join(addendum[indexes[i]: indexes[i+1]-1]) paras.append(box) @@ -582,11 +628,14 @@ def main(): entire1 = ch1.readlines() # reads in as a list of strings with open(DATA_DIR + "updated1.tex", "w") as temp1: - temp1.write(chap1placer(entire1, addendum, klsaddparas)) + temp1.write(chap_1_placer(entire1, addendum, klsaddparas)) # chapter 9 with open(DATA_DIR + "chap09.tex", "r") as ch9: entire9 = ch9.readlines() # reads in as a list of strings + with open(DATA_DIR + "testoutput.tex", "w") as thing: + thing.write(''.join(entire9)) + # chapter 14 with open(DATA_DIR + "chap14.tex", "r") as ch14: entire14 = ch14.readlines() @@ -604,8 +653,9 @@ def main(): references14 = references14[0] - print ref14_3 + # call the fixChapter method to get a list with the addendum paragraphs added in + chapticker2 = 0 str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3, sorter_check)) @@ -626,6 +676,7 @@ def main(): temp14.write(str14) print sorter_check - + print kls_list_all + print kls_list_all[7] if __name__ == '__main__': main() \ No newline at end of file From 2b9989710b38276a23865317c93734c3ec9daf16 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 16 Dec 2016 17:47:51 -0500 Subject: [PATCH 387/402] updateChapters.py with all the Oct. 5 fixes --- KLSadd_insertion/src/updateChapters.py | 136 ++++++++++--------------- 1 file changed, 55 insertions(+), 81 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 749db96..94e3c8c 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -28,13 +28,10 @@ def chap_1_placer(chap1, kls, klsaddparas): for item in kls: index += 1 line = str(item) - print line if "\\subsection" in line: temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) # The 12 is not arbitrary and comes from the number of characters in "//subsection{" if chapter_start and ("\\paragraph{" in line or "\\subsubsection*{" in line): - print chapter_start - print line for item in klsaddparas: if index < item: klsloc = klsaddparas.index(item) @@ -68,7 +65,8 @@ def new_keywords(kls, kls_list): It then takes that list and removes duplicates, as well as printing the output to another file. :param kls: The addendum that provides the words. - :return: Inputs results into a global list. + :param kls_list: List of identified keywords. + :return: Outputs results as a list """ kls_list_chap = [] @@ -85,6 +83,7 @@ def new_keywords(kls, kls_list): kls_list_chap.append("Special value") w = 2 h = len(kls_list_chap)+1 + #sorter_check tells the program which chapter the code is on and how many sections under a keyword have been sorted. sorter_check = [[0 for _ in range(w)] for __ in range(h)] return kls_list_chap, sorter_check @@ -98,8 +97,8 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref :param chap: The destination of inserted sections. :param word: The keyword that is being processed. :param sortloc: The location in the list of words, of the word being sorted. - :param klsaddparas: - :param sortmatch_2: + :param klsaddparas: Locations of possible sections + :param sortmatch_2: Subsections that the program finds a match for in the chapter (a list of those that will be sorted) :return: This function outputs the processed chapter into a larger function for further processing. """ hyper_headers_chap = [] @@ -133,9 +132,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref (special_input in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): testing = item - if "Basic hypergeometric representation" in testing: - print item - print "DETECTED" for item in klsaddparas: if index < item: klsloc = klsaddparas.index(item) @@ -143,8 +139,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref t = ''.join(kls[index: klsaddparas[klsloc]]) k_hyper_sub_chap.append(t) # append the whole paragraph, pray every paragraph ends with a % comment khyper_header_chap.append(temp) # append the name of subsection - if "Basic hypergeometric representation" in testing: - print t + for item in khyper_header_chap: if item == "Pseudo Jacobi (or Routh-Romanovski)": khyper_header_chap[khyper_header_chap.index(item)] = "Pseudo Jacobi" @@ -176,7 +171,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref else: temp_counter += 1 - #global sorter_check chap9 = 0 if sorter_check[sortloc][0] == 0: @@ -205,7 +199,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref temp = line[9:line.find("}", 7)] if name_chap in line.lower(): - if special_input in (0, 2, 3, 4) or special_input == 1 and "orthogonality relation" not in line: + if special_input in (0, 2, 3, 4) or "orthogonality relation" not in line: hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection @@ -217,20 +211,12 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref for i in khyper_header_chap: i = i.replace(' I','~I') khyper_header_chap[counteri] = i - if "Discrete $q$-Hermite II" in i: - print("FIX ACTIVATED") - #khyper_header_chap[counteri] = "Discrete $q$-Hermite~II" counteri += 1; - print khyper_header_chap if temp in khyper_header_chap: - print temp try: chap[tempref[d + 1] - 1] += "\paragraph{\\bf KLS Addendum: " + word + "}" + \ k_hyper_sub_chap[k_hyp_index_iii + offset] - if "\wt h_n(x;q)=x^n\,\qhyp21{q^{-n},q^{-n+1}}0{q^2,-q^2 x^{-2}}." in k_hyper_sub_chap[k_hyp_index_iii + offset]: - print k_hyper_sub_chap[k_hyp_index_iii + offset] - print "LOCATED" if chap9 == 1: sorter_check[sortloc][1] += 1 k_hyp_index_iii += 1 @@ -242,11 +228,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref with open(DATA_DIR + "testoutput.tex", "w") as thing: thing.write(''.join(chap)) if len(hyper_headers_chap) != 0: - # print "Stuff for checking" - # print k_hyper_sub_chap - # print khyper_header_chap - # print hyper_headers_chap - # print word sortmatch_2.append(k_hyper_sub_chap) return chap @@ -285,15 +266,22 @@ def prepare_for_pdf(chap): """ Edits the chapter string sent to include hyperref, xparse, and cite packages - :param chap: The chapter (9 or 14) that is being processed + :param chap: The chapter (9 or 14) that is being processed as a list of lines in each LaTeX chapter :return: The processed chapter, ready for additional processing """ + # (list) -> list foot_misc_index = 0 + for i, line in enumerate(chap): + if "footmisc" in line: + foot_misc_index += i + 1 + + ''' index = 0 - for word in chap: + for line in chap: index += 1 - if "footmisc" in word: + if "footmisc" in line: foot_misc_index += index + ''' # str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" chap.insert(foot_misc_index, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") return chap @@ -316,16 +304,17 @@ def get_commands(kls, new_commands): return kls[new_commands[0]:new_commands[1]] -# 2/18/16 this method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. -# Currently only works with chapter 9 + def insert_commands(kls, chap, cms): """ Inserts commands identified in previous functions. + This method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. + Currently only works with chapter 9 :param kls: Addendum to look through - :param chap: The chapter that is receiving commands (9 or 14) + :param chap: The chapter that is receiving commands (9 or 14) as a list of lines in each LaTeX chapter :param cms: Commands to be inserted - :return: + :return: chap, processed """ # reads in the newCommands[] and puts them in chap begin_index = -1 # the index of the "begin document" keyphrase, this is where the new commands need to be inserted. @@ -344,7 +333,6 @@ def insert_commands(kls, chap, cms): return chap -# method to find the indices of the reference paragraphs def find_references(chapter, chapticker, math_people): """ This function searches the chapters and locates potential destinations of additions from the addendum. @@ -352,7 +340,7 @@ def find_references(chapter, chapticker, math_people): :param chapter: The chapter being searched. :param chapticker: Which chapter is being searched (9 or 14). - :return: List of references. + :return: List of references, ref9_3 and ref14_3 are references for chapter 9 and 14 specifically """ ref9_3 = [] ref14_3 = [] @@ -360,9 +348,9 @@ def find_references(chapter, chapticker, math_people): index = -1 # chaptercheck designates which chapter is being searched for references chaptercheck = 0 - if chapticker == 0: + if chapticker == 9: chaptercheck = str(9) - elif chapticker == 1: + elif chapticker == 14: chaptercheck = str(14) # canAdd tells the program whether the next section is a reference add_next_section = False @@ -374,9 +362,9 @@ def find_references(chapter, chapticker, math_people): if("section{" in word or "subsection*{" in word) and ("subsubsection*{" not in word): processed_word = word[word.find("{")+1: word.find("}")] specially_formatted_word = word[word.find("{")+1: word.find("~")] - if "bessel" in word.lower() and chapticker == 0: + if "bessel" in word.lower() and chapticker == 9: ref9_3.append(index) - if ("big $q$-legendre" in word.lower() or "little $q$-legendre" in word.lower() or "continuous $q$-legendre" in word.lower()) and chapticker == 1: + if ("big $q$-legendre" in word.lower() or "little $q$-legendre" in word.lower() or "continuous $q$-legendre" in word.lower()) and chapticker == 14: ref14_3.append(index) for unit in math_people: subunit = unit[unit.find(" ")+1: unit.find("#")] @@ -384,44 +372,39 @@ def find_references(chapter, chapticker, math_people): if (processed_word in subunit or specially_formatted_word in subunit) and (chaptercheck in unit) and len(processed_word) == len(subunit) or\ ("Pseudo Jacobi" in processed_word and "Pseudo Jacobi (or Routh-Romanovski)" in subunit): add_next_section = True - if chapticker == 0: + if chapticker == 9: ref9_3.append(index) - elif chapticker == 1: + elif chapticker == 14: ref14_3.append(index) special_detector = 0 if "\\subsection*{References}" in word and add_next_section: # Appends valid locations references.append(index) - if chapticker == 0: + if chapticker == 9: ref9_3.append(index) - elif chapticker == 1: + elif chapticker == 14: ref14_3.append(index) add_next_section = False if "subsection*{" in word and "References" not in word: - if chapticker == 0: + if chapticker == 9: ref9_3.append(index) - elif chapticker == 1: + elif chapticker == 14: ref14_3.append(index) if "\\section{" in word and special_detector == 1 and chaptercheck == "14": w2 = word[word.find("{") + 1: word.find("}")] if "Bessel" not in w2: ref14_3.append(index) - bqlegendrecheck = 2 - - # Special lines that the program does not normally register - if bqlegendrecheck > 0: - pass - return references, ref9_3, ref14_3 def reference_placer(chap, references, p, chapticker2): """ - Places identified additions from the addendum into the chapter. + Places identified additions from the addendum list into the chapter list. The list returned will be turned into a + string and written into the new text document - :param chap: Chapter receiving the additions. - :param references: List containing references + :param chap: LaTeX Chapter receiving the additions, with each line an element of a list. + :param references: List containing references to where subsections begin/end :param p: List containing additions to be added. :param chapticker2: Which chapter is being searched (9 or 14). :return: Returns the chapter, complete with additions @@ -430,9 +413,9 @@ def reference_placer(chap, references, p, chapticker2): count = 0 # Tells which chapter it's on designator = 0 - if chapticker2 == 0: + if chapticker2 == 9: designator = "9." - elif chapticker2 == 1: + elif chapticker2 == 14: designator = "14." for i in references: @@ -456,9 +439,10 @@ def reference_placer(chap, references, p, chapticker2): return chap -# method to change file string(actually a list right now), returns string to be written to file -# If you write a method that changes something, it is preffered that you call the method in here + def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, tempref, sorter_check): + # method to change file string(actually a list right now), returns string to be written to file + # If you write a method that changes something, it is preferred that you call the method in here """ Removes specific lines stopping the latex file from converting into python, as well as running the functions responsible for sorting sections and placing the correct additions in the correct places @@ -474,12 +458,11 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha sort_location = 0 - for i in kls_list_all: - fix_chapter_sort(kls, chap, i, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) + for name in kls_list_all: + fix_chapter_sort(kls, chap, name, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) sort_location += 1 - print "SEARCH HERE FIRST" - print paragraphs_to_be_added + for paragraph in range(len(paragraphs_to_be_added)): for subsection in sortmatch_2: for lines_in_subsection in subsection: @@ -496,10 +479,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha # print c # print "DING" # print paragraphs_to_be_added[a] - if "\wt h_n(x;q)=x^n\,\qhyp21{q^{-n},q^{-n+1}}0{q^2,-q^2 x^{-2}}." in lines_in_subsection: - print "OUTPUTS" - print lines_in_subsection - print paragraphs_to_be_added[paragraph] + paragraphs_to_be_added[paragraph] = cut_words(lines_in_subsection, paragraphs_to_be_added[paragraph]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) @@ -510,14 +490,12 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha commentticker = 0 # These commands mess up PDF reading and mus tbe commented out - print "OUTPUT" for word in chap: word2 = chap[chap.index(word)-1] if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2: if "\\newcommand\\half{\\frac12}" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd - print("TRIGGERED") elif "\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word: wordtoadd = "%" + word chap[commentticker] = wordtoadd @@ -528,7 +506,6 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha wordtoadd = "%" + word chap[commentticker] = wordtoadd commentticker += 1 - print"END OUTPUT" ticker1 = 0 # Formatting to make the Latex file run while ticker1 < len(chap): @@ -580,8 +557,9 @@ def main(): indexes = [] # Designates sections that need stuff added - # get the index - startindex = 9999 + # gets the index + startindex = 99999 + #number must be larger than all the others, thus 99999 for word in addendum: index += 1 if "." in word and "\\subsection*{" in word: @@ -594,8 +572,8 @@ def main(): name = word[word.find("{") + 1: word.find("}")] math_people.append(name + "#") if name == "9.1 Wilson": + #9.1 Wilson is here as it is the start of chapter 9, and where the introduction ends startindex = addendum.index(word) - print startindex indexes.append(index-1) if "paragraph{" in word and index > startindex-1: klsaddparas.append(index-1) @@ -606,7 +584,7 @@ def main(): if "\\renewcommand{\\refname}{Standard references}" in word: klsaddparas.append(index-1) indexes.append(index - 1) - print(indexes) + print(klsaddparas) # now indexes holds all of the places there is a section # using these indexes, get all of the words in between and add that to the paras[] paras = [] @@ -621,7 +599,6 @@ def main(): # section(like Wilson, Racah, Hahn, etc.) so we use the mathPeople variable # we can use the section names to place the relevant paragraphs in the right place - # as of 2/8/16 the paragraphs will go before the References paragraph of the relevant section # parse both files 9 and 14 as strings with open(DATA_DIR + "chap01.tex", "r") as ch1: @@ -643,11 +620,11 @@ def main(): # call the findReferences method to find the index of the References paragraph in the two file strings # two variables for the references lists one for chapter 9 one for chapter 14 - chapticker = 0 + chapticker = 9 references9 = find_references(entire9, chapticker, math_people) ref9_3 = references9[1] references9 = references9[0] - chapticker += 1 + chapticker = 14 references14 = find_references(entire14, chapticker, math_people) ref14_3 = references14[2] references14 = references14[0] @@ -656,10 +633,10 @@ def main(): # call the fixChapter method to get a list with the addendum paragraphs added in - chapticker2 = 0 + chapticker2 = 9 str9 = ''.join(fix_chapter(entire9, references9, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref9_3, sorter_check)) - chapticker2 += 1 + chapticker2 = 14 str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref14_3, sorter_check)) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -675,8 +652,5 @@ def main(): with open(DATA_DIR + "updated14.tex", "w") as temp14: temp14.write(str14) - print sorter_check - print kls_list_all - print kls_list_all[7] if __name__ == '__main__': main() \ No newline at end of file From af111853d318c589e0878fb1c3343255218890f8 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 20 Dec 2016 16:45:53 -0500 Subject: [PATCH 388/402] Refactored unit tests --- KLSadd_insertion/test/test_chap1_placer.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/KLSadd_insertion/test/test_chap1_placer.py b/KLSadd_insertion/test/test_chap1_placer.py index 121e02e..90aacfd 100644 --- a/KLSadd_insertion/test/test_chap1_placer.py +++ b/KLSadd_insertion/test/test_chap1_placer.py @@ -3,14 +3,14 @@ __status__ = 'Development' from unittest import TestCase -from updateChapters import chap1placer +from updateChapters import chap_1_placer class TestChap1Placer(TestCase): def test_chap1_placer(self): - self.assertEquals(chap1placer(['WordsAndSomeMoreWords','SampleEquation', '\\end{document}'] - , ['\\subsection*{Generalities}', '\\paragraph{MathFunction}', 'MathEquations', 'WordsAndStuff', + self.assertEquals(chap_1_placer(['WordsAndSomeMoreWords', 'SampleEquation', '\\end{document}'] + , ['\\subsection*{Generalities}', '\\paragraph{MathFunction}', 'MathEquations', 'WordsAndStuff', '\\subsection*{9.1 Wilson}', '\\paragraph{Symmetry}', 'WordsAndStuff'], [0,1,4,5]) - , 'WordsAndSomeMoreWordsSampleEquation\\paragraph{\\bf KLS Addendum: Generalities}\\paragraph{MathFunction}MathEquationsWordsAndStuff\\end{document}') + , 'WordsAndSomeMoreWordsSampleEquation\\paragraph{\\bf KLS Addendum: Generalities}\\paragraph{MathFunction}MathEquationsWordsAndStuff\\end{document}') From 18f01165a5a52ef67bf2c6e55dd4503716ff58b2 Mon Sep 17 00:00:00 2001 From: Joon Date: Mon, 2 Jan 2017 13:43:24 -0500 Subject: [PATCH 389/402] Change core methods to use DataUnit --- tex2wiki/.gitignore | 3 +- tex2wiki/src/tex2wiki.py | 104 ++++++++++++++++++++------------------- 2 files changed, 56 insertions(+), 51 deletions(-) diff --git a/tex2wiki/.gitignore b/tex2wiki/.gitignore index 1fa607a..1fea6f9 100644 --- a/tex2wiki/.gitignore +++ b/tex2wiki/.gitignore @@ -2,4 +2,5 @@ AzeemOldCode/ *Glossary.csv* *.mmd *.bak -*.tex \ No newline at end of file +*.tex +data/* \ No newline at end of file diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index 5ce3a1c..e702600 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -1,10 +1,10 @@ __author__ = "Joon Bang" __status__ = "Prototype" -INPUT_FILE = "tex2wiki/data/test.tex" -OUTPUT_FILE = "tex2wiki/data/test.mmd" +INPUT_FILE = "tex2wiki/data/01outb.tex" +OUTPUT_FILE = "tex2wiki/data/01outb.mmd" GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" -TITLE_STRING = "CFSF Dataset" +TITLE_STRING = "Orthogonal Polynomials" METADATA_TYPES = ["substitution", "constraint"] METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} @@ -26,7 +26,7 @@ def make_from_raw(raw): for i, equation in enumerate(equations): # formula stuff try: - formula = get_data_str(equation, latex="\\mapletag") + formula = format_formula(get_data_str(equation, latex="\\formula")) except IndexError: # there is no formula. break @@ -102,7 +102,7 @@ def generate_math_html(text, options=None, spacing=True): result = "" if spacing: - result += "{\\displaystyle\n" + text + "\n}\n" + result += "{\\displaystyle \n" + text + "\n}\n" else: result += "{\\displaystyle " + text + "}\n" @@ -147,6 +147,23 @@ def convert_dollar_signs(string): return result +def format_formula(formula): + if formula[0] == ":": + return formula[1:].zfill(2) + + formula = multi_split(formula.split("Formula:", 1)[1], [".", ":"]) + + for j in [-1, -2, -3]: + formula[j] = formula[j].zfill(2) + + if len(formula) == 3: + formula = formula[0] + "." + formula[1] + ":" + formula[2] + else: + formula = ":".join(formula[:-3]) + ":" + formula[-3] + "." + formula[-2] + ":" + formula[-1] + + return formula + + def format_metadata(string): # type: (str) -> str """Formats the metadata of an equation.""" @@ -181,7 +198,7 @@ def extract_data(data): for i, equation in enumerate(equations): # formula stuff try: - formula = get_data_str(equation, latex="\\mapletag") + formula = format_formula(get_data_str(equation, latex="\\formula")) except IndexError: # there is no formula. break @@ -319,29 +336,29 @@ def get_symbols(text, glossary): return span_text[:-7] # slice off the extra br and endline -def create_general_pages(data, title): - # type: (list, str) -> str - """Creates the 'index' pages for each section.""" +def create_general_pages(data): + # type: (DataUnit) -> str + """Creates the 'index' pages for each section. Corrected for use of DataUnit.""" ret = "" - # get list of section names - section_names = [d[0] for d in data] - section_names = [TITLE_STRING] + section_names + [TITLE_STRING] + section_names = [TITLE_STRING] + [unit.title for unit in data.subunits] + [TITLE_STRING] + + # deep down, subunits is a list of LatexEquation(s) - for i, section_data in enumerate(data): - section_name = section_data[0] - result = "drmf_bof\n'''" + section_name.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section_name + "}}\n" + for i, section in enumerate(data.subunits): + result = "drmf_bof\n'''" + section.title.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section.title + "}}\n" # get header and footer - center_text = (TITLE_STRING + "#Sections in " + title).replace(" ", "_") + center_text = (TITLE_STRING + "#").replace(" ", "_") + section.title link_info = [[section_names[i], section_names[i]], [center_text, section_names[i + 1]], [section_names[i + 2], section_names[i + 2]]] header, footer = generate_nav_bar(link_info) - result += header + "\n== " + section_name + " ==\n\n" + result += header + "\n== " + section.title + " ==\n\n" text = "" - for eq in section_data[1]: + metadata_exists = False + for eq in section.subunits: # equation should be of type LatexEquation text += generate_math_html(eq.equation, options={"id": eq.label}) @@ -355,33 +372,36 @@ def create_general_pages(data, title): if not metadata_exists: text = text[:-1] + "
\n" + if not metadata_exists: + text = text[:-7] + "\n" + result += text + footer + "\n" + "drmf_eof\n" ret += result return ret - def create_specific_pages(data, glossary): - # type: (list, dict) -> str - """Creates specific pages for each formula.""" + # type: (DataUnit, dict) -> str + """Creates specific pages for each formula. Corrected for use with DataUnit.""" + formulae = list() - for section_data in data: - for equations in section_data[1:]: - for eq in equations: - formulae.append("Formula:" + eq.label) - formulae.append(section_data[0]) + for unit in data.subunits: + for eq in unit.subunits: + formulae.append("Formula:" + eq.label) + formulae.append(unit.title) formulae = [TITLE_STRING] + formulae[:-1] + [TITLE_STRING] + print formulae + i = 0 pages = list() - for j, section_data in enumerate(data): - section_name = section_data[0] - for eq in section_data[1]: + for j, unit in enumerate(data.subunits): + for eq in unit.subunits: # get header and footer - center_text = (section_name + "#" + eq.label).replace(" ", "_") - middle = "formula in " + section_name + center_text = (unit.title + "#" + eq.label).replace(" ", "_") + middle = "formula in " + unit.title link_info = [[formulae[i].replace(" ", "_"), formulae[i]], [center_text, middle], [formulae[i + 2].replace(" ", "_"), formulae[i + 2]]] header, footer = generate_nav_bar(link_info) @@ -431,8 +451,8 @@ def section_split(string, sub=0): """ Split string into DataTree objects. Will eventually become replacement for large part of main() + extract_data(), - and should theoretically make the create_general_pages and create_specific_pages methods simpler, - as well as more easily store all data from the .tex file. + and should theoretically make the create_general_pages and create_specific_pages methods simpler, faster, + and able to more easily store all data from the .tex file. """ string = string.split("\\" + sub * "sub" + "section") @@ -472,24 +492,8 @@ def main(): text = text.split("\\begin{document}", 1)[1] info = section_split(text) # creates tree, split into section, subsection, subsubsection, etc. - # TODO: change create_general_pages & create_specific_pages to utilize DataUnit format rather than list format - - text = text.split("\\section") - - title = get_data_str(text[0]) - - data = list() - for section in text[1:]: - section_name = get_data_str(section).replace("$", "''") - equations = section.split("\\end{equation}") - for i, equation in enumerate(equations[:-1]): - equations[i] = equation.split("\\begin{equation}", 1)[1].strip() - - data.append([section_name, equations]) - - data = extract_data(data) - output = create_general_pages(data, title) + create_specific_pages(data, glossary) + output = create_general_pages(info) + create_specific_pages(info, glossary) with open(OUTPUT_FILE, "w") as output_file: output_file.write(output) From b442d3cbf63b945a70d8d79f3b9068708d1c7adf Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 3 Jan 2017 17:52:18 -0500 Subject: [PATCH 390/402] Jagan Readme fix --- KLSadd_insertion/README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index 451afd9..bfa1d4b 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -1,8 +1,8 @@ ##KLS Addendum Insertion Project -This project uses python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. The updateChapters.py program is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to +This project uses Python and string manipulation to insert sections of the KLSadd.tex file into the appropriate DRMF chapter sections. updateChapters.py is the most recently updated and cleanest version, however it is not completed. Should be run with a simple call to ``` -python updateChapters.py +Python updateChapters.py ``` The program must have a tempchap9.tex and a tempchap14.tex as well as the KLSadd.tex file in the same directory! The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. @@ -11,7 +11,7 @@ NOTE: Both the updateChapters.py and linetest.py lack a pdf version of their cha NOTE: The KLSadd.tex file only deals with chapters 9 and 14, as stated in the document itself. -NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file, tempchap9.tex, and tempchap14.tex in order to run the program. The program *generates* updated9.tex and updated14.tex files. +NOTE: when you run updateChapters.py or linetest.py you need the KLSadd.tex file, tempchap9.tex, and tempchap14.tex in order to run the program. The program generates updated9.tex and updated14.tex files. **DO NOT REMOVE INPUT FILES FROM .GITIGNORE, THEY ARE NOT PUBLIC** @@ -21,11 +21,11 @@ This is a roadmap of updateChapters.py. It will help explain every piece of code _______________________________________________________________________________ -First: the files +# First: The Files - - KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be *inserted* into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf + - KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be inserted into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf - - chap09.tex and chap14.tex: these are chapter files. These are LaTeX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections + - chap09.tex and chap14.tex: these are chapter files. These are LaTeX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections. - updateChapters.py: This is thr code currently being worked on and sorting chapters. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. @@ -33,14 +33,14 @@ First: the files - newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what a standard output looks like. They are no longer up to date for updateChapters as it sorts by subsection, but still serve as good reference -Next: the specifications +# Next: the specifications Each section has subsections like "Hypergeometric Representation", sections in KLSadd with "Hypergeometric Representation" should be seorted there. Toward the end of every section in the chapter file, there is a subsection called "References". It basically just contains a bunch of references to sources and other papers. This is where unsorted materials go For example: -**These aren't real sections, obviously, just an example** +**These aren't real sections, just an example** -in chap09.tex: +In chap09.tex: ```latex \section{Dogs}\index{Dog polynomials} \subsection*{Hypergeometric dogs} @@ -49,7 +49,7 @@ blah blah blah \cite{Dogs101} ``` -in KLSadd.tex: +In KLSadd.tex: ```latex \subsection*{9.15 Dogs} @@ -67,7 +67,7 @@ So in the chapter 9 file, section 15 "Dogs", We change the formatting with "\bf The variables: -These are the variables in the beginning +These are the variables in the beginning: -chapNums: chapNums is a list, denoted by the [], that holds the chapter number (in this case it's either a 9 or a 14) that corresponds to where a section in KLSadd should go From 00227046b74fb1ca32d0590b150b6d78bb1394bb Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Tue, 3 Jan 2017 17:53:20 -0500 Subject: [PATCH 391/402] Jagan linetest fix --- KLSadd_insertion/src/linetest.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/KLSadd_insertion/src/linetest.py b/KLSadd_insertion/src/linetest.py index 4d738a7..b86133b 100644 --- a/KLSadd_insertion/src/linetest.py +++ b/KLSadd_insertion/src/linetest.py @@ -11,9 +11,8 @@ sections = [] mathPeople = [] newCommands = [] -#can you tell I like lists? name = "" -temp = "" +temp = "" with open("KLSadd.tex", "r") as file: entireFile = file.readlines() for word in entireFile: From 9d891ccff279234150e3c526cfc6e3db31dc0a82 Mon Sep 17 00:00:00 2001 From: Joon Date: Sat, 7 Jan 2017 21:49:23 -0500 Subject: [PATCH 392/402] Fix issues with
statements --- tex2wiki/src/compare_files.py | 12 +++ tex2wiki/src/tex2wiki.py | 189 +++++++++++++++++++++++++--------- 2 files changed, 155 insertions(+), 46 deletions(-) create mode 100644 tex2wiki/src/compare_files.py diff --git a/tex2wiki/src/compare_files.py b/tex2wiki/src/compare_files.py new file mode 100644 index 0000000..b1ec786 --- /dev/null +++ b/tex2wiki/src/compare_files.py @@ -0,0 +1,12 @@ +import os + + +def compare(output_file): + commands = [ + "TYPE %s.mmd | FIND /V \"\" > %s.frmt" % (output_file, output_file), + "TYPE %s.mmd.bak | FIND /V \"\" > %s.bak.frmt" % (output_file, output_file), + "fc /N %s.frmt %s.bak.frmt > tex2wiki\\data\\output.txt" % (output_file, output_file) + ] + + for command in commands: + os.system(command) diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index e702600..f35dd83 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -1,13 +1,15 @@ __author__ = "Joon Bang" __status__ = "Prototype" -INPUT_FILE = "tex2wiki/data/01outb.tex" -OUTPUT_FILE = "tex2wiki/data/01outb.mmd" +INPUT_FILE = "tex2wiki/data/09outb.tex" +OUTPUT_FILE = "tex2wiki/data/09outb.mmd" GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" TITLE_STRING = "Orthogonal Polynomials" METADATA_TYPES = ["substitution", "constraint"] METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} +import copy +import compare_files import csv @@ -44,13 +46,28 @@ def make_from_raw(raw): metadata = dict() for data_type in METADATA_TYPES: - metadata[data_type] = format_metadata(get_data_str(raw_metadata, latex="\\" + data_type)) + temp = format_metadata(get_data_str(raw_metadata, latex="\\" + data_type)).split("\n") + for k, line in enumerate(temp): + if line.rstrip().endswith("&"): + temp[k] = line.rstrip() + "
" + + metadata[data_type] = "\n".join(temp) equations[i] = LatexEquation(formula, '\n'.join(equation), metadata) return equations +class FormattedEquation(object): + def __init__(self, label, equation, metadata): + self.label = label + self.equation = equation + self.metadata = metadata + + def __str__(self): + return "Equation: " + self.equation + "\nMetadata: " + ("empty\n" if self.metadata == "" else self.metadata) + + class DataUnit(object): def __init__(self, title, subunits): self.title = title @@ -59,11 +76,11 @@ def __init__(self, title, subunits): def __str__(self): result = self.title + "\n" - if type(self.subunits) == list and type(self.subunits[0]) == DataUnit: + if type(self.subunits) == list and len(self.subunits) and type(self.subunits[0]) == DataUnit: for sub in self.subunits: result += str(sub) + "\n" else: - result += str([str(eq) for eq in self.subunits]) + "\n" + result += str("\n".join([str(eq) for eq in self.subunits])) + "\n" return result @@ -92,8 +109,8 @@ def generate_html(tag_name, text, options=None, spacing=2): return result -def generate_math_html(text, options=None, spacing=True): - # type: (str(, dict, bool)) -> str +def generate_math_html(text, options=None, spacing=2): + # type: (str(, dict, int)) -> str """Special case of generate_html, where the tag is "math".""" if options is None: options = {} @@ -101,10 +118,12 @@ def generate_math_html(text, options=None, spacing=True): option_text = [key + "=\"" + value + "\"" for key, value in options.iteritems()] result = "" - if spacing: + if spacing == 2: result += "{\\displaystyle \n" + text + "\n}\n" - else: + elif spacing == 1: result += "{\\displaystyle " + text + "}\n" + else: + result += "{\\displaystyle " + text + "}" return result @@ -296,7 +315,7 @@ def find_all(pattern, string): def get_symbols(text, glossary): # type: (str, dict) -> str - """Generates span text based on symbols present in text.""" + """Generates span text based on symbols present in text. Equivalent of old symbols_list module.""" symbols = set() for keyword in glossary: @@ -344,7 +363,6 @@ def create_general_pages(data): section_names = [TITLE_STRING] + [unit.title for unit in data.subunits] + [TITLE_STRING] # deep down, subunits is a list of LatexEquation(s) - for i, section in enumerate(data.subunits): result = "drmf_bof\n'''" + section.title.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section.title + "}}\n" @@ -354,54 +372,113 @@ def create_general_pages(data): [section_names[i + 2], section_names[i + 2]]] header, footer = generate_nav_bar(link_info) - result += header + "\n== " + section.title + " ==\n\n" + result += header + "\n" + general_equation_format(section)[0] + "\n" + footer + "\n" + "drmf_eof\n" - text = "" - metadata_exists = False - for eq in section.subunits: - # equation should be of type LatexEquation - text += generate_math_html(eq.equation, options={"id": eq.label}) + ret += result - metadata_exists = False - for data_type in sorted(eq.metadata.keys()): - if eq.metadata[data_type] != "": - text += generate_html("div", METADATA_MEANING[data_type] + ": " + eq.metadata[data_type], - options={"align": "right"}, spacing=False) + "
\n" - metadata_exists = True + # post-processing + ret = ret.replace("\n\n\n", "\n") - if not metadata_exists: - text = text[:-1] + "
\n" + return ret - if not metadata_exists: - text = text[:-7] + "\n" - result += text + footer + "\n" + "drmf_eof\n" +def format_stuffs(data): + # type: (DataUnit) -> str + """Format the equations for the 'general' pages.""" + + result = copy.deepcopy(data) + + for i, unit in enumerate(result.subunits): + if type(unit) == LatexEquation: + equation = generate_math_html(unit.equation, options={"id": unit.label}) + metadata = list() + for data_type in sorted(unit.metadata.keys()): + if unit.metadata[data_type] != "": + metadata.append( + generate_html("div", METADATA_MEANING[data_type] + ": " + unit.metadata[data_type], + options={"align": "right"}, spacing=0) + ) + + text = equation.rstrip("\n") + "\n" * bool(len(metadata)) + "
\n".join(metadata) + "
\n" + result.subunits[i] = text + else: + result.subunits[i] = format_stuffs(result.subunits[i]) - ret += result + return result + + +def general_equation_format(data, depth=0): + # type: (DataUnit) -> str + """Format the equations for the 'general' pages.""" + + border = "=" * (2 + int(depth >= 2)) # '==' when depth < 2; '===' when depth >= 2 + text = "%s %s %s\n\n" % (border, data.title, border) + + contains_deeper_depth = False + metadata = list() + for i, unit in enumerate(data.subunits): + if type(unit) == LatexEquation: + equation = generate_math_html(unit.equation, options={"id": unit.label}) + metadata = list() + for data_type in sorted(unit.metadata.keys()): + if unit.metadata[data_type] != "": + metadata.append( + generate_html("div", METADATA_MEANING[data_type] + ": " + unit.metadata[data_type], + options={"align": "right"}, spacing=0) + ) + + text += equation.rstrip("\n") + "\n" * bool(len(metadata)) + "
\n".join(metadata) + "
\n" + else: + contains_deeper_depth = True + temp = general_equation_format(unit, depth + 1) + text = text.rstrip("\n") + "\n\n" + temp[0] + + if depth + 1 >= 2 and i == len(data.subunits) - 1 and temp[1]: + text = remove_break(text) + + if depth < 2 and metadata == list() and not contains_deeper_depth: + text = remove_break(text) + + return text, metadata == list() - return ret def create_specific_pages(data, glossary): # type: (DataUnit, dict) -> str """Creates specific pages for each formula. Corrected for use with DataUnit.""" + formulae = [TITLE_STRING] + make_formula_list(data)[:-1] + [TITLE_STRING] + + i = 0 + pages = list() + for j, unit in enumerate(data.subunits): + res, i = specific_page_format(unit, unit.title, formulae, glossary, j, i) + pages += res + i += 1 + + return "\n".join(pages) + "\n" + + +def make_formula_list(info): formulae = list() - for unit in data.subunits: - for eq in unit.subunits: + if len(info.subunits) and type(info.subunits[0]) != DataUnit: + for eq in info.subunits: formulae.append("Formula:" + eq.label) - formulae.append(unit.title) + formulae.append(info.title) + else: + for subunit in info.subunits: + formulae += make_formula_list(subunit) - formulae = [TITLE_STRING] + formulae[:-1] + [TITLE_STRING] + return formulae - print formulae - i = 0 +def specific_page_format(info, title, formulae, glossary, j, i=0): pages = list() - for j, unit in enumerate(data.subunits): - for eq in unit.subunits: + + if len(info.subunits) and type(info.subunits[0]) != DataUnit: + for eq in info.subunits: # get header and footer - center_text = (unit.title + "#" + eq.label).replace(" ", "_") - middle = "formula in " + unit.title + center_text = (title + "#" + eq.label).replace(" ", "_") + middle = "formula in " + title link_info = [[formulae[i].replace(" ", "_"), formulae[i]], [center_text, middle], [formulae[i + 2].replace(" ", "_"), formulae[i + 2]]] header, footer = generate_nav_bar(link_info) @@ -429,21 +506,38 @@ def create_specific_pages(data, glossary): result += get_symbols(result, glossary) + "\n
\n\n" # bibliography section - result += "== Bibliography ==\n\n" + result += "== Bibliography==\n\n" # TODO: Fix typo after feature parity has been met result += "[http://homepage.tudelft.nl/11r49/askey/contents.html " \ - "Equation in Section 1." + str(j + 1) + "] of [[Bibliography#KLS|'''KLS''']]." - - result += "\n\n== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n" + "Equation in Section 1." + str(j + 1) + "] of [[Bibliography#KLS|'''KLS''']]." # TODO: FIX # end of page result += "
" + footer + "\ndrmf_eof" pages.append(result) i += 1 + else: + for subunit in info.subunits: + res = specific_page_format(subunit, title, formulae, glossary, j, i) + pages += res[0] + i = res[1] - i += 1 + return pages, i - return "\n".join(pages) + "\n" + +def remove_break(string): + while string.rstrip("\n").endswith("
"): + string = string.rstrip("\n")[:-6] + + return string + + +def rstrip(string, delimiter): + # type: (str, str) -> str + """A more intuitive version of rstrip, which simply removes delimiter if it is present.""" + while string.endswith(delimiter): + string = string[:(-1 * len(delimiter))] + + return string def section_split(string, sub=0): @@ -494,9 +588,12 @@ def main(): info = section_split(text) # creates tree, split into section, subsection, subsubsection, etc. output = create_general_pages(info) + create_specific_pages(info, glossary) + output = output.replace("

", "
") with open(OUTPUT_FILE, "w") as output_file: output_file.write(output) if __name__ == '__main__': main() + + compare_files.compare(OUTPUT_FILE.replace("/", "\\").replace(".mmd", "")) From 8287f6ce55f7c6374d560466ef418c6290387f7d Mon Sep 17 00:00:00 2001 From: Joon Date: Wed, 25 Jan 2017 23:04:57 -0500 Subject: [PATCH 393/402] Fix formula id, header bugs, add missing sections --- tex2wiki/src/tex2wiki.py | 141 ++++++++++++++++++++------------------- 1 file changed, 74 insertions(+), 67 deletions(-) diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index f35dd83..a43650b 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -12,10 +12,20 @@ import compare_files import csv +# TODO: Fix bugs with the special cases formula formatting; causes issues with math id="...", spantext +# TODO: Notes about bugs of old (Azeem) output: +# TODO: 09.25:27 (headers are bugged) +# TODO: 09.07:07 (misses \iunit) +# TODO: 09.07:19 (misses \cos@@) +# TODO: 09.08:19 (headers are bugged) +# Was Azeem's program run with an older version of Glossary.csv? It would explain some discrepancies. +# Header bugs are inexplicable. + class LatexEquation(object): - def __init__(self, label, equation, metadata): + def __init__(self, label, raw_label, equation, metadata): self.label = label + self.raw_label = raw_label self.equation = equation self.metadata = metadata @@ -28,7 +38,8 @@ def make_from_raw(raw): for i, equation in enumerate(equations): # formula stuff try: - formula = format_formula(get_data_str(equation, latex="\\formula")) + # print get_data_str(equation, latex="\\formula") + raw_formula, formula = format_formula(get_data_str(equation, latex="\\formula")) except IndexError: # there is no formula. break @@ -53,21 +64,11 @@ def make_from_raw(raw): metadata[data_type] = "\n".join(temp) - equations[i] = LatexEquation(formula, '\n'.join(equation), metadata) + equations[i] = LatexEquation(formula, raw_formula, '\n'.join(equation), metadata) return equations -class FormattedEquation(object): - def __init__(self, label, equation, metadata): - self.label = label - self.equation = equation - self.metadata = metadata - - def __str__(self): - return "Equation: " + self.equation + "\nMetadata: " + ("empty\n" if self.metadata == "" else self.metadata) - - class DataUnit(object): def __init__(self, title, subunits): self.title = title @@ -167,20 +168,32 @@ def convert_dollar_signs(string): def format_formula(formula): - if formula[0] == ":": - return formula[1:].zfill(2) + """Obtain the raw formula (integers), as well as the formatted version.""" + if formula[0] == ":": # handling for Jacobi special stuff + return [str(int(formula[1:]))], formula[1:].zfill(2) formula = multi_split(formula.split("Formula:", 1)[1], [".", ":"]) for j in [-1, -2, -3]: formula[j] = formula[j].zfill(2) + raw = copy.deepcopy(formula) + + # remove any text from the raw equation + i = 0 + while i < len(raw): + if not raw[i].isdigit(): + raw.pop(i) + else: + raw[i] = str(int(raw[i])) # removes any 0s that are present from left end. + i += 1 + if len(formula) == 3: formula = formula[0] + "." + formula[1] + ":" + formula[2] else: formula = ":".join(formula[:-3]) + ":" + formula[-3] + "." + formula[-2] + ":" + formula[-1] - return formula + return raw, formula def format_metadata(string): @@ -318,6 +331,11 @@ def get_symbols(text, glossary): """Generates span text based on symbols present in text. Equivalent of old symbols_list module.""" symbols = set() + special_cases = {"&": "& : logical and
"} + acknowledged = dict() + for case in special_cases: + acknowledged[case] = False + for keyword in glossary: for index in find_all(keyword, text): # if the macro is present in the text @@ -327,7 +345,15 @@ def get_symbols(text, glossary): symbols.add(keyword) span_text = "" - for symbol in sorted(symbols, key=str.lower): + + # code to handle special cases + for keyword in special_cases: + for index in find_all(keyword, text): + if index != -1 and not acknowledged[keyword]: + span_text += special_cases[keyword] + "\n" + acknowledged[keyword] = True # to prevent duplicates + + for symbol in sorted(symbols, key=text.index): links = list() for cell in glossary[symbol]: if "http://" in cell or "https://" in cell: @@ -352,7 +378,7 @@ def get_symbols(text, glossary): span_text += "[" + id_link + " {\\displaystyle " + appearance + \ "}] : " + ''.join(meaning) + " : " + " ".join(links) + "
\n" - return span_text[:-7] # slice off the extra br and endline + return remove_break(span_text) # slice off the extra br and endline def create_general_pages(data): @@ -372,7 +398,7 @@ def create_general_pages(data): [section_names[i + 2], section_names[i + 2]]] header, footer = generate_nav_bar(link_info) - result += header + "\n" + general_equation_format(section)[0] + "\n" + footer + "\n" + "drmf_eof\n" + result += header + "\n" + equation_list_format(section)[0].rstrip("\n") + "\n" + footer + "\n" + "drmf_eof\n" ret += result @@ -382,34 +408,9 @@ def create_general_pages(data): return ret -def format_stuffs(data): - # type: (DataUnit) -> str - """Format the equations for the 'general' pages.""" - - result = copy.deepcopy(data) - - for i, unit in enumerate(result.subunits): - if type(unit) == LatexEquation: - equation = generate_math_html(unit.equation, options={"id": unit.label}) - metadata = list() - for data_type in sorted(unit.metadata.keys()): - if unit.metadata[data_type] != "": - metadata.append( - generate_html("div", METADATA_MEANING[data_type] + ": " + unit.metadata[data_type], - options={"align": "right"}, spacing=0) - ) - - text = equation.rstrip("\n") + "\n" * bool(len(metadata)) + "
\n".join(metadata) + "
\n" - result.subunits[i] = text - else: - result.subunits[i] = format_stuffs(result.subunits[i]) - - return result - - -def general_equation_format(data, depth=0): +def equation_list_format(data, depth=0): # type: (DataUnit) -> str - """Format the equations for the 'general' pages.""" + """Format the equations in a section into a list style.""" border = "=" * (2 + int(depth >= 2)) # '==' when depth < 2; '===' when depth >= 2 text = "%s %s %s\n\n" % (border, data.title, border) @@ -430,7 +431,7 @@ def general_equation_format(data, depth=0): text += equation.rstrip("\n") + "\n" * bool(len(metadata)) + "
\n".join(metadata) + "
\n" else: contains_deeper_depth = True - temp = general_equation_format(unit, depth + 1) + temp = equation_list_format(unit, depth + 1) text = text.rstrip("\n") + "\n\n" + temp[0] if depth + 1 >= 2 and i == len(data.subunits) - 1 and temp[1]: @@ -446,32 +447,38 @@ def create_specific_pages(data, glossary): # type: (DataUnit, dict) -> str """Creates specific pages for each formula. Corrected for use with DataUnit.""" - formulae = [TITLE_STRING] + make_formula_list(data)[:-1] + [TITLE_STRING] + formulae = [TITLE_STRING] + make_formula_list(data)[:-1][0] + [TITLE_STRING] + + # print "\n".join(formulae) i = 0 pages = list() for j, unit in enumerate(data.subunits): - res, i = specific_page_format(unit, unit.title, formulae, glossary, j, i) + res, i = equation_page_format(unit, unit.title, formulae, glossary, i) pages += res i += 1 + open("tex2wiki/data/darn.txt", "w").write("\n".join(res)) + return "\n".join(pages) + "\n" -def make_formula_list(info): +def make_formula_list(info, depth=0): formulae = list() if len(info.subunits) and type(info.subunits[0]) != DataUnit: for eq in info.subunits: formulae.append("Formula:" + eq.label) - formulae.append(info.title) else: for subunit in info.subunits: - formulae += make_formula_list(subunit) + formulae += make_formula_list(subunit, depth + 1)[0] + + if depth < 2: + formulae.append(info.title) - return formulae + return formulae, depth -def specific_page_format(info, title, formulae, glossary, j, i=0): +def equation_page_format(info, title, formulae, glossary, i=0): pages = list() if len(info.subunits) and type(info.subunits[0]) != DataUnit: @@ -479,8 +486,14 @@ def specific_page_format(info, title, formulae, glossary, j, i=0): # get header and footer center_text = (title + "#" + eq.label).replace(" ", "_") middle = "formula in " + title + + last_index = i + 2 + + if "Formula" not in formulae[i + 2]: + last_index = i + 3 + link_info = [[formulae[i].replace(" ", "_"), formulae[i]], [center_text, middle], - [formulae[i + 2].replace(" ", "_"), formulae[i + 2]]] + [formulae[last_index].replace(" ", "_"), formulae[last_index]]] header, footer = generate_nav_bar(link_info) # add title of page, navigation headers @@ -505,10 +518,13 @@ def specific_page_format(info, title, formulae, glossary, j, i=0): result += "== Symbols List ==\n\n" result += get_symbols(result, glossary) + "\n
\n\n" - # bibliography section + # bibliography section TODO: fix links! result += "== Bibliography==\n\n" # TODO: Fix typo after feature parity has been met result += "[http://homepage.tudelft.nl/11r49/askey/contents.html " \ - "Equation in Section 1." + str(j + 1) + "] of [[Bibliography#KLS|'''KLS''']]." # TODO: FIX + "Equation in Section " + ".".join(eq.raw_label[:2]) + "] of [[Bibliography#KLS|'''KLS''']].\n\n" + + # url links placeholder + result += "== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n" # end of page result += "
" + footer + "\ndrmf_eof" @@ -517,7 +533,7 @@ def specific_page_format(info, title, formulae, glossary, j, i=0): i += 1 else: for subunit in info.subunits: - res = specific_page_format(subunit, title, formulae, glossary, j, i) + res = equation_page_format(subunit, title, formulae, glossary, i) pages += res[0] i = res[1] @@ -531,15 +547,6 @@ def remove_break(string): return string -def rstrip(string, delimiter): - # type: (str, str) -> str - """A more intuitive version of rstrip, which simply removes delimiter if it is present.""" - while string.endswith(delimiter): - string = string[:(-1 * len(delimiter))] - - return string - - def section_split(string, sub=0): # type: (str) -> DataUnit """ From 0aee4ef3ff6b1ef9dfe6c80457bf0771be1e7cbb Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Wed, 8 Feb 2017 11:14:29 -0500 Subject: [PATCH 394/402] Wrap up Orthogonal Polynomials testing --- tex2wiki/src/tex2wiki.py | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index a43650b..51abced 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -1,8 +1,8 @@ __author__ = "Joon Bang" __status__ = "Prototype" -INPUT_FILE = "tex2wiki/data/09outb.tex" -OUTPUT_FILE = "tex2wiki/data/09outb.mmd" +INPUT_FILE = "tex2wiki/data/14outb.tex" +OUTPUT_FILE = "tex2wiki/data/14outb.mmd" GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" TITLE_STRING = "Orthogonal Polynomials" METADATA_TYPES = ["substitution", "constraint"] @@ -18,7 +18,9 @@ # TODO: 09.07:07 (misses \iunit) # TODO: 09.07:19 (misses \cos@@) # TODO: 09.08:19 (headers are bugged) -# Was Azeem's program run with an older version of Glossary.csv? It would explain some discrepancies. +# TODO: 09.15:17 (misses \HyperpFq) +# TODO: 09.15:19 (misses \cos@@) +# Was Azeem's program run with a much older version of Glossary.csv? It could explain some discrepancies. # Header bugs are inexplicable. @@ -38,7 +40,6 @@ def make_from_raw(raw): for i, equation in enumerate(equations): # formula stuff try: - # print get_data_str(equation, latex="\\formula") raw_formula, formula = format_formula(get_data_str(equation, latex="\\formula")) except IndexError: # there is no formula. break @@ -447,7 +448,7 @@ def create_specific_pages(data, glossary): # type: (DataUnit, dict) -> str """Creates specific pages for each formula. Corrected for use with DataUnit.""" - formulae = [TITLE_STRING] + make_formula_list(data)[:-1][0] + [TITLE_STRING] + formulae = [TITLE_STRING] + make_formula_list(data)[0][:-1] + [TITLE_STRING] # print "\n".join(formulae) @@ -464,6 +465,9 @@ def create_specific_pages(data, glossary): def make_formula_list(info, depth=0): + # (str(, int)) -> str, int + """Generates the list of formulae contained in the file. Used for generating headers & footers.""" + formulae = list() if len(info.subunits) and type(info.subunits[0]) != DataUnit: for eq in info.subunits: @@ -479,6 +483,7 @@ def make_formula_list(info, depth=0): def equation_page_format(info, title, formulae, glossary, i=0): + """Formats equations into individual MediaWiki pages.""" pages = list() if len(info.subunits) and type(info.subunits[0]) != DataUnit: @@ -487,10 +492,7 @@ def equation_page_format(info, title, formulae, glossary, i=0): center_text = (title + "#" + eq.label).replace(" ", "_") middle = "formula in " + title - last_index = i + 2 - - if "Formula" not in formulae[i + 2]: - last_index = i + 3 + last_index = i + 2 + int("Formula" not in formulae[i + 2]) # sets the index for the "next" link link_info = [[formulae[i].replace(" ", "_"), formulae[i]], [center_text, middle], [formulae[last_index].replace(" ", "_"), formulae[last_index]]] @@ -518,10 +520,13 @@ def equation_page_format(info, title, formulae, glossary, i=0): result += "== Symbols List ==\n\n" result += get_symbols(result, glossary) + "\n
\n\n" - # bibliography section TODO: fix links! + # bibliography section result += "== Bibliography==\n\n" # TODO: Fix typo after feature parity has been met - result += "[http://homepage.tudelft.nl/11r49/askey/contents.html " \ - "Equation in Section " + ".".join(eq.raw_label[:2]) + "] of [[Bibliography#KLS|'''KLS''']].\n\n" + result += "" \ + "[http://homepage.tudelft.nl/11r49/askey/contents.html " \ + "Equation in Section " + \ + ".".join(eq.raw_label[:2]) + \ + "] of [[Bibliography#KLS|'''KLS''']].\n\n" # Meaning? Need to check validity of this. # url links placeholder result += "== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n" @@ -541,6 +546,9 @@ def equation_page_format(info, title, formulae, glossary, i=0): def remove_break(string): + # (str) -> str + """Removes
from the end of a string.""" + while string.rstrip("\n").endswith("
"): string = string.rstrip("\n")[:-6] @@ -603,4 +611,8 @@ def main(): if __name__ == '__main__': main() + print "Complete. Now comparing files..." + compare_files.compare(OUTPUT_FILE.replace("/", "\\").replace(".mmd", "")) + + print "File comparison successful." From a1efca5acf689baf150d163067a890844dc2ecb8 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Sun, 12 Feb 2017 10:37:23 -0500 Subject: [PATCH 395/402] Fix bug with symbols list sorting --- tex2wiki/src/tex2wiki.py | 69 ++++++++-------------------------------- 1 file changed, 14 insertions(+), 55 deletions(-) diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index 51abced..7e16380 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -20,8 +20,6 @@ # TODO: 09.08:19 (headers are bugged) # TODO: 09.15:17 (misses \HyperpFq) # TODO: 09.15:19 (misses \cos@@) -# Was Azeem's program run with a much older version of Glossary.csv? It could explain some discrepancies. -# Header bugs are inexplicable. class LatexEquation(object): @@ -113,7 +111,7 @@ def generate_html(tag_name, text, options=None, spacing=2): def generate_math_html(text, options=None, spacing=2): # type: (str(, dict, int)) -> str - """Special case of generate_html, where the tag is "math".""" + """Special case of generate_html, where the tag is "".""" if options is None: options = {} @@ -141,12 +139,13 @@ def generate_link(left, right=""): def multi_split(s, seps): # type: (str, list) -> list - """Splits a string on multiple characters.""" + """Splits a string on multiple characters, specified in "seps".""" res = [s] for sep in seps: s, res = res, [] for seq in s: res += seq.split(sep) + return res @@ -169,7 +168,8 @@ def convert_dollar_signs(string): def format_formula(formula): - """Obtain the raw formula (integers), as well as the formatted version.""" + # (list) -> list + """Obtain the raw formula (the numerical values), as well as the formatted version.""" if formula[0] == ":": # handling for Jacobi special stuff return [str(int(formula[1:]))], formula[1:].zfill(2) @@ -221,43 +221,6 @@ def format_metadata(string): return result.strip() -def extract_data(data): - # type: (list) -> list - """Extracts the equations and pertinent data from the tex file.""" - result = list() - - for section_data in data: - equations = section_data[1][:-1] - for i, equation in enumerate(equations): - # formula stuff - try: - formula = format_formula(get_data_str(equation, latex="\\formula")) - except IndexError: # there is no formula. - break - - equation = equation.split("\n") - - # get metadata - raw_metadata = "" - - j = 0 - while j < len(equation): - if "%" in equation[j]: - raw_metadata += equation.pop(j)[1:].strip().strip("\n") + "\n" - else: - j += 1 - - metadata = dict() - for data_type in METADATA_TYPES: - metadata[data_type] = format_metadata(get_data_str(raw_metadata, latex="\\"+data_type)) - - equations[i] = LatexEquation(formula, '\n'.join(equation), metadata) - - result.append([section_data[0], equations]) - - return result - - def find_end(text, left_delimiter, right_delimiter, start=0): # type: (str, str, str(, int)) -> int """A .find that accounts for nested delimiters.""" @@ -330,7 +293,7 @@ def find_all(pattern, string): def get_symbols(text, glossary): # type: (str, dict) -> str """Generates span text based on symbols present in text. Equivalent of old symbols_list module.""" - symbols = set() + symbols = list() special_cases = {"&": "& : logical and
"} acknowledged = dict() @@ -343,7 +306,8 @@ def get_symbols(text, glossary): if index != -1: index += len(keyword) # now index of next character if index >= len(text) or not text[index].isalpha(): - symbols.add(keyword) + symbols.append([keyword, index]) + break span_text = "" @@ -354,7 +318,8 @@ def get_symbols(text, glossary): span_text += special_cases[keyword] + "\n" acknowledged[keyword] = True # to prevent duplicates - for symbol in sorted(symbols, key=text.index): + for symbol in sorted(symbols, key=lambda l: l[1]): # sort by list index. + symbol = symbol[0] links = list() for cell in glossary[symbol]: if "http://" in cell or "https://" in cell: @@ -459,13 +424,11 @@ def create_specific_pages(data, glossary): pages += res i += 1 - open("tex2wiki/data/darn.txt", "w").write("\n".join(res)) - return "\n".join(pages) + "\n" def make_formula_list(info, depth=0): - # (str(, int)) -> str, int + # (str(, int)) -> (str, int) """Generates the list of formulae contained in the file. Used for generating headers & footers.""" formulae = list() @@ -483,6 +446,7 @@ def make_formula_list(info, depth=0): def equation_page_format(info, title, formulae, glossary, i=0): + # (DataUnit, str, list, dict(, int)) -> (str, int) """Formats equations into individual MediaWiki pages.""" pages = list() @@ -557,12 +521,7 @@ def remove_break(string): def section_split(string, sub=0): # type: (str) -> DataUnit - """ - Split string into DataTree objects. - Will eventually become replacement for large part of main() + extract_data(), - and should theoretically make the create_general_pages and create_specific_pages methods simpler, faster, - and able to more easily store all data from the .tex file. - """ + """Split string into DataTree objects.""" string = string.split("\\" + sub * "sub" + "section") @@ -613,6 +572,6 @@ def main(): print "Complete. Now comparing files..." - compare_files.compare(OUTPUT_FILE.replace("/", "\\").replace(".mmd", "")) + compare_files.compare(OUTPUT_FILE.replace("/", "\\").replace(".mmd", "")) # only works for Windows print "File comparison successful." From e6cac8c7c68cd334127ad3ecdb567672804bf3ab Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Sun, 12 Feb 2017 11:22:57 -0500 Subject: [PATCH 396/402] Improve main(), add usage() --- tex2wiki/src/compare_files.py | 4 +- tex2wiki/src/tex2wiki.py | 71 +++++++++++++++++++++-------------- 2 files changed, 45 insertions(+), 30 deletions(-) diff --git a/tex2wiki/src/compare_files.py b/tex2wiki/src/compare_files.py index b1ec786..982644f 100644 --- a/tex2wiki/src/compare_files.py +++ b/tex2wiki/src/compare_files.py @@ -1,11 +1,11 @@ import os -def compare(output_file): +def compare(output_file, number=0): commands = [ "TYPE %s.mmd | FIND /V \"\" > %s.frmt" % (output_file, output_file), "TYPE %s.mmd.bak | FIND /V \"\" > %s.bak.frmt" % (output_file, output_file), - "fc /N %s.frmt %s.bak.frmt > tex2wiki\\data\\output.txt" % (output_file, output_file) + "fc /N %s.frmt %s.bak.frmt > tex2wiki\\data\\output%s.txt" % (output_file, output_file, str(number)) ] for command in commands: diff --git a/tex2wiki/src/tex2wiki.py b/tex2wiki/src/tex2wiki.py index 7e16380..7fb06a3 100644 --- a/tex2wiki/src/tex2wiki.py +++ b/tex2wiki/src/tex2wiki.py @@ -1,16 +1,14 @@ __author__ = "Joon Bang" -__status__ = "Prototype" - -INPUT_FILE = "tex2wiki/data/14outb.tex" -OUTPUT_FILE = "tex2wiki/data/14outb.mmd" -GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" -TITLE_STRING = "Orthogonal Polynomials" -METADATA_TYPES = ["substitution", "constraint"] -METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} +__status__ = "Development" import copy import compare_files import csv +import sys + +GLOSSARY_LOCATION = "tex2wiki/data/new.Glossary.csv" +METADATA_TYPES = ["substitution", "constraint"] +METADATA_MEANING = {"substitution": "Substitution(s)", "constraint": "Constraint(s)"} # TODO: Fix bugs with the special cases formula formatting; causes issues with math id="...", spantext # TODO: Notes about bugs of old (Azeem) output: @@ -347,19 +345,19 @@ def get_symbols(text, glossary): return remove_break(span_text) # slice off the extra br and endline -def create_general_pages(data): - # type: (DataUnit) -> str +def create_general_pages(data, title_string=""): + # type: (DataUnit(, str)) -> str """Creates the 'index' pages for each section. Corrected for use of DataUnit.""" ret = "" - section_names = [TITLE_STRING] + [unit.title for unit in data.subunits] + [TITLE_STRING] + section_names = [title_string] + [unit.title for unit in data.subunits] + [title_string] # deep down, subunits is a list of LatexEquation(s) for i, section in enumerate(data.subunits): result = "drmf_bof\n'''" + section.title.replace("''", "") + "'''\n{{DISPLAYTITLE:" + section.title + "}}\n" # get header and footer - center_text = (TITLE_STRING + "#").replace(" ", "_") + section.title + center_text = (title_string + "#").replace(" ", "_") + section.title link_info = [[section_names[i], section_names[i]], [center_text, section_names[i + 1]], [section_names[i + 2], section_names[i + 2]]] header, footer = generate_nav_bar(link_info) @@ -368,14 +366,14 @@ def create_general_pages(data): ret += result - # post-processing + # some post-processing ret = ret.replace("\n\n\n", "\n") return ret def equation_list_format(data, depth=0): - # type: (DataUnit) -> str + # type: (DataUnit(, str)) -> str """Format the equations in a section into a list style.""" border = "=" * (2 + int(depth >= 2)) # '==' when depth < 2; '===' when depth >= 2 @@ -409,13 +407,11 @@ def equation_list_format(data, depth=0): return text, metadata == list() -def create_specific_pages(data, glossary): +def create_specific_pages(data, glossary, title_string): # type: (DataUnit, dict) -> str """Creates specific pages for each formula. Corrected for use with DataUnit.""" - formulae = [TITLE_STRING] + make_formula_list(data)[0][:-1] + [TITLE_STRING] - - # print "\n".join(formulae) + formulae = [title_string] + make_formula_list(data)[0][:-1] + [title_string] i = 0 pages = list() @@ -547,9 +543,19 @@ def section_split(string, sub=0): return DataUnit(title, chunk_data) -def main(): - with open(INPUT_FILE) as input_file: - text = input_file.read() +def usage(): + """Prints usage of program.""" + + print "Usage: python tex2wiki.py filename1 filename2 ...\nNote: filename(s) should NOT include the extension." + sys.exit(0) + + +def main(input_file, output_file, title): + # (str, str, str) -> None + """Converts a .tex file to MediaWiki page(s).""" + + with open(input_file) as f: + text = f.read() glossary = dict() with open(GLOSSARY_LOCATION, "rb") as csv_file: @@ -561,17 +567,26 @@ def main(): info = section_split(text) # creates tree, split into section, subsection, subsubsection, etc. - output = create_general_pages(info) + create_specific_pages(info, glossary) + output = create_general_pages(info, title) + create_specific_pages(info, glossary, title) output = output.replace("

", "
") - with open(OUTPUT_FILE, "w") as output_file: - output_file.write(output) + with open(output_file, "w") as f: + f.write(output) + if __name__ == '__main__': - main() + if len(sys.argv) < 2: + usage() + + for i, filename in enumerate(sys.argv[1:]): + main( + input_file=filename + ".tex", + output_file=filename + ".mmd", + title="Orthogonal Polynomials" + ) - print "Complete. Now comparing files..." + print "Complete. Now comparing files..." - compare_files.compare(OUTPUT_FILE.replace("/", "\\").replace(".mmd", "")) # only works for Windows + compare_files.compare(filename.replace("/", "\\"), i) # only works for Windows - print "File comparison successful." + print "File comparison successful." From ab1741287b67a3d95a63244236c8a8e73253ee89 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 3 Mar 2017 15:49:23 -0500 Subject: [PATCH 397/402] more Jagan fixes --- KLSadd_insertion/README.md | 56 +++++++++----- KLSadd_insertion/test/test_main.py | 115 +++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+), 20 deletions(-) create mode 100644 KLSadd_insertion/test/test_main.py diff --git a/KLSadd_insertion/README.md b/KLSadd_insertion/README.md index bfa1d4b..02d624e 100644 --- a/KLSadd_insertion/README.md +++ b/KLSadd_insertion/README.md @@ -5,9 +5,10 @@ This project uses Python and string manipulation to insert sections of the KLSad Python updateChapters.py ``` The program must have a tempchap9.tex and a tempchap14.tex as well as the KLSadd.tex file in the same directory! -The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update the updateChapters.py program. -NOTE: Both the updateChapters.py and linetest.py lack a pdf version of their chapter 14 output. One must be generated to view results. +The linetest.py program is the original program file fully updated. It is much harder to read and should only be used as a reference to update updateChapters.py. + +NOTE: Both the updateChapters.py and linetest.py lack a .PDF version of their chapter 14 output. One must be generated to view results. NOTE: The KLSadd.tex file only deals with chapters 9 and 14, as stated in the document itself. @@ -23,15 +24,20 @@ _______________________________________________________________________________ # First: The Files - - KLSadd.tex: This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be inserted into the chapter files. CAN BE FOUND ONINE IN PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf + ## - KLSadd.tex: + This is the addendum we are working with. It has sections that correspond with sections in the chapter files, and it contains paragraphs that must be inserted into the chapter files. CAN BE FOUND ONINE IN .PDF FORM: https://staff.fnwi.uva.nl/t.h.koornwinder/art/informal/KLSadd.pdf - - chap09.tex and chap14.tex: these are chapter files. These are LaTeX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections. + ## - chap09.tex and chap14.tex: + These are chapter files. These are LaTeX documents that are chapters in a book. This is a book written by smart math people. But they did some things wrong, so another math person wants to fix them. That math person wrote an addendum file called KLSadd.tex and our job is to pull paragraphs out of KLSadd and insert them at the end of the relevant section in the chapter files. Every chapter is made up of sections and every section has subsections. - - updateChapters.py: This is thr code currently being worked on and sorting chapters. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. + ## - updateChapters.py: + This is the code currently being worked on and sorting chapters. This document will be going over the variables and methods in this program. This program should: take paragraphs from every section in KLSadd and insert them into the relevant chapter file and into the relevant section within that chapter. - - linetest.py: this abomination of code is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. + ## - linetest.py: + This is the original program. It did the job, and it did it well. However, I realized that it was very very unreadable. This program is the child I never wanted. This program does 100% work and its outputs can be used to check against updateChapters.py's output. - - newtempchap09.tex and newtempchap14.tex these are output files of linetest.py and this is what a standard output looks like. They are no longer up to date for updateChapters as it sorts by subsection, but still serve as good reference + ## - newtempchap09.tex and newtempchap14.tex: + These are output files of linetest.py and this is what a standard output looks like. They are no longer up to date for updateChapters as it sorts by subsection, but still serve as good reference # Next: the specifications @@ -65,33 +71,43 @@ So in the chapter 9 file, section 15 "Dogs", We change the formatting with "\bf ``` --- -The variables: +# The variables: These are the variables in the beginning: --chapNums: chapNums is a list, denoted by the [], that holds the chapter number (in this case it's either a 9 or a 14) that corresponds to where a section in KLSadd should go + ## -chapNums: + chapNums is a list, denoted by the [], that holds the chapter number (in this case it's either a 9 or a 14) that corresponds to where a section in KLSadd should go --paras: holds all of the text in the paragraphs of KLSadd.tex. This is the list that gets read when its time to insert paragraphs into the chapter file. Every element is a loooong string + ## -paras: + Holds all of the text in the paragraphs of KLSadd.tex. This is the list that gets read when its time to insert paragraphs into the chapter file. Every element is a loooong string --mathPeople: this holds the *name* of every section in KLSadd. It stores names like Wilson, Racah, Dual Hahn, etc. In our example with the Dogs above, it would hold "Dogs". This is useful to finding where to insert the correct paragraph + ## -mathPeople: T + This holds the *name* of every section in KLSadd. It stores names like Wilson, Racah, Dual Hahn, etc. In our example with the Dogs above, it would hold "Dogs". This is useful to finding where to insert the correct paragraph --newCommands: this is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LaTeX files into PDF files and they need to be copied over into both chapter files + ## -newCommands: + This is a list that holds ints representing line numbers in KLSadd.tex that correspond to commands. There are a few special commands in the file that help turn LaTeX files into .PDF files and they need to be copied over into both chapter files --comms: holds the actual strings of the commands found from the line numbers stored in newCommands + ## -comms: + Holds the actual strings of the commands found from the line numbers stored in newCommands --- -The functions: +# The functions: --prepareForPDF(chap): this method inserts some packages needed by LATEX files to be turned into pdf files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. + ## -prepareForPDF(chap): + This method inserts some packages needed by LATEX files to be turned into .PDF files. It takes a list called chap which is a String containing the contents of the chapter fie. It returns the chap String edited with the special packages in place. --getCommands(kls): takes the KLSadd.tex as a string as a parameter and stores the special commands in the comms variable mentioned earlier + ## -getCommands(kls): + Takes the KLSadd.tex as a string as a parameter and stores the special commands in the comms variable mentioned earlier --insertCommands(kls, chap, cms): kls is KLSadd.tex, chap is a chapter file string, cms is a list of commands, it is the comms variable. This method returns the chap with the special commands inserted in place + ## -insertCommands(kls, chap, cms): + kls is KLSadd.tex, chap is a chapter file string, cms is a list of commands, it is the comms variable. This method returns the chap with the special commands inserted in place --findReferences(str): takes a string representation of a chapter file. Returns a list of the line numbers of the "References" subsections. This references variable is used as an index as to where the paragraphs in paras should be inserted + ## -findReferences(str): + Takes a string representation of a chapter file. Returns a list of the line numbers of the "References" subsections. This references variable is used as an index as to where the paragraphs in paras should be inserted --fixChapter(chap, references, p, kls): takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. + ## -fixChapter(chap, references, p, kls): + Takes a chapter file string, a references list, the paras variable, and the KLSadd file string. This method basically just calls all of the methods above and adds all of the extra stuff like the commands and packages. @@ -104,6 +120,6 @@ Then the strings are written into seperate updated chapter files. --- -At this point in time updateChapters.py is mostly functional (there are still a few areas that do not work correctly). Currently, unit tests and additional functions are being added. +At this point in time updateChapters.py is functional (there are still a few areas that are ill formatted or inefficient). Currently, unit tests and additional functions are being added. diff --git a/KLSadd_insertion/test/test_main.py b/KLSadd_insertion/test/test_main.py new file mode 100644 index 0000000..91bfd31 --- /dev/null +++ b/KLSadd_insertion/test/test_main.py @@ -0,0 +1,115 @@ + +__author__ = 'Edward Bian' +__status__ = 'Development' + +from unittest import TestCase +from updateChapters import fix_chapter + + +class TestFixChapter(TestCase): + def test_fix_chapter(self): + +#fix_chapter(chap, references , paragraphs_to_be_added , kls, kls_list_all (basically word), chapticker2, new_commands, klsaddparas, sortmatch_2, tempref, sorter_check): +#fix_chapter_sort(chap, [5] , [\\subsection*{9.1 Wilson}\n\\label{sec9.1}\n%\n, kls, word, sortloc(should be 0) , 0, , blank?, , klsaddparas, sortmatch_2, tempref, sorter_check): +# fix_chapter_sort( kls, chap, word, sortloc , klsaddparas, sortmatch_2, tempref, sorter_check): +# fix_chapter( chap, references, paragraphs_to_be_added, kls, kls_list_all, chapticker2, new_commands , klsaddparas, sortmatch_2, tempref, sorter_check): + self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' + , '\\newcommand\half{\\frac50}' + , '\\newcommand\half{\\frac12}' + , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '\\myciteKLS' + , '\\end{eqnarray}'] + ,[5],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n'] + , ['\\newcommand\\smallskipamount' + , '\\newcommand\\mybibitem[1]' + ,'%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['Hypergeometric Representation'] + , 9, [], [3, 4, 7], [['%ab']], [6, 7, 12, 15], [[0, 0], [0, 0]]) + + # Expected output: + + , ['\\newcommand\\mybibitem[1]' + , '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n' + , '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\newcommand\half{\\frac50}' + , '%\\newcommand\\half{\\frac12}' + , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '\\cite' + , '\\newcommand\\smallskipamount' + , '\\end{eqnarray}']) + self.assertEquals(fix_chapter(['\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(' + , '\\newcommand\half{\\frac50}' + , '\\newcommand\half{\\frac12}' + , '\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(' + , '\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '\\myciteKLS' + , '\\end{eqnarray}'] + ,[5],['\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n'] + , ['\\newcommand\\smallskipamount' + , '\\newcommand\\mybibitem[1]' + ,'%' + , '\\subsection*{9.1 Wilson}' + , '\\paragraph{Hypergeometric Representation}' + , 'The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetric' + , 'in $a,b,c,d$.' + , '\\renewcommand{\\refname}{Standard references}'] + , ['Hypergeometric Representation'] + , 9, [], [3, 4, 7], [['%a']], [6, 7, 12, 15], [[0, 0], [0, 0]]) + + # Expected output: + + , ['\\newcommand\\mybibitem[1]' + , '\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n' + , '\\newcommand{\\qhypK}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\newcommand\half{\\frac50}' + , '%\\newcommand\\half{\\frac12}' + , '%\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(%Begin KLS Addendum additions\\subsection*{9.1 Wilson}\\n\\label{sec9.1}\\n%\\n%End of KLS Addendum additions' + , '%\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}' + , '%\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(' + , '\\section{Wilson}\\index{Wilson polynomials}' + , '\\subsection*{Hypergeometric representation}' + , '\\begin{eqnarray}' + , '& &\\frac{W_n(x^2;a,b,c,d)}{(a+b)_n(a+c)_n(a+d)_n}\\nonumber\\' + , '\\end{eqnarray}' + , '\\subsection*{Orthogonality relation}\\paragraph{\\bf KLS Addendum: Hypergeometric Representation}The Wilson polynomial $W_n(y;a,b,c,d)$ is symmetricin $a,b,c,d$.' + , '\\begin{eqnarray}' + , '\\label{OrthIWilson}' + , '\\cite' + , '\\newcommand\\smallskipamount' + , '\\end{eqnarray}']) + + From 6dbdfbec2dd5b277de7199f9b3e9c7033363c90f Mon Sep 17 00:00:00 2001 From: Moritz Schubotz Date: Mon, 13 Mar 2017 14:47:52 +0100 Subject: [PATCH 398/402] Update README.md Add link to the DRMF project. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b5b6afb..f6d8acf 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Code Health](https://landscape.io/github/DRMF/DRMF-Seeding-Project/master/landscape.svg?style=flat)](https://landscape.io/github/DRMF/DRMF-Seeding-Project/master) This project is meant to convert different designated source formats to semantic LaTeX for the -DRMF project. One major aspect of this conversion is the inclusion, insertion, and replacement +[DRMF project](https://drmf.wmflabs.org). One major aspect of this conversion is the inclusion, insertion, and replacement of LaTeX semantic macros. ## MediaWiki Wikitext Generation From bcbd077dd9e2009c9a2ec6c81370b8e5ecfb8d0a Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 21 Apr 2017 17:55:13 -0400 Subject: [PATCH 399/402] Minor pdf generation fixes --- KLSadd_insertion/src/updateChapters.py | 213 +++++++++++++++++-------- 1 file changed, 150 insertions(+), 63 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 94e3c8c..7f3a985 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -12,8 +12,41 @@ # w, h = 2, 100 # sorter_check = [[0 for _ in range(w)] for __ in range(h)] +def bracket_finder(word_to_search): + """ + + :param word_to_search: + :return: The word between the first set of brackets + """ + first_bracket = True; + first_bracket_location = 0; + last_bracket_location = 0; + layers = 0; + counter = 0; + first_char = 0; + for character_examined in word_to_search: + if character_examined == "{" and first_bracket == True: + first_bracket_location = word_to_search.index(character_examined) + first_bracket = False; + elif character_examined == "{" and first_bracket != True: + layers += 1; + elif character_examined == "}": + if layers == 0: + last_bracket_location = counter + #word_to_search.index(character_examined) + else: + layers -= 1 + counter += 1 + word_to_search2 = word_to_search[first_bracket_location + 1:last_bracket_location] + for character_examined in word_to_search2: + if character_examined.isalpha(): + first_char = word_to_search2.index(character_examined) + return word_to_search2[first_char:] + return word_to_search[first_bracket_location+1:last_bracket_location] + + -def chap_1_placer(chap1, kls, klsaddparas): +def chap_1_placer(chap1, kls, klsaddparas, cp1commands): """ :param chap1: Chapter 1 text file @@ -21,6 +54,8 @@ def chap_1_placer(chap1, kls, klsaddparas): :param klsaddparas: Paragraphs that the code has identified to be sorted :return: Returns chapter 1 with the sections inserted into the right place from the introduction of KLSadd """ + + chapter_start = True index = 0 kls_sub_chap1 = [] @@ -29,7 +64,8 @@ def chap_1_placer(chap1, kls, klsaddparas): index += 1 line = str(item) if "\\subsection" in line: - temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) + temp = bracket_finder(line) + # temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) (edit this) and line 128 # The 12 is not arbitrary and comes from the number of characters in "//subsection{" if chapter_start and ("\\paragraph{" in line or "\\subsubsection*{" in line): for item in klsaddparas: @@ -39,11 +75,57 @@ def chap_1_placer(chap1, kls, klsaddparas): t = ''.join(kls[index-1: klsaddparas[klsloc]]) kls_sub_chap1.append(t) # append the whole paragraph, every paragraph should end with a % comment kls_header_chap1.append(temp) # append the name of subsection + break intro_to_add = ''.join(kls_sub_chap1) chap1 = chap1[:len(chap1)-1] + commentticker = 0 + + # These commands mess up PDF reading and mus tbe commented out + for line in cp1commands: + prev_line = cp1commands[cp1commands.index(line) - 1] + if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in prev_line: + if "\\newcommand\\half{\\frac12}" in line: + linetoadd = "%" + line + cp1commands[commentticker] = linetoadd + + elif "\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in line: + linetoadd = "%" + line + cp1commands[commentticker] = linetoadd + + elif "\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in line: + linetoadd = "%" + line + cp1commands[commentticker] = linetoadd + + elif "\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in line: + linetoadd = "%" + line + cp1commands[commentticker] = linetoadd + + commentticker += 1 + if "\\newpage" in line and "\hbox{}" not in line: + chap1[chap1.index(line)] = "" + if '\myciteKLS' in line: + linetoadd = line.replace('\myciteKLS', '\cite') + cp1commands[commentticker] = linetoadd + + cp1commandsstring = ''.join(cp1commands) + index = 0 + for word in chap1: + index += 1 + if "\\newcommand" in chap1[index]: + chap1[index - 1] = cp1commandsstring + print"ding" + break + ticker1 = 0 + # Formatting to make the Latex file run + while ticker1 < len(chap1): + if '\\myciteKLS' in chap1[ticker1]: + chap1[ticker1] = chap1[ticker1].replace('\\myciteKLS', '\\cite') + ticker1 += 1 + chap1 = ''.join(chap1) total_chap1 = chap1 + "\\paragraph{\\bf KLS Addendum: Generalities}" + intro_to_add + "\\end{document}" + return total_chap1 @@ -125,13 +207,15 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref index += 1 line = str(item) if "\\subsection" in line: - temp = line[line.find(" ", 12)+1: line.find("}", 12)] # get just the name (like mathpeople) + temp = bracket_finder(line) + #line[line.find(" ", 12)+1: line.find("}", 12)] + # get just the name (like mathpeople) if temp.lower() == 'wilson': chapterstart = True if special_input in (0, 2, 4) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ (special_input in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): - testing = item + testing = item #CLEAN UP(?) for item in klsaddparas: if index < item: klsloc = klsaddparas.index(item) @@ -194,9 +278,9 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref line = str(chap[item]) if "\\section{" in line or "\\subsection{" in line: if "\\subsection{" in line: - temp = line[12:line.find("}", 7)] + temp = bracket_finder(line) else: - temp = line[9:line.find("}", 7)] + temp = bracket_finder(line) if name_chap in line.lower(): if special_input in (0, 2, 3, 4) or "orthogonality relation" not in line: @@ -220,13 +304,15 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref if chap9 == 1: sorter_check[sortloc][1] += 1 k_hyp_index_iii += 1 + with open(DATA_DIR + "shiftedsections.tex", "a") as shifted: + shifted.write("KLS Addendum: " + word + " to " + temp + "\n") except IndexError: + print chap[tempref[d+1] - 1] + print print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") ''' ''' - if sortloc == 7: - with open(DATA_DIR + "testoutput.tex", "w") as thing: - thing.write(''.join(chap)) + if len(hyper_headers_chap) != 0: sortmatch_2.append(k_hyper_sub_chap) return chap @@ -243,23 +329,23 @@ def cut_words(word_to_find, word_to_search_in): :param word_to_search_in: The big word that is being searched :return: The big word without the word that was searched for """ - find_this_string = word_to_find - search_in_this_string = word_to_search_in + find_string = word_to_find + search_string = word_to_search_in precheck = 1 - if find_this_string in search_in_this_string: - if "\\paragraph{\\bf KLS Addendum: " in search_in_this_string or "\\subsubsection*{\\bf KLS Addendum: " in search_in_this_string: + if find_string in search_string: + if "\\paragraph{\\bf KLS Addendum: " in search_string or "\\subsubsection*{\\bf KLS Addendum: " in search_string: while True: - if "\\paragraph{\\bf KLS Addendum: " in search_in_this_string[search_in_this_string.find(find_this_string)-precheck:search_in_this_string.find(find_this_string)] or \ - "\\subsubsection*{\\bf KLS Addendum: " in search_in_this_string[search_in_this_string.find(find_this_string) - precheck:search_in_this_string.find(find_this_string)]: - return search_in_this_string[:search_in_this_string.find(find_this_string) - precheck] + search_in_this_string[search_in_this_string.find(find_this_string) + len(find_this_string):] + if "\\paragraph{\\bf KLS Addendum: " in search_string[search_string.find(find_string)-precheck:search_string.find(find_string)] or \ + "\\subsubsection*{\\bf KLS Addendum: " in search_string[search_string.find(find_string) - precheck:search_string.find(find_string)]: + return search_string[:search_string.find(find_string) - precheck] + search_string[search_string.find(find_string) + len(find_string):] else: precheck += 1 else: - cut = search_in_this_string[:search_in_this_string.find(find_this_string)] + search_in_this_string[search_in_this_string.find(find_this_string) + len(find_this_string):] + cut = search_string[:search_string.find(find_string)] + search_string[search_string.find(find_string) + len(find_string):] return cut else: - return search_in_this_string + return search_string def prepare_for_pdf(chap): @@ -269,20 +355,13 @@ def prepare_for_pdf(chap): :param chap: The chapter (9 or 14) that is being processed as a list of lines in each LaTeX chapter :return: The processed chapter, ready for additional processing """ + # (list) -> list foot_misc_index = 0 for i, line in enumerate(chap): if "footmisc" in line: foot_misc_index += i + 1 - ''' - index = 0 - for line in chap: - index += 1 - if "footmisc" in line: - foot_misc_index += index - ''' - # str[footmiscIndex] += "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n" chap.insert(foot_misc_index, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") return chap @@ -305,15 +384,15 @@ def get_commands(kls, new_commands): -def insert_commands(kls, chap, cms): +def insert_commands(kls, chap, commands): """ Inserts commands identified in previous functions. - This method addresses the goal of hardcoding in the necessary commands to let the chapter files run as pdf's. + This method addresses the goal of hardcoding in the necessary comma vnds to let the chapter files run as pdf's. Currently only works with chapter 9 :param kls: Addendum to look through :param chap: The chapter that is receiving commands (9 or 14) as a list of lines in each LaTeX chapter - :param cms: Commands to be inserted + :param commands: Commands to be inserted :return: chap, processed """ # reads in the newCommands[] and puts them in chap @@ -327,7 +406,7 @@ def insert_commands(kls, chap, cms): begin_index += index temp_index = 0 - for i in cms: + for i in commands: chap.insert(begin_index + temp_index, i) temp_index += 1 return chap @@ -423,8 +502,11 @@ def reference_placer(chap, references, p, chapticker2): word1 = str(p[count]) if designator in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: chap[i - 2] += "%Begin KLS Addendum additions" + if "In addition to the Chebyshev poly" in p[count]: + chap[i - 2] += "\paragraph{\\bf KLS Addendum Addition}" chap[i - 2] += p[count] chap[i - 2] += "%End of KLS Addendum additions" + count += 1 else: while designator not in word1[word1.find("\\subsection*{") + 1: word1.find("}")]: @@ -436,6 +518,7 @@ def reference_placer(chap, references, p, chapticker2): count += 1 else: count += 1 + return chap @@ -457,7 +540,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha """ sort_location = 0 - + print chapticker2 for name in kls_list_all: fix_chapter_sort(kls, chap, name, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) sort_location += 1 @@ -466,9 +549,6 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha for paragraph in range(len(paragraphs_to_be_added)): for subsection in sortmatch_2: for lines_in_subsection in subsection: - with open(DATA_DIR + "compare.tex", "a") as spook: - spook.write(paragraphs_to_be_added[paragraph]) - spook.write("NEXT: ") if "%" == lines_in_subsection[-2]: lines_in_subsection = lines_in_subsection[:-3] #print "memes" @@ -486,26 +566,29 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha chap = prepare_for_pdf(chap) cms = get_commands(kls,new_commands) + print cms chap = insert_commands(kls, chap, cms) commentticker = 0 # These commands mess up PDF reading and mus tbe commented out - for word in chap: - word2 = chap[chap.index(word)-1] - if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in word2: - if "\\newcommand\\half{\\frac12}" in word: - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif "\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in word: - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif "\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in word: - wordtoadd = "%" + word - chap[commentticker] = wordtoadd - elif "\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in word: - wordtoadd = "%" + word - chap[commentticker] = wordtoadd + for line in chap: + prev_line = chap[chap.index(line)-1] + if "\\newcommand{\qhypK}[5]{\,\mbox{}_{#1}\phi_{#2}\!\left(" not in prev_line: + if "\\newcommand\\half{\\frac12}" in line: + linetoadd = "%" + line + chap[commentticker] = linetoadd + elif "\\newcommand{\\hyp}[5]{\\,\\mbox{}_{#1}F_{#2}\\!\\left(" in line: + linetoadd = "%" + line + chap[commentticker] = linetoadd + elif "\\genfrac{}{}{0pt}{}{#3}{#4};#5\\right)}" in line: + linetoadd = "%" + line + chap[commentticker] = linetoadd + elif "\\newcommand{\\qhyp}[5]{\\,\\mbox{}_{#1}\\phi_{#2}\\!\\left(" in line: + linetoadd = "%" + line + chap[commentticker] = linetoadd commentticker += 1 + if "\\newpage" in line and "\hbox{}" not in line: + chap[chap.index(line)] = "" ticker1 = 0 # Formatting to make the Latex file run while ticker1 < len(chap): @@ -515,7 +598,7 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha return chap -def main(): +def main(klsfile, klswrite9, klswrite14, klswrite1, klsread9, klsread14, klsread1): """ Runs all of the other functions and outputs their results into an output file as well as putting together the list of additions that is fed into fix_chapter. @@ -534,7 +617,7 @@ def main(): sortmatch_2 = [] # open the KLSadd file to do things with - with open(DATA_DIR + "KLSaddII.tex", "r") as add: + with open(DATA_DIR + klsfile, "r") as add: # store the file as a string addendum = add.readlines() kls_list_all = new_keywords(addendum, kls_list_full)[0] @@ -584,7 +667,7 @@ def main(): if "\\renewcommand{\\refname}{Standard references}" in word: klsaddparas.append(index-1) indexes.append(index - 1) - print(klsaddparas) + # now indexes holds all of the places there is a section # using these indexes, get all of the words in between and add that to the paras[] paras = [] @@ -601,20 +684,21 @@ def main(): # parse both files 9 and 14 as strings - with open(DATA_DIR + "chap01.tex", "r") as ch1: + with open(DATA_DIR + klsread1, "r") as ch1: entire1 = ch1.readlines() # reads in as a list of strings - with open(DATA_DIR + "updated1.tex", "w") as temp1: - temp1.write(chap_1_placer(entire1, addendum, klsaddparas)) + cp1commands = get_commands(addendum, new_commands) + print cp1commands + with open(DATA_DIR + klswrite1, "w") as temp1: + temp1.write(chap_1_placer(entire1, addendum, klsaddparas, cp1commands)) + + # chapter 9 - with open(DATA_DIR + "chap09.tex", "r") as ch9: + with open(DATA_DIR + klsread9, "r") as ch9: entire9 = ch9.readlines() # reads in as a list of strings - with open(DATA_DIR + "testoutput.tex", "w") as thing: - thing.write(''.join(entire9)) - # chapter 14 - with open(DATA_DIR + "chap14.tex", "r") as ch14: + with open(DATA_DIR + klsread14, "r") as ch14: entire14 = ch14.readlines() # call the findReferences method to find the index of the References paragraph in the two file strings @@ -639,6 +723,8 @@ def main(): chapticker2 = 14 str14 = ''.join(fix_chapter(entire14, references14, paras, addendum, kls_list_all, chapticker2, new_commands, klsaddparas, sortmatch_2, ref14_3, sorter_check)) + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # If you are writing something that will make a change to the chapter files, write it BEFORE this line, this part # is where the lists representing the words/strings in the chapter are joined together and updated as a string! @@ -646,11 +732,12 @@ def main(): # write to files # new output files for safety - with open(DATA_DIR + "updated9.tex", "w") as temp9: + with open(DATA_DIR + klswrite9, "w") as temp9: temp9.write(str9) - with open(DATA_DIR + "updated14.tex", "w") as temp14: + with open(DATA_DIR + klswrite14, "w") as temp14: temp14.write(str14) + print(bracket_finder("words{19.4 morewords{}}ess")) if __name__ == '__main__': - main() \ No newline at end of file + main("KLSaddII.tex", "updated9.tex", "updated14.tex", "updated1.tex", "chap09.tex", "chap14.tex", "chap01.tex") \ No newline at end of file From 1325134a90d6423b01e05fa7d5955a2a0c5a5826 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 25 Apr 2017 16:56:00 -0400 Subject: [PATCH 400/402] Fix \pi replacement --- DLMF_preprocessing/src/replace_special.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DLMF_preprocessing/src/replace_special.py b/DLMF_preprocessing/src/replace_special.py index 09d39c3..624fa67 100644 --- a/DLMF_preprocessing/src/replace_special.py +++ b/DLMF_preprocessing/src/replace_special.py @@ -79,7 +79,7 @@ def remove_special(content): in_eq = True - pi_pat = re.compile(r'(\s*)\\pi(\s*\b|[aeiou])') + pi_pat = re.compile(r'(\s*)\\pi(?![a-zA-Z])') expe_pat = re.compile(r'\b([^\\]?\W*)\s*e\s*\^') spaces_pat = re.compile(r' {2,}') From 0eae492a6e650f158446d6782968c8d1ef25e8ac Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 25 Apr 2017 17:03:24 -0400 Subject: [PATCH 401/402] Remove excessive group --- DLMF_preprocessing/src/replace_special.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DLMF_preprocessing/src/replace_special.py b/DLMF_preprocessing/src/replace_special.py index 624fa67..a13ffe9 100644 --- a/DLMF_preprocessing/src/replace_special.py +++ b/DLMF_preprocessing/src/replace_special.py @@ -100,7 +100,7 @@ def remove_special(content): is_comment = line.lstrip().startswith("%") - line = pi_pat.sub(r'\1\\cpi\2', line) + line = pi_pat.sub(r'\1\\cpi', line) line = expe_pat.sub(r'\1\\expe^', line) # only check for flags if the line is comment From 1c45e94f144c8a364f7a0ec9f98e17b739fdb8a7 Mon Sep 17 00:00:00 2001 From: Edward Bian Date: Fri, 9 Jun 2017 17:51:13 -0400 Subject: [PATCH 402/402] Commented version --- KLSadd_insertion/src/updateChapters.py | 52 +++++++++++++------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/KLSadd_insertion/src/updateChapters.py b/KLSadd_insertion/src/updateChapters.py index 7f3a985..22c6a85 100644 --- a/KLSadd_insertion/src/updateChapters.py +++ b/KLSadd_insertion/src/updateChapters.py @@ -12,18 +12,18 @@ # w, h = 2, 100 # sorter_check = [[0 for _ in range(w)] for __ in range(h)] + def bracket_finder(word_to_search): """ - :param word_to_search: - :return: The word between the first set of brackets + :return: The string between the first set of brackets """ + # This function is mainly for convenience and layered brackets first_bracket = True; first_bracket_location = 0; last_bracket_location = 0; layers = 0; counter = 0; - first_char = 0; for character_examined in word_to_search: if character_examined == "{" and first_bracket == True: first_bracket_location = word_to_search.index(character_examined) @@ -33,26 +33,26 @@ def bracket_finder(word_to_search): elif character_examined == "}": if layers == 0: last_bracket_location = counter - #word_to_search.index(character_examined) else: layers -= 1 counter += 1 + # Goes through every character while recording layer to not extract the wrong string word_to_search2 = word_to_search[first_bracket_location + 1:last_bracket_location] for character_examined in word_to_search2: if character_examined.isalpha(): first_char = word_to_search2.index(character_examined) return word_to_search2[first_char:] + # This loop is for chapter sections that may start with numbers or other symbols, it makes the output start on the section name return word_to_search[first_bracket_location+1:last_bracket_location] - def chap_1_placer(chap1, kls, klsaddparas, cp1commands): """ - :param chap1: Chapter 1 text file :param kls: KLSadd, the addendum :param klsaddparas: Paragraphs that the code has identified to be sorted - :return: Returns chapter 1 with the sections inserted into the right place from the introduction of KLSadd + :return: Returns chapter 1 with the sections inserted into the right places from the introduction of KLSadd + It's bascially a modified version of fix_chapter_sort """ @@ -65,8 +65,6 @@ def chap_1_placer(chap1, kls, klsaddparas, cp1commands): line = str(item) if "\\subsection" in line: temp = bracket_finder(line) - # temp = line[line.find(" ", 12) + 1: line.find("}", 12)+1] # get just the name (like mathpeople) (edit this) and line 128 - # The 12 is not arbitrary and comes from the number of characters in "//subsection{" if chapter_start and ("\\paragraph{" in line or "\\subsubsection*{" in line): for item in klsaddparas: if index < item: @@ -114,7 +112,6 @@ def chap_1_placer(chap1, kls, klsaddparas, cp1commands): index += 1 if "\\newcommand" in chap1[index]: chap1[index - 1] = cp1commandsstring - print"ding" break ticker1 = 0 # Formatting to make the Latex file run @@ -136,9 +133,9 @@ def extraneous_section_deleter(entered_list): :param entered_list: List of paragraphs :return: Extraneous name free output """ + # Returns the sections with unique names (per section) (as the following are often duplicated) return [item for item in entered_list if "reference" not in item.lower() and "limit relation" not in item.lower() - and "symmetry" not in item.lower() and " hypergeometric representation" not in item.lower() - and "hypergeometric representation " not in item.lower()] + and "symmetry" not in item.lower() and " hypergeometric representation" not in item.lower()] def new_keywords(kls, kls_list): @@ -161,6 +158,7 @@ def new_keywords(kls, kls_list): for item in kls_list: if item not in kls_list_chap: kls_list_chap.append(item) + #Preserves original kls_list, while allowing editting (special value is classed under symmetry) kls_list_chap[kls_list_chap.index("Special value")] = "Symmetry" kls_list_chap.append("Special value") w = 2 @@ -197,6 +195,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref special_input = 3 elif name_chap == "bilateral generating function": special_input = 4 + #These sections either share names with others or are categorized under others, so they must be processed specially khyper_header_chap = [] k_hyper_sub_chap = [] @@ -208,14 +207,11 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref line = str(item) if "\\subsection" in line: temp = bracket_finder(line) - #line[line.find(" ", 12)+1: line.find("}", 12)] - # get just the name (like mathpeople) if temp.lower() == 'wilson': chapterstart = True if special_input in (0, 2, 4) and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line) or \ (special_input in (1, 3) and "orthogonality relation" not in line.lower() and name_chap in line.lower() and chapterstart and ("\\paragraph{" in line or "\\subsubsection*{" in line)): - testing = item #CLEAN UP(?) for item in klsaddparas: if index < item: klsloc = klsaddparas.index(item) @@ -237,6 +233,7 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: Bilateral generating functions}" + k_hyper_sub_chap[item + 1] khyper_header_chap[item] = "/x00" k_hyper_sub_chap[item] = "/x00" + #/x00 is a filler character that must be unique, it can be changed, as long as the replacement isn't ever going to be an actual section elif khyper_header_chap[item] == khyper_header_chap[item+1]: k_hyper_sub_chap[item + 1] = k_hyper_sub_chap[item] + "\paragraph{\\bf KLS Addendum: " + \ word + "}" + k_hyper_sub_chap[item + 1] @@ -284,8 +281,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref if name_chap in line.lower(): if special_input in (0, 2, 3, 4) or "orthogonality relation" not in line: - - hyper_subs_chap.append([tempref[d + 1]]) # appends the index for the line before following subsection hyper_headers_chap.append(temp) # appends the name of the section the hypergeo subsection is in ''' @@ -310,8 +305,6 @@ def fix_chapter_sort(kls, chap, word, sortloc, klsaddparas, sortmatch_2, tempref print chap[tempref[d+1] - 1] print print("Warning! Code has found an error involving section finding for '" + name_chap + "'.") - ''' - ''' if len(hyper_headers_chap) != 0: sortmatch_2.append(k_hyper_sub_chap) @@ -323,8 +316,6 @@ def cut_words(word_to_find, word_to_search_in): This function checks through the outputs of later sections and removes duplicates, so that the output file does not have duplicates. - IN DEVELOPMENT - :param word_to_find: Word that is being found :param word_to_search_in: The big word that is being searched :return: The big word without the word that was searched for @@ -363,6 +354,7 @@ def prepare_for_pdf(chap): foot_misc_index += i + 1 chap.insert(foot_misc_index, "\\usepackage[pdftex]{hyperref} \n\\usepackage {xparse} \n\\usepackage{cite} \n") + #This is so things generate correctly return chap @@ -381,6 +373,7 @@ def get_commands(kls, new_commands): if "mybibitem[1]" in word: new_commands.append(index) return kls[new_commands[0]:new_commands[1]] + #Addendum needs these to generate correctly @@ -410,6 +403,7 @@ def insert_commands(kls, chap, commands): chap.insert(begin_index + temp_index, i) temp_index += 1 return chap + #Puts the commands in the chapter so they do something def find_references(chapter, chapticker, math_people): @@ -464,6 +458,7 @@ def find_references(chapter, chapticker, math_people): elif chapticker == 14: ref14_3.append(index) add_next_section = False + #The if statement differentiates chapters 9 and 14 if "subsection*{" in word and "References" not in word: if chapticker == 9: ref9_3.append(index) @@ -540,12 +535,11 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha """ sort_location = 0 - print chapticker2 + for name in kls_list_all: fix_chapter_sort(kls, chap, name, sort_location, klsaddparas, sortmatch_2, tempref, sorter_check) sort_location += 1 - for paragraph in range(len(paragraphs_to_be_added)): for subsection in sortmatch_2: for lines_in_subsection in subsection: @@ -563,11 +557,13 @@ def fix_chapter(chap, references, paragraphs_to_be_added, kls, kls_list_all, cha paragraphs_to_be_added[paragraph] = cut_words(lines_in_subsection, paragraphs_to_be_added[paragraph]) reference_placer(chap, references, paragraphs_to_be_added, chapticker2) - + # Reference_placer is the one that does all the work + # If anything needs to be done before commands are put in, do it here chap = prepare_for_pdf(chap) cms = get_commands(kls,new_commands) - print cms chap = insert_commands(kls, chap, cms) + # The above 3 lines insert comments into the new revised chapter + # The final output (addendum + chapter) is made here commentticker = 0 # These commands mess up PDF reading and mus tbe commented out @@ -668,6 +664,7 @@ def main(klsfile, klswrite9, klswrite14, klswrite1, klsread9, klsread14, klsread klsaddparas.append(index-1) indexes.append(index - 1) + # Looks for sections to sort # now indexes holds all of the places there is a section # using these indexes, get all of the words in between and add that to the paras[] paras = [] @@ -688,7 +685,6 @@ def main(klsfile, klswrite9, klswrite14, klswrite1, klsread9, klsread14, klsread entire1 = ch1.readlines() # reads in as a list of strings cp1commands = get_commands(addendum, new_commands) - print cp1commands with open(DATA_DIR + klswrite1, "w") as temp1: temp1.write(chap_1_placer(entire1, addendum, klsaddparas, cp1commands)) @@ -737,7 +733,9 @@ def main(klsfile, klswrite9, klswrite14, klswrite1, klsread9, klsread14, klsread with open(DATA_DIR + klswrite14, "w") as temp14: temp14.write(str14) - print(bracket_finder("words{19.4 morewords{}}ess")) + + print "Files sorted" + # Will print when code done if __name__ == '__main__': main("KLSaddII.tex", "updated9.tex", "updated14.tex", "updated1.tex", "chap09.tex", "chap14.tex", "chap01.tex") \ No newline at end of file
\n") - wiki.write("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") - wiki.write("
[[Zeta_and_Related_Functions#"+ + KLS.append_text("drmf_bof\n") + KLS.append_text("\'\'\'"+KLS.secLabel(KLS.getString(line))+"\'\'\'\n") + KLS.append_text("{{DISPLAYTITLE:"+(sections[secCounter][0])+"}}\n") + KLS.append_text("
\n") + KLS.append_text("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") + KLS.append_text("
[[Zeta_and_Related_Functions#"+ "Sections_in_"+chapter.replace(" ","_")+"|"+KLS.secLabel(sections[secCounter][0])+"]]
\n") - wiki.write("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ + KLS.append_text("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ "|"+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") head=True - wiki.write("== "+KLS.getString(line)+" ==\n") + KLS.append_text("== "+KLS.getString(line)+" ==\n") elif ("\\section" in lines[(i+1)%len(lines)] or "\\end{document}" in lines[(i+1)%len(lines)]) and parse: - wiki.write("
\n") - wiki.write("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") - wiki.write("
[[Zeta_and_Related_Functions#"+"Sections_in_" + KLS.append_text("
\n") + KLS.append_text("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") + KLS.append_text("
[[Zeta_and_Related_Functions#"+"Sections_in_" ""+chapter.replace(" ","_")+"|"+KLS.secLabel(sections[secCounter][0])+"]]
\n") - wiki.write("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ + KLS.append_text("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ "|"+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - wiki.write("drmf_eof\n") + KLS.append_text("drmf_eof\n") sections[secCounter].append(eqCounter) eqCounter=0 elif "\\subsection" in line and parse: - wiki.write("\n== "+KLS.getString(line)+" ==\n") + KLS.append_text("\n== "+KLS.getString(line)+" ==\n") head=True elif "\\paragraph" in line and parse: - wiki.write("\n=== "+KLS.getString(line)+" ===\n") + KLS.append_text("\n=== "+KLS.getString(line)+" ===\n") head=True elif "\\subsubsection" in line and parse: - wiki.write("\n=== "+KLS.getString(line)+" ===\n") + KLS.append_text("\n=== "+KLS.getString(line)+" ===\n") head=True elif "\\begin{equation}" in line and parse: # symLine="" if head: - wiki.write("\n") + KLS.append_text("\n") head=False sLabel=line.find("\\label{")+7 eLabel=line.find("}",sLabel) @@ -207,8 +208,8 @@ def DLMF(n): label=KLS.modLabel(rlabel) labels.append("Formula:"+rlabel) eqs.append("") - #wiki.write("\n\n") - wiki.write("{\displaystyle \n") + #KLS.append_text("\n\n") + KLS.append_text("{\displaystyle \n") math=True elif "\\begin{equation}" in line and not parse: sLabel=line.find("\\label{")+7 @@ -228,13 +229,13 @@ def DLMF(n): substitution=True math=False subLine="" - #wiki.write("
Substitution(s): "+KLS.getEq(line)+"

\n") + #KLS.append_text("
Substitution(s): "+KLS.getEq(line)+"

\n") elif "\\proof" in line and parse: math=False elif "\\drmfn" in line and parse: math=False if "\\drmfname" in line and parse: - wiki.write("
This formula has the name: "+KLS.getString(line)+"

\n") + KLS.append_text("
This formula has the name: "+KLS.getString(line)+"

\n") elif math and parse: flagM=True eqs[len(eqs)-1]+=line @@ -251,19 +252,19 @@ def DLMF(n): flagM2=True if not(flagM2): - wiki.write(line.rstrip("\n")) - wiki.write("\n}
\n") + KLS.append_text(line.rstrip("\n")) + KLS.append_text("\n}
\n") else: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") + KLS.append_text(line.rstrip("\n")) + KLS.append_text("\n}\n") elif "\\end{equation}" in lines[i+1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") + KLS.append_text(line.rstrip("\n")) + KLS.append_text("\n}\n") elif "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: - wiki.write(line.rstrip("\n")) - wiki.write("\n}\n") + KLS.append_text(line.rstrip("\n")) + KLS.append_text("\n}\n") else: - wiki.write(line) + KLS.append_text(line) elif math and not parse: eqs[len(eqs)-1]+=line if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: @@ -273,14 +274,14 @@ def DLMF(n): if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1]\ or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: substitution=False - wiki.write("
Substitution(s): "+KLS.getEq(subLine)+"

\n") + KLS.append_text("
Substitution(s): "+KLS.getEq(subLine)+"

\n") if constraint and parse: conLine=conLine+line.replace("&","&
") if "\\end{equation}" in lines[i+1] or "\\substitution" \ in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: constraint=False - wiki.write("
Constraint(s): "+KLS.getEq(conLine)+"

\n") + KLS.append_text("
Constraint(s): "+KLS.getEq(conLine)+"

\n") eqCounter=n endNum=len(labels)-1 @@ -319,58 +320,58 @@ def DLMF(n): parse=True symbols=[] eqCounter+=1 - wiki.write("drmf_bof\n") + KLS.append_text("drmf_bof\n") label=labels[eqCounter] #if not "DLMF" in label:eqCounter+=1 label=labels[eqCounter] - wiki.write("\'\'\'"+KLS.secLabel(label)+"\'\'\'\n") - wiki.write("{{DISPLAYTITLE:"+(labels[eqCounter])+"}}\n") + KLS.append_text("\'\'\'"+KLS.secLabel(label)+"\'\'\'\n") + KLS.append_text("{{DISPLAYTITLE:"+(labels[eqCounter])+"}}\n") if eqCounter==len(labels)-1: break if eqCounter\n") + KLS.append_text("
\n") if newSec: - wiki.write("
" + KLS.append_text("
" "<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+KLS.secLabel(sections[secCount][0])+"]]
\n") else: - wiki.write("
" + KLS.append_text("
" "<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+KLS.secLabel(labels[eqCounter-1])+"]]
\n") - wiki.write("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ + KLS.append_text("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ KLS.secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+KLS.secLabel(sections[secCount+1][0])+"]]
\n") #if eqS==sections[secCount][1]: if True: - wiki.write("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)]).replace(" ","_")+ + KLS.append_text("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)]).replace(" ","_")+ "|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") - wiki.write("
\n\n") + KLS.append_text("
\n\n") elif eqCounter==endNum: - wiki.write("
\n") + KLS.append_text("
\n") if newSec: newSec=False - wiki.write("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+ + KLS.append_text("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+ KLS.secLabel(sections[secCount][0])+"]]
\n") else: - wiki.write("
" + KLS.append_text("
" "<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+KLS.secLabel(labels[eqCounter-1])+"]]
\n") - wiki.write("
[["+ + KLS.append_text("
[["+ KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+ "#"+KLS.secLabel(labels[eqCounter][len("Formula:"):])+ "|formula in "+KLS.secLabel(sections[secCount+1][0])+ "]]
\n") - wiki.write("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)].replace(" ","_"))+ + KLS.append_text("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)].replace(" ","_"))+ "|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]]
\n") - wiki.write("
\n\n") + KLS.append_text("
\n\n") - wiki.write("
{\displaystyle \n") + KLS.append_text("
{\displaystyle \n") math=True elif "\\end{equation}" in line: - wiki.write(comToWrite) + KLS.append_text(comToWrite) parse=False math=False if hProof: - wiki.write("\n== Proof ==\n\nWe ask users to provide proof(s), \ + KLS.append_text("\n== Proof ==\n\nWe ask users to provide proof(s), \ reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - wiki.write("\n== Symbols List ==\n\n") + KLS.append_text("\n== Symbols List ==\n\n") newSym=[] #if "09.07:04" in label: for x in symbols: @@ -550,21 +551,21 @@ def DLMF(n): gFlag=True #finSym.reverse() if ampFlag: - wiki.write("& : logical and") + KLS.append_text("& : logical and") gFlag=False for y in finSym: if y=="& : logical and": pass elif gFlag: gFlag=False - wiki.write("["+y) + KLS.append_text("["+y) else: - wiki.write("
\n["+y) + KLS.append_text("
\n["+y) - wiki.write("\n
\n") + KLS.append_text("\n
\n") - wiki.write("\n== Bibliography==\n\n")#should there be a space between bibliography and ==? + KLS.append_text("\n== Bibliography==\n\n")#should there be a space between bibliography and ==? r=KLS.unmodlabel(labels[eqCounter]) q=r.find("DLMF:")+5 p=r.find(":",q) @@ -575,33 +576,33 @@ def DLMF(n): equation=equation[0:equation.find(":")] if is_number(section) == False: return eqCounter - wiki.write("[HTTP://DLMF.NIST.GOV/"+ + KLS.append_text("[HTTP://DLMF.NIST.GOV/"+ section+"#"+equation+" Equation ("+equation[1:]+"), " "Section "+section+"] of [[Bibliography#DLMF|'''DLMF''']].\n\n") - wiki.write("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + KLS.append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") if eqCounter
\n") + KLS.append_text("
\n") if newSec: newSec=False - wiki.write("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+ + KLS.append_text("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+ "|"+KLS.secLabel(sections[secCount][0])+"]]
\n") else: - wiki.write("
<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+ + KLS.append_text("
<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+ KLS.secLabel(labels[eqCounter-1])+"]]
\n") - wiki.write("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ + KLS.append_text("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ KLS.secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+KLS.secLabel(sections[secCount+1][0])+"]]
\n") #if eqS==sections[secCount][1]: #else: if True: - wiki.write("
[["+KLS.secLabel(labels[(eqCounter+1)% + KLS.append_text("
[["+KLS.secLabel(labels[(eqCounter+1)% (endNum+1)]).replace(" ","_")+"|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") - wiki.write("
\n\ndrmf_eof\n") + KLS.append_text("
\n\ndrmf_eof\n") else: #FOR EXTRA EQUATIONS - wiki.write("
\n") - wiki.write("
<< [["+labels[endNum-1].replace(" ","_")+"|"+labels[endNum-1]+"]]
\n") - wiki.write("
[["+labels[0].replace(" ","_")+"#"+labels[endNum][8:]+"|formula in "+labels[0]+"]]
\n") - wiki.write("
[["+labels[(0)%endNum].replace(" ","_")+"|"+labels[0%endNum]+"]]
\n") - wiki.write("
\n\ndrmf_eof\n") + KLS.append_text("
\n") + KLS.append_text("
<< [["+labels[endNum-1].replace(" ","_")+"|"+labels[endNum-1]+"]]
\n") + KLS.append_text("
[["+labels[0].replace(" ","_")+"#"+labels[endNum][8:]+"|formula in "+labels[0]+"]]
\n") + KLS.append_text("
[["+labels[(0)%endNum].replace(" ","_")+"|"+labels[0%endNum]+"]]
\n") + KLS.append_text("
\n\ndrmf_eof\n") @@ -614,14 +615,14 @@ def DLMF(n): constraint=True math=False conLine="" - #wiki.write("
"+KLS.getEq(line)+"

\n") + #KLS.append_text("
"+KLS.getEq(line)+"

\n") elif "\\substitution" in line and parse: #symbols=symbols+KLS.getSym(line) symLine=line.strip("\n") if hSub: comToWrite=comToWrite+"\n== Substitution(s) ==\n\n" hSub=False - #wiki.write("
"+KLS.getEq(line)+"

\n") + #KLS.append_text("
"+KLS.getEq(line)+"

\n") substitution=True math=False subLine="" @@ -687,12 +688,12 @@ def DLMF(n): if "\\end{equation}" in lines[i+1]: proof=False #symLine+=line.strip("\n") - wiki.write(comToWrite+KLS.getEqP(proofLine)+"
\n
\n") + KLS.append_text(comToWrite+KLS.getEqP(proofLine)+"
\n
\n") comToWrite="" symbols=symbols+KLS.getSym(symLine) symLine="" - #wiki.write(line) + #KLS.append_text(line) elif proof: symLine+=line.strip("\n") @@ -733,7 +734,7 @@ def DLMF(n): if "\\end{equation}" in lines[i+1]: proof=False #symLine+=line.strip("\n") - wiki.write(comToWrite+KLS.getEqP(proofLine).rstrip("\n")+"
\n
\n") + KLS.append_text(comToWrite+KLS.getEqP(proofLine).rstrip("\n")+"
\n
\n") comToWrite="" symbols=symbols+KLS.getSym(symLine) symLine="" @@ -741,14 +742,14 @@ def DLMF(n): elif math: if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] \ or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1] or "\\drmfnote" in lines[i+1] or "\\drmfname" in lines[i+1]: - wiki.write(line.rstrip("\n")) + KLS.append_text(line.rstrip("\n")) symLine+=line.strip("\n") symbols=symbols+KLS.getSym(symLine) symLine="" - wiki.write("\n}
\n") + KLS.append_text("\n}
\n") else: symLine+=line.strip("\n") - wiki.write(line) + KLS.append_text(line) if note and parse: noteLine=noteLine+line symbols=symbols+KLS.getSym(line) @@ -775,7 +776,7 @@ def DLMF(n): constraint=False symbols=symbols+KLS.getSym(symLine) symLine="" - wiki.write(comToWrite+"
"+KLS.getEq(conLine)+"

\n") + KLS.append_text(comToWrite+"
"+KLS.getEq(conLine)+"

\n") comToWrite="" if substitution and parse: subLine=subLine+line.replace("&","&
") @@ -787,7 +788,7 @@ def DLMF(n): substitution=False symbols=symbols+KLS.getSym(symLine) symLine="" - wiki.write(comToWrite+"
"+KLS.getEq(subLine)+"

\n") + KLS.append_text(comToWrite+"
"+KLS.getEq(subLine)+"

\n") comToWrite="" if __name__ == "__main__": From ee71e2c5af3b0c3b4a24d74feffd643f4c6f9a45 Mon Sep 17 00:00:00 2001 From: joonbang Date: Thu, 19 May 2016 18:28:37 -0400 Subject: [PATCH 093/402] Complete section/subsection generation code (#40) * Improve code for section/subsection generation * Fix issues with category generator code * Update .gitignore --- Joon/.gitignore | 4 +- Joon/category_generator.py | 86 ++++++------------ Joon/converter.py | 2 +- Joon/keys/section_names | 69 ++++++++++++++ Joon/tests/primer | 50 ---------- Joon/tests/test.pdf | Bin 97230 -> 56226 bytes Joon/tests/test.tex | 182 +++++++++++++++++-------------------- 7 files changed, 184 insertions(+), 209 deletions(-) create mode 100644 Joon/keys/section_names delete mode 100644 Joon/tests/primer diff --git a/Joon/.gitignore b/Joon/.gitignore index 4321898..2133789 100644 --- a/Joon/.gitignore +++ b/Joon/.gitignore @@ -1,3 +1,5 @@ +Glossary.csv tests/ +functions/ !tests/test.tex -!tests/test.pdf \ No newline at end of file +!tests/test.pdf diff --git a/Joon/category_generator.py b/Joon/category_generator.py index 1a3dbdb..35a5317 100644 --- a/Joon/category_generator.py +++ b/Joon/category_generator.py @@ -2,84 +2,50 @@ import os names = ["BS", "CH", "CN", "EF", "ER", "EX", "GA", "HY", "QH", "SM"] -name_dictionary = {'naturallogarithm': 'naturallogarithm', 'archimedes': 'archimedes', 'arcsinh': 'arcsinh', - 'pow': 'pow', 'fresnel': 'fresnel', 'modbessel': 'Modified Bessel functions', 'apery': 'apery', - 'arccos': 'arccos', 'HY': 'HY', 'BS': 'Bessel', 'tan': 'tan', 'GA': 'GA', 'gamma_chisquare': - 'gamma_chisquare', 'powerandroot': 'powerandroot', 'error': 'error', 'gompertz': 'gompertz', - 'ln': 'ln', 'kummer': 'kummer', 'whittaker': 'whittaker', 'arctan': 'arctan', 'trigamma': 'trigamma', - 'eulersconstant': 'eulersconstant', 'binet': 'binet', 'parabolic': 'parabolic', 'repint': 'repint', - 'bessel': 'Bessel functions', 'sin': 'sin', 'incompletegamma': 'incompletegamma', 'CH': 'CH', - 'pythagoras': 'pythagoras', 'CN': 'CN', 'normal': 'normal', 'arcsin': 'arcsin', - 'confluentlimit': 'confluentlimit', 'confluent': 'confluent', 'eulersnumber': 'eulersnumber', - 'catalan': 'catalan', 'repeated': 'repeated', 'arctanh': 'arctanh', 'EX': 'EX', 'rabbit': 'rabbit', - 'QH': 'QH', 'beta_f_t': 'beta_f_t', 'cosh': 'cosh', 'coth': 'coth', 'ER': 'ER', 'sinh': 'sinh', - 'cos': 'cos', 'SM': 'SM', 'EF': 'EF', 'tanh': 'tanh', 'expintegrals': 'expintegrals', 'polygamma': - 'polygamma', 'exp': 'exp', 'goldenratio': 'goldenratio', 'comperror': 'comperror', 'arccosh': - 'arccosh', 'tetragamma': 'tetragamma', 'related': 'related', "": ""} +translate = dict(tuple(line.split(" : ")) for line in open("keys/section_names").read().split("\n") + if line != "" and "%" not in line) + +print translate def generate_categories(): """ Generates section, subsection """ - root_directory = "/home/jnb8/CFSF/functions" + root_directory = "functions" depth = len(root_directory.split("/")) - - dirs = [x for x in os.walk(root_directory)] - - sections_created = list() - # current_section = "" + dirs = [d for d in os.walk(root_directory)] text = "" - - # print name_dictionary - - other_text = "" subsections = {"no-subsection": list()} - for i in range(len(dirs)+1): - if i < len(dirs): - d = dirs[i] - else: - d = [root_directory, [], []] - - if "/functions/" in d[0]: # only subdirectories of functions/ - print str(d) - other_text += d[0].split("/")[-1]+"\n" - # so the first one will be the list of "names" - section = d[0].split("/")[depth] # should be in names - if len(d[0].split("/")) == depth+1 or i == len(dirs): # switched to a new section - # print "Switched to new section" - for qq in subsections: - thing = subsections[qq] - if not thing and qq == "no-subsection": - pass - else: - text += " \\subsection{"+qq+"}\n" - for j in thing: - text += " "+j+"\n" - text += "\n" + for info in dirs: + print info - subsections = {"no-subsection": list()} + directory = info[0].split("/") - if section not in sections_created: - text += "\\section{"+name_dictionary[section]+"}\n" - sections_created.append(section) + if len(directory) == depth+1: + if text: + for subsection in subsections: + text += " \\subsection{"+subsection+"}\n" + for file_name in subsections[subsection]: + text += " "+file_name+"\n" + text += "\n" - for thing in d[1]: - subsections[name_dictionary[thing]] = list() + text += " \\section{"+translate[directory[depth]]+"}\n" + subsections = {"no-subsection": list()} - for thing in d[2]: - if len(d[0].split("/")) == depth+1: - subsections["no-subsection"].append(thing) - else: - subsections[name_dictionary[d[0].split("/")[depth+1]]].append(thing) + elif len(directory) == depth+2 and translate[directory[depth+1]] not in subsections: + if "no-subsection" in subsections: + subsections.pop("no-subsection") - # maybe write some better code. - print '\n'.join(text.split("\n")[:-2]).replace(" \subsection{no-subsection}\n ", "") + subsections[translate[directory[depth+1]]] = list() - print other_text + print text + with open("tests/test.tex", "w") as f: + text = open("tests/primers/primer").read() + text + "\\end{document}" + f.write(text) def main(): generate_categories() diff --git a/Joon/converter.py b/Joon/converter.py index 48c7dc0..d840c1d 100644 --- a/Joon/converter.py +++ b/Joon/converter.py @@ -261,7 +261,7 @@ def main(): print text with open("tests/test.tex", "w") as f: - text = open("tests/primer").read() + text + "\\end{document}" + text = open("tests/primers/primer").read() + text + "\\end{document}" f.write(text) if __name__ == '__main__': diff --git a/Joon/keys/section_names b/Joon/keys/section_names new file mode 100644 index 0000000..3486534 --- /dev/null +++ b/Joon/keys/section_names @@ -0,0 +1,69 @@ +% section names of folder in functions/ directory, and actual meaning +BS : Bessel functions +bessel : Bessel functions +modbessel : Modified Bessel functions + +CH : Confluent hypergeometric functions +confluent : Confluent hypergeometric series $_2F_0$ +confluentlimit : Confluent hypergeometric limit function +kummer : Kummer functions +parabolic : Parabolic cylinder functions +whittaker : Whittaker functions + +CN : Mathematical constants +apery : Ap\'{e}ry's constant$\zeta$(3) +archimedes : Archimedes' constant, symbol $\pi$ +catalan : Catalan's constant, symbol $C$ +eulersconstant : Euler's constant, symbol $\gamma$ +eulersnumber : Euler's number, base of the natural logarithm +goldenratio : Golden ratio, symbol $\phi$ +gompertz : Gompertz' constant, symbol $G$ +naturallogarithm : The natural logarithm, $\ln(2)$ +powerandroot : Regular continued fractions +pythagoras : Pythagoras' constant, the square root of two +rabbit : The rabbit constant, symbol $\rho$ + +EF : Elementary functions +arccos : Inverse trigonometric functions +arccosh : Inverse hyperbolic functions +arcsin : Inverse trigonometric functions +arcsinh : Inverse hyperbolic functions +arctan : Inverse trigonometric functions +arctanh : Inverse hyperbolic functions +cos : Trigonometric functions +cosh : Hyperbolic functions +coth : Hyperbolic functions +exp : The exponential function +ln : The natural logarithm +pow : The power function +sin : Trigonometric functions +sinh : Hyperbolic functions +tan : Trigonometric functions +tanh : Hyperbolic functions + +ER : Error function and related integrals +error : Error function and Dawson's integral +comperror : Complementary and complex error function +repint : Repeated integrals +fresnel : Fresnel integrals + +EX : Exponential integrals and related functions +expintegrals : Exponential integrals +related : Related functions + +GA : Gamma function and related functions +binet : Binet function +incompletegamma : Incomplete gamma functions +polygamma : Polygamma functions +tetragamma : Tetragamma function +trigamma : Trigamma function + +HY : Hypergeometric functions + +QH : q-Hypergeometric function + +SM : Probability functions +beta_f_t : Beta, F- and Student's $t$-distributions +gamma_chisquare : Gamma and chi-square distribution +normal : Normal and log-normal distributions +repeated : Repeated integrals diff --git a/Joon/tests/primer b/Joon/tests/primer deleted file mode 100644 index 66d090c..0000000 --- a/Joon/tests/primer +++ /dev/null @@ -1,50 +0,0 @@ -\documentclass[11pt]{article} -\usepackage[pdftex]{hyperref} -\usepackage{amsmath} -\usepackage{amsfonts} -\usepackage{DLMFmath} -\usepackage{DRMFfcns} -\usepackage{amssymb} -\usepackage{xparse} -\usepackage{cite} -\usepackage{forloop} - -\setlength{\textwidth}{16cm} -\setlength{\textheight}{21cm} -\setlength{\topmargin}{0cm} -\setlength{\oddsidemargin}{0.2mm} -\setlength{\evensidemargin}{0.2mm} - -\newcommand\sa{\smallskipamount} -\newcommand\sLP{\\[\sa]} -\newcommand\sPP{\\[\sa]\indent} -\newcommand\ba{\bigskipamount} -\newcommand\bLP{\\[\ba]} -\newcommand\CC{\mathbb{C}} -\newcommand\RR{\mathbb{R}} -\newcommand\ZZ{\mathbb{Z}} -\newcommand\al\alpha -\newcommand\be\beta -\newcommand\ga\gamma -\newcommand\de\delta -\newcommand\tha\theta -\newcommand\la\lambda -\newcommand\om\omega -\newcommand\Ga{\Gamma} -\newcommand\thalf{\tfrac12} -\newcommand\iy\infty -\newcommand\wt{\widetilde} -\newcommand\const{{\rm const.} } -\newcommand\Zpos{\ZZ_{>0}} -\newcommand\Znonneg{\ZZ_{\ge0}} -\newcommand{\hyp}[5]{ \mbox{}_{#1}F_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} -\newcommand{\qhypK}[5]{ \mbox{}_{#1}\phi_{#2}\!\left( - \genfrac{}{}{0pt}{}{#3}{#4};#5\right)} -\newcommand\LHS{left-hand side} -\newcommand\RHS{right-hand side} -\renewcommand\Re{{\rm Re} } -\renewcommand\Im{{\rm Im} } - -\begin{document} - diff --git a/Joon/tests/test.pdf b/Joon/tests/test.pdf index 16debfaebd4a3f46510a0b25a17cb9c344489c78..75e781a2ddb5e256495cb521fae45d59bbac05e8 100644 GIT binary patch literal 56226 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 W%;ou2j}8R#0C~`9X{8lq(EkVQ?lg)3 literal 97230 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 Date: Sat, 28 May 2016 00:03:25 +0200 Subject: [PATCH 094/402] Homogenize DLMFtex2Wiki.py and tex2Wik (#48) * Reformat file and import append_text * Homogenize DLMFtex2Wiki.py and tex2Wiki * remove {\displaystyle ... } wrapper * make DLMF (in DLMFtex2Wiki) accept 3 arguments like readin (in tex2Wiki) i.e., ofname,glossary,mmd * remove all commented code such as #tester=open("testData.txt",'w') * convert bof eof to append_revision * Fix code style warnings --- Azeem/src/DLMFtex2Wiki.py | 1265 ++++++++++++++++++------------------- 1 file changed, 632 insertions(+), 633 deletions(-) diff --git a/Azeem/src/DLMFtex2Wiki.py b/Azeem/src/DLMFtex2Wiki.py index f78f42f..d8e2814 100644 --- a/Azeem/src/DLMFtex2Wiki.py +++ b/Azeem/src/DLMFtex2Wiki.py @@ -1,795 +1,794 @@ -#Version 13: Minor Fixes -#Convert tex to wikiText -import csv #imported for using csv format -import sys #imported for getting args -import os #imported for copying file -import tex2Wiki as KLS - #Change Accordingly based on project directory. -def is_number(char): - try: - "".join(["0"+str(float(char)) if float(char) < 10 else float(char)]) - return True - except ValueError: - return False +# Version 15: Minor Fixes +# Convert tex to wikiText +import csv # imported for using csv format +import sys # imported for getting args +from shutil import copyfile +from tex2Wiki import append_text, append_revision, getString,\ + getSym, getEq, secLabel, getEqP, unmodLabel, isnumber + + + + def modLabel(label): - #label.replace("Formula:KLS:","KLS;") - isNumer=False - newlabel="" - num="" - for i in range(0,len(label)): - if isNumer and not is_number(label[i]): - if len(num)>1: - newlabel+=num - isNumer=False - num="" + isNumer = False + newlabel = "" + num = "" + for i in range(0, len(label)): + if isNumer and not isnumber(label[i]): + if len(num) > 1: + newlabel += num + num = "" else: - newlabel+="0"+str(num) - num="" - isNumer=False - if is_number(label[i]): - isNumer=True - num+=str(label[i]) + newlabel += "0" + str(num) + num = "" + if isnumber(label[i]): + isNumer = True + num += str(label[i]) else: - isNumer=False - newlabel+=label[i] - if len(num)>1: - newlabel+=num - elif len(num)==1: - newlabel+="0"+num - return(newlabel) - - -def DLMF(n): - for iterations in range(0,1): - try: - tex=open(sys.argv[1],'r') - wiki = open(sys.argv[2], 'w') - glossary = open(sys.argv[3],"r") - main=open(sys.argv[4],"r") - lLinks = open(sys.argv[5], 'r') - except (IOError,IndexError): - tex = open("../../data/ZE.3.tex","r") - wiki = open("../../data/ZE.4.xml","w") - glossary = open("../../data/new.Glossary.csv","r") - main = open("../../data/OrthogonalPolynomials.mmd","r") - lLinks = open("../../data/BruceLabelLinks","r") - mainText=main.read() - mainPrepend="" - mainWrite=open("ZetaFunctions.mmd.new","w") - #tester=open("testData.txt",'w') - #glossary=open('Glossary', 'r') - try: - gCSV=csv.reader(glossary, delimiter=',', quotechar='\"') - except: - raise - lLink=lLinks.readlines() - math=False - constraint=False - substitution=False - symbols=[] - lines=tex.readlines() - refLines=[] - sections=[] - labels=[] - eqs=[] - refEqs=[] - parse=False - head=False + isNumer = False + newlabel += label[i] + if len(num) > 1: + newlabel += num + elif len(num) == 1: + newlabel += "0" + num + return newlabel + + +def DLMF(ofname,mmd,llinks,n): + for iterations in range(0, 1): + tex = open(ofname, 'r') + main_file = open(mmd, "r") + lLinks = open(llinks, 'r') + mainPrepend = "" + mainWrite = open("ZetaFunctions.mmd.new", "w") + lLink = lLinks.readlines() + math = False + constraint = False + substitution = False + symbols = [] + lines = tex.readlines() + refLines = [] + sections = [] + labels = [] + eqs = [] + refEqs = [] + parse = False + head = False try: - chapRef=[("GA",open("../../data/GA.tex",'r')),("ZE",open("../../data/ZE.3.tex",'r'))] + chapRef = [("GA", open("../../data/GA.tex", 'r')), ("ZE", open("../../data/ZE.3.tex", 'r'))] except IOError: - chapRef=[("GA",open("GA.tex",'r')),("ZE",open("ZE.3.tex",'r'))] - refLabels=[] + chapRef = [("GA", open("GA.tex", 'r')), ("ZE", open("ZE.3.tex", 'r'))] + refLabels = [] for c in chapRef: - refLines=refLines+(c[1].readlines()) + refLines = refLines + (c[1].readlines()) c[1].close() - for i in range(0,len(refLines)): - line=refLines[i] + for i in range(0, len(refLines)): + line = refLines[i] if "\\begin{equation}" in line: - sLabel=line.find("\\label{")+7 - eLabel=line.find("}",sLabel) - label=line[sLabel:eLabel] + sLabel = line.find("\\label{") + 7 + eLabel = line.find("}", sLabel) + label = line[sLabel:eLabel] for l in lLink: - if l.find(label)!=-1 and l[len(label)+1]=="=": - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") + if l.find(label) != -1 and l[len(label) + 1] == "=": + rlabel = l[l.find("=>") + 3:l.find("\\n")] + rlabel = rlabel.replace("/", "") + rlabel = rlabel.replace("#", ":") break - label=rlabel + label = rlabel refLabels.append(label) refEqs.append("") - math=True + math = True elif math: - refEqs[len(refEqs)-1]+=line - if "\\end{equation}" in refLines[i+1] or "\\constraint" in refLines[i+1] or "\\substitution" in refLines[i+1] or "\\drmfn" in refLines[i+1]: - math=False - - startFlag=True - for i in range(0,len(lines)): - line=lines[i] + refEqs[len(refEqs) - 1] += line + if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ + refLines[i + 1] or "\\drmfn" in refLines[i + 1]: + math = False + + startFlag = True + for i in range(0, len(lines)): + line = lines[i] if "\\begin{document}" in line: - #KLS.append_text("drmf_bof\n") - parse=True + parse = True elif "\\end{document}" in line: - #KLS.append_text("
\n") - mainPrepend+="
\n" - mainText="" - mainText=mainPrepend+mainText - mainText=mainText.replace("drmf_bof\n","") - mainText=mainText.replace("drmf_eof\n","") - mainText=mainText.replace("\'\'\'Zeta and Related Functions\'\'\'\n","") - mainText=mainText.replace("{{#set:Section=0}}\n","") - mainText="drmf_bof\n\'\'\'Zeta and Related Functions\'\'\'\n{{#set:Section=0}}"+mainText+"\ndrmf_eof\n" + mainPrepend += "
\n" + mainText = mainPrepend + mainText = mainText.replace("drmf_bof\n", "") + mainText = mainText.replace("drmf_eof\n", "") + mainText = mainText.replace("\'\'\'Zeta and Related Functions\'\'\'\n", "") + mainText = mainText.replace("{{#set:Section=0}}\n", "") + append_revision('Zeta and Related Functions'); + mainText = "{{#set:Section=0}}\n" + mainText mainWrite.write(mainText) mainWrite.close() - main.close() - os.system("cp -f ZetaFunctions.mmd.new ZetaFunctions.mmd") - #KLS.append_text("\ndrmf_eof\n") - parse=False + main_file.close() + copyfile(mmd, 'ZetaFunctions.mmd.new') + parse = False elif "\\title" in line and parse: labels.append("Zeta and Related Functions") - sections.append(["Zeta and Related Functions",0]) + sections.append(["Zeta and Related Functions", 0]) elif "\\part" in line: - if KLS.getString(line)=="BOF": - parse=False - elif KLS.getString(line)=="EOF": - parse=True + if getString(line) == "BOF": + parse = False + elif getString(line) == "EOF": + parse = True elif parse: - stringWrite="\'\'\'" - stringWrite+=KLS.getString(line)+"\'\'\'\n" - chapter=KLS.getString(line) + stringWrite = "\'\'\'" + stringWrite += getString(line) + "\'\'\'\n" + chapter = getString(line) if startFlag: - mainPrepend+=("\n== Sections in "+chapter+" ==\n\n
\n") - startFlag=False + mainPrepend += ( + "\n== Sections in " + chapter + " ==\n\n
\n") + startFlag = False else: - mainPrepend+=("
\n\n== Sections in "+chapter+" ==\n\n
\n") - head=True + mainPrepend += ( + "
\n\n== Sections in " + chapter + " ==\n\n
\n") + head = True elif "\\section" in line: - mainPrepend+=("* [["+KLS.secLabel(KLS.getString(line))+"|"+KLS.getString(line)+"]]\n") - sections.append([KLS.getString(line)]) + mainPrepend += ("* [[" + secLabel(getString(line)) + "|" + getString(line) + "]]\n") + sections.append([getString(line)]) - secCounter=0 - eqCounter=0 - for i in range(0,len(lines)): - line=lines[i] + secCounter = 0 + eqCounter = 0 + for i in range(0, len(lines)): + line = lines[i] if "\\section" in line: - parse=True - secCounter+=1 - KLS.append_text("drmf_bof\n") - KLS.append_text("\'\'\'"+KLS.secLabel(KLS.getString(line))+"\'\'\'\n") - KLS.append_text("{{DISPLAYTITLE:"+(sections[secCounter][0])+"}}\n") - KLS.append_text("
\n") - KLS.append_text("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") - KLS.append_text("
[[Zeta_and_Related_Functions#"+ - "Sections_in_"+chapter.replace(" ","_")+"|"+KLS.secLabel(sections[secCounter][0])+"]]
\n") - KLS.append_text("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ - "|"+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - head=True - KLS.append_text("== "+KLS.getString(line)+" ==\n") - elif ("\\section" in lines[(i+1)%len(lines)] or "\\end{document}" in lines[(i+1)%len(lines)]) and parse: - KLS.append_text("
\n") - KLS.append_text("
<< [["+KLS.secLabel(sections[secCounter-1][0])+"|"+KLS.secLabel(sections[secCounter-1][0])+"]]
\n") - KLS.append_text("
[[Zeta_and_Related_Functions#"+"Sections_in_" - ""+chapter.replace(" ","_")+"|"+KLS.secLabel(sections[secCounter][0])+"]]
\n") - KLS.append_text("
[["+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+ - "|"+KLS.secLabel(sections[(secCounter+1)%len(sections)][0])+"]] >>
\n
\n\n") - KLS.append_text("drmf_eof\n") + parse = True + secCounter += 1 + append_revision(secLabel(getString(line))) + append_text("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") + append_text("
\n") + append_text( + "
<< [[" + secLabel(sections[secCounter - 1][0]) + "|" + secLabel( + sections[secCounter - 1][0]) + "]]
\n") + append_text("
[[Zeta_and_Related_Functions#" + + "Sections_in_" + chapter.replace(" ", "_") + "|" + secLabel( + sections[secCounter][0]) + "]]
\n") + append_text( + "
[[" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + + "|" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + "]] >>
\n
\n\n") + head = True + append_text("== " + getString(line) + " ==\n") + elif ("\\section" in lines[(i + 1) % len(lines)] or "\\end{document}" in lines[ + (i + 1) % len(lines)]) and parse: + append_text("
\n") + append_text( + "
<< [[" + secLabel(sections[secCounter - 1][0]) + "|" + secLabel( + sections[secCounter - 1][0]) + "]]
\n") + append_text("
[[Zeta_and_Related_Functions#" + "Sections_in_" + "" + chapter.replace(" ", + "_") + "|" + secLabel( + sections[secCounter][0]) + "]]
\n") + append_text( + "
[[" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + + "|" + secLabel(sections[(secCounter + 1) % len(sections)][0]) + "]] >>
\n
\n\n") + append_text("drmf_eof\n") sections[secCounter].append(eqCounter) - eqCounter=0 + eqCounter = 0 elif "\\subsection" in line and parse: - KLS.append_text("\n== "+KLS.getString(line)+" ==\n") - head=True + append_text("\n== " + getString(line) + " ==\n") + head = True elif "\\paragraph" in line and parse: - KLS.append_text("\n=== "+KLS.getString(line)+" ===\n") - head=True + append_text("\n=== " + getString(line) + " ===\n") + head = True elif "\\subsubsection" in line and parse: - KLS.append_text("\n=== "+KLS.getString(line)+" ===\n") - head=True + append_text("\n=== " + getString(line) + " ===\n") + head = True elif "\\begin{equation}" in line and parse: - # symLine="" if head: - KLS.append_text("\n") - head=False - sLabel=line.find("\\label{")+7 - eLabel=line.find("}",sLabel) - label=(line[sLabel:eLabel]) - eqCounter+=1 + append_text("\n") + head = False + sLabel = line.find("\\label{") + 7 + eLabel = line.find("}", sLabel) + label = (line[sLabel:eLabel]) + eqCounter += 1 for l in lLink: - if label==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") + if label == l[0:l.find("=") - 1]: + rlabel = l[l.find("=>") + 3:l.find("\\n")] + rlabel = rlabel.replace("/", "") + rlabel = rlabel.replace("#", ":") + rlabel = rlabel.replace("!", ":") break - label=KLS.modLabel(rlabel) - labels.append("Formula:"+rlabel) + label = modLabel(rlabel) + labels.append("Formula:" + rlabel) eqs.append("") - #KLS.append_text("\n\n") - KLS.append_text("{\displaystyle \n") - math=True + append_text("\n") + math = True elif "\\begin{equation}" in line and not parse: - sLabel=line.find("\\label{")+7 - eLabel=line.find("}",sLabel) - label=KLS.modLabel(line[sLabel:eLabel]) - labels.append("*"+label) #special marker + sLabel = line.find("\\label{") + 7 + eLabel = line.find("}", sLabel) + label = modLabel(line[sLabel:eLabel]) + labels.append("*" + label) # special marker eqs.append("") - math=True + math = True elif "\\end{equation}" in line: - math=False + math = False elif "\\constraint" in line and parse: - constraint=True - math=False - conLine="" + constraint = True + math = False + conLine = "" elif "\\substitution" in line and parse: - substitution=True - math=False - subLine="" - #KLS.append_text("
Substitution(s): "+KLS.getEq(line)+"

\n") + substitution = True + math = False + subLine = "" elif "\\proof" in line and parse: - math=False + math = False elif "\\drmfn" in line and parse: - math=False + math = False if "\\drmfname" in line and parse: - KLS.append_text("
This formula has the name: "+KLS.getString(line)+"

\n") + append_text("
This formula has the name: " + getString(line) + "

\n") elif math and parse: - flagM=True - eqs[len(eqs)-1]+=line + flagM = True + eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i+1] and not "\\subsection" in lines[i+3] and not "\\section" in lines[i+3] and not "\\part" in lines[i+3]: - u=i - flagM2=False + if not ((not ("\\end{equation}" in lines[i + 1]) or "\\subsection" in lines[i + 3]) or "\\section" in \ + lines[i + 3]) and not "\\part" in lines[i + 3]: + u = i + flagM2 = False while flagM: - u+=1 - if "\\begin{equation}"in lines[u] in lines[u]: - flagM=False - if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: - flagM=False - flagM2=True - if not(flagM2): - - KLS.append_text(line.rstrip("\n")) - KLS.append_text("\n}
\n") + u += 1 + if "\\begin{equation}" in lines[u] in lines[u]: + flagM = False + if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[ + u] or "\\end{document}" in lines[u]: + flagM = False + flagM2 = True + if not flagM2: + + append_text(line.rstrip("\n")) + append_text("\n
\n") else: - KLS.append_text(line.rstrip("\n")) - KLS.append_text("\n}\n") - elif "\\end{equation}" in lines[i+1]: - KLS.append_text(line.rstrip("\n")) - KLS.append_text("\n}\n") - elif "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: - KLS.append_text(line.rstrip("\n")) - KLS.append_text("\n}\n") + append_text(line.rstrip("\n")) + append_text("\n\n") + elif "\\end{equation}" in lines[i + 1]: + append_text(line.rstrip("\n")) + append_text("\n\n") + elif "\\constraint" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\drmfn" in lines[i + 1]: + append_text(line.rstrip("\n")) + append_text("\n\n") else: - KLS.append_text(line) + append_text(line) elif math and not parse: - eqs[len(eqs)-1]+=line - if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] or "\\substitution" in lines[i+1] or "\\drmfn" in lines[i+1]: - math=False + eqs[len(eqs) - 1] += line + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ + i + 1] or "\\drmfn" in lines[i + 1]: + math = False if substitution and parse: - subLine=subLine+line.replace("&","&
") - if "\\end{equation}" in lines[i+1] or "\\substitution" in lines[i+1]\ - or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: - substitution=False - KLS.append_text("
Substitution(s): "+KLS.getEq(subLine)+"

\n") + subLine += line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] \ + or "\\constraint" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + substitution = False + append_text("
Substitution(s): " + getEq(subLine) + "

\n") if constraint and parse: - conLine=conLine+line.replace("&","&
") - if "\\end{equation}" in lines[i+1] or "\\substitution" \ - in lines[i+1] or "\\constraint" in lines[i+1] or "\\drmfn" in lines[i+1] or "\\proof" in lines[i+1]: - constraint=False - KLS.append_text("
Constraint(s): "+KLS.getEq(conLine)+"

\n") - - eqCounter=n - endNum=len(labels)-1 - parse=False - constraint=False - substitution=False - note=False - hCon=True - hSub=True - hNote=True - hProof=True - proof=False - comToWrite="" - secCount=-1 - newSec=False - for i in range(0,len(lines)): - line=lines[i] + conLine += line.replace("&", "&
") + if "\\end{equation}" in lines[i + 1] or "\\substitution" \ + in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in \ + lines[i + 1]: + constraint = False + append_text("
Constraint(s): " + getEq(conLine) + "

\n") + + eqCounter = n + endNum = len(labels) - 1 + parse = False + constraint = False + substitution = False + note = False + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + comToWrite = "" + secCount = -1 + newSec = False + for i in range(0, len(lines)): + line = lines[i] if "\\section" in line: - secCount+=1 - newSec=True - eqS=0 + secCount += 1 + newSec = True + eqS = 0 if "\\begin{equation}" in line: - symLine=line.strip("\n") - eqS+=1 - constraint=False - substitution=False - note=False - comToWrite="" - hCon=True - hSub=True - hNote=True - hProof=True - proof=False - parse=True - symbols=[] - eqCounter+=1 - KLS.append_text("drmf_bof\n") - label=labels[eqCounter] - #if not "DLMF" in label:eqCounter+=1 - label=labels[eqCounter] - KLS.append_text("\'\'\'"+KLS.secLabel(label)+"\'\'\'\n") - KLS.append_text("{{DISPLAYTITLE:"+(labels[eqCounter])+"}}\n") - if eqCounter==len(labels)-1: + symLine = line.strip("\n") + eqS += 1 + constraint = False + substitution = False + note = False + comToWrite = "" + hCon = True + hSub = True + hNote = True + hProof = True + proof = False + parse = True + symbols = [] + eqCounter += 1 + label = labels[eqCounter] + append_revision(secLabel(label)) + append_text("{{DISPLAYTITLE:" + (labels[eqCounter]) + "}}\n") + if eqCounter == len(labels) - 1: break - if eqCounter\n") + if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS + append_text("
\n") if newSec: - KLS.append_text("
" - "<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+KLS.secLabel(sections[secCount][0])+"]]
\n") + append_text("
" + "<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + secLabel( + sections[secCount][0]) + "]]
\n") else: - KLS.append_text("
" - "<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+KLS.secLabel(labels[eqCounter-1])+"]]
\n") - KLS.append_text("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ - KLS.secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+KLS.secLabel(sections[secCount+1][0])+"]]
\n") - #if eqS==sections[secCount][1]: + append_text("
" + "<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") if True: - KLS.append_text("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)]).replace(" ","_")+ - "|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") - KLS.append_text("
\n\n") - elif eqCounter==endNum: - KLS.append_text("
\n") + append_text( + "
[[" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace( + " ", "_") + + "|" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + append_text("
\n\n") + elif eqCounter == endNum: + append_text("
\n") if newSec: - newSec=False - KLS.append_text("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+"|"+ - KLS.secLabel(sections[secCount][0])+"]]
\n") + newSec = False + append_text( + "
<< [[" + secLabel(sections[secCount][0]).replace(" ", + "_") + "|" + + secLabel(sections[secCount][0]) + "]]
\n") else: - KLS.append_text("
" - "<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+KLS.secLabel(labels[eqCounter-1])+"]]
\n") - KLS.append_text("
[["+ - KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+ - "#"+KLS.secLabel(labels[eqCounter][len("Formula:"):])+ - "|formula in "+KLS.secLabel(sections[secCount+1][0])+ - "]]
\n") - KLS.append_text("
[["+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)].replace(" ","_"))+ - "|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]]
\n") - KLS.append_text("
\n\n") - - KLS.append_text("
{\displaystyle \n") - math=True + append_text("
" + "<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + secLabel( + labels[eqCounter - 1]) + "]]
\n") + append_text("
[[" + + secLabel(sections[secCount + 1][0]).replace(" ", "_") + + "#" + secLabel(labels[eqCounter][len("Formula:"):]) + + "|formula in " + secLabel(sections[secCount + 1][0]) + + "]]
\n") + append_text("
[[" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + + "|" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") + append_text("
\n\n") + + append_text("
\n") + math = True elif "\\end{equation}" in line: - KLS.append_text(comToWrite) - parse=False - math=False + append_text(comToWrite) + parse = False + math = False if hProof: - KLS.append_text("\n== Proof ==\n\nWe ask users to provide proof(s), \ + append_text("\n== Proof ==\n\nWe ask users to provide proof(s), \ reference(s) to proof(s), or further clarification on the proof(s) in this space.\n") - KLS.append_text("\n== Symbols List ==\n\n") - newSym=[] - #if "09.07:04" in label: + append_text("\n== Symbols List ==\n\n") + newSym = [] + # if "09.07:04" in label: for x in symbols: - flagA=True - #if x not in newSym: - cN=0 - cC=0 - flag=True - ArgCx=0 + flagA = True + # if x not in newSym: + cN = 0 + cC = 0 + flag = True + ArgCx = 0 for z in x: - if z.isalpha() and flag or z=="&": - cN+=1 + if z.isalpha() and flag or z == "&": + cN += 1 else: - flag=False - if z=="{" or z=="[": - cC+=1 - if z=="}" or z=="]": - cC-=1 - if cC==0: - ArgCx+=1 - noA=x[:cN] + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgCx += 1 + noA = x[:cN] for y in newSym: - cN=0 - cC=0 - ArgC=0 - flag=True + cN = 0 + cC = 0 + ArgC = 0 + flag = True for z in y: - if z.isalpha() and flag or z=="&": - cN+=1 + if z.isalpha() and flag or z == "&": + cN += 1 else: - flag=False - if z=="{" or z=="[": - cC+=1 - if z=="}" or z=="]": - cC-=1 - if cC==0: - ArgC+=1 - - - if y[:cN]==noA: #and ArgC==ArgCx: - flagA=False + flag = False + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: + ArgC += 1 + + if y[:cN] == noA: # and ArgC==ArgCx: + flagA = False break if flagA: newSym.append(x) newSym.reverse() - ampFlag=False - finSym=[] - for s in range(len(newSym)-1,-1,-1): - symbolPar="\\"+newSym[s] - ArgCx=0 - parCx=0 - parFlag=False - cC=0 + ampFlag = False + finSym = [] + for s in range(len(newSym) - 1, -1, -1): + symbolPar = "\\" + newSym[s] + ArgCx = 0 + parCx = 0 + parFlag = False + cC = 0 for z in symbolPar: - if z=="@": - parFlag=True - elif z.isalpha() or z=="&": - cN+=1 + if z == "@": + parFlag = True + elif z.isalpha() or z == "&": + cN += 1 else: - if z=="{" or z=="[": - cC+=1 - if z=="}" or z=="]": - cC-=1 - if cC==0: + if z == "{" or z == "[": + cC += 1 + if z == "}" or z == "]": + cC -= 1 + if cC == 0: if parFlag: - parCx+=1 + parCx += 1 else: - ArgCx+=1 + ArgCx += 1 - if symbolPar.find("{")!=-1 or symbolPar.find("[")!=-1: - if symbolPar.find("[")==-1: - symbol=symbolPar[0:symbolPar.find("{")] - elif symbolPar.find("{")==-1 or symbolPar.find("[")len(symbol) and (Q[len(symbol)]=="{" or Q[len(symbol)]=="["): - ap="" - for o in range(len(symbol),len(Q)): - if Q[o]=="{" or z=="[": + Q = symbolPar + listArgs = [] + if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + ap = "" + for o in range(len(symbol), len(Q)): + if Q[o] == "{" or z == "[": pass - elif Q[o]=="}" or z=="]": + elif Q[o] == "}" or z == "]": listArgs.append(ap) - ap="" + ap = "" else: - ap+=Q[o] - #websiteF=G[4].strip("\n") - websiteF="" - web1=G[5] - for t in range(5,len(G)): - if G[t]!="": - websiteF=websiteF+" ["+G[t]+" "+G[t]+"]" - - #p1=Q - #if Q.find("@")!=-1: - #p1=Q[:Q.find("@")] - p1=G[4].strip("$") - p1="{\\displaystyle "+p1+"}" - #if checkFlag: - new2="" - pause=False - mathF=True - p2=G[1] - for k in range(0,len(p2)): - if p2[k]=="$": + ap += Q[o] + websiteF = "" + web1 = G[5] + for t in range(5, len(G)): + if G[t] != "": + websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + p1 = G[4].strip("$") + p1 = "" + p1 + "" + # if checkFlag: + new2 = "" + pause = False + mathF = True + p2 = G[1] + for k in range(0, len(p2)): + if p2[k] == "$": if mathF: - new2+="{\\displaystyle " + new2 += " " else: - new2+="}" - mathF=not mathF + new2 += "" + mathF = not mathF else: - new2+=p2[k] - p2=new2 - finSym.append(web1+" "+p1+"] : "+p2+" :"+websiteF) + new2 += p2[k] + p2 = new2 + finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) break - - #preG=S if not gFlag: del newSym[s] - gFlag=True - #finSym.reverse() + gFlag = True if ampFlag: - KLS.append_text("& : logical and") - gFlag=False + append_text("& : logical and") + gFlag = False for y in finSym: - if y=="& : logical and": + if y == "& : logical and": pass elif gFlag: - gFlag=False - KLS.append_text("["+y) + gFlag = False + append_text("[" + y) else: - KLS.append_text("
\n["+y) - - - KLS.append_text("\n
\n") - - KLS.append_text("\n== Bibliography==\n\n")#should there be a space between bibliography and ==? - r=KLS.unmodlabel(labels[eqCounter]) - q=r.find("DLMF:")+5 - p=r.find(":",q) - section=r[q:p] - equation=r[p+1:] - #print("Section", section, r, p, q,) - if equation.find(":")!=-1: - equation=equation[0:equation.find(":")] - if is_number(section) == False: + append_text("
\n[" + y) + + append_text("\n
\n") + + append_text("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? + r = unmodLabel(labels[eqCounter]) + q = r.find("DLMF:") + 5 + p = r.find(":", q) + section = r[q:p] + equation = r[p + 1:] + if equation.find(":") != -1: + equation = equation[0:equation.find(":")] + if isnumber(section) == False: return eqCounter - KLS.append_text("[HTTP://DLMF.NIST.GOV/"+ - section+"#"+equation+" Equation ("+equation[1:]+"), " - "Section "+section+"] of [[Bibliography#DLMF|'''DLMF''']].\n\n") - KLS.append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") - if eqCounter
\n") + append_text("[HTTP://DLMF.NIST.GOV/" + + section + "#" + equation + " Equation (" + equation[1:] + "), Section " + section + + "] of [[Bibliography#DLMF|'''DLMF''']].\n\n") + append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + if eqCounter < endNum: + append_text("
\n") if newSec: - newSec=False - KLS.append_text("
<< [["+KLS.secLabel(sections[secCount][0]).replace(" ","_")+ - "|"+KLS.secLabel(sections[secCount][0])+"]]
\n") + newSec = False + append_text( + "
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + + "|" + secLabel(sections[secCount][0]) + "]]
\n") else: - KLS.append_text("
<< [["+KLS.secLabel(labels[eqCounter-1]).replace(" ","_")+"|"+ - KLS.secLabel(labels[eqCounter-1])+"]]
\n") - KLS.append_text("
[["+KLS.secLabel(sections[secCount+1][0]).replace(" ","_")+"#"+ - KLS.secLabel(labels[eqCounter][len("Formula:"):])+"|formula in "+KLS.secLabel(sections[secCount+1][0])+"]]
\n") - #if eqS==sections[secCount][1]: - #else: + append_text( + "
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", + "_") + "|" + + secLabel(labels[eqCounter - 1]) + "]]
\n") + append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", + "_") + "#" + + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + secLabel( + sections[secCount + 1][0]) + "]]
\n") if True: - KLS.append_text("
[["+KLS.secLabel(labels[(eqCounter+1)% - (endNum+1)]).replace(" ","_")+"|"+KLS.secLabel(labels[(eqCounter+1)%(endNum+1)])+"]] >>
\n") - KLS.append_text("
\n\ndrmf_eof\n") - else: #FOR EXTRA EQUATIONS - KLS.append_text("
\n") - KLS.append_text("
<< [["+labels[endNum-1].replace(" ","_")+"|"+labels[endNum-1]+"]]
\n") - KLS.append_text("
[["+labels[0].replace(" ","_")+"#"+labels[endNum][8:]+"|formula in "+labels[0]+"]]
\n") - KLS.append_text("
[["+labels[(0)%endNum].replace(" ","_")+"|"+labels[0%endNum]+"]]
\n") - KLS.append_text("
\n\ndrmf_eof\n") + append_text("
[[" + secLabel(labels[(eqCounter + 1) % + (endNum + 1)]).replace(" ", + "_") + "|" + secLabel( + labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + append_text("
\n\ndrmf_eof\n") + else: # FOR EXTRA EQUATIONS + append_text("
\n") + append_text( + "
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ + endNum - 1] + "]]
\n") + append_text("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][ + 8:] + "|formula in " + + labels[0] + "]]
\n") + append_text( + "
[[" + labels[(0) % endNum].replace(" ", "_") + "|" + labels[ + 0 % endNum] + "]]
\n") + append_text("
\n\ndrmf_eof\n") elif "\\constraint" in line and parse: - #symbols=symbols+KLS.getSym(line) - symLine=line.strip("\n") + symLine = line.strip("\n") if hCon: - comToWrite=comToWrite+"\n== Constraint(s) ==\n\n" - hCon=False - constraint=True - math=False - conLine="" - #KLS.append_text("
"+KLS.getEq(line)+"

\n") + comToWrite += "\n== Constraint(s) ==\n\n" + hCon = False + constraint = True + math = False + conLine = "" elif "\\substitution" in line and parse: - #symbols=symbols+KLS.getSym(line) - symLine=line.strip("\n") + symLine = line.strip("\n") if hSub: - comToWrite=comToWrite+"\n== Substitution(s) ==\n\n" - hSub=False - #KLS.append_text("
"+KLS.getEq(line)+"

\n") - substitution=True - math=False - subLine="" + comToWrite += "\n== Substitution(s) ==\n\n" + hSub = False + substitution = True + math = False + subLine = "" elif "\\drmfname" in line and parse: - math=False - comToWrite="\n== Name ==\n\n
"+KLS.getString(line)+"

\n"+comToWrite + math = False + comToWrite = "\n== Name ==\n\n
" + getString( + line) + "

\n" + comToWrite elif "\\drmfnote" in line and parse: - symbols=symbols+KLS.getSym(line) + symbols = symbols + getSym(line) if hNote: - comToWrite=comToWrite+"\n== Note(s) ==\n\n" - hNote=False - note=True - math=False - noteLine="" + comToWrite += "\n== Note(s) ==\n\n" + hNote = False + note = True + math = False + noteLine = "" elif "\\proof" in line and parse: - #symbols=symbols+KLS.getSym(line) - symLine=line.strip("\n") + symLine = line.strip("\n") if hProof: - hProof=False - comToWrite=comToWrite+"\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), " \ - "or further clarification on the proof(s) in this space. \n

\n
" - proof=True - proofLine="" - pause=False - pauseP=False - for ind in range(0,len(line)): - if line[ind:ind+7]=="\\eqref{": - pause=True - eqR=line[ind:line.find("}",ind)+1] - rLab=KLS.getString(eqR) + hProof = False + comToWrite += "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), " \ + "or further clarification on the proof(s) in this space. \n

\n
" + proof = True + proofLine = "" + pause = False + pauseP = False + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") + if rLab == l[0:l.find("=") - 1]: + rlabel = l[l.find("=>") + 3:l.find("\\n")] + rlabel = rlabel.replace("/", "") + rlabel = rlabel.replace("#", ":") + rlabel = rlabel.replace("!", ":") break - eInd=refLabels.index(""+rlabel) - z=line[line.find("}",ind+7)+1] - if z=="." or z==",": - pauseP=True - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") + eInd = refLabels.index("" + rlabel) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n\n" + refEqs[ + eInd] + "" + z + "
\n") else: - if z=="}": - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
") + if z == "}": + proofLine += ( + "
\n\n" + refEqs[ + eInd] + "
") else: - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") - - + proofLine += ("
\n\n" + refEqs[ + eInd] + "
\n") else: if pause: - if line[ind]=="}": - pause=False + if line[ind] == "}": + pause = False elif pauseP: - pauseP=False - elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: pass else: - proofLine+=(line[ind]) - if "\\end{equation}" in lines[i+1]: - proof=False - #symLine+=line.strip("\n") - KLS.append_text(comToWrite+KLS.getEqP(proofLine)+"
\n
\n") - comToWrite="" - symbols=symbols+KLS.getSym(symLine) - symLine="" - - #KLS.append_text(line) - + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + append_text(comToWrite + getEqP(proofLine) + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" elif proof: - symLine+=line.strip("\n") - pauseP=False - #symbols=symbols+KLS.getSym(line) - for ind in range(0,len(line)): - if line[ind:ind+7]=="\\eqref{": - pause=True - eqR=line[ind:line.find("}",ind)+1] - rLab=KLS.getString(eqR) + symLine += line.strip("\n") + pauseP = False + for ind in range(0, len(line)): + if line[ind:ind + 7] == "\\eqref{": + pause = True + eqR = line[ind:line.find("}", ind) + 1] + rLab = getString(eqR) for l in lLink: - if rLab==l[0:l.find("=")-1]: - rlabel=l[l.find("=>")+3:l.find("\\n")] - rlabel=rlabel.replace("/","") - rlabel=rlabel.replace("#",":") - rlabel=rlabel.replace("!",":") + if rLab == l[0:l.find("=") - 1]: + rlabel = l[l.find("=>") + 3:l.find("\\n")] + rlabel = rlabel.replace("/", "") + rlabel = rlabel.replace("#", ":") + rlabel = rlabel.replace("!", ":") break - eInd=refLabels.index(""+rlabel.lstrip("Formula:")) - z=line[line.find("}",ind+7)+1] - if z=="." or z==",": - pauseP=True - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}"+z+"
\n") + eInd = refLabels.index("" + rlabel.lstrip("Formula:")) + z = line[line.find("}", ind + 7) + 1] + if z == "." or z == ",": + pauseP = True + proofLine += ("
\n\n" + refEqs[ + eInd] + "" + z + "
\n") else: - proofLine+=("
\n{\displaystyle \n"+refEqs[eInd]+"}
\n") + proofLine += ("
\n\n" + refEqs[ + eInd] + "
\n") else: if pause: - if line[ind]=="}": - pause=False + if line[ind] == "}": + pause = False elif pauseP: - pauseP=False - elif line[ind]=="\n" and "\\end{equation}" in lines[i+1]: + pauseP = False + elif line[ind] == "\n" and "\\end{equation}" in lines[i + 1]: pass else: - proofLine+=(line[ind]) - if "\\end{equation}" in lines[i+1]: - proof=False - #symLine+=line.strip("\n") - KLS.append_text(comToWrite+KLS.getEqP(proofLine).rstrip("\n")+"
\n
\n") - comToWrite="" - symbols=symbols+KLS.getSym(symLine) - symLine="" + proofLine += (line[ind]) + if "\\end{equation}" in lines[i + 1]: + proof = False + append_text(comToWrite + getEqP(proofLine).rstrip("\n") + "
\n
\n") + comToWrite = "" + symbols = symbols + getSym(symLine) + symLine = "" elif math: - if "\\end{equation}" in lines[i+1] or "\\constraint" in lines[i+1] \ - or "\\substitution" in lines[i+1] or "\\proof" in lines[i+1] or "\\drmfnote" in lines[i+1] or "\\drmfname" in lines[i+1]: - KLS.append_text(line.rstrip("\n")) - symLine+=line.strip("\n") - symbols=symbols+KLS.getSym(symLine) - symLine="" - KLS.append_text("\n}
\n") + if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] \ + or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[ + i + 1] or "\\drmfname" in lines[i + 1]: + append_text(line.rstrip("\n")) + symLine += line.strip("\n") + symbols = symbols + getSym(symLine) + symLine = "" + append_text("\n
\n") else: - symLine+=line.strip("\n") - KLS.append_text(line) + symLine += line.strip("\n") + append_text(line) if note and parse: - noteLine=noteLine+line - symbols=symbols+KLS.getSym(line) - if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] \ - or "\\constraint" in lines[i+1] \ - or "\\substitution" in lines[i+1] \ - or "\\proof" in lines[i+1]: - note=False + noteLine = noteLine + line + symbols = symbols + getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] \ + or "\\constraint" in lines[i + 1] \ + or "\\substitution" in lines[i + 1] \ + or "\\proof" in lines[i + 1]: + note = False if "\\emph" in noteLine: - noteLine=noteLine[0:noteLine.find("\\emph{")]+"\'\'"+noteLine[noteLine.find("\\emph{")+len("\\emph{"): - noteLine.find("}",noteLine.find("\\emph{")+len("\\emph{"))]+"\'\'"+\ - noteLine[noteLine.find("}",noteLine.find("\\emph{")+len("\\emph{"))+1:] - comToWrite=comToWrite+"
"+KLS.getEq(noteLine)+"

\n" + noteLine = noteLine[0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ + noteLine.find("\\emph{") + len( + "\\emph{"): + noteLine.find("}", noteLine.find( + "\\emph{") + len( + "\\emph{"))] + "\'\'" + \ + noteLine[noteLine.find("}", noteLine.find("\\emph{") + len("\\emph{")) + 1:] + comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" if constraint and parse: - conLine=conLine+line.replace("&","&
") - - symLine+=line.strip("\n") - #symbols=symbols+KLS.getSym(line) - if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] \ - or "\\constraint" in lines[i+1]\ - or "\\substitution" in lines[i+1] \ - or "\\proof" in lines[i+1]: - constraint=False - symbols=symbols+KLS.getSym(symLine) - symLine="" - KLS.append_text(comToWrite+"
"+KLS.getEq(conLine)+"

\n") - comToWrite="" + conLine += line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] \ + or "\\constraint" in lines[i + 1] \ + or "\\substitution" in lines[i + 1] \ + or "\\proof" in lines[i + 1]: + constraint = False + symbols = symbols + getSym(symLine) + symLine = "" + append_text(comToWrite + "
" + getEq(conLine) + "

\n") + comToWrite = "" if substitution and parse: - subLine=subLine+line.replace("&","&
") - - symLine+=line.strip("\n") - #symbols=symbols+KLS.getSym(line) - if "\\end{equation}" in lines[i+1] or "\\drmfn" in lines[i+1] or \ - "\\substitution" in lines[i+1] or "\\constraint" in lines[i+1] or "\\proof" in lines[i+1]: - substitution=False - symbols=symbols+KLS.getSym(symLine) - symLine="" - KLS.append_text(comToWrite+"
"+KLS.getEq(subLine)+"

\n") - comToWrite="" + subLine = subLine + line.replace("&", "&
") + + symLine += line.strip("\n") + # symbols=symbols+getSym(line) + if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or \ + "\\substitution" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in \ + lines[i + 1]: + substitution = False + symbols = symbols + getSym(symLine) + symLine = "" + append_text(comToWrite + "
" + getEq(subLine) + "

\n") + comToWrite = "" + if __name__ == "__main__": - DLMF(0); \ No newline at end of file + tex = "../../data/ZE.3.tex" + mainFile = "../../data/OrthogonalPolynomials.mmd" + lLinks = "../../data/BruceLabelLinks" + DLMF(tex, mainFile, lLinks, 0) From 0cf12eae70d89b7bb56f11023d0f050bc654f228 Mon Sep 17 00:00:00 2001 From: joonbang Date: Fri, 10 Jun 2016 08:28:18 -0400 Subject: [PATCH 095/402] Extend compatibility to confluent, confluent limit functions; organize code into classes (#49) * Extend compatibility to confluent, confluent limit functions * Reorganize output files * Reorganize files * Add folder for unit tests * Change to object-oriented style of programming * Remove wildcard imports * Fix file directory issues --- Joon/.gitignore | 5 - Joon/Cuytbook.pdf | Bin 2744504 -> 0 bytes Joon/Glossary.csv | 691 --------------------------- Joon/converter.py | 268 ----------- Joon/keys/functions | 17 - Joon/keys/section_names | 69 --- Joon/keys/spacing | 11 - Joon/keys/special | 5 - Joon/keys/symbols | 35 -- Joon/mpl/bessel.mpl | 169 ------- Joon/mpl/confluent.mpl | 13 - Joon/mpl/modbessel.mpl | 156 ------ Joon/src/MapleFormula.py | 120 +++++ Joon/src/TranslationMethods.py | 128 +++++ Joon/{ => src}/category_generator.py | 6 +- Joon/src/main.py | 42 ++ Joon/test/README.md | 1 + Joon/tests/test.pdf | Bin 56226 -> 0 bytes Joon/tests/test.tex | 137 ------ Joon/todo.txt | 2 - 20 files changed, 295 insertions(+), 1580 deletions(-) delete mode 100644 Joon/.gitignore delete mode 100644 Joon/Cuytbook.pdf delete mode 100644 Joon/Glossary.csv delete mode 100644 Joon/converter.py delete mode 100644 Joon/keys/functions delete mode 100644 Joon/keys/section_names delete mode 100644 Joon/keys/spacing delete mode 100644 Joon/keys/special delete mode 100644 Joon/keys/symbols delete mode 100644 Joon/mpl/bessel.mpl delete mode 100644 Joon/mpl/confluent.mpl delete mode 100644 Joon/mpl/modbessel.mpl create mode 100644 Joon/src/MapleFormula.py create mode 100644 Joon/src/TranslationMethods.py rename Joon/{ => src}/category_generator.py (88%) create mode 100644 Joon/src/main.py create mode 100644 Joon/test/README.md delete mode 100644 Joon/tests/test.pdf delete mode 100644 Joon/tests/test.tex delete mode 100644 Joon/todo.txt diff --git a/Joon/.gitignore b/Joon/.gitignore deleted file mode 100644 index 2133789..0000000 --- a/Joon/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -Glossary.csv -tests/ -functions/ -!tests/test.tex -!tests/test.pdf diff --git a/Joon/Cuytbook.pdf b/Joon/Cuytbook.pdf deleted file mode 100644 index 914a06ba364ee74724703159776c03a78f5095df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2744504 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

EsbKNUv7hKLoC=$CTu4L0Rb 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

qtXot8yMo`=@MSz=Vo!1C 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%0DnQ0haZXEUP&ll3DufC?&8 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α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

\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" @@ -707,11 +1019,19 @@ def DLMF(ofname,mmd,llinks,n): z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True - proofLine += ("
\n\n" + refEqs[ - eInd] + "" + z + "
\n") + proofLine += ("
\n\n" + + refEqs[eInd] + + "" + + z + + "
\n") else: - proofLine += ("
\n\n" + refEqs[ - eInd] + "
\n") + proofLine += ("
\n\n" + + refEqs[eInd] + + "
\n") else: if pause: @@ -726,15 +1046,28 @@ def DLMF(ofname,mmd,llinks,n): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - append_text(comToWrite + getEqP(proofLine).rstrip("\n") + "
\n
\n") + append_text( + comToWrite + + getEqP(proofLine).rstrip("\n") + + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" elif math: - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] \ - or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[ - i + 1] or "\\drmfname" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1] or "\\drmfnote" in lines[ + i + + 1] or "\\drmfname" in lines[ + i + + 1]: append_text(line.rstrip("\n")) symLine += line.strip("\n") symbols = symbols + getSym(symLine) @@ -746,47 +1079,77 @@ def DLMF(ofname,mmd,llinks,n): if note and parse: noteLine = noteLine + line symbols = symbols + getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] \ - or "\\constraint" in lines[i + 1] \ - or "\\substitution" in lines[i + 1] \ - or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: note = False if "\\emph" in noteLine: - noteLine = noteLine[0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ - noteLine.find("\\emph{") + len( - "\\emph{"): - noteLine.find("}", noteLine.find( - "\\emph{") + len( - "\\emph{"))] + "\'\'" + \ - noteLine[noteLine.find("}", noteLine.find("\\emph{") + len("\\emph{")) + 1:] - comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" + noteLine = noteLine[ + 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ + noteLine.find("\\emph{") + len("\\emph{"): noteLine.find( + "}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ + noteLine.find( + "}", noteLine.find("\\emph{") + len("\\emph{")) + 1:] + comToWrite = comToWrite + "
" + \ + getEq(noteLine) + "

\n" if constraint and parse: conLine += line.replace("&", "&
") symLine += line.strip("\n") # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] \ - or "\\constraint" in lines[i + 1] \ - or "\\substitution" in lines[i + 1] \ - or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False symbols = symbols + getSym(symLine) symLine = "" - append_text(comToWrite + "
" + getEq(conLine) + "

\n") + append_text( + comToWrite + + "
" + + getEq(conLine) + + "

\n") comToWrite = "" if substitution and parse: subLine = subLine + line.replace("&", "&
") symLine += line.strip("\n") # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or \ - "\\substitution" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in \ - lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: substitution = False symbols = symbols + getSym(symLine) symLine = "" - append_text(comToWrite + "
" + getEq(subLine) + "

\n") + append_text( + comToWrite + + "
" + + getEq(subLine) + + "

\n") comToWrite = "" diff --git a/tex2Wiki/src/tex2Wiki.py b/tex2Wiki/src/tex2Wiki.py index 16ef557..5bb0c24 100644 --- a/tex2Wiki/src/tex2Wiki.py +++ b/tex2Wiki/src/tex2Wiki.py @@ -32,13 +32,15 @@ def getString(line): # Gets all data within curly braces on a line if c == "}": # no more info needed break elif getStr: # if within curly braces - if not (pW == c and c == "-"): # if there is no double dash (makes single dash) + if not ( + pW == c and c == "-"): # if there is no double dash (makes single dash) if c != "$": # if not a $ sign stringWrite += c # this character is part of the data else: # replace $ with '' stringWrite += "\'\'" # add double ' pW = c # change last character for finding double dashes - return stringWrite.rstrip('\n').lstrip() # return the data without newlines and without leading spaces + # return the data without newlines and without leading spaces + return stringWrite.rstrip('\n').lstrip() def getG(line): # gets equation for symbols list @@ -85,7 +87,9 @@ def getEq(line): # Gets all data within constraints,substitutions elif c == "\n" and per == 0: # if newline stringWrite = stringWrite.strip() # remove all leading and trailing whitespace - # should above be rstrip?<-------------------------------------------------------------------CHECK THIS + # should above be + # rstrip?<-------------------------------------------------------------------CHECK + # THIS stringWrite += c # add the newline character per += 1 # watch for % signs @@ -102,7 +106,8 @@ def getEqP(line): # Gets all data within proofs count = 0 length = 0 for c in line: - if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha(): + if fEq and c != " " and c != "$" and c != "{" and c != "}" and not c.isalpha( + ): length += 1 if count >= 0 and per != 0: per += 1 @@ -146,7 +151,9 @@ def getSym(line): # Gets all symbols on a line for symbols list argFlag = False cC = 0 for i in range(0, len(line)): - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + # if + # "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" + # in line: c = line[i] if symFlag: if c == "{" or c == "[": @@ -170,7 +177,9 @@ def getSym(line): # Gets all symbols on a line for symbols list p = line[i + 1] if cC <= 0 and p != "{" and p != "[" and p != "@": symFlag = False - # if "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" in line: + # if + # "monicAskeyWilson{n+1}@{x}{a}{b}{c}{d}{q}+\\frac{1}{2}" + # in line: symList.append(symbol) symList += (getSym(symbol)) argFlag = False @@ -181,7 +190,9 @@ def getSym(line): # Gets all symbols on a line for symbols list elif c == "&" and not (i > line.find("\\begin{array}") and i < line.find("\\end{array}")): symList.append("&") - # if "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" in line: + # if + # "MeixnerPollaczek{\\lambda}{n}@{x}{\\phi}=\frac{\\pochhammer{2\\lambda}{n}}" + # in line: symList.append(symbol) symList += getSym(symbol) return symList @@ -275,8 +286,8 @@ def main(): fname = "../../data/ZE.3.tex" ofname = "../../data/ZE.4.xml" lname = "../../data/BruceLabelLinks" - glossary = "../../data/new.Glossary.csv" - mmd = "../../data/OrthogonalPolynomials.mmd" + glossary = "../../data/new.Glossary.csv" + mmd = "../../data/OrthogonalPolynomials.mmd" else: fname = sys.argv[1] @@ -285,7 +296,7 @@ def main(): glossary = sys.argv[4] mmd = sys.argv[5] setup_label_links(lname) - readin(fname,glossary,mmd) + readin(fname, glossary, mmd) writeout(ofname) @@ -294,7 +305,7 @@ def setup_label_links(ofname): lLink = open(ofname, "r").readlines() -def readin(ofname,glossary,mmd): +def readin(ofname, glossary, mmd): # try: for iterations in range(0, 1): tex = open(ofname, 'r') @@ -326,8 +337,15 @@ def readin(ofname,glossary,mmd): math = True elif math: refEqs[len(refEqs) - 1] += line - if "\\end{equation}" in refLines[i + 1] or "\\constraint" in refLines[i + 1] or "\\substitution" in \ - refLines[i + 1] or "\\drmfn" in refLines[i + 1]: + if "\\end{equation}" in refLines[ + i + + 1] or "\\constraint" in refLines[ + i + + 1] or "\\substitution" in refLines[ + i + + 1] or "\\drmfn" in refLines[ + i + + 1]: math = False for i in range(0, len(lines)): @@ -337,7 +355,8 @@ def readin(ofname,glossary,mmd): elif "\\end{document}" in line and parse: mainPrepend += "
\n" mainText = mainPrepend + mainText - mainText = mainText.replace("\'\'\'Orthogonal Polynomials\'\'\'\n", "") + mainText = mainText.replace( + "\'\'\'Orthogonal Polynomials\'\'\'\n", "") mainText = mainText.replace("{{#set:Section=0}}\n", "") mainText = mainText[0:mainText.rfind("== Sections ")] append_revision('Orthogonal Polynomials') @@ -354,7 +373,9 @@ def readin(ofname,glossary,mmd): sections.append(["Orthogonal Polynomials", 0]) chapter = getString(line) mainPrepend += ( - "\n== Sections in " + chapter + " ==\n\n
\n") + "\n== Sections in " + + chapter + + " ==\n\n
\n") elif "\\part" in line: if getString(line) == "BOF": parse = False @@ -364,7 +385,11 @@ def readin(ofname,glossary,mmd): mainPrepend += ("\n
\n= " + getString(line) + " =\n") head = True elif "\\section" in line: - mainPrepend += ("* [[" + secLabel(getString(line)) + "|" + getString(line) + "]]\n") + mainPrepend += ("* [[" + + secLabel(getString(line)) + + "|" + + getString(line) + + "]]\n") sections.append([getString(line)]) secCounter = 0 @@ -377,7 +402,8 @@ def readin(ofname,glossary,mmd): parse = True secCounter += 1 append_revision(secLabel(getString(line))) - append_text("{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") + append_text( + "{{DISPLAYTITLE:" + (sections[secCounter][0]) + "}}\n") append_text("{{#set:Chapter=" + chapter + "}}\n") append_text("{{#set:Section=" + str(secCounter) + "}}\n") append_text("{{headSection}}\n") @@ -430,21 +456,31 @@ def readin(ofname,glossary,mmd): elif "\\drmfn" in line and parse: math = False if "\\drmfname" in line and parse: - append_text("
This formula has the name: " + getString(line) + "

\n") + append_text( + "
This formula has the name: " + + getString(line) + + "

\n") elif math and parse: flagM = True eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i + 1] and "\\subsection" not in lines[i + 3] and "\\section" not in \ - lines[i + 3] and "\\part" not in lines[i + 3]: + if "\\end{equation}" in lines[ + i + + 1] and "\\subsection" not in lines[ + i + + 3] and "\\section" not in lines[ + i + + 3] and "\\part" not in lines[ + i + + 3]: u = i flagM2 = False while flagM: u += 1 if "\\begin{equation}" in lines[u] in lines[u]: flagM = False - if "\\section" in lines[u] or "\\subsection" in lines[i] or "\\part" in lines[u] \ - or "\\end{document}" in lines[u]: + if "\\section" in lines[u] or "\\subsection" in lines[ + i] or "\\part" in lines[u] or "\\end{document}" in lines[u]: flagM = False flagM2 = True if not flagM2: @@ -464,13 +500,29 @@ def readin(ofname,glossary,mmd): append_text(line) elif math and not parse: eqs[len(eqs) - 1] += line - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\drmfn" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1]: math = False if substitution and parse: subLine += line.replace("&", "&
") - if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: lineR = "" for i in range(0, len(subLine)): if subLine[i] == "&" and not ( @@ -479,14 +531,29 @@ def readin(ofname,glossary,mmd): else: lineR += subLine[i] substitution = False - append_text("
Substitution(s): " + getEq(subLine) + "

\n") + append_text( + "
Substitution(s): " + + getEq(subLine) + + "

\n") if constraint and parse: conLine += line.replace("&", "&
") - if "\\end{equation}" in lines[i + 1] or "\\substitution" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\drmfn" in lines[i + 1] or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False - append_text("
Constraint(s): " + getEq(conLine) + "

\n") + append_text( + "
Constraint(s): " + + getEq(conLine) + + "

\n") eqCounter = 0 endNum = len(labels) - 1 @@ -536,40 +603,151 @@ def readin(ofname,glossary,mmd): if eqCounter < endNum: # FOR ANYTHING THAT IS NOT THE EXTRA EQUATIONS append_text("
\n") if newSec: - append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + - "|" + secLabel(sections[secCount][0]) + "]]
\n") + append_text( + "
<< [[" + + secLabel( + sections[secCount][0]).replace( + " ", + "_") + + "|" + + secLabel( + sections[secCount][0]) + + "]]
\n") else: - append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", "_") + - "|" + secLabel(labels[eqCounter - 1]) + "]]
\n") - append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", "_") + - "#" + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + - secLabel(sections[secCount + 1][0]) + "]]
\n") + append_text( + "
<< [[" + + secLabel( + labels[ + eqCounter - + 1]).replace( + " ", + "_") + + "|" + + secLabel( + labels[ + eqCounter - + 1]) + + "]]
\n") + append_text( + "
[[" + + secLabel( + sections[ + secCount + + 1][0]).replace( + " ", + "_") + + "#" + + secLabel( + labels[eqCounter][ + len("Formula:"):]) + + "|formula in " + + secLabel( + sections[ + secCount + + 1][0]) + + "]]
\n") if eqS == sections[secCount][1]: append_text( - "
[[" + secLabel( - sections[(secCount + 1) % len(sections)][0]).replace( - " ", "_") + "|" + secLabel( - sections[(secCount + 1) % len(sections)][0]) + "]] >>
\n") + "
[[" + + secLabel( + sections[ + (secCount + + 1) % + len(sections)][0]).replace( + " ", + "_") + + "|" + + secLabel( + sections[ + (secCount + + 1) % + len(sections)][0]) + + "]] >>
\n") else: - append_text("
[[" + - secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + - "|" + secLabel(labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + append_text( + "
[[" + + secLabel( + labels[ + (eqCounter + + 1) % + (endNum + + 1)]).replace( + " ", + "_") + + "|" + + secLabel( + labels[ + (eqCounter + + 1) % + (endNum + + 1)]) + + "]] >>
\n") append_text("
\n\n") elif eqCounter == endNum: append_text("
\n") if newSec: newSec = False - append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + - "|" + secLabel(sections[secCount][0]) + "]]
\n") + append_text( + "
<< [[" + + secLabel( + sections[secCount][0]).replace( + " ", + "_") + + "|" + + secLabel( + sections[secCount][0]) + + "]]
\n") else: - append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", "_") + - "|" + secLabel(labels[eqCounter - 1]) + "]]
\n") - append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", "_") + - "#" + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + - secLabel(sections[secCount + 1][0]) + "]]
\n") - append_text("
[[" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)].replace(" ", "_")) + "|" + secLabel( - labels[(eqCounter + 1) % (endNum + 1)]) + "]]
\n") + append_text( + "
<< [[" + + secLabel( + labels[ + eqCounter - + 1]).replace( + " ", + "_") + + "|" + + secLabel( + labels[ + eqCounter - + 1]) + + "]]
\n") + append_text( + "
[[" + + secLabel( + sections[ + secCount + + 1][0]).replace( + " ", + "_") + + "#" + + secLabel( + labels[eqCounter][ + len("Formula:"):]) + + "|formula in " + + secLabel( + sections[ + secCount + + 1][0]) + + "]]
\n") + append_text( + "
[[" + + secLabel( + labels[ + (eqCounter + + 1) % + (endNum + + 1)].replace( + " ", + "_")) + + "|" + + secLabel( + labels[ + (eqCounter + + 1) % + (endNum + + 1)]) + + "]]
\n") append_text("
\n\n") append_text("
\n") @@ -579,8 +757,9 @@ def readin(ofname,glossary,mmd): parse = False math = False if hProof: - append_text("\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or" - " further clarification on the proof(s) in this space.\n") + append_text( + "\n== Proof ==\n\nWe ask users to provide proof(s), reference(s) to proof(s), or" + " further clarification on the proof(s) in this space.\n") append_text("\n== Symbols List ==\n\n") newSym = [] # if "09.07:04" in label: @@ -663,7 +842,12 @@ def readin(ofname,glossary,mmd): gFlag = False checkFlag = False get = False - gCSV = csv.reader(open(glossary, 'rb'), delimiter=',', quotechar='\"') + gCSV = csv.reader( + open( + glossary, + 'rb'), + delimiter=',', + quotechar='\"') preG = "" if symbol == "\\&": ampFlag = True @@ -691,7 +875,8 @@ def readin(ofname,glossary,mmd): parCx += 1 else: ArgCx += 1 - if G[0].find(symbol) == 0 and (len(G[0]) == len(symbol) or not G[0][len(symbol)].isalpha()): + if G[0].find(symbol) == 0 and (len(G[0]) == len( + symbol) or not G[0][len(symbol)].isalpha()): checkFlag = True get = True preG = S @@ -707,7 +892,8 @@ def readin(ofname,glossary,mmd): else: Q = symbolPar listArgs = [] - if len(Q) > len(symbol) and (Q[len(symbol)] == "{" or Q[len(symbol)] == "["): + if len(Q) > len(symbol) and (Q[ + len(symbol)] == "{" or Q[len(symbol)] == "["): ap = "" for o in range(len(symbol), len(Q)): if Q[o] == "}" or z == "]": @@ -719,7 +905,8 @@ def readin(ofname,glossary,mmd): web1 = G[5] for t in range(5, len(G)): if G[t] != "": - websiteF = websiteF + " [" + G[t] + " " + G[t] + "]" + websiteF = websiteF + \ + " [" + G[t] + " " + G[t] + "]" p1 = G[4].strip("$") p1 = "" + p1 + "" # if checkFlag: @@ -737,7 +924,8 @@ def readin(ofname,glossary,mmd): else: new2 += p2[k] p2 = new2 - finSym.append(web1 + " " + p1 + "] : " + p2 + " :" + websiteF) + finSym.append( + web1 + " " + p1 + "] : " + p2 + " :" + websiteF) break if not gFlag: del newSym[s] @@ -757,7 +945,8 @@ def readin(ofname,glossary,mmd): append_text("\n
\n") - append_text("\n== Bibliography==\n\n") # should there be a space between bibliography and ==? + # should there be a space between bibliography and ==? + append_text("\n== Bibliography==\n\n") r = unmodLabel(labels[eqCounter]) q = r.find("KLS:") + 4 p = r.find(":", q) @@ -765,38 +954,132 @@ def readin(ofname,glossary,mmd): equation = r[p + 1:] if equation.find(":") != -1: equation = equation[0:equation.find(":")] - append_text("[http://homepage.tudelft.nl/11r49/askey/contents.html " - "Equation in Section " + section + "] of [[Bibliography#KLS|'''KLS''']].\n\n") - append_text("== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") + append_text( + "[http://homepage.tudelft.nl/11r49/askey/contents.html " + "Equation in Section " + + section + + "] of [[Bibliography#KLS|'''KLS''']].\n\n") + append_text( + "== URL links ==\n\nWe ask users to provide relevant URL links in this space.\n\n") if eqCounter < endNum: append_text("
\n") if newSec: newSec = False - append_text("
<< [[" + secLabel(sections[secCount][0]).replace(" ", "_") + - "|" + secLabel(sections[secCount][0]) + "]]
\n") + append_text( + "
<< [[" + + secLabel( + sections[secCount][0]).replace( + " ", + "_") + + "|" + + secLabel( + sections[secCount][0]) + + "]]
\n") else: - append_text("
<< [[" + secLabel(labels[eqCounter - 1]).replace(" ", "_") + - "|" + secLabel(labels[eqCounter - 1]) + "]]
\n") - append_text("
[[" + secLabel(sections[secCount + 1][0]).replace(" ", "_") + - "#" + secLabel(labels[eqCounter][len("Formula:"):]) + "|formula in " + - secLabel(sections[secCount + 1][0]) + "]]
\n") + append_text( + "
<< [[" + + secLabel( + labels[ + eqCounter - + 1]).replace( + " ", + "_") + + "|" + + secLabel( + labels[ + eqCounter - + 1]) + + "]]
\n") + append_text( + "
[[" + + secLabel( + sections[ + secCount + + 1][0]).replace( + " ", + "_") + + "#" + + secLabel( + labels[eqCounter][ + len("Formula:"):]) + + "|formula in " + + secLabel( + sections[ + secCount + + 1][0]) + + "]]
\n") if eqS == sections[secCount][1]: - append_text("
[[" + - sections[(secCount + 1) % len(sections)][0].replace(" ", "_") + "|" + - sections[(secCount + 1) % len(sections)][0] + "]] >>
\n") + append_text( + "
[[" + + sections[ + (secCount + + 1) % + len(sections)][0].replace( + " ", + "_") + + "|" + + sections[ + (secCount + + 1) % + len(sections)][0] + + "]] >>
\n") else: - append_text("
[[" + - secLabel(labels[(eqCounter + 1) % (endNum + 1)]).replace(" ", "_") + "|" + - secLabel(labels[(eqCounter + 1) % (endNum + 1)]) + "]] >>
\n") + append_text( + "
[[" + + secLabel( + labels[ + (eqCounter + + 1) % + (endNum + + 1)]).replace( + " ", + "_") + + "|" + + secLabel( + labels[ + (eqCounter + + 1) % + (endNum + + 1)]) + + "]] >>
\n") append_text("
\n") else: # FOR EXTRA EQUATIONS append_text("
\n") - append_text("
<< [[" + labels[endNum - 1].replace(" ", "_") + "|" + labels[ - endNum - 1] + "]]
\n") - append_text("
[[" + labels[0].replace(" ", "_") + "#" + labels[endNum][8:] + - "|formula in " + labels[0] + "]]
\n") - append_text("
[[" + labels[0 % endNum].replace(" ", "_") + "|" + labels[ - 0 % endNum] + "]]
\n") + append_text( + "
<< [[" + + labels[ + endNum - + 1].replace( + " ", + "_") + + "|" + + labels[ + endNum - + 1] + + "]]
\n") + append_text( + "
[[" + + labels[0].replace( + " ", + "_") + + "#" + + labels[endNum][ + 8:] + + "|formula in " + + labels[0] + + "]]
\n") + append_text( + "
[[" + + labels[ + 0 % + endNum].replace( + " ", + "_") + + "|" + + labels[ + 0 % + endNum] + + "]]
\n") append_text("
\n") elif "\\constraint" in line and parse: # symbols=symbols+getSym(line) @@ -818,7 +1101,8 @@ def readin(ofname,glossary,mmd): subLine = "" elif "\\drmfname" in line and parse: math = False - comToWrite = "\n== Name ==\n\n
" + getString(line) + "

\n" + comToWrite + comToWrite = "\n== Name ==\n\n
" + \ + getString(line) + "

\n" + comToWrite elif "\\drmfnote" in line and parse: symbols = symbols + getSym(line) @@ -846,21 +1130,29 @@ def readin(ofname,glossary,mmd): # TODO: figure out how eqR is defined # rLab = getString(eqR) pause = True - eInd = refLabels.index("" + label) # This should be rLab + eInd = refLabels.index( + "" + label) # This should be rLab z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True - proofLine += ("
\n" + refEqs[ - eInd] + "" + z + "
\n") + proofLine += ("
\n" + + refEqs[eInd] + + "" + + z + + "
\n") else: if z == "}": proofLine += ( "
\n" + refEqs[ eInd] + "
") else: - proofLine += ( - "
\n \n" + refEqs[ - eInd] + "
\n") + proofLine += ("
\n \n" + + refEqs[eInd] + + "
\n") else: if pause: if line[ind] == "}": @@ -873,7 +1165,10 @@ def readin(ofname,glossary,mmd): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - append_text(comToWrite + getEqP(proofLine) + "
\n
\n") + append_text( + comToWrite + + getEqP(proofLine) + + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" @@ -891,12 +1186,19 @@ def readin(ofname,glossary,mmd): z = line[line.find("}", ind + 7) + 1] if z == "." or z == ",": pauseP = True - proofLine += ("
\n" + refEqs[ - eInd] + "" + z + "
\n") + proofLine += ("
\n" + + refEqs[eInd] + + "" + + z + + "
\n") else: - proofLine += ( - "
\n" + refEqs[ - eInd] + "
\n") + proofLine += ("
\n" + + refEqs[eInd] + + "
\n") else: if pause: @@ -911,16 +1213,28 @@ def readin(ofname,glossary,mmd): proofLine += (line[ind]) if "\\end{equation}" in lines[i + 1]: proof = False - append_text(comToWrite + getEqP(proofLine).rstrip("\n") + "
\n
\n") + append_text( + comToWrite + + getEqP(proofLine).rstrip("\n") + + "
\n
\n") comToWrite = "" symbols = symbols + getSym(symLine) symLine = "" elif math: - if "\\end{equation}" in lines[i + 1] or "\\constraint" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\proof" in lines[i + 1] or "\\drmfnote" in lines[i + 1] or "\\drmfname" in \ - lines[ - i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1] or "\\drmfnote" in lines[ + i + + 1] or "\\drmfname" in lines[ + i + + 1]: append_text(line.rstrip("\n")) symLine += line.strip("\n") symbols = symbols + getSym(symLine) @@ -932,37 +1246,69 @@ def readin(ofname,glossary,mmd): if note and parse: noteLine += line symbols = symbols + getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: note = False if "\\emph" in noteLine: - noteLine = noteLine[0:noteLine.find("\\emph{")] + "\'\'" + noteLine[noteLine.find("\\emph{") + len( - "\\emph{"):noteLine.find("}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ - noteLine.find( - "}", - noteLine.find( - "\\emph{") + len( - "\\emph{")) + 1:] - comToWrite = comToWrite + "
" + getEq(noteLine) + "

\n" + noteLine = noteLine[ + 0:noteLine.find("\\emph{")] + "\'\'" + noteLine[ + noteLine.find("\\emph{") + len("\\emph{"):noteLine.find( + "}", noteLine.find("\\emph{") + len("\\emph{"))] + "\'\'" + noteLine[ + noteLine.find( + "}", noteLine.find("\\emph{") + len("\\emph{")) + 1:] + comToWrite = comToWrite + "
" + \ + getEq(noteLine) + "

\n" if constraint and parse: conLine += line.replace("&", "&
") symLine += line.strip("\n") # symbols=symbols+getSym(line) - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\constraint" in lines[ - i + 1] or "\\substitution" in lines[i + 1] or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: constraint = False symbols = symbols + getSym(symLine) symLine = "" - append_text(comToWrite + "
" + getEq(conLine) + "

\n") + append_text( + comToWrite + + "
" + + getEq(conLine) + + "

\n") comToWrite = "" if substitution and parse: - subLine += line.replace("&", "&
") #TODO: Figure out if .replace is needed + # TODO: Figure out if .replace is needed + subLine += line.replace("&", "&
") symLine += line.strip("\n") - if "\\end{equation}" in lines[i + 1] or "\\drmfn" in lines[i + 1] or "\\substitution" in lines[ - i + 1] or "\\constraint" in lines[i + 1] or "\\proof" in lines[i + 1]: + if "\\end{equation}" in lines[ + i + + 1] or "\\drmfn" in lines[ + i + + 1] or "\\substitution" in lines[ + i + + 1] or "\\constraint" in lines[ + i + + 1] or "\\proof" in lines[ + i + + 1]: substitution = False symbols = symbols + getSym(symLine) symLine = "" @@ -973,7 +1319,11 @@ def readin(ofname,glossary,mmd): lineR += "&
" else: lineR += subLine[i] - append_text(comToWrite + "
" + getEq(subLine) + "

\n") + append_text( + comToWrite + + "
" + + getEq(subLine) + + "

\n") comToWrite = "" From 9e82fb6c19b280175f76ea986f9641edc2e1379d Mon Sep 17 00:00:00 2001 From: Parth Oza Date: Tue, 19 Jul 2016 10:55:59 -0400 Subject: [PATCH 161/402] Resolve some QuantifyCode issues --- DLMF_preprocessing/src/conversion_ecf.py | 64 ++++++++++++------------ macro_replacement/src/drmfconfig.py | 1 - macro_replacement/src/monics.py | 1 - 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/DLMF_preprocessing/src/conversion_ecf.py b/DLMF_preprocessing/src/conversion_ecf.py index c108fc1..724d786 100644 --- a/DLMF_preprocessing/src/conversion_ecf.py +++ b/DLMF_preprocessing/src/conversion_ecf.py @@ -4,7 +4,7 @@ import re # existing file named text.txt -file = open('test1.txt', 'r').read() +existing_file = open('test1.txt', 'r').read() # output written to newText.txt newFile = open('newIdentities.txt', 'w') @@ -568,40 +568,40 @@ def equationSetUp(s): return (newFile + "\\end {equation} \n\n") -file = removeInactive(file) -file = replaceGreekVars(file) -file = replaceSqrt(file) -file = replacePolygamma(file) -file = replaceCos(file) -file = replaceSin(file) -file = replaceTan(file) -file = replaceCsc(file) -file = replaceSec(file) -file = replaceCot(file) -file = replaceArcCos(file) -file = replaceArcSin(file) -file = replaceArcTan(file) -file = replaceArcCsc(file) -file = replaceArcSec(file) -file = replaceArcCot(file) -file = replaceCosh(file) -file = replaceSinh(file) -file = replaceTanh(file) -file = replaceCsch(file) -file = replaceSech(file) -file = replaceCoth(file) -file = replaceInfinity(file) -file = ContinuedFractionK(file) -file = replaceAbs(file) -file = comparativeRelators(file) +existing_file = removeInactive(existing_file) +existing_file = replaceGreekVars(existing_file) +existing_file = replaceSqrt(existing_file) +existing_file = replacePolygamma(existing_file) +existing_file = replaceCos(existing_file) +existing_file = replaceSin(existing_file) +existing_file = replaceTan(existing_file) +existing_file = replaceCsc(existing_file) +existing_file = replaceSec(existing_file) +existing_file = replaceCot(existing_file) +existing_file = replaceArcCos(existing_file) +existing_file = replaceArcSin(existing_file) +existing_file = replaceArcTan(existing_file) +existing_file = replaceArcCsc(existing_file) +existing_file = replaceArcSec(existing_file) +existing_file = replaceArcCot(existing_file) +existing_file = replaceCosh(existing_file) +existing_file = replaceSinh(existing_file) +existing_file = replaceTanh(existing_file) +existing_file = replaceCsch(existing_file) +existing_file = replaceSech(existing_file) +existing_file = replaceCoth(existing_file) +existing_file = replaceInfinity(existing_file) +existing_file = ContinuedFractionK(existing_file) +existing_file = replaceAbs(existing_file) +existing_file = comparativeRelators(existing_file) count = 0 position = 0 yorn = False -for index in range(len(file)): - if file[index: index + 2] == "(*": +for index in range(len(existing_file)): + if existing_file[index: index + 2] == "(*": count = index - position = file.find("\n", index) - position = file.find("\n", position + 1) - newFile.write(equationSetUp(file[index: position]).replace("*", " ")) + position = existing_file.find("\n", index) + position = existing_file.find("\n", position + 1) + newFile.write(equationSetUp(existing_file[index: position]).replace("*", " ")) newFile.close() diff --git a/macro_replacement/src/drmfconfig.py b/macro_replacement/src/drmfconfig.py index 4670d48..c0b09a2 100644 --- a/macro_replacement/src/drmfconfig.py +++ b/macro_replacement/src/drmfconfig.py @@ -3,7 +3,6 @@ import os import sys -from snippets import * from function import Function diff --git a/macro_replacement/src/monics.py b/macro_replacement/src/monics.py index a919e5f..80cb3cb 100644 --- a/macro_replacement/src/monics.py +++ b/macro_replacement/src/monics.py @@ -4,7 +4,6 @@ import re import sys -global fullmacro fullmacro = '' From e3cd35bddc56cfe17204b1f72ea1669681228dd5 Mon Sep 17 00:00:00 2001 From: Parth Oza Date: Tue, 19 Jul 2016 13:01:16 -0400 Subject: [PATCH 162/402] Remove wildcard imports (which apparently weren't used anyway) --- KLSadd_insertion/src/FileChangerLatex.py | 6 +++--- macro_replacement/src/drmfconfig.py | 3 +++ macro_replacement/src/monics.py | 3 +++ macro_replacement/src/normalized.py | 3 ++- macro_replacement/src/replace.py | 5 ++++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/KLSadd_insertion/src/FileChangerLatex.py b/KLSadd_insertion/src/FileChangerLatex.py index f0ed347..6fe754e 100644 --- a/KLSadd_insertion/src/FileChangerLatex.py +++ b/KLSadd_insertion/src/FileChangerLatex.py @@ -15,7 +15,7 @@ subsection = "" a = -1 chapter = "" -list = [] +chapters = [] with open("KLSadd.tex", "rb") as file: for line in file: # finds all mentions of subsections in KLSadd @@ -37,7 +37,7 @@ chapter += "." if chapter is not "": - list.append(chapter) + chapters.append(chapter) # END OF LOOP why can't I have nice brackets like java :( """ list contains all of the subsections. Begin chapter file searching @@ -49,7 +49,7 @@ print(words) numFile = "" fileList = [] - for s in list: + for s in chapters: numFile = "" if ("." in s[0:2]): numFile = s[0] diff --git a/macro_replacement/src/drmfconfig.py b/macro_replacement/src/drmfconfig.py index c0b09a2..fd9d6c7 100644 --- a/macro_replacement/src/drmfconfig.py +++ b/macro_replacement/src/drmfconfig.py @@ -5,6 +5,9 @@ import sys from function import Function +# If there are errors it probably has to do with the missing import below +# from snippets import * + class ConfigFile(object): """Represents a configuration file (containing regular expressions) used for seeding the DRMF""" diff --git a/macro_replacement/src/monics.py b/macro_replacement/src/monics.py index 80cb3cb..d7f57e2 100644 --- a/macro_replacement/src/monics.py +++ b/macro_replacement/src/monics.py @@ -4,6 +4,9 @@ import re import sys +# If there are errors it probably has to do with the missing import below +# from snippets import * + fullmacro = '' diff --git a/macro_replacement/src/normalized.py b/macro_replacement/src/normalized.py index 38a82bc..45ee7ad 100644 --- a/macro_replacement/src/normalized.py +++ b/macro_replacement/src/normalized.py @@ -3,7 +3,8 @@ import re import sys -from snippets import * +# If there are errors it probably has to do with the missing import below +# from snippets import * def main(): diff --git a/macro_replacement/src/replace.py b/macro_replacement/src/replace.py index 8831861..c53a64a 100644 --- a/macro_replacement/src/replace.py +++ b/macro_replacement/src/replace.py @@ -8,7 +8,10 @@ import sys import re import os -from snippets import * + +# If there are errors it probably has to do with the missing import below +# from snippets import * + from function import Function from replace_special import remove_special from monics import replace_monics From c79f80343d37d99af6bbb31ac99113e8101e2021 Mon Sep 17 00:00:00 2001 From: Parth Oza Date: Tue, 19 Jul 2016 13:10:11 -0400 Subject: [PATCH 163/402] Fix some more QuantifyCode issues --- DLMF_preprocessing/src/conversion_ecf.py | 82 ++++++++++++------------ tex2Wiki/src/DLMFtex2Wiki.py | 6 +- tex2Wiki/src/tex2Wiki.py | 6 +- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/DLMF_preprocessing/src/conversion_ecf.py b/DLMF_preprocessing/src/conversion_ecf.py index 724d786..753a7a3 100644 --- a/DLMF_preprocessing/src/conversion_ecf.py +++ b/DLMF_preprocessing/src/conversion_ecf.py @@ -137,7 +137,7 @@ def findArgs(s, functionName): def replaceSqrt(s): arguments = findArgs(s, "Sqrt") for i in arguments: - s = s.replace("Sqrt" + i, "\\sqrt{" + i[1:len(i) - 1] + "}") + s = s.replace("Sqrt" + i, "\\sqrt{" + i[1:-1] + "}") return (s) @@ -150,20 +150,18 @@ def replacePolygamma(s): i, "\\polygamma{" + i[1:commaLoc] + "}@{" + - i[commaLoc + - 1:len(i) - - 1] + + i[commaLoc + 1:-1] + "}") elif i[1:2] == "0": s = s.replace("Polygamma" + i, - "\\digamma@{" + i[3:len(i) - 1] + "}") + "\\digamma@{" + i[3:-1] + "}") return s def removeInactive(s): arguments = findArgs(s, "Inactive") for i in arguments: - s = s.replace("Inactive" + i, i[1:len(i) - 1]) + s = s.replace("Inactive" + i, i[1:-1]) return s @@ -171,9 +169,9 @@ def replaceCos(s): arguments = findArgs(s, "Cos") for i in arguments: if len(i) == 3: - s = s.replace("Cos" + i, "\\cos@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Cos" + i, "\\cos@@{" + i[1:-1] + "}") else: - s = s.replace("Cos" + i, "\\cos@{" + i[1:len(i) - 1] + "}") + s = s.replace("Cos" + i, "\\cos@{" + i[1:-1] + "}") return s @@ -181,9 +179,9 @@ def replaceSin(s): arguments = findArgs(s, "Sin") for i in arguments: if len(i) == 3: - s = s.replace("Sin" + i, "\\sin@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sin" + i, "\\sin@@{" + i[1:-1] + "}") else: - s = s.replace("Sin" + i, "\\sin@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sin" + i, "\\sin@{" + i[1:-1] + "}") return s @@ -191,9 +189,9 @@ def replaceTan(s): arguments = findArgs(s, "Tan") for i in arguments: if len(i) == 3: - s = s.replace("Tan" + i, "\\tan@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Tan" + i, "\\tan@@{" + i[1:-1] + "}") else: - s = s.replace("Tan" + i, "\\tan@{" + i[1:len(i) - 1] + "}") + s = s.replace("Tan" + i, "\\tan@{" + i[1:-1] + "}") return s @@ -201,9 +199,9 @@ def replaceCsc(s): arguments = findArgs(s, "Csc") for i in arguments: if len(i) == 3: - s = s.replace("Csc" + i, "\\csc@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Csc" + i, "\\csc@@{" + i[1:-1] + "}") else: - s = s.replace("Csc" + i, "\\csc@{" + i[1:len(i) - 1] + "}") + s = s.replace("Csc" + i, "\\csc@{" + i[1:-1] + "}") return s @@ -211,9 +209,9 @@ def replaceSec(s): arguments = findArgs(s, "Sec") for i in arguments: if len(i) == 3: - s = s.replace("Sec" + i, "\\sec@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sec" + i, "\\sec@@{" + i[1:-1] + "}") else: - s = s.replace("Sec" + i, "\\sec@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sec" + i, "\\sec@{" + i[1:-1] + "}") return s @@ -221,9 +219,9 @@ def replaceCot(s): arguments = findArgs(s, "Cot") for i in arguments: if len(i) == 3: - s = s.replace("Cot" + i, "\\cot@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Cot" + i, "\\cot@@{" + i[1:-1] + "}") else: - s = s.replace("Cot" + i, "\\cot@{" + i[1:len(i) - 1] + "}") + s = s.replace("Cot" + i, "\\cot@{" + i[1:-1] + "}") return s @@ -231,9 +229,9 @@ def replaceCosh(s): arguments = findArgs(s, "Cosh") for i in arguments: if len(i) == 3: - s = s.replace("Cosh" + i, "\\cosh@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Cosh" + i, "\\cosh@@{" + i[1:-1] + "}") else: - s = s.replace("Cosh" + i, "\\cosh@{" + i[1:len(i) - 1] + "}") + s = s.replace("Cosh" + i, "\\cosh@{" + i[1:-1] + "}") return s @@ -241,9 +239,9 @@ def replaceSinh(s): arguments = findArgs(s, "Sinh") for i in arguments: if len(i) == 3: - s = s.replace("Sinh" + i, "\\sinh@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sinh" + i, "\\sinh@@{" + i[1:-1] + "}") else: - s = s.replace("Sinh" + i, "\\sinh@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sinh" + i, "\\sinh@{" + i[1:-1] + "}") return s @@ -251,9 +249,9 @@ def replaceTanh(s): arguments = findArgs(s, "Tanh") for i in arguments: if len(i) == 3: - s = s.replace("Tanh" + i, "\\tanh@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Tanh" + i, "\\tanh@@{" + i[1:-1] + "}") else: - s = s.replace("Tanh" + i, "\\tanh@{" + i[1:len(i) - 1] + "}") + s = s.replace("Tanh" + i, "\\tanh@{" + i[1:-1] + "}") return s @@ -261,9 +259,9 @@ def replaceCsch(s): arguments = findArgs(s, "Csch") for i in arguments: if len(i) == 3: - s = s.replace("Csch" + i, "\\csch@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Csch" + i, "\\csch@@{" + i[1:-1] + "}") else: - s = s.replace("Csch" + i, "\\csch@{" + i[1:len(i) - 1] + "}") + s = s.replace("Csch" + i, "\\csch@{" + i[1:-1] + "}") return s @@ -271,9 +269,9 @@ def replaceSech(s): arguments = findArgs(s, "Sech") for i in arguments: if len(i) == 3: - s = s.replace("Sech" + i, "\\sech@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sech" + i, "\\sech@@{" + i[1:-1] + "}") else: - s = s.replace("Sech" + i, "\\sech@{" + i[1:len(i) - 1] + "}") + s = s.replace("Sech" + i, "\\sech@{" + i[1:-1] + "}") return s @@ -281,9 +279,9 @@ def replaceCoth(s): arguments = findArgs(s, "Coth") for i in arguments: if len(i) == 3: - s = s.replace("Coth" + i, "\\coth@@{" + i[1:len(i) - 1] + "}") + s = s.replace("Coth" + i, "\\coth@@{" + i[1:-1] + "}") else: - s = s.replace("Coth" + i, "\\coth@{" + i[1:len(i) - 1] + "}") + s = s.replace("Coth" + i, "\\coth@{" + i[1:-1] + "}") return s @@ -291,9 +289,9 @@ def replaceArcCos(s): arguments = findArgs(s, "ArcCos") for i in arguments: if len(i) == 3: - s = s.replace("ArcCos" + i, "\\acos@@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcCos" + i, "\\acos@@{" + i[1:-1] + "}") else: - s = s.replace("ArcCos" + i, "\\acos@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcCos" + i, "\\acos@{" + i[1:-1] + "}") return s @@ -301,9 +299,9 @@ def replaceArcSin(s): arguments = findArgs(s, "ArcSin") for i in arguments: if len(i) == 3: - s = s.replace("ArcSin" + i, "\\asin@@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcSin" + i, "\\asin@@{" + i[1:-1] + "}") else: - s = s.replace("ArcSin" + i, "\\asin@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcSin" + i, "\\asin@{" + i[1:-1] + "}") return s @@ -311,9 +309,9 @@ def replaceArcTan(s): arguments = findArgs(s, "ArcTan") for i in arguments: if len(i) == 3: - s = s.replace("ArcTan" + i, "\\atan@@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcTan" + i, "\\atan@@{" + i[1:-1] + "}") else: - s = s.replace("ArcTan" + i, "\\atan@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcTan" + i, "\\atan@{" + i[1:-1] + "}") return s @@ -321,9 +319,9 @@ def replaceArcCsc(s): arguments = findArgs(s, "ArcCsc") for i in arguments: if len(i) == 3: - s = s.replace("ArcCsc" + i, "\\acsc@@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcCsc" + i, "\\acsc@@{" + i[1:-1] + "}") else: - s = s.replace("ArcCsc" + i, "\\acsc@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcCsc" + i, "\\acsc@{" + i[1:-1] + "}") return s @@ -331,9 +329,9 @@ def replaceArcSec(s): arguments = findArgs(s, "ArcSec") for i in arguments: if len(i) == 3: - s = s.replace("ArcSec" + i, "\\asec@@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcSec" + i, "\\asec@@{" + i[1:-1] + "}") else: - s = s.replace("ArcSec" + i, "\\asec@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcSec" + i, "\\asec@{" + i[1:-1] + "}") return s @@ -341,9 +339,9 @@ def replaceArcCot(s): arguments = findArgs(s, "ArcCot") for i in arguments: if len(i) == 3: - s = s.replace("ArcCot" + i, "\\acot@@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcCot" + i, "\\acot@@{" + i[1:-1] + "}") else: - s = s.replace("ArcCot" + i, "\\acot@{" + i[1:len(i) - 1] + "}") + s = s.replace("ArcCot" + i, "\\acot@{" + i[1:-1] + "}") return s diff --git a/tex2Wiki/src/DLMFtex2Wiki.py b/tex2Wiki/src/DLMFtex2Wiki.py index 9b2577c..f53aa29 100644 --- a/tex2Wiki/src/DLMFtex2Wiki.py +++ b/tex2Wiki/src/DLMFtex2Wiki.py @@ -84,7 +84,7 @@ def DLMF(ofname, mmd, llinks, n): refEqs.append("") math = True elif math: - refEqs[len(refEqs) - 1] += line + refEqs[-1] += line if "\\end{equation}" in refLines[ i + 1] or "\\constraint" in refLines[ @@ -303,7 +303,7 @@ def DLMF(ofname, mmd, llinks, n): "

\n") elif math and parse: flagM = True - eqs[len(eqs) - 1] += line + eqs[-1] += line if not ( (not ( @@ -342,7 +342,7 @@ def DLMF(ofname, mmd, llinks, n): else: append_text(line) elif math and not parse: - eqs[len(eqs) - 1] += line + eqs[-1] += line if "\\end{equation}" in lines[ i + 1] or "\\constraint" in lines[ diff --git a/tex2Wiki/src/tex2Wiki.py b/tex2Wiki/src/tex2Wiki.py index 5bb0c24..c5e70a2 100644 --- a/tex2Wiki/src/tex2Wiki.py +++ b/tex2Wiki/src/tex2Wiki.py @@ -336,7 +336,7 @@ def readin(ofname, glossary, mmd): refEqs.append("") math = True elif math: - refEqs[len(refEqs) - 1] += line + refEqs[-1] += line if "\\end{equation}" in refLines[ i + 1] or "\\constraint" in refLines[ @@ -462,7 +462,7 @@ def readin(ofname, glossary, mmd): "

\n") elif math and parse: flagM = True - eqs[len(eqs) - 1] += line + eqs[-1] += line if "\\end{equation}" in lines[ i + @@ -499,7 +499,7 @@ def readin(ofname, glossary, mmd): else: append_text(line) elif math and not parse: - eqs[len(eqs) - 1] += line + eqs[-1] += line if "\\end{equation}" in lines[ i + 1] or "\\constraint" in lines[ From 250a46b8aa69922daf9406f04a69916da4dfac64 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 19 Jul 2016 14:02:49 -0400 Subject: [PATCH 164/402] Add unit tests --- maple2latex/README.md | 0 maple2latex/data/keys.json | 966 +++++++++--------- maple2latex/src/__init__.py | 0 maple2latex/src/classes.py | 79 -- maple2latex/src/main.py | 30 +- maple2latex/src/maple_tokenize.py | 2 + .../{translation_methods.py => translator.py} | 119 ++- 7 files changed, 595 insertions(+), 601 deletions(-) create mode 100644 maple2latex/README.md create mode 100644 maple2latex/src/__init__.py delete mode 100644 maple2latex/src/classes.py rename maple2latex/src/{translation_methods.py => translator.py} (68%) diff --git a/maple2latex/README.md b/maple2latex/README.md new file mode 100644 index 0000000..e69de29 diff --git a/maple2latex/data/keys.json b/maple2latex/data/keys.json index f0c8da9..a7ea2f8 100644 --- a/maple2latex/data/keys.json +++ b/maple2latex/data/keys.json @@ -1,485 +1,485 @@ { - "functions": { - "sqrt": [ - { - "args": 1, - "repr": ["\\sqrt{", "}"] - } - ], - - "sin": [ - { - "args": 1, - "repr": ["\\sin(", ")"] - } - ], - - "cos": [ - { - "args": 1, - "repr": ["\\cos(", ")"] - } - ], - - "tan": [ - { - "args": 1, - "repr": ["\\tan(", ")"] - } - ], - - "abs": [ - { - "args": 1, - "repr": ["\\abs{", "}"] - } - ], - - "exp": [ - { - "args": 1, - "repr": ["e^{", "}"] - } - ], - - "log": [ - { - "args": 1, - "repr": ["\\log{(", ")}"] - }, - - { - "args": 2, - "repr": ["\\log_{", "} (", ")"] - } - ], - - "ln": [ - { - "args": 1, - "repr": ["\\ln{(", ")}"] - } - ], - - "floor": [ - { - "args": 1, - "repr": ["\\floor{", "}"] - } - ], - - "sum": [ - { - "args": 3, - "repr": ["\\sum_{", "}^{", "} (", ")"] - } - ], - - "GAMMA": [ - { - "args": 1, - "repr": ["\\EulerGamma@{", "}"] - } - ], - - "bernoulli": [ - { - "args": 1, - "repr": ["\\BernoulliB{", "}"] - } - ], - - "BesselI": [ - { - "args": 2, - "repr": ["\\BesselI{", "}@{", "}"] - } - ], - - "BesselJ": [ - { - "args": 2, - "repr": ["\\BesselJ{", "}@{", "}"] - } - ], - - "BesselK": [ - { - "args": 2, - "repr": ["\\BesselK{", "}@{", "}"] - } - ], - - "BesselY": [ - { - "args": 2, - "repr": ["\\BesselY{", "}@{", "}"] - } - ], - - "dawson": [ - { - "args": 1, - "repr": ["\\DawsonsInt@{", "}"] - } - ], - - "Ei": [ - { - "args": 2, - "repr": ["\\ExpIntn{", "}@{", "}"] - }, - - { - "args": 1, - "repr": ["\\ExpInt@{", "}"] - } - ], - - "erfc": [ - { - "args": 1, - "repr": ["\\erfc@@{(", ")}"] - } - ], - - "erf": [ - { - "args": 1, - "repr": ["\\erf@@{(", ")}"] - } - ], - - "FresnelC": [ - { - "args": 1, - "repr": ["\\FresnelCos@{", "}"] - } - ], - - "FresnelS": [ - { - "args": 1, - "repr": ["\\FresnelSin@{", "}"] - } - ], - - "HankelH1": [ - { - "args": 2, - "repr": ["\\HankelHi{", "}@{", "}"] - } - ], - - "KummerU": [ - { - "args": 3, - "repr": ["\\KummerU@{", "}{", "}{", "}"] - } - ], - - "CylinderU": [ - { - "args": 2, - "repr": ["\\ParabolicU@{", "}{", "}"] - } - ], - - "Psi": [ - { - "args": 2, - "repr": ["\\polygamma{", "}@{", "}"] - }, - - { - "args": 1, - "repr": ["\\digamma@{", "}"] - } - ], - - "WhittakerW": [ - { - "args": 3, - "repr": ["\\WhitW{", "}{", "}@{", "}"] - } - ], - - "Zeta": [ - { - "args": 1, - "repr": ["\\RiemannZeta@{", "}"] - } - ], - - "arccos": [ - { - "args": 1, - "repr": ["\\Acos@@{(", ")}"] - } - ], - - "arccosh": [ - { - "args": 1, - "repr": ["\\Acosh@@{(", ")}"] - } - ], - - "arcsin": [ - { - "args": 1, - "repr": ["\\Asin@@{(", ")}"] - } - ], - - "arcsinh": [ - { - "args": 1, - "repr": ["\\Asinh@@{(", ")}"] - } - ], - - "arctan": [ - { - "args": 1, - "repr": ["\\Atan@@{(", ")}"] - } - ], - - "arctanh": [ - { - "args": 1, - "repr": ["\\Atanh@@{(", ")}"] - } - ], - - "sinh": [ - { - "args": 1, - "repr": ["\\sinh@@{(", ")}"] - } - ], - - "cosh": [ - { - "args": 1, - "repr": ["\\cosh@@{(", ")}"] - } - ], - - "coth": [ - { - "args": 1, - "repr": ["\\coth@@{(", ")}"] - } - ], - - "tanh": [ - { - "args": 1, - "repr": ["\\tanh@@{(", ")}"] - } - ], - - "Re": [ - { - "args": 1, - "repr": ["\\Re(", ")"] - } - ], - - "Im": [ - { - "args": 1, - "repr": ["\\Im(", ")"] - } - ], - - "doublefactorial": [ - { - "args": 1, - "repr": ["(", ")!!"] - } - ], - - "hypergeom": [ - { - "args": 5, - "repr": ["\\HyperpFq{", "}{", "}@@{", "}{", "}{", "}"] - } - ], - - "pochhammer": [ - { - "args": 2, - "repr": ["\\pochhammer{", "}{", "}"] - } - ], - - "Besseli": [ - { - "args": 2, - "repr": ["\\SphBesselIi{", "}@{", "}"] - } - ], - - "Besselj": [ - { - "args": 2, - "repr": ["\\SphBesselJ{", "}@{", "}"] - } - ], - - "cerf": [ - { - "args": 1, - "repr": ["\\erfw@@{(", ")}"] - } - ], - - "Ein": [ - { - "args": 1, - "repr": ["\\ExpIntEin@{", "}"] - } - ], - - "erfcI": [ - { - "args": 2, - "repr": ["I^{", "} \\erfc@@{(", ")}"] - } - ], - - "hankelsymb": [ - { - "args": 2, - "repr": ["\\HankelSym{", "}{", "}"] - } - ], - - "lincgamma": [ - { - "args": 2, - "repr": ["\\incgamma@{", "}{", "}"] - } - ], - - "qhyper": [ - { - "args": 6, - "repr": ["\\qHyperrphis{", "}{", "}@@{", "}{", "}{", "}{", "}"] - } - ], - - "uincgamma": [ - { - "args": 2, - "repr": ["\\IncGamma@{", "}{", "}"] - } - ], - - "WhittakerPsi": [ - { - "args": 3, - "repr": ["\\WhitPsi{", "}{", "}@{", "}"] - } - ], - - "goldenratio": [ - { - "args": 0, - "repr": ["\\GoldenRatio"] - } - ], - - "Gompertz": [ - { - "args": 0, - "repr": ["\\GompertzConstant"] - } - ], - - "rabbit": [ - { - "args": 0, - "repr": ["\\rabbitConstant"] - } - ], - - "combinatfibonacci": [ - { - "args": 1, - "repr": ["\\FibonacciNumber{", "}"] - } - ], - - "argument": [ - { - "args": 1, - "repr": ["\\arg{(", ")}"] - } - ], - - "RealRange": [ - { - "args": 2, - "repr": ["(", ", ", ")"] - } - ], - - "Open": [ - { - "args": 1, - "repr": ["(", ")"] - } - ] - }, - - "symbols": { - "alpha": "n", - "beta": "\\beta", - "gamma": "\\gamma", - "delta": "\\delta", - "epsilon": "\\epsilon", - "zeta": "\\zeta", - "eta": "\\eta", - "theta": "\\theta", - "iota": "\\iota", - "kappa": "\\kappa", - "lambda": "\\lambda", - "mu": "\\mu", - "nu": "\\nu", - "xi": "\\xi", - "pi": "\\pi", - "rho": "\\rho", - "sigma": "\\sigma", - "tau": "\\tau", - "upsilon": "\\upsilon", - "phi": "\\phi", - "chi": "\\chi", - "psi": "\\psi", - "omega": "\\omega", - "Pi": "\\pi", - "I": "i", - "Catalan": "\\CatalansConstant", - "infinity": "\\infty", - "Delian": "\\sqrt[\\leftroot{-2}\\uproot{2} 3]{2}", - "Theodorus": "\\sqrt{3}", - "integer": "\\mathbb{Z}" - }, - - "constraints": { - "Not(negint)": "\\CC\\backslash\\ZZ^-", - "Not(nonposint)": "\\CC\\backslash\\ZZ_0^-", - "Not(posint)": "\\CC\\backslash\\ZZ^+", - "::Not(positive)": "< 0", - "Not(integer)": "\\CC\\backslash\\ZZ", - "posint": "\\mathbb{Z^+}", - "nonnegint": "\\ZZ\\backslash\\ZZ^-", - "::positive": "> 0", - "::nonnegative": "\\geq 0", - "::nonneg": "\\geq 0", - "::": "\\in " - } + "functions": { + "sqrt": [ + { + "args": 1, + "repr": ["\\sqrt{", "}"] + } + ], + + "sin": [ + { + "args": 1, + "repr": ["\\sin(", ")"] + } + ], + + "cos": [ + { + "args": 1, + "repr": ["\\cos(", ")"] + } + ], + + "tan": [ + { + "args": 1, + "repr": ["\\tan(", ")"] + } + ], + + "abs": [ + { + "args": 1, + "repr": ["\\abs{", "}"] + } + ], + + "exp": [ + { + "args": 1, + "repr": ["e^{", "}"] + } + ], + + "log": [ + { + "args": 1, + "repr": ["\\log{(", ")}"] + }, + + { + "args": 2, + "repr": ["\\log_{", "} {(", ")}"] + } + ], + + "ln": [ + { + "args": 1, + "repr": ["\\ln{(", ")}"] + } + ], + + "floor": [ + { + "args": 1, + "repr": ["\\floor{", "}"] + } + ], + + "sum": [ + { + "args": 3, + "repr": ["\\sum_{", "}^{", "} (", ")"] + } + ], + + "GAMMA": [ + { + "args": 1, + "repr": ["\\EulerGamma@{", "}"] + } + ], + + "bernoulli": [ + { + "args": 1, + "repr": ["\\BernoulliB{", "}"] + } + ], + + "BesselI": [ + { + "args": 2, + "repr": ["\\BesselI{", "}@{", "}"] + } + ], + + "BesselJ": [ + { + "args": 2, + "repr": ["\\BesselJ{", "}@{", "}"] + } + ], + + "BesselK": [ + { + "args": 2, + "repr": ["\\BesselK{", "}@{", "}"] + } + ], + + "BesselY": [ + { + "args": 2, + "repr": ["\\BesselY{", "}@{", "}"] + } + ], + + "dawson": [ + { + "args": 1, + "repr": ["\\DawsonsInt@{", "}"] + } + ], + + "Ei": [ + { + "args": 2, + "repr": ["\\ExpIntn{", "}@{", "}"] + }, + + { + "args": 1, + "repr": ["\\ExpInt@{", "}"] + } + ], + + "erfc": [ + { + "args": 1, + "repr": ["\\erfc@@{(", ")}"] + } + ], + + "erf": [ + { + "args": 1, + "repr": ["\\erf@@{(", ")}"] + } + ], + + "FresnelC": [ + { + "args": 1, + "repr": ["\\FresnelCos@{", "}"] + } + ], + + "FresnelS": [ + { + "args": 1, + "repr": ["\\FresnelSin@{", "}"] + } + ], + + "HankelH1": [ + { + "args": 2, + "repr": ["\\HankelHi{", "}@{", "}"] + } + ], + + "KummerU": [ + { + "args": 3, + "repr": ["\\KummerU@{", "}{", "}{", "}"] + } + ], + + "CylinderU": [ + { + "args": 2, + "repr": ["\\ParabolicU@{", "}{", "}"] + } + ], + + "Psi": [ + { + "args": 2, + "repr": ["\\polygamma{", "}@{", "}"] + }, + + { + "args": 1, + "repr": ["\\digamma@{", "}"] + } + ], + + "WhittakerW": [ + { + "args": 3, + "repr": ["\\WhitW{", "}{", "}@{", "}"] + } + ], + + "Zeta": [ + { + "args": 1, + "repr": ["\\RiemannZeta@{", "}"] + } + ], + + "arccos": [ + { + "args": 1, + "repr": ["\\Acos@@{(", ")}"] + } + ], + + "arccosh": [ + { + "args": 1, + "repr": ["\\Acosh@@{(", ")}"] + } + ], + + "arcsin": [ + { + "args": 1, + "repr": ["\\Asin@@{(", ")}"] + } + ], + + "arcsinh": [ + { + "args": 1, + "repr": ["\\Asinh@@{(", ")}"] + } + ], + + "arctan": [ + { + "args": 1, + "repr": ["\\Atan@@{(", ")}"] + } + ], + + "arctanh": [ + { + "args": 1, + "repr": ["\\Atanh@@{(", ")}"] + } + ], + + "sinh": [ + { + "args": 1, + "repr": ["\\sinh@@{(", ")}"] + } + ], + + "cosh": [ + { + "args": 1, + "repr": ["\\cosh@@{(", ")}"] + } + ], + + "coth": [ + { + "args": 1, + "repr": ["\\coth@@{(", ")}"] + } + ], + + "tanh": [ + { + "args": 1, + "repr": ["\\tanh@@{(", ")}"] + } + ], + + "Re": [ + { + "args": 1, + "repr": ["\\Re(", ")"] + } + ], + + "Im": [ + { + "args": 1, + "repr": ["\\Im(", ")"] + } + ], + + "doublefactorial": [ + { + "args": 1, + "repr": ["(", ")!!"] + } + ], + + "hypergeom": [ + { + "args": 5, + "repr": ["\\HyperpFq{", "}{", "}@@{", "}{", "}{", "}"] + } + ], + + "pochhammer": [ + { + "args": 2, + "repr": ["\\pochhammer{", "}{", "}"] + } + ], + + "Besseli": [ + { + "args": 2, + "repr": ["\\SphBesselIi{", "}@{", "}"] + } + ], + + "Besselj": [ + { + "args": 2, + "repr": ["\\SphBesselJ{", "}@{", "}"] + } + ], + + "cerf": [ + { + "args": 1, + "repr": ["\\erfw@@{(", ")}"] + } + ], + + "Ein": [ + { + "args": 1, + "repr": ["\\ExpIntEin@{", "}"] + } + ], + + "erfcI": [ + { + "args": 2, + "repr": ["I^{", "} \\erfc@@{(", ")}"] + } + ], + + "hankelsymb": [ + { + "args": 2, + "repr": ["\\HankelSym{", "}{", "}"] + } + ], + + "lincgamma": [ + { + "args": 2, + "repr": ["\\incgamma@{", "}{", "}"] + } + ], + + "qhyper": [ + { + "args": 6, + "repr": ["\\qHyperrphis{", "}{", "}@@{", "}{", "}{", "}{", "}"] + } + ], + + "uincgamma": [ + { + "args": 2, + "repr": ["\\IncGamma@{", "}{", "}"] + } + ], + + "WhittakerPsi": [ + { + "args": 3, + "repr": ["\\WhitPsi{", "}{", "}@{", "}"] + } + ], + + "goldenratio": [ + { + "args": 0, + "repr": ["\\GoldenRatio"] + } + ], + + "Gompertz": [ + { + "args": 0, + "repr": ["\\GompertzConstant"] + } + ], + + "rabbit": [ + { + "args": 0, + "repr": ["\\rabbitConstant"] + } + ], + + "combinatfibonacci": [ + { + "args": 1, + "repr": ["\\FibonacciNumber{", "}"] + } + ], + + "argument": [ + { + "args": 1, + "repr": ["\\arg{(", ")}"] + } + ], + + "RealRange": [ + { + "args": 2, + "repr": ["(", ", ", ")"] + } + ], + + "Open": [ + { + "args": 1, + "repr": ["(", ")"] + } + ] + }, + + "symbols": { + "alpha": "n", + "beta": "\\beta", + "gamma": "\\gamma", + "delta": "\\delta", + "epsilon": "\\epsilon", + "zeta": "\\zeta", + "eta": "\\eta", + "theta": "\\theta", + "iota": "\\iota", + "kappa": "\\kappa", + "lambda": "\\lambda", + "mu": "\\mu", + "nu": "\\nu", + "xi": "\\xi", + "pi": "\\pi", + "rho": "\\rho", + "sigma": "\\sigma", + "tau": "\\tau", + "upsilon": "\\upsilon", + "phi": "\\phi", + "chi": "\\chi", + "psi": "\\psi", + "omega": "\\omega", + "Pi": "\\pi", + "I": "i", + "Catalan": "\\CatalansConstant", + "infinity": "\\infty", + "Delian": "\\sqrt[\\leftroot{-2}\\uproot{2} 3]{2}", + "Theodorus": "\\sqrt{3}", + "integer": "\\mathbb{Z}" + }, + + "constraints": { + "Not(negint)": "\\CC\\backslash\\ZZ^-", + "Not(nonposint)": "\\CC\\backslash\\ZZ_0^-", + "Not(posint)": "\\CC\\backslash\\ZZ^+", + "::Not(positive)": "< 0", + "Not(integer)": "\\CC\\backslash\\ZZ", + "posint": "\\mathbb{Z^+}", + "nonnegint": "\\ZZ\\backslash\\ZZ^-", + "::positive": "> 0", + "::nonnegative": "\\geq 0", + "::nonneg": "\\geq 0", + "::": "\\in " + } } \ No newline at end of file diff --git a/maple2latex/src/__init__.py b/maple2latex/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/maple2latex/src/classes.py b/maple2latex/src/classes.py deleted file mode 100644 index 3709e92..0000000 --- a/maple2latex/src/classes.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/user/bin/env python - -__author__ = "Joon Bang" -__status__ = "Development" - -from translation_methods import make_equation -from copy import copy - - -class MapleFile(object): - def __init__(self, filename): - self.filename = filename - self.formulae = self.obtain_formulae() - - def obtain_formulae(self): - contents = open(self.filename).read() - - return [MapleEquation(piece.split("\n")) for piece in contents.split("create(") - if "):" in piece or ");" in piece] - - def convert_formulae(self): - return '\n\n'.join([make_equation(copy(formula)) for formula in self.formulae]) - - def __str__(self): - return "MapleFile of " + self.filename - - -class MapleEquation(object): - def __init__(self, inp): - # creates a dictionary called "fields", containing all the Maple fields - self.fields = {"category": "", "constraints": "", "begin": "", "factor": "", "front": "", "parameters": "", - "type": inp.pop(0).split("'")[1]} - - for i, line in enumerate(inp): - line = line.split(" = ", 1) - - if len(line) > 1: - line[0] = line[0].strip() - - if line[0] in ["category"]: - line[1] = line[1].strip()[1:-1].strip() - - elif line[0] == "begin" and "proc (x) [1, x] end proc" in line[1]: - temp = [[1, int(d)] for d in inp[i + 2].split(",")] - if len(temp) > 10: - temp = temp[:10] - line[1] = str(temp)[1:-1] - - elif line[0] == "booklabelv1" and line[1] == '"",': - line[1] = "No label" - - elif line[0] in ["booklabelv1", "booklabelv2", "general", "constraints", "begin", "parameters"]: - line[1] = line[1].strip()[1:-2].strip() - - elif line[0] in ["lhs", "factor", "front", "even", "odd"]: - if line[1].strip()[-1] == ",": - line[1] = line[1].strip()[:-1] - line[1] = line[1].strip() - self.fields[line[0]] = line[1] - - # assign fields containing information about the equation - self.eq_type = self.fields["type"] - self.category = self.fields["category"] - self.label = self.fields["booklabelv1"] - self.lhs = self.fields["lhs"] - self.factor = self.fields["factor"] - self.front = self.fields["front"] - self.begin = self.fields["begin"] - self.constraints = self.fields["constraints"] - self.parameters = self.fields["parameters"] - - # even-odd case handling - if "general" in self.fields: - self.general = [self.fields["general"]] - elif "even" in self.fields and "odd" in self.fields: - self.general = [self.fields["even"], self.fields["odd"]] - - def __str__(self): - return '\n'.join([s + ": " + self.fields[s] for s in self.fields]) diff --git a/maple2latex/src/main.py b/maple2latex/src/main.py index 14a7af4..fd8ae06 100644 --- a/maple2latex/src/main.py +++ b/maple2latex/src/main.py @@ -4,10 +4,11 @@ __status__ = "Development" import os -from classes import MapleFile +import copy +from src.translator import MapleEquation, make_equation TABLE = dict() -with open("info/section_names") as name_info: +with open("data/section_names") as name_info: for line in name_info.read().split("\n"): if line != "" and "%" not in line: key, value = line.split(" : ") @@ -30,7 +31,26 @@ ROOT = "functions" -def translate_file(filename: str): +class MapleFile(object): + def __init__(self, filename): + self.filename = filename + self.formulae = self.obtain_formulae() + + def obtain_formulae(self): + contents = open(self.filename).read() + + return [MapleEquation(piece.split("\n")) for piece in contents.split("create(") + if "):" in piece or ");" in piece] + + def convert_formulae(self): + return '\n\n'.join([make_equation(copy.copy(formula)) for formula in self.formulae]) + + def __str__(self): + return "MapleFile of " + self.filename + + +def translate_file(filename): + # type: (str) """Translates all the formulae in a file.""" with open("out/test.tex", "w") as test, open("out/primer") as primer: @@ -38,6 +58,7 @@ def translate_file(filename: str): def translate_directories(): + # type: () """Generates and writes the results of traversing the root directory and translating all Maple files.""" root_depth = len(ROOT.split("/")) @@ -59,7 +80,8 @@ def translate_directories(): MapleFile(info[0] + "/" + file_name).convert_formulae() + "\n\n" with open("out/test.tex", "w") as test, open("out/primer") as primer: - test.write(primer.read() + result + "\n\\end{document}") + result = primer.read() + result + "\n\\end{document}" + test.write(result) if __name__ == '__main__': translate_directories() diff --git a/maple2latex/src/maple_tokenize.py b/maple2latex/src/maple_tokenize.py index 588784b..7561fce 100644 --- a/maple2latex/src/maple_tokenize.py +++ b/maple2latex/src/maple_tokenize.py @@ -21,6 +21,8 @@ ")", "{", "}", + "[", + "]", "\'", "\"", "|", diff --git a/maple2latex/src/translation_methods.py b/maple2latex/src/translator.py similarity index 68% rename from maple2latex/src/translation_methods.py rename to maple2latex/src/translator.py index c5013a5..933659b 100644 --- a/maple2latex/src/translation_methods.py +++ b/maple2latex/src/translator.py @@ -3,9 +3,9 @@ __author__ = "Joon Bang" __status__ = "Development" +import copy import json -from maple_tokenize import tokenize -from copy import copy +from src.maple_tokenize import tokenize INFO = json.loads(open("data/keys.json").read()) @@ -16,19 +16,68 @@ SPECIAL = {"(": "\\left(", ")": "\\right)", "+-": "-", "\\subplus-": "-", "^{1}": "", "\\inNot": "\\notin"} -def replace_strings(string: str, keys: dict) -> str: - """ - Replaces multiple strings with multiple other strings, stored in lists of length two in li. - The first element is the string to find, and the second element is the replacement string. - A dictionary can also be given. - """ +class MapleEquation(object): + def __init__(self, inp): + # creates a dictionary called "fields", containing all the Maple fields + self.fields = {"category": "", "constraints": "", "begin": "", "factor": "", "front": "", "parameters": "", + "type": inp.pop(0).split("'")[1]} + + for i, line in enumerate(inp): + line = line.split(" = ", 1) + + if len(line) > 1: + line[0] = line[0].strip() + + if line[0] in ["category"]: + line[1] = line[1].strip()[1:-1].strip() + + elif line[0] == "begin" and "proc (x) [1, x] end proc" in line[1]: + temp = [[1, int(d)] for d in inp[i + 2].split(",")] + if len(temp) > 10: + temp = temp[:10] + line[1] = str(temp)[1:-1] + + elif line[0] == "booklabelv1" and line[1] == '"",': + line[1] = "No label" + + elif line[0] in ["booklabelv1", "booklabelv2", "general", "constraints", "begin", "parameters"]: + line[1] = line[1].strip()[1:-2].strip() + + elif line[0] in ["lhs", "factor", "front", "even", "odd"]: + if line[1].strip()[-1] == ",": + line[1] = line[1].strip()[:-1] + line[1] = line[1].strip() + self.fields[line[0]] = line[1] + + # assign fields containing information about the equation + self.eq_type = self.fields["type"] + self.category = self.fields["category"] + self.label = self.fields["booklabelv1"] + self.lhs = self.fields["lhs"] + self.factor = self.fields["factor"] + self.front = self.fields["front"] + self.begin = self.fields["begin"] + self.constraints = self.fields["constraints"] + self.parameters = self.fields["parameters"] + + # even-odd case handling + if "general" in self.fields: + self.general = [self.fields["general"]] + elif "even" in self.fields and "odd" in self.fields: + self.general = [self.fields["even"], self.fields["odd"]] + + +def replace_strings(string, keys): + # type: (str, dict) -> str + """Replaces key strings with their mapped value.""" for key in list(keys): string = string.replace(key, keys[key]) return string -def parse_brackets(exp: (str, list)) -> list: +def parse_brackets(exp): + # type: ((str, list)) -> list """Obtains the contents from data encapsulated in square brackets.""" exp = exp[1:-1].split(",") @@ -43,7 +92,8 @@ def parse_brackets(exp: (str, list)) -> list: return exp -def trim_parens(exp: str) -> str: +def trim_parens(exp): + # type: (str) -> str """Removes unnecessary parentheses.""" if exp == "": @@ -72,13 +122,15 @@ def trim_parens(exp: str) -> str: return exp -def make_frac(parts: list): +def make_frac(parts): + # type: (list) -> str """Generate a LaTeX fraction from its numerator and denominator.""" return translate("(" + parts[0] + ") / (" + parts[1] + ")") -def basic_translate(exp: list) -> str: +def basic_translate(exp): + # type: (list) -> str """Translates basic mathematical operations.""" for order in range(3): @@ -95,11 +147,11 @@ def basic_translate(exp: list) -> str: elif exp[i] == "^" and order == 0: power = trim_parens(exp.pop(i + 1)) - exp[i - 1] += "^{%s}" % power + exp[i - 1] += "^{" + power + "}" modified = True elif exp[i] == "*" and order == 1: - if "\\" in exp[i - 1] and exp[i + 1][0] != "\\": + if exp[i - 1][-1] not in "}]" and "\\" in exp[i - 1] and exp[i + 1][0] != "\\": exp[i - 1] += " " exp[i - 1] += exp.pop(i + 1) @@ -120,15 +172,8 @@ def basic_translate(exp: list) -> str: return ''.join(exp) -def count_args(string: str, pattern: str) -> int: - """Counts the arguments contained in a string, based on a delimiter pattern.""" - if string == "": - return 0 - - return string.count(pattern) + 1 - - -def get_arguments(function: str, arg_string: str) -> list: +def get_arguments(function, arg_string): + # type: (str, list) -> list """Obtains the arguments of a function.""" if arg_string == ["(", ")"]: @@ -142,10 +187,10 @@ def get_arguments(function: str, arg_string: str) -> list: if function == "qhyper": args += args.pop(2).split(",") - for i in [1, 0]: + for p, i in enumerate([1, 0]): arg_count = 0 - if args[i] != "": - arg_count = arg_string.count(",") + 1 + if args[i + p] != "": + arg_count = args[i + p].count(",") + 1 args.insert(0, str(arg_count)) @@ -161,14 +206,15 @@ def get_arguments(function: str, arg_string: str) -> list: return args -def generate_function(name: str, args: list) -> str: +def generate_function(name, args): + # type: (str, list) -> str """Generate a function with the provided function name and arguments.""" result = list() for n in FUNCTIONS: for variant in FUNCTIONS[n]: if name == n and len(args) == variant["args"]: - result = copy(variant["repr"]) + result = copy.copy(variant["repr"]) for n in range(1, len(result)): result.insert(2 * n - 1, args[n - 1]) @@ -176,7 +222,8 @@ def generate_function(name: str, args: list) -> str: return ''.join(result) -def translate(exp: str) -> str: +def translate(exp): + # type: (str) -> str """Format Maple code as LaTeX.""" if exp == "": @@ -191,7 +238,8 @@ def translate(exp: str) -> str: if exp[i] == s: exp[i] = SYMBOLS[s] - for i in range(len(exp)-1, -1, -1): + i = len(exp) - 1 + while i >= 0: if exp[i] == "(": r = i + exp[i:].index(")") piece = exp[i:r + 1] @@ -214,10 +262,13 @@ def translate(exp: str) -> str: exp = exp[0:i] + [piece] + exp[r + 1:] + i -= 1 + return basic_translate(exp) -def make_equation(eq: "MapleEquation") -> str: +def make_equation(eq, view_metadata=False): + # type: (MapleEquation{, bool}) -> str """Make a LaTeX equation based on a MapleEquation object.""" eq.lhs = translate(eq.lhs) @@ -233,7 +284,7 @@ def make_equation(eq: "MapleEquation") -> str: if eq.begin != "": eq.begin = parse_brackets(eq.begin) - equation = "\\begin{equation*}\\tag{%s}\n %s\n = " % (eq.label, eq.lhs) + equation = "\\begin{equation*}\\tag{" + eq.label + "}\n " + eq.lhs + "\n = " if eq.factor == "1": eq.factor = "" @@ -280,14 +331,12 @@ def make_equation(eq: "MapleEquation") -> str: equation += "\\dots" # adds metadata - view_metadata = False - if view_metadata: equation += "\n\\end{equation*}" equation += "\n\\begin{center}" equation += "\nParameters: $$" + eq.parameters + "$$" equation += "\n$$" + translate(eq.constraints) + "$$" - equation += eq.category + equation += "\n" + eq.category equation += "\n\\end{center}" else: equation += "\n % \\constraint{$" + translate(eq.constraints) + "$}" From 1c977d73a06947ad334f0deab738fe3c04499925 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 19 Jul 2016 14:05:24 -0400 Subject: [PATCH 165/402] Fix issues with for loop --- maple2latex/src/translator.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 933659b..eda0864 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -234,9 +234,8 @@ def translate(exp): exp = tokenize(exp) for i in range(len(exp)): - for s in SYMBOLS: - if exp[i] == s: - exp[i] = SYMBOLS[s] + if exp[i] in SYMBOLS: + exp[i] = SYMBOLS[exp[i]] i = len(exp) - 1 while i >= 0: From 4b6f4b08bcc15618caecf3a87689aa7b2b882f5d Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 19 Jul 2016 14:08:49 -0400 Subject: [PATCH 166/402] Fix more issues --- maple2latex/src/translator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index eda0864..1c07228 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -233,9 +233,9 @@ def translate(exp): exp = replace_strings(exp, {"functions:-": ""}) exp = tokenize(exp) - for i in range(len(exp)): + for i, s in enumerate(exp): if exp[i] in SYMBOLS: - exp[i] = SYMBOLS[exp[i]] + exp[i] = SYMBOLS[s] i = len(exp) - 1 while i >= 0: From c5c16aca0077abe2d8970a2b81cde82aaec68332 Mon Sep 17 00:00:00 2001 From: joonbang Date: Tue, 19 Jul 2016 14:39:52 -0400 Subject: [PATCH 167/402] Update CONTRIBUTING.md --- CONTRIBUTING.md | 54 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d834a55..258684e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,49 @@ -Plese use pull request to contribute to the project. -Check out our guide at http://drmf.wmflabs.org/wiki/GitHub how to use git. +# Guidelines to Contributing -## Example -See the following pull request: +## Making Changes to the Repository +Please use pull requests to contribute to the project. -https://github.com/DRMF/DRMF-Seeding-Project/pull/19 +If you are unfamiliar with GitHub, read the [DRMF guide](http://drmf.wmflabs.org/wiki/GitHub). + +### Sample Pull Request +[This](https://github.com/DRMF/DRMF-Seeding-Project/pull/19) is an example of a good pull request. This pull request satisfies the following properties: -1. It is small (incremental) -2. It improves the readability -3. It adds more tests -4. It demonstrates how to add issues for aspects that can be fixed later + +1. It is small/incremental. + +2. It improves the readability of the code. + +3. It adds more tests. + +4. It demonstrates how to add issues for aspects that can be fixed later. + +## Recommended IDEs +PyCharm is recommended for Python development. For other languages, their respective JetBrains IDEs should be used. + +## Coding Style + +All Python code should be written for Python 2.7, and should follow [PEP-8 conventions](https://www.python.org/dev/peps/pep-0008/). In PyCharm, code can be reformatted to follow some PEP-8 conventions, using Code -> Reformat Code. Be warned, Reformat Code will *not* fix all issues. In addition, PyCharm will warn you about code that violates PEP-8 standards. + +Code in other languages should follow standard conventions for that language. + +## Unit Tests + +All important code meant for use should have unit tests written for them. In Python, this can be achieved through the built-in [```unittest```](https://docs.python.org/2.7/library/unittest.html) module. + +Ideally, unit tests should cover every single possibility, every input and outcome, every line of code. A more realistic goal is "90%" coverage. Coverage can be checked through Coveralls. The idea is that, by the time code gets to production, there should be no possibility of unexpected output, since all possible types of inputs should have been tested. + +Unit tests should be stored in a separate "test" folder. + +## Best Practices + +Please follow the instructions [here](http://chris.beams.io/posts/git-commit/) on how to write git commit messages. + +PyCharm can help resolve merge conflicts. To resolve conflicts in your project, navigate to VCS -> Git -> Resolve Conflicts. Merge conflicts can also be resolved manually, through the steps in [this guide](https://confluence.atlassian.com/bitbucket/resolve-merge-conflicts-704414003.html). + +Code should be stored in a "src" folder. + +All subprojects must have README.md files. A guide may be found [here](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2). Note that some of these requirements may not make sense to put in your README.md. + +Make good use of .gitignore. Anything that has been generated by code in the repository (compiled code, test files, test output, etc.) should be in your .gitignore. The easiest way to do this is to move these files into a folder, and gitignore that folder. + From 4d1cd2955239c842aa197f0e7bc14917bd682ac1 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Tue, 19 Jul 2016 14:48:18 -0400 Subject: [PATCH 168/402] Fix crash error on test_replace_i.py --- AlexDanoff/src/math_function.py | 72 +++++++++++++++++++++++------- AlexDanoff/src/replace_special.py | 73 ++++++++++++++----------------- AlexDanoff/test/test_replace_i.py | 4 +- 3 files changed, 90 insertions(+), 59 deletions(-) diff --git a/AlexDanoff/src/math_function.py b/AlexDanoff/src/math_function.py index 9536ffc..33ae8de 100644 --- a/AlexDanoff/src/math_function.py +++ b/AlexDanoff/src/math_function.py @@ -1,7 +1,5 @@ import math_mode import string -from utilities import readin -from utilities import writeout import re def math_string(file): @@ -9,6 +7,7 @@ def math_string(file): string = open(file).read() output = [] ranges = math_mode.find_math_ranges(string) + #print ranges for i in ranges: new = string[i[0]:i[1]] output.append(new) @@ -27,24 +26,68 @@ def change_original(o_file, changed_math_string): return edited -def index_spacing(file, out_file): - used = open(file).read() +def formatting(file_str): + # Proper spacing for the indexes and gets rid of all non begin{eq end{eq text + + commands = r'\\[a-zA-Z]+' updated = [] - IND_START = r'\index{' + IND_START = r'\index\{' ind_str = "" in_ind = False previous = "" - lines = used.split("\n") + + ranges = math_mode.find_math_ranges(file_str) + + lines = file_str.split('\n') + in_eq = False + been_in_eq = False + + + section = r'\\[a-zA-Z]*section' + + re.compile(commands) + re.compile(section) + past_last = 0 for line in lines: - # if this line is an index start storing it, or write it if we're done with the indexes + past_last += len(line) + + if '\\begin{equation}' in line: + in_eq = True + been_in_eq = False + if '\\end{equation}' in line: + updated.append(line) + in_eq = False + continue + + if in_eq: + updated.append(line) + + else: + # not in eq + print line + if not been_in_eq: + # if text line != command + if re.match(commands, line) or line == '': + updated.append(line) + else: + # not in eq but already been in eq + if '\\index' in line or re.match(section,line) or line == '': + updated.append(line) + + if past_last > ranges[-1][1]: + # In section after last eq + if re.match(commands,line) or line == '': + updated.append(line) + + # if this line is an index start storing it,or write it if we're done with the indexes if IND_START in line: in_ind = True ind_str += line + "\n" - continue - elif in_ind: + + if in_ind: in_ind = False # add a preceding newline if one is not already present @@ -52,21 +95,18 @@ def index_spacing(file, out_file): ind_str = "\n" + ind_str fullsplit = ind_str.split("\n") - updated.extend(fullsplit) ind_str = "" + previous = line - updated.append(line) wrote = "\n".join(updated) + wrote = wrote # remove consecutive blank lines and blank lines between \index groups spaces_pat = re.compile(r'\n{2,}[ ]?\n+') wrote = spaces_pat.sub('\n\n', wrote) wrote = re.sub(r'\\index{(.*?)}\n\n\\index{(.*?)}', r'\\index{\1}\n\\index{\2}', wrote) - out = open(out_file, 'w') - out.write(wrote) - out.close() - return out -# 4/26, look at chapter 16 and prevent converting the \ApellFiii into \ApellFii\iunit + return wrote +#formatting(open('/home/ont1/DLMF/25.ZE/newMoritz').read()) \ No newline at end of file diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index eca08a9..930d3f2 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -10,6 +10,7 @@ except ImportError: izip = zip +import math_mode import math_function import parentheses from utilities import writeout @@ -46,18 +47,24 @@ def main(): # Below: index_str writes to output file, math_string takes output file as input, and change_original # writes to the output based on the previous output file - index_str = math_function.index_spacing(fname, ofname) - my_string = math_function.math_string(ofname) + # print math_mode.find_math_ranges(open(fname).read()) - math_string = remove_special(my_string) + unchanged_math = math_function.math_string(fname) + math_string = remove_special(unchanged_math) + changed_math = math_function.change_original(fname,math_string) + formatted = math_function.formatting(changed_math) - writeout(ofname, math_function.change_original(ofname, math_string)) + writeout(ofname, formatted) def remove_special(content): - """Removes the excess pieces from the given content and returns the updated version as a string.""" - print(content) + """Removes the excess pieces from the given content and returns the updated version as a string. + IN -> list + OUT -> string""" + if isinstance(content, str): + content = content.split('\n') counter = 0 + for function in content: lines = function.split('\n') @@ -84,37 +91,12 @@ def remove_special(content): dollar_pat = re.compile(r'(? 1: + continue surrounding = "" @@ -265,13 +251,18 @@ def _replace_i(words): if surrounding[0] != "\\": replacement = r'\iunit ' - else: # neither of the characters surrounding the "i" are alphabetic, replace - + else: + # neither of the characters surrounding the "i" are alphabetic, replace replacement = r'\iunit' + + # print("Surrounding: {0} - replacement made: {1}".format(surrounding, replacement != "i")) - words = words[:iloc] + replacement + words[iloc + 1:] + if iloc != -1: + words = words[:iloc] + replacement + words[iloc + 1:] + iloc = words.find("i", iloc + len(replacement)) + else: + words = words[:iloc] + replacement - iloc = words.find("i", iloc + len(replacement)) return words diff --git a/AlexDanoff/test/test_replace_i.py b/AlexDanoff/test/test_replace_i.py index 236d70c..725d657 100644 --- a/AlexDanoff/test/test_replace_i.py +++ b/AlexDanoff/test/test_replace_i.py @@ -4,6 +4,6 @@ class TestReplaceSpecial(TestCase): def test__replace_special(self): - tex = 'z^a = \\underbrace{z \\cdot z \\cdots z}_{n \\text{ times}} = 1 / z^{-a}.' - result = replace_special(tex) + tex = "z^a = \\underbrace{z \\cdot z \\cdots z}_{n \n \\text{ times}} = 1 / z^{-a}" + result = remove_special(tex) self.assertEqual(tex, result) From 3337906a5f7ead8b3336f4768fd1b738e5491ee7 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 19 Jul 2016 14:52:20 -0400 Subject: [PATCH 169/402] Add comments --- maple2latex/src/main.py | 14 +++++++------- maple2latex/src/translator.py | 28 +++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/maple2latex/src/main.py b/maple2latex/src/main.py index fd8ae06..cbaadf9 100644 --- a/maple2latex/src/main.py +++ b/maple2latex/src/main.py @@ -7,14 +7,14 @@ import copy from src.translator import MapleEquation, make_equation -TABLE = dict() +TABLE = dict() # stores meaning of folder names with open("data/section_names") as name_info: for line in name_info.read().split("\n"): if line != "" and "%" not in line: key, value = line.split(" : ") TABLE[key] = value -FILES = [ +FILES = [ # files to be translated "bessel", "modbessel", "confluent", "confluentlimit", "kummer", "parabolic", "whittaker", "apery", "archimedes", "catalan", "delian", "eulersconstant", "eulersnumber", "goldenratio", "gompertz", @@ -28,7 +28,7 @@ "qhyper" ] -ROOT = "functions" +ROOT = "functions" # root directory class MapleFile(object): @@ -67,7 +67,7 @@ def translate_directories(): result = "" - for info in dirs: + for info in dirs: # search through directories depth = len(["" for ch in info[0] if ch == "/"]) if depth == root_depth: # section @@ -75,13 +75,13 @@ def translate_directories(): for file_name in info[2]: folder = ''.join(file_name.split(".")[:-1]) - if folder in FILES: + if folder in FILES: # subsection result += "\\subsection{" + TABLE[folder] + "}\n" + \ MapleFile(info[0] + "/" + file_name).convert_formulae() + "\n\n" + # write output to file with open("out/test.tex", "w") as test, open("out/primer") as primer: - result = primer.read() + result + "\n\\end{document}" - test.write(result) + test.write(primer.read() + result + "\n\\end{document}") if __name__ == '__main__': translate_directories() diff --git a/maple2latex/src/translator.py b/maple2latex/src/translator.py index 1c07228..f3f50f1 100644 --- a/maple2latex/src/translator.py +++ b/maple2latex/src/translator.py @@ -22,6 +22,7 @@ def __init__(self, inp): self.fields = {"category": "", "constraints": "", "begin": "", "factor": "", "front": "", "parameters": "", "type": inp.pop(0).split("'")[1]} + # read data from the Maple create() statement for i, line in enumerate(inp): line = line.split(" = ", 1) @@ -133,36 +134,44 @@ def basic_translate(exp): # type: (list) -> str """Translates basic mathematical operations.""" - for order in range(3): + # translates operations in place + for order in range(3): # order of operations i = 0 while i < len(exp): modified = False + # the imaginary number if exp[i] == "I": exp[i] = "i" + # factorial elif exp[i] == "!" and order == 0: exp[i - 1] += "!" modified = True + # power elif exp[i] == "^" and order == 0: power = trim_parens(exp.pop(i + 1)) exp[i - 1] += "^{" + power + "}" modified = True + # multiplication elif exp[i] == "*" and order == 1: + # adds spacing when necessary if exp[i - 1][-1] not in "}]" and "\\" in exp[i - 1] and exp[i + 1][0] != "\\": exp[i - 1] += " " exp[i - 1] += exp.pop(i + 1) modified = True + # division elif exp[i] == "/" and order == 1: - for index in [i - 1, i + 1]: + for index in [i - 1, i + 1]: # removes extra parentheses exp[index] = trim_parens(exp[index]) exp[i - 1] = "\\frac{" + exp[i - 1] + "}{" + exp.pop(i + 1) + "}" modified = True + # removes extra characters if modified: exp.pop(i) i -= 1 @@ -176,9 +185,11 @@ def get_arguments(function, arg_string): # type: (str, list) -> list """Obtains the arguments of a function.""" + # no arguments if arg_string == ["(", ")"]: return [] + # handling for hypergeometric, q-hypergeometric functions elif function in ["hypergeom", "qhyper"]: args = list() for s in ' '.join(arg_string[1:-1]).split("] , "): @@ -194,6 +205,7 @@ def get_arguments(function, arg_string): args.insert(0, str(arg_count)) + # handling for sums elif function == "sum": args = basic_translate(arg_string[1:-1]).split(",") args = args.pop(1).split("..") + [args[0]] @@ -216,6 +228,7 @@ def generate_function(name, args): if name == n and len(args) == variant["args"]: result = copy.copy(variant["repr"]) + # places arguments between shell of function for n in range(1, len(result)): result.insert(2 * n - 1, args[n - 1]) @@ -229,6 +242,7 @@ def translate(exp): if exp == "": return "" + # initial formatting of input string exp = replace_strings(exp.strip(), CONSTRAINTS) exp = replace_strings(exp, {"functions:-": ""}) exp = tokenize(exp) @@ -239,22 +253,23 @@ def translate(exp): i = len(exp) - 1 while i >= 0: - if exp[i] == "(": + if exp[i] == "(": # handle contents between parentheses r = i + exp[i:].index(")") piece = exp[i:r + 1] - if exp[i - 1] == "]": + if exp[i - 1] == "]": # for logarithm function sq = i - 2 - exp[:i - 1][::-1].index("[") piece = [piece[0]] + exp[sq + 1:i - 1] + [","] + piece[1:] i = sq - if exp[i - 1] in FUNCTIONS: + if exp[i - 1] in FUNCTIONS: # handling for functions i -= 1 piece = generate_function(exp[i], get_arguments(exp[i], piece)) else: piece = basic_translate(piece) + # remove unnecessary parentheses around fractions if "frac" in replace_strings(piece, {"(": ""})[:6] and (r + 2 > len(exp) or exp[r + 1] != "^"): while piece != trim_parens(piece): piece = trim_parens(piece) @@ -270,6 +285,7 @@ def make_equation(eq, view_metadata=False): # type: (MapleEquation{, bool}) -> str """Make a LaTeX equation based on a MapleEquation object.""" + # modify fields eq.lhs = translate(eq.lhs) eq.factor = translate(eq.fields["factor"]) eq.front = translate(eq.fields["front"]) @@ -306,6 +322,7 @@ def make_equation(eq, view_metadata=False): elif eq.eq_type == "contfrac": start = 1 # in case the value of start isn't assigned + # add terms before general if eq.front != "": equation += eq.front + "+" start = 1 @@ -321,6 +338,7 @@ def make_equation(eq, view_metadata=False): else: equation += eq.factor + " " + # trim unnecessary parentheses for i, element in enumerate(eq.general): eq.general[i] = trim_parens(translate(element)) From 0f44033c6fad60221d980d87a96e0ea60e940b3d Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 19 Jul 2016 15:00:29 -0400 Subject: [PATCH 170/402] Add unit tests (for real) --- maple2latex/test/__init__.py | 0 maple2latex/test/test_cases.json | 175 ++++++++++++++++++++++++++++ maple2latex/test/test_translator.py | 53 +++++++++ 3 files changed, 228 insertions(+) create mode 100644 maple2latex/test/__init__.py create mode 100644 maple2latex/test/test_cases.json create mode 100644 maple2latex/test/test_translator.py diff --git a/maple2latex/test/__init__.py b/maple2latex/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json new file mode 100644 index 0000000..58c79fb --- /dev/null +++ b/maple2latex/test/test_cases.json @@ -0,0 +1,175 @@ +{ + "translator": { + "parse_brackets": [ + { + "exp": "[1,2, 3]", + "res": [["1", "2"], "3"] + }, + + { + "exp": "[1]", + "res": ["1"] + } + ], + + "trim_parens": [ + { + "exp": "(1 + 2)", + "res": "1 + 2" + }, + + { + "exp": "(3)(4)", + "res": "(3)(4)" + }, + + { + "exp": "((1 + 2))", + "res": "(1 + 2)" + } + ], + + "basic_translate": [ + { + "exp": ["1", "+", "2", "/", "(3)", "*", "4", "-", "5", "!", "^", "-6"], + "res": "1+\\frac{2}{3}4-5!^{-6}" + }, + + { + "exp": ["\\pi", "*", "I"], + "res": "\\pi i" + } + ], + + "get_arguments": [ + { + "function": "rabbit", + "arg_string": ["(", ")"], + "res": [] + }, + + { + "function": "hypergeom", + "arg_string": ["(", "[1", ",", "2]", ",", "[]", ",", "4", ")"], + "res": ["2", "0", "1,2", "", "4"] + }, + + { + "function": "qhyper", + "arg_string": ["(", "[1", ",", "2", ",", "3]", ",", "[4", ",", "5]", ",", "6", ",", "7", ")"], + "res": ["3", "2", "1,2,3", "4,5", "6", "7"] + }, + + { + "function": "sum", + "arg_string": ["(", "m", ",", "1..infinity", ")"], + "res": ["1", "\\infty", "m"] + }, + + { + "function": "BesselJ", + "arg_string": ["(", "\\nu", ",", "z", ")"], + "res": ["\\nu", "z"] + } + ], + + "translate": [ + { + "exp": "sin(x)", + "res": "\\sin(x)" + }, + + { + "exp": "log[beta](nu)", + "res": "\\log_{\\beta} {(\\nu)}" + } + ], + + "make_equation": [ + { + "eq": [ + "create( 'series',", + "booklabelv1 = \"0.0.0\",", + "category = \"power series\"", + "lhs = n,", + "factor = 4/5,", + "general = [ 2 * k - 3 ],", + "constraints = { k::integer }," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\constraint{$k\\in\\mathbb{Z}$}\n % \\category{power series}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'series',", + "booklabelv1 = \"0.0.0\",", + "category = \"asymptotic series\"", + "lhs = p,", + "front = 17,", + "general = [ k / 2 ]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\constraint{$$}\n % \\category{asymptotic series}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "factor = 15,", + "general = [ [3, 5] ]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "front = 3,", + "general = [[4, 5]]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{2} \\subplus \\CFK{m}{2}{\\infty}@@{4}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "factor = 3,", + "front = 4,", + "general = [[0, 1]]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\dots\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "factor = -1,", + "front = 4,", + "even = [[5, 6]],", + "odd = [[7, 8]]," + ], + "view_metadata": true, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{5}{6}\n\\end{equation*}\n\\begin{center}\nParameters: $$$$\n$$$$\ntest_data\n\\end{center}" + } + ] + } +} \ No newline at end of file diff --git a/maple2latex/test/test_translator.py b/maple2latex/test/test_translator.py new file mode 100644 index 0000000..b9b3bfb --- /dev/null +++ b/maple2latex/test/test_translator.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +__author__ = "Joon Bang" +__status__ = "Development" + +import json +from unittest import TestCase +import src.translator as t + +TEST_CASES = json.loads(open("test/test_cases.json").read())["translator"] + +parse_brackets_test_cases = TEST_CASES["parse_brackets"] +trim_parens_test_cases = TEST_CASES["trim_parens"] +basic_translate_test_cases = TEST_CASES["basic_translate"] +get_arguments_test_cases = TEST_CASES["get_arguments"] +translate_test_cases = TEST_CASES["translate"] +make_equation_test_cases = TEST_CASES["make_equation"] + + +class TestParseBrackets(TestCase): + def test_parse_brackets(self): + for case in parse_brackets_test_cases: + self.assertEqual(t.parse_brackets(case["exp"]), case["res"]) + + +class TestTrimParens(TestCase): + def test_trim_parens(self): + for case in trim_parens_test_cases: + self.assertEqual(t.trim_parens(case["exp"]), case["res"]) + + +class TestBasicTranslate(TestCase): + def test_basic_translate(self): + for case in basic_translate_test_cases: + self.assertEqual(t.basic_translate(case["exp"]), case["res"]) + + +class TestGetArguments(TestCase): + def test_get_arguments(self): + for case in get_arguments_test_cases: + self.assertEqual(t.get_arguments(case["function"], case["arg_string"]), case["res"]) + + +class TestTranslate(TestCase): + def test_translate(self): + for case in translate_test_cases: + self.assertEqual(t.translate(case["exp"]), case["res"]) + + +class TestMakeEquation(TestCase): + def test_make_equation(self): + for case in make_equation_test_cases: + self.assertEqual(t.make_equation(t.MapleEquation(case["eq"]), case["view_metadata"]), case["res"]) From c1520ba5fab0864d5eb70821d05536bb0c484a03 Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Tue, 19 Jul 2016 15:00:29 -0400 Subject: [PATCH 171/402] Add unit tests (for real) --- maple2latex/test/__init__.py | 0 maple2latex/test/test_cases.json | 175 ++++++++++++++++++++++++++++ maple2latex/test/test_translator.py | 53 +++++++++ 3 files changed, 228 insertions(+) create mode 100644 maple2latex/test/__init__.py create mode 100644 maple2latex/test/test_cases.json create mode 100644 maple2latex/test/test_translator.py diff --git a/maple2latex/test/__init__.py b/maple2latex/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/maple2latex/test/test_cases.json b/maple2latex/test/test_cases.json new file mode 100644 index 0000000..58c79fb --- /dev/null +++ b/maple2latex/test/test_cases.json @@ -0,0 +1,175 @@ +{ + "translator": { + "parse_brackets": [ + { + "exp": "[1,2, 3]", + "res": [["1", "2"], "3"] + }, + + { + "exp": "[1]", + "res": ["1"] + } + ], + + "trim_parens": [ + { + "exp": "(1 + 2)", + "res": "1 + 2" + }, + + { + "exp": "(3)(4)", + "res": "(3)(4)" + }, + + { + "exp": "((1 + 2))", + "res": "(1 + 2)" + } + ], + + "basic_translate": [ + { + "exp": ["1", "+", "2", "/", "(3)", "*", "4", "-", "5", "!", "^", "-6"], + "res": "1+\\frac{2}{3}4-5!^{-6}" + }, + + { + "exp": ["\\pi", "*", "I"], + "res": "\\pi i" + } + ], + + "get_arguments": [ + { + "function": "rabbit", + "arg_string": ["(", ")"], + "res": [] + }, + + { + "function": "hypergeom", + "arg_string": ["(", "[1", ",", "2]", ",", "[]", ",", "4", ")"], + "res": ["2", "0", "1,2", "", "4"] + }, + + { + "function": "qhyper", + "arg_string": ["(", "[1", ",", "2", ",", "3]", ",", "[4", ",", "5]", ",", "6", ",", "7", ")"], + "res": ["3", "2", "1,2,3", "4,5", "6", "7"] + }, + + { + "function": "sum", + "arg_string": ["(", "m", ",", "1..infinity", ")"], + "res": ["1", "\\infty", "m"] + }, + + { + "function": "BesselJ", + "arg_string": ["(", "\\nu", ",", "z", ")"], + "res": ["\\nu", "z"] + } + ], + + "translate": [ + { + "exp": "sin(x)", + "res": "\\sin(x)" + }, + + { + "exp": "log[beta](nu)", + "res": "\\log_{\\beta} {(\\nu)}" + } + ], + + "make_equation": [ + { + "eq": [ + "create( 'series',", + "booklabelv1 = \"0.0.0\",", + "category = \"power series\"", + "lhs = n,", + "factor = 4/5,", + "general = [ 2 * k - 3 ],", + "constraints = { k::integer }," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n n\n = \\frac{4}{5} \\sum_{k=0}^\\infty 2k-3\n % \\constraint{$k\\in\\mathbb{Z}$}\n % \\category{power series}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'series',", + "booklabelv1 = \"0.0.0\",", + "category = \"asymptotic series\"", + "lhs = p,", + "front = 17,", + "general = [ k / 2 ]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n p\n = 17+\\sum_{k=0}^\\infty \\left(\\frac{k}{2}\\right)\n % \\constraint{$$}\n % \\category{asymptotic series}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "factor = 15,", + "general = [ [3, 5] ]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 15 \\CFK{m}{1}{\\infty}@@{3}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "front = 3,", + "general = [[4, 5]]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 3+\\frac{1}{2} \\subplus \\CFK{m}{2}{\\infty}@@{4}{5}\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "factor = 3,", + "front = 4,", + "general = [[0, 1]]," + ], + "view_metadata": false, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus 3 \\dots\n % \\constraint{$$}\n % \\category{test_data}\n\\end{equation*}" + }, + + { + "eq": [ + "create( 'contfrac', ", + "booklabelv1 = \"0.0.0\",", + "category = \"test_data\"", + "lhs = zeta,", + "begin = [[1,2]],", + "factor = -1,", + "front = 4,", + "even = [[5, 6]],", + "odd = [[7, 8]]," + ], + "view_metadata": true, + "res": "\\begin{equation*}\\tag{0.0.0}\n \\zeta\n = 4+\\frac{1}{2} \\subplus -\\CFK{m}{2}{\\infty}@@{5}{6}\n\\end{equation*}\n\\begin{center}\nParameters: $$$$\n$$$$\ntest_data\n\\end{center}" + } + ] + } +} \ No newline at end of file diff --git a/maple2latex/test/test_translator.py b/maple2latex/test/test_translator.py new file mode 100644 index 0000000..b9b3bfb --- /dev/null +++ b/maple2latex/test/test_translator.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +__author__ = "Joon Bang" +__status__ = "Development" + +import json +from unittest import TestCase +import src.translator as t + +TEST_CASES = json.loads(open("test/test_cases.json").read())["translator"] + +parse_brackets_test_cases = TEST_CASES["parse_brackets"] +trim_parens_test_cases = TEST_CASES["trim_parens"] +basic_translate_test_cases = TEST_CASES["basic_translate"] +get_arguments_test_cases = TEST_CASES["get_arguments"] +translate_test_cases = TEST_CASES["translate"] +make_equation_test_cases = TEST_CASES["make_equation"] + + +class TestParseBrackets(TestCase): + def test_parse_brackets(self): + for case in parse_brackets_test_cases: + self.assertEqual(t.parse_brackets(case["exp"]), case["res"]) + + +class TestTrimParens(TestCase): + def test_trim_parens(self): + for case in trim_parens_test_cases: + self.assertEqual(t.trim_parens(case["exp"]), case["res"]) + + +class TestBasicTranslate(TestCase): + def test_basic_translate(self): + for case in basic_translate_test_cases: + self.assertEqual(t.basic_translate(case["exp"]), case["res"]) + + +class TestGetArguments(TestCase): + def test_get_arguments(self): + for case in get_arguments_test_cases: + self.assertEqual(t.get_arguments(case["function"], case["arg_string"]), case["res"]) + + +class TestTranslate(TestCase): + def test_translate(self): + for case in translate_test_cases: + self.assertEqual(t.translate(case["exp"]), case["res"]) + + +class TestMakeEquation(TestCase): + def test_make_equation(self): + for case in make_equation_test_cases: + self.assertEqual(t.make_equation(t.MapleEquation(case["eq"]), case["view_metadata"]), case["res"]) From 96b7f647ca4e36a3c05356dac0da8d1454aa1e6e Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 19 Jul 2016 15:10:23 -0400 Subject: [PATCH 172/402] Add tests for mathmode.py and re-add missing incrementation. --- mathmode/mathmode.py | 15 +++-- mathmode/mathmodetest.py | 115 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 mathmode/mathmodetest.py diff --git a/mathmode/mathmode.py b/mathmode/mathmode.py index 5091dbf..7927bc0 100644 --- a/mathmode/mathmode.py +++ b/mathmode/mathmode.py @@ -1,6 +1,4 @@ -""" -Dictionary containing math mode delimiters and their respective endpoints. -""" +# Dictionary containing math mode delimiters and their respective endpoints. MATH_START = {"\\[": "\\]", "\\(": "\\)", "$$": "$$", @@ -12,9 +10,7 @@ "\\begin{multline}": "\\end{multline}", "\\begin{multline*}": "\\end{multline*}"} -""" -List of delimiters that exit math mode. -""" +# List of delimiters that exit math mode. MATH_END = ["\\hbox{", "\\mbox{", "\\text{"] @@ -106,7 +102,7 @@ def parse_math(string, start, ranges): ranges.append((begin, start + i)) return i + len(MATH_START[delim]) - 1 i += 1 - return i + raise SyntaxError("missing " + MATH_START[delim]) def parse_non_math(string, start, ranges): @@ -136,11 +132,14 @@ def parse_non_math(string, start, ranges): level += 1 elif string[i] == "}": if level == 0 and delim != "": + i += 1 return i else: level -= 1 i += 1 - return i + if delim == "" and level == 0: + return i + raise SyntaxError("missing end bracket") def find_math_ranges(string): diff --git a/mathmode/mathmodetest.py b/mathmode/mathmodetest.py new file mode 100644 index 0000000..86118e6 --- /dev/null +++ b/mathmode/mathmodetest.py @@ -0,0 +1,115 @@ +import unittest +import mathmode + +DELIM_TESTS = [ + { + "args": ["$test$"], + "output": "$" + }, + { + "args": ["$$test$$"], + "output": "$$" + }, + { + "args": [" \\begin{equation}test\\end{equation} "], + "output": "\\begin{equation}" + }, + { + "args": ["\\hbox{}", False], + "output": "\\hbox{" + } +] + +MATH_TESTS = [ + { + "string": "$\\frac 1 2$ test", + "start": 0, + "output": 10 + }, + { + "string": "\\[2\\hbox{Test}\\]", + "start": 22, + "output": 15 + }, + { + "string": "$\\$$", + "start": 12, + "output": 3 + }, + [ + (1, 10), + (24, 25), + (13, 15) + ] +] + +NON_MATH_TESTS = [ + { + "string": "\\mbox{Test\\(test\\)} ", + "start": 14, + "output": 19 + }, + { + "string": "test \\\\(\\begin{align*}\\end{align*}\\\\[", + "start": 56, + "output": 37 + }, + { + "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}", + "start": 3, + "output": 46 + }, + [ + (26, 30), + (19, 35) + ] +] + +RANGE_TESTS = [ + { + "string": "test \\begin{multline*}\ntest \\hbox{Test}\\end{multline*}", + "output": [ + (22, 28) + ] + }, + { + "string": "$2$ \\begin{align}Test\\end{align}", + "output": [ + (1, 2), + (17, 21) + ] + }, + { + "string": "test", + "output": [] + } +] + + +class TestMathMode(unittest.TestCase): + + def test_first_delim(self): + for test in DELIM_TESTS: + self.assertEqual(mathmode.first_delim(*test["args"]), test["output"]) + + def test_parse_math(self): + ranges = [] + for test in MATH_TESTS[:-1]: + self.assertEqual(mathmode.parse_math(test["string"], test["start"], ranges), test["output"]) + self.assertEqual(ranges, MATH_TESTS[-1]) + self.assertRaises(SyntaxError, mathmode.parse_math, "\\begin{equation*}", 23, []) + + def test_parse_non_math(self): + ranges = [] + for test in NON_MATH_TESTS[:-1]: + self.assertEqual(mathmode.parse_non_math(test["string"], test["start"], ranges), test["output"]) + self.assertEqual(ranges, NON_MATH_TESTS[-1]) + self.assertRaises(SyntaxError, mathmode.parse_non_math, "\\text{", 9, [(1, 4)]) + + def test_find_math_ranges(self): + for test in RANGE_TESTS: + self.assertEqual(mathmode.find_math_ranges(test["string"]), test["output"]) + self.assertRaises(SyntaxError, mathmode.find_math_ranges("{$$}$$")) + +if __name__ == "__main__": + unittest.main() From ae47f06d9274aca9aed4dc262849532000f52816 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Tue, 19 Jul 2016 15:25:01 -0400 Subject: [PATCH 173/402] Moved math mode code to AlexDanoff and updated test format. --- AlexDanoff/src/math_mode.py | 57 +++---- AlexDanoff/test/test_math_mode.py | 115 +++++++++++++ .../test/test_math_mode.py~ | 0 mathmode/mathmode.py | 154 ------------------ 4 files changed, 141 insertions(+), 185 deletions(-) create mode 100644 AlexDanoff/test/test_math_mode.py rename mathmode/mathmodetest.py => AlexDanoff/test/test_math_mode.py~ (100%) delete mode 100644 mathmode/mathmode.py diff --git a/AlexDanoff/src/math_mode.py b/AlexDanoff/src/math_mode.py index 16954f8..7927bc0 100644 --- a/AlexDanoff/src/math_mode.py +++ b/AlexDanoff/src/math_mode.py @@ -1,17 +1,19 @@ -math_start = {"\\[": "\\]", - "\\(": "\\)", - "$$": "$$", - "$": "$", - "\\begin{equation}": "\\end{equation}", - "\\begin{equation*}": "\\end{equation*}", - "\\begin{align}": "\\end{align}", - "\\begin{align*}": "\\end{align*}", - "\\begin{multline}": "\\end{multline}", - "\\begin{multline*}": "\\end{multline*}"} +# Dictionary containing math mode delimiters and their respective endpoints. +MATH_START = {"\\[": "\\]", + "\\(": "\\)", + "$$": "$$", + "$": "$", + "\\begin{equation}": "\\end{equation}", + "\\begin{equation*}": "\\end{equation*}", + "\\begin{align}": "\\end{align}", + "\\begin{align*}": "\\end{align*}", + "\\begin{multline}": "\\end{multline}", + "\\begin{multline*}": "\\end{multline*}"} -math_end = ["\\hbox{", - "\\mbox{", - "\\text{"] +# List of delimiters that exit math mode. +MATH_END = ["\\hbox{", + "\\mbox{", + "\\text{"] def find_first(string, delim, start=0): @@ -41,7 +43,7 @@ def first_delim(string, enter=True): :return: The delimiter that first appears in the string. """ minm = ["\\hbox{", "\\]"][enter] - for delim in [math_end, math_start][enter]: + for delim in [MATH_END, MATH_START][enter]: i = find_first(string, delim) if i != -1 and i < find_first(string, minm) or minm not in string: minm = delim @@ -57,7 +59,7 @@ def does_exit(string): :param string: The string to check. :return: Whether the string starts with a text mode delimiter. """ - return any(string.startswith(delim) for delim in math_end) + return any(string.startswith(delim) for delim in MATH_END) def does_enter(string): @@ -67,7 +69,7 @@ def does_enter(string): :param string: The string to check. :return: Whether the string starts with a math mode delimiter. """ - return any(string.startswith(delim) for delim in math_start) + return any(string.startswith(delim) for delim in MATH_START) def parse_math(string, start, ranges): @@ -95,12 +97,12 @@ def parse_math(string, start, ranges): ranges.append((begin, start + i)) i += parse_non_math(string[i:], start + i, ranges) begin = start + i - if string[i:].startswith(math_start[delim]): + if string[i:].startswith(MATH_START[delim]): if begin != start + i: ranges.append((begin, start + i)) - return i + len(math_start[delim]) - 1 + return i + len(MATH_START[delim]) - 1 i += 1 - return i + raise SyntaxError("missing " + MATH_START[delim]) def parse_non_math(string, start, ranges): @@ -135,25 +137,18 @@ def parse_non_math(string, start, ranges): else: level -= 1 i += 1 - return i + if delim == "" and level == 0: + return i + raise SyntaxError("missing end bracket") -def find_math_ranges(string,drmf): +def find_math_ranges(string): # type: (str) -> list """ Returns a list of tuples, each tuple denoting a range of math mode. :param string: The string to search within. :return: A list of tuples denoting math mode ranges. """ - global math_end - if drmf == True: - string = string.replace("\\drmfnote","\\drmfname") - math_end.extend(["\\constraint{", - "\\substitution" - "\\drmfnote{", - "\\drmfname{", - "\\proof{", - "\\label{"]) ranges = [] parse_non_math(string, 0, ranges) - return ranges[:] \ No newline at end of file + return ranges[:] diff --git a/AlexDanoff/test/test_math_mode.py b/AlexDanoff/test/test_math_mode.py new file mode 100644 index 0000000..3008742 --- /dev/null +++ b/AlexDanoff/test/test_math_mode.py @@ -0,0 +1,115 @@ +import unittest +import math_mode + +DELIM_TESTS = [ + { + "args": ["$test$"], + "output": "$" + }, + { + "args": ["$$test$$"], + "output": "$$" + }, + { + "args": [" \\begin{equation}test\\end{equation} "], + "output": "\\begin{equation}" + }, + { + "args": ["\\hbox{}", False], + "output": "\\hbox{" + } +] + +MATH_TESTS = [ + { + "string": "$\\frac 1 2$ test", + "start": 0, + "output": 10 + }, + { + "string": "\\[2\\hbox{Test}\\]", + "start": 22, + "output": 15 + }, + { + "string": "$\\$$", + "start": 12, + "output": 3 + }, + [ + (1, 10), + (24, 25), + (13, 15) + ] +] + +NON_MATH_TESTS = [ + { + "string": "\\mbox{Test\\(test\\)} ", + "start": 14, + "output": 19 + }, + { + "string": "test \\\\(\\begin{align*}\\end{align*}\\\\[", + "start": 56, + "output": 37 + }, + { + "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}", + "start": 3, + "output": 46 + }, + [ + (26, 30), + (19, 35) + ] +] + +RANGE_TESTS = [ + { + "string": "test \\begin{multline*}\ntest \\hbox{Test}\\end{multline*}", + "output": [ + (22, 28) + ] + }, + { + "string": "$2$ \\begin{align}Test\\end{align}", + "output": [ + (1, 2), + (17, 21) + ] + }, + { + "string": "test", + "output": [] + } +] + + +class Testmath_mode(unittest.TestCase): + + def test_first_delim(self): + for test in DELIM_TESTS: + self.assertEqual(math_mode.first_delim(*test["args"]), test["output"]) + + def test_parse_math(self): + ranges = [] + for test in MATH_TESTS[:-1]: + self.assertEqual(math_mode.parse_math(test["string"], test["start"], ranges), test["output"]) + self.assertEqual(ranges, MATH_TESTS[-1]) + self.assertRaises(SyntaxError, math_mode.parse_math, "\\begin{equation*}", 23, []) + + def test_parse_non_math(self): + ranges = [] + for test in NON_MATH_TESTS[:-1]: + self.assertEqual(math_mode.parse_non_math(test["string"], test["start"], ranges), test["output"]) + self.assertEqual(ranges, NON_MATH_TESTS[-1]) + self.assertRaises(SyntaxError, math_mode.parse_non_math, "\\text{", 9, [(1, 4)]) + + def test_find_math_ranges(self): + for test in RANGE_TESTS: + self.assertEqual(math_mode.find_math_ranges(test["string"]), test["output"]) + self.assertRaises(SyntaxError, math_mode.find_math_ranges, "{$$}$$") + +if __name__ == "__main__": + unittest.main() diff --git a/mathmode/mathmodetest.py b/AlexDanoff/test/test_math_mode.py~ similarity index 100% rename from mathmode/mathmodetest.py rename to AlexDanoff/test/test_math_mode.py~ diff --git a/mathmode/mathmode.py b/mathmode/mathmode.py deleted file mode 100644 index 7927bc0..0000000 --- a/mathmode/mathmode.py +++ /dev/null @@ -1,154 +0,0 @@ -# Dictionary containing math mode delimiters and their respective endpoints. -MATH_START = {"\\[": "\\]", - "\\(": "\\)", - "$$": "$$", - "$": "$", - "\\begin{equation}": "\\end{equation}", - "\\begin{equation*}": "\\end{equation*}", - "\\begin{align}": "\\end{align}", - "\\begin{align*}": "\\end{align*}", - "\\begin{multline}": "\\end{multline}", - "\\begin{multline*}": "\\end{multline*}"} - -# List of delimiters that exit math mode. -MATH_END = ["\\hbox{", - "\\mbox{", - "\\text{"] - - -def find_first(string, delim, start=0): - # type: (str, str, int) -> int - """ - Finds the first occurrence of a delimiter within a string. - :param string: The string to search within. - :param delim: The delimiter to search for. - :param start: The starting index in the string. - :return: The index of the first occurrence. - """ - i = string.find(delim, start) - if delim in ["$", "\\[", "\\("]: - if i == -1: - return -1 - elif i != 0 and string[i - 1] == "\\": - return find_first(string, delim, i + len(delim)) - return i - - -def first_delim(string, enter=True): - # type: (str, bool) -> str - """ - Finds the first math or text mode delimiter within a string. - :param string: The string to search within. - :param enter: Whether to find a math mode or a text mode delimiter. - :return: The delimiter that first appears in the string. - """ - minm = ["\\hbox{", "\\]"][enter] - for delim in [MATH_END, MATH_START][enter]: - i = find_first(string, delim) - if i != -1 and i < find_first(string, minm) or minm not in string: - minm = delim - if minm == "$" and string.find("$$") == string.find("$"): - minm = "$$" - return minm - - -def does_exit(string): - # type: (str) -> bool - """ - Returns whether a string starts with a text mode delimiter. - :param string: The string to check. - :return: Whether the string starts with a text mode delimiter. - """ - return any(string.startswith(delim) for delim in MATH_END) - - -def does_enter(string): - # type: (str) -> bool - """ - Returns whether a string starts with a math mode delimiter. - :param string: The string to check. - :return: Whether the string starts with a math mode delimiter. - """ - return any(string.startswith(delim) for delim in MATH_START) - - -def parse_math(string, start, ranges): - # type: (str) -> str, int - """ - Finds the ranges of the current math mode segment. - :param string: The string to parse. - :param start: The starting index in the original string. - :param ranges: The ranges of all math mode segments. - :return i: The length of the math mode segment. - """ - delim = first_delim(string) - i = len(delim) - begin = start + i - while i < len(string): - if string[i:].startswith("\\$"): - i += 1 - elif string[i:].startswith("\\\\]"): - i += 2 - elif string[i:].startswith("\\\\)"): - i += 2 - else: - if does_exit(string[i:]): - if begin != start + i: - ranges.append((begin, start + i)) - i += parse_non_math(string[i:], start + i, ranges) - begin = start + i - if string[i:].startswith(MATH_START[delim]): - if begin != start + i: - ranges.append((begin, start + i)) - return i + len(MATH_START[delim]) - 1 - i += 1 - raise SyntaxError("missing " + MATH_START[delim]) - - -def parse_non_math(string, start, ranges): - # type: (str) -> str, int - """ - Finds occurrences of math mode within a segment of text mode. - :param string: The string to parse. - :param start: The starting index in the original string. - :param ranges: The ranges of all math mode segments. - :return i: The length of the text mode segment. - """ - delim = first_delim(string, False) - if not string.startswith(delim): - delim = "" - level = 0 - i = len(delim) - while i < len(string): - if string[i:].startswith("\\$"): - i += 1 - elif string[i:].startswith("\\\\["): - i += 2 - elif string[i:].startswith("\\\\("): - i += 2 - elif does_enter(string[i:]): - i += parse_math(string[i:], start + i, ranges) - elif string[i] == "{": - level += 1 - elif string[i] == "}": - if level == 0 and delim != "": - i += 1 - return i - else: - level -= 1 - i += 1 - if delim == "" and level == 0: - return i - raise SyntaxError("missing end bracket") - - -def find_math_ranges(string): - # type: (str) -> list - """ - Returns a list of tuples, each tuple denoting a range of math mode. - :param string: The string to search within. - :return: A list of tuples denoting math mode ranges. - """ - ranges = [] - parse_non_math(string, 0, ranges) - return ranges[:] From 038ced202820844f6b967b6f5b630cf70ea1a380 Mon Sep 17 00:00:00 2001 From: Parth Oza Date: Tue, 19 Jul 2016 16:01:31 -0400 Subject: [PATCH 174/402] Added symono.cls back --- KLSadd_insertion/src/svmono.cls | 1690 +++++++++++++++++++++++++++++++ 1 file changed, 1690 insertions(+) create mode 100644 KLSadd_insertion/src/svmono.cls diff --git a/KLSadd_insertion/src/svmono.cls b/KLSadd_insertion/src/svmono.cls new file mode 100644 index 0000000..2341bee --- /dev/null +++ b/KLSadd_insertion/src/svmono.cls @@ -0,0 +1,1690 @@ +% SVMONO DOCUMENT CLASS -- version 3.9 (23-Jul-03) +% Springer Verlag global LaTeX2e support for monographs +%% +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{svmono}[2003/07/23 3.9 +^^JSpringer Verlag global LaTeX document class for monographs] + +% Options +% citations +\DeclareOption{natbib}{\ExecuteOptions{oribibl}% +\AtEndOfClass{% Loading package 'NATBIB' +\RequirePackage{natbib} +% Changing some parameters of NATBIB +\setlength{\bibhang}{\parindent} +%\setlength{\bibsep}{0mm} +\let\bibfont=\small +\def\@biblabel#1{#1.} +\newcommand{\etal}{\textit{et al}.} +%\bibpunct[,]{(}{)}{;}{a}{}{,}}} +}} +% Springer environment +\let\if@spthms\iftrue +\DeclareOption{nospthms}{\let\if@spthms\iffalse} +% +\let\envankh\@empty % no anchor for "theorems" +% +\let\if@envcntreset\iffalse % environment counter is not reset +\let\if@envcntresetsect=\iffalse % reset each section? +\DeclareOption{envcountresetchap}{\let\if@envcntreset\iftrue} +\DeclareOption{envcountresetsect}{\let\if@envcntreset\iftrue +\let\if@envcntresetsect=\iftrue} +% +\let\if@envcntsame\iffalse % NOT all environments work like "Theorem", + % each using its own counter +\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} +% +\let\if@envcntshowhiercnt=\iffalse % do not show hierarchy counter at all +% +% enhance theorem counter +\DeclareOption{envcountchap}{\def\envankh{chapter}% show \thechapter along with theorem number +\let\if@envcntshowhiercnt=\iftrue +\ExecuteOptions{envcountreset}} +% +\DeclareOption{envcountsect}{\def\envankh{section}% show \thesection along with theorem number +\let\if@envcntshowhiercnt=\iftrue +\ExecuteOptions{envcountreset}} +% +% languages +\let\switcht@@therlang\relax +\let\svlanginfo\relax +\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}% +\gdef\svlanginfo{\typeout{Man spricht deutsch.}\global\let\svlanginfo\relax}} +\def\ds@francais{\def\switcht@@therlang{\switcht@francais}% +\gdef\svlanginfo{\typeout{On parle francais.}\global\let\svlanginfo\relax}} +% +\AtBeginDocument{\@ifpackageloaded{babel}{% +\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% +\@ifundefined{extrasUKenglish}{}{\addto\extrasUKenglish{\switcht@albion}}% +\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% +\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% +}{\switcht@@therlang}% +} +% numbering style of floats, equations +\newif\if@numart \@numartfalse +\DeclareOption{numart}{\@numarttrue} +\def\set@numbering{\if@numart\else\num@book\fi} +\AtEndOfClass{\set@numbering} +% style for vectors +\DeclareOption{vecphys}{\def\vec@style{phys}} +\DeclareOption{vecarrow}{\def\vec@style{arrow}} +% running heads +\let\if@runhead\iftrue +\DeclareOption{norunningheads}{\let\if@runhead\iffalse} +% referee option +\let\if@referee\iffalse +\def\makereferee{\def\baselinestretch{2}\selectfont +\newbox\refereebox +\setbox\refereebox=\vbox to\z@{\vskip0.5cm% + \hbox to\textwidth{\normalsize\tt\hrulefill\lower0.5ex + \hbox{\kern5\p@ referee's copy\kern5\p@}\hrulefill}\vss}% +\def\@oddfoot{\copy\refereebox}\let\@evenfoot=\@oddfoot} +\DeclareOption{referee}{\let\if@referee\iftrue +\AtBeginDocument{\makereferee\small\normalsize}} +% modification of thebibliography +\let\if@openbib\iffalse +\DeclareOption{openbib}{\let\if@openbib\iftrue} +% LaTeX standard, sectionwise references +\DeclareOption{oribibl}{\let\oribibl=Y} +\DeclareOption{sectrefs}{\let\secbibl=Y} +% +% footinfo option (provides an informatory line on every page) +\def\SpringerMacroPackageNameA{svmono.cls} +% \thetime, \thedate and \timstamp are macros to include +% time, date (or both) of the TeX run in the document +\def\maketimestamp{\count255=\time +\divide\count255 by 60\relax +\edef\thetime{\the\count255:}% +\multiply\count255 by-60\relax +\advance\count255 by\time +\edef\thetime{\thetime\ifnum\count255<10 0\fi\the\count255} +\edef\thedate{\number\day-\ifcase\month\or Jan\or Feb\or Mar\or + Apr\or May\or Jun\or Jul\or Aug\or Sep\or Oct\or + Nov\or Dec\fi-\number\year} +\def\timstamp{\hbox to\hsize{\tt\hfil\thedate\hfil\thetime\hfil}}} +\maketimestamp +% +% \footinfo generates a info footline on every page containing +% pagenumber, jobname, macroname, and timestamp +\DeclareOption{footinfo}{\AtBeginDocument{\maketimestamp + \def\@oddfoot{\footnotesize\tt Page: \thepage\hfil job: \jobname\hfil + macro: \SpringerMacroPackageNameA\hfil + date/time: \thedate/\thetime}% + \let\@evenfoot=\@oddfoot}} +% +% start new chapter on any page +\newif\if@openright \@openrighttrue +\DeclareOption{openany}{\@openrightfalse} +% +% no size changing allowed +\DeclareOption{11pt}{\OptionNotUsed} +\DeclareOption{12pt}{\OptionNotUsed} +% options for the article class +\def\@rticle@options{10pt,twoside} +% fleqn +\DeclareOption{fleqn}{\def\@rticle@options{10pt,twoside,fleqn}% +\AtEndOfClass{\let\leftlegendglue\relax}% +\AtBeginDocument{\mathindent\parindent}} +% hanging sectioning titles +\let\if@sechang\iffalse +\DeclareOption{sechang}{\let\if@sechang\iftrue} +\def\ClassInfoNoLine#1#2{% + \ClassInfo{#1}{#2\@gobble}% +} +\let\SVMonoOpt\@empty +\DeclareOption*{\InputIfFileExists{sv\CurrentOption.clo}{% +\global\let\SVMonoOpt\CurrentOption}{% +\ClassWarning{Springer-SVMono}{Specified option or subpackage +"\CurrentOption" \MessageBreak not found +passing it to article class \MessageBreak +-}\PassOptionsToClass{\CurrentOption}{article}% +}} +\ProcessOptions\relax +\ifx\SVMonoOpt\@empty\relax +\ClassInfoNoLine{Springer-SVMono}{extra/valid Springer sub-package +\MessageBreak not found in option list - using "global" style}{} +\fi +\LoadClass[\@rticle@options]{article} +\raggedbottom + +% various sizes and settings for monographs + +%\setlength{\textwidth}{28pc} % 11.8cm +\setlength{\textwidth}{43pc} % 11.8cm +%\setlength{\textheight}{12pt}\multiply\textheight by 45\relax +%\setlength{\textheight}{540\p@} +\setlength{\textheight}{720\p@} +%\setlength{\topmargin}{0cm} +\setlength{\topmargin}{-2cm} +%\setlength\oddsidemargin {63\p@} +%\setlength\evensidemargin {63\p@} +\setlength\oddsidemargin {-28\p@} +\setlength\evensidemargin {-28\p@} +\setlength\marginparwidth{90\p@} +\setlength\headsep {12\p@} + +\setlength{\parindent}{15\p@} +\setlength{\parskip}{\z@ \@plus \p@} +\setlength{\hfuzz}{2\p@} +\setlength{\arraycolsep}{1.5\p@} + +\frenchspacing + +\tolerance=500 + +\predisplaypenalty=0 +\clubpenalty=10000 +\widowpenalty=10000 + +\setlength\footnotesep{7.7\p@} + +\newdimen\betweenumberspace % dimension for space between +\betweenumberspace=5\p@ % number and text of titles +\newdimen\headlineindent % dimension for space of +\headlineindent=2.5cc % number and gap of running heads + +% fonts, sizes, and the like +\renewcommand\small{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \parsep \z@ \@plus\p@ \@minus\p@ + \topsep 6\p@ \@plus2\p@ \@minus4\p@ + \itemsep\z@}% + \belowdisplayskip \abovedisplayskip +} +% +\let\footnotesize=\small +% +\newenvironment{petit}{\par\addvspace{6\p@}\small}{\par\addvspace{6\p@}} +% + +% modification of automatic positioning of floating objects +\setlength\@fptop{\z@ } +\setlength\@fpsep{12\p@ } +\setlength\@fpbot{\z@ \@plus 1fil } +\def\textfraction{.01} +\def\floatpagefraction{.8} +\setlength{\intextsep}{20\p@ \@plus 2\p@ \@minus 2\p@} +\setcounter{topnumber}{4} +\def\topfraction{.9} +\setcounter{bottomnumber}{2} +\def\bottomfraction{.7} +\setcounter{totalnumber}{6} +% +% size and style of headings +\newcommand{\partsize}{\Large} +\newcommand{\partstyle}{\bfseries\boldmath} +\newcommand{\chapsize}{\Large} +\newcommand{\chapstyle}{\bfseries\boldmath} +\newcommand{\secsize}{\large} +\newcommand{\secstyle}{\bfseries\boldmath} +\newcommand{\subsecsize}{\normalsize} +\newcommand{\subsecstyle}{\bfseries\boldmath} + +\def\newendpage {\par + \ifdim \pagetotal>\topskip + \else\thispagestyle{empty} + \fi + \vfil\penalty -\@M} +\def\clearpage{% + \ifvmode + \ifnum \@dbltopnum =\m@ne + \ifdim \pagetotal <\topskip + \hbox{} + \fi + \fi + \fi + \newendpage + \write\m@ne{} + \vbox{} + \penalty -\@Mi +} +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else + \hbox{}\newendpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} + +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}} +\newcommand{\startnewpage}{\if@openright\clearemptydoublepage\else\clearpage\fi} + +% redefinition of \part +\renewcommand\part{\clearemptydoublepage + \thispagestyle{empty} + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \@ifundefined{thispagecropped}{}{\thispagecropped} + \secdef\@part\@spart} + +\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax + \refstepcounter{part} + \addcontentsline{toc}{part}{\partname\ + \thepart\thechapterend\hskip\betweenumberspace + #1}\else + \addcontentsline{toc}{part}{#1}\fi + \markboth{}{} + {\raggedleft + \ifnum \c@secnumdepth >-2\relax + \normalfont\partstyle\partsize\vrule height 34pt width 0pt depth 0pt% + \partname\ \thepart\llap{\smash{\lower 5pt\hbox to\textwidth{\hrulefill}}} + \par + \vskip 128.3\p@ \fi + #2\par}\@endpart} +% +% \@endpart finishes the part page +% +\def\@endpart{\vfil\newpage + \if@twoside + \hbox{} + \thispagestyle{empty} + \newpage + \fi + \if@tempswa + \twocolumn + \fi} +% +\def\@spart#1{{\raggedleft + \normalfont\partsize\partstyle + #1\par}\@endpart} +% +% (re)define sectioning +\setcounter{secnumdepth}{2} + +\def\seccounterend{} +\def\seccountergap{\hskip\betweenumberspace} +\def\@seccntformat#1{\csname the#1\endcsname\seccounterend\seccountergap\ignorespaces} +% +\let\firstmark=\botmark +% +\@ifundefined{thechapterend}{\def\thechapterend{}}{} +% +\if@sechang + \def\sec@hangfrom#1{\setbox\@tempboxa\hbox{#1}% + \hangindent\wd\@tempboxa\noindent\box\@tempboxa} +\else + \def\sec@hangfrom#1{\setbox\@tempboxa\hbox{#1}% + \hangindent\z@\noindent\box\@tempboxa} +\fi + +\def\chap@hangfrom#1{\noindent\vrule height 34pt width 0pt depth 0pt +\rlap{\smash{\lower 5pt\hbox to\textwidth{\hrulefill}}}\hbox{#1} +\vskip10pt} +\def\schap@hangfrom{\chap@hangfrom{}} + +\newcounter{chapter} +% +\@addtoreset{section}{chapter} +\@addtoreset{footnote}{chapter} + +\newif\if@mainmatter \@mainmattertrue +\newcommand\frontmatter{\startnewpage + \@mainmatterfalse\pagenumbering{Roman} + \setcounter{page}{5}} +% +\newcommand\mainmatter{\clearemptydoublepage + \@mainmattertrue\pagenumbering{arabic}} +% +\newcommand\backmatter{\clearemptydoublepage\@mainmatterfalse} + +\def\@chapapp{\chaptername} + +\newdimen\chapstarthookwidth +\newcommand\chapstarthook[2][0.66\textwidth]{% +\setlength{\chapstarthookwidth}{#1}% +\gdef\chapst@rthook{#2}} + +\newcommand{\processchapstarthook}{\@ifundefined{chapst@rthook}{}{% + \setbox0=\hbox{\vbox{ + \begin{flushright} + \begin{minipage}{\chapstarthookwidth} + \vrule\@width\z@\@height21\p@\@depth\z@ + \normalfont\small\itshape\chapst@rthook + \end{minipage} + \end{flushright}}}% + \@tempdima=\pagetotal + \advance\@tempdima by\ht0 + \ifdim\@tempdima<106\p@ + \multiply\@tempdima by-1 + \advance\@tempdima by106\p@ + \vskip\@tempdima + \fi + \box0\par + \global\let\chapst@rthook=\undefined}} + +\newcommand\chapter{\startnewpage + \@ifundefined{thispagecropped}{}{\thispagecropped} + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} + +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \if@mainmatter + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}{\protect + \numberline{\thechapter\thechapterend}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} + +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} + +%%changes position and layout of numbered chapter headings +\def\@makechapterhead#1{{\parindent\z@\raggedright\normalfont + \hyphenpenalty \@M + \interlinepenalty\@M + \chapsize\chapstyle + \chap@hangfrom{\thechapter\thechapterend\hskip\betweenumberspace}%!!! + \ignorespaces#1\par\nobreak + \processchapstarthook + \ifdim\pagetotal>157\p@ + \vskip 11\p@ + \else + \@tempdima=168\p@\advance\@tempdima by-\pagetotal + \vskip\@tempdima + \fi}} + +%%changes position and layout of unnumbered chapter headings +\def\@makeschapterhead#1{{\parindent \z@ \raggedright\normalfont + \hyphenpenalty \@M + \interlinepenalty\@M + \chapsize\chapstyle + \schap@hangfrom + \ignorespaces#1\par\nobreak + \processchapstarthook + \ifdim\pagetotal>157\p@ + \vskip 11\p@ + \else + \@tempdima=168\p@\advance\@tempdima by-\pagetotal + \vskip\@tempdima + \fi}} + +% predefined unnumbered headings +\newcommand{\preface}[1][\prefacename]{\chapter*{#1}\markboth{#1}{#1}} + +% measures and setting of sections +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-24\p@ \@plus -4\p@ \@minus -4\p@}% + {12\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\secsize\secstyle + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-17\p@ \@plus -4\p@ \@minus -4\p@}% + {10\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\subsecsize\subsecstyle + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-17\p@ \@plus -4\p@ \@minus -4\p@}% + {10\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\normalsize\subsecstyle + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-10\p@ \@plus -4\p@ \@minus -4\p@}% + {10\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\normalsize\itshape + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\def\subparagraph{\@startsection{subparagraph}{5}{\z@}% + {-5.388\p@ \@plus-4\p@ \@minus-4\p@}{-5\p@}{\normalfont\normalsize\itshape}} + +% Appendix +\renewcommand\appendix{\par + \stepcounter{chapter} + \setcounter{chapter}{0} + \stepcounter{section} + \setcounter{section}{0} + \setcounter{equation}{0} + \setcounter{figure}{0} + \setcounter{table}{0} + \setcounter{footnote}{0} + \def\@chapapp{\appendixname}% + \renewcommand\thechapter{\@Alph\c@chapter}} + +% definition of sections +% \hyphenpenalty and \raggedright added, so that there is no +% hyphenation and the text is set ragged-right in sectioning + +\def\runinsep{} +\def\aftertext{\unskip\runinsep} +% +\def\thesection{\thechapter.\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} +\def\thesubparagraph{\theparagraph.\arabic{subparagraph}} +\def\chaptermark#1{} +% +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \raggedright + \hyphenpenalty \@M + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \@xsect{#3}} +% +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \sec@hangfrom{\hskip #3\relax\@svsec}% + {\raggedright + \hyphenpenalty \@M + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7\seccounterend}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth + \else + \protect\numberline{\csname the#1\endcsname\seccounterend}% + \fi + #7}% + \else + \def\@svsechd{% + #6\hskip #3\relax + \@svsec #8\aftertext\ignorespaces + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname\seccounterend}% + \fi + #7}}% + \fi + \@xsect{#5}} + +% figures and tables are processed in small print +\def \@floatboxreset {% + \reset@font + \small + \@setnobreak + \@setminipage +} +\def\fps@figure{htbp} +\def\fps@table{htbp} + +% Frame for paste-in figures or tables +\def\mpicplace#1#2{% #1 =width #2 =height +\vbox{\hbox to #1{\vrule\@width \fboxrule \@height #2\hfill}}} + +% labels of enumerate +\renewcommand\labelenumii{\theenumii)} +\renewcommand\theenumii{\@alph\c@enumii} + +% labels of itemize +\renewcommand\labelitemi{\textbullet} +\renewcommand\labelitemii{\textendash} +\let\labelitemiii=\labelitemiv + +% labels of description +\renewcommand*\descriptionlabel[1]{\hspace\labelsep #1\hfil} + +% fixed indentation for standard itemize-environment +\newdimen\svitemindent \setlength{\svitemindent}{\parindent} + + +% make indentations changeable + +\def\setitemindent#1{\settowidth{\labelwidth}{#1}% + \let\setit@m=Y% + \leftmargini\labelwidth + \advance\leftmargini\labelsep + \def\@listi{\leftmargin\leftmargini + \labelwidth\leftmargini\advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\medskipamount + \itemsep=\parskip \advance\itemsep by -\parsep}} +\def\setitemitemindent#1{\settowidth{\labelwidth}{#1}% + \let\setit@m=Y% + \leftmarginii\labelwidth + \advance\leftmarginii\labelsep +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\z@ + \itemsep=\parskip \advance\itemsep by -\parsep}} +% +% adjusted environment "description" +% if an optional parameter (at the first two levels of lists) +% is present, its width is considered to be the widest mark +% throughout the current list. +\def\description{\@ifnextchar[{\@describe}{\list{}{\labelwidth\z@ + \itemindent-\leftmargin \let\makelabel\descriptionlabel}}} +% +\def\describelabel#1{#1\hfil} +\def\@describe[#1]{\relax\ifnum\@listdepth=0 +\setitemindent{#1}\else\ifnum\@listdepth=1 +\setitemitemindent{#1}\fi\fi +\list{--}{\let\makelabel\describelabel}} +% +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\setit@m\undefined + \ifnum \@itemdepth=1 \leftmargini=\svitemindent + \labelwidth\leftmargini\advance\labelwidth-\labelsep + \leftmarginii=\leftmargini \leftmarginiii=\leftmargini + \fi + \fi + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list + \csname\@itemitem\endcsname + {\def\makelabel##1{\rlap{##1}\hss}}% + \fi} +% +\newdimen\verbatimindent \verbatimindent\parindent +\def\verbatim{\advance\@totalleftmargin by\verbatimindent +\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} + +% +% special signs and characters +\newcommand{\D}{\mathrm{d}} +\newcommand{\E}{\mathrm{e}} +\let\eul=\E +\newcommand{\I}{{\rm i}} +\let\imag=\I +% +% the definition of uppercase Greek characters +% Springer likes them as italics to depict variables +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} +% the upright forms are defined here as \var +\DeclareMathSymbol{\varGamma}{\mathalpha}{operators}{"00} +\DeclareMathSymbol{\varDelta}{\mathalpha}{operators}{"01} +\DeclareMathSymbol{\varTheta}{\mathalpha}{operators}{"02} +\DeclareMathSymbol{\varLambda}{\mathalpha}{operators}{"03} +\DeclareMathSymbol{\varXi}{\mathalpha}{operators}{"04} +\DeclareMathSymbol{\varPi}{\mathalpha}{operators}{"05} +\DeclareMathSymbol{\varSigma}{\mathalpha}{operators}{"06} +\DeclareMathSymbol{\varUpsilon}{\mathalpha}{operators}{"07} +\DeclareMathSymbol{\varPhi}{\mathalpha}{operators}{"08} +\DeclareMathSymbol{\varPsi}{\mathalpha}{operators}{"09} +\DeclareMathSymbol{\varOmega}{\mathalpha}{operators}{"0A} +% Upright Lower Case Greek letters without using a new MathAlphabet +\newcommand{\greeksym}[1]{\usefont{U}{psy}{m}{n}#1} +\newcommand{\greeksymbold}[1]{{\usefont{U}{psy}{b}{n}#1}} +\newcommand{\allmodesymb}[2]{\relax\ifmmode{\mathchoice +{\mbox{\fontsize{\tf@size}{\tf@size}#1{#2}}} +{\mbox{\fontsize{\tf@size}{\tf@size}#1{#2}}} +{\mbox{\fontsize{\sf@size}{\sf@size}#1{#2}}} +{\mbox{\fontsize{\ssf@size}{\ssf@size}#1{#2}}}} +\else +\mbox{#1{#2}}\fi} +% Definition of lower case Greek letters +\newcommand{\ualpha}{\allmodesymb{\greeksym}{a}} +\newcommand{\ubeta}{\allmodesymb{\greeksym}{b}} +\newcommand{\uchi}{\allmodesymb{\greeksym}{c}} +\newcommand{\udelta}{\allmodesymb{\greeksym}{d}} +\newcommand{\ugamma}{\allmodesymb{\greeksym}{g}} +\newcommand{\umu}{\allmodesymb{\greeksym}{m}} +\newcommand{\unu}{\allmodesymb{\greeksym}{n}} +\newcommand{\upi}{\allmodesymb{\greeksym}{p}} +\newcommand{\utau}{\allmodesymb{\greeksym}{t}} +% redefines the \vec accent to a bold character - if desired +\def\fig@type{arrow}% temporarily abused +\ifx\vec@style\fig@type\else +\@ifundefined{vec@style}{% + \def\vec#1{\ensuremath{\mathchoice + {\mbox{\boldmath$\displaystyle\mathbf{#1}$}} + {\mbox{\boldmath$\textstyle\mathbf{#1}$}} + {\mbox{\boldmath$\scriptstyle\mathbf{#1}$}} + {\mbox{\boldmath$\scriptscriptstyle\mathbf{#1}$}}}}% +} +{\def\vec#1{\ensuremath{\mathchoice + {\mbox{\boldmath$\displaystyle#1$}} + {\mbox{\boldmath$\textstyle#1$}} + {\mbox{\boldmath$\scriptstyle#1$}} + {\mbox{\boldmath$\scriptscriptstyle#1$}}}}% +} +\fi +% tensor +\def\tens#1{\relax\ifmmode\mathsf{#1}\else\textsf{#1}\fi} + +% end of proof symbol +\newcommand\qedsymbol{\hbox{\rlap{$\sqcap$}$\sqcup$}} +\newcommand\qed{\relax\ifmmode\else\unskip\quad\fi\qedsymbol} +\newcommand\smartqed{\renewcommand\qed{\relax\ifmmode\qedsymbol\else + {\unskip\nobreak\hfil\penalty50\hskip1em\null\nobreak\hfil\qedsymbol + \parfillskip=\z@\finalhyphendemerits=0\endgraf}\fi}} +% +\def\num@book{% +\renewcommand\thesection{\thechapter.\@arabic\c@section}% +\renewcommand\thesubsection{\thesection.\@arabic\c@subsection}% +\renewcommand\theequation{\thechapter.\@arabic\c@equation}% +\renewcommand\thefigure{\thechapter.\@arabic\c@figure}% +\renewcommand\thetable{\thechapter.\@arabic\c@table}% +\@addtoreset{section}{chapter}% +\@addtoreset{figure}{chapter}% +\@addtoreset{table}{chapter}% +\@addtoreset{equation}{chapter}} +% +% Ragged bottom for the actual page +\def\thisbottomragged{\def\@textbottom{\vskip\z@ \@plus.0001fil +\global\let\@textbottom\relax}} + +% This is texte.tex +% it defines various texts and their translations +% called up with documentstyle options +\def\switcht@albion{% +\def\abstractname{Summary.}% +\def\ackname{Acknowledgement.}% +\def\andname{and}% +\def\bibname{References}% +\def\lastandname{, and}% +\def\appendixname{Appendix}% +\def\chaptername{Chapter}% +\def\claimname{Claim}% +\def\conjecturename{Conjecture}% +\def\contentsname{Contents}% +\def\corollaryname{Corollary}% +\def\definitionname{Definition}% +\def\examplename{Example}% +\def\exercisename{Exercise}% +\def\figurename{Fig.}% +\def\keywordname{{\bf Key words:}}% +\def\indexname{Index}% +\def\lemmaname{Lemma}% +\def\contriblistname{List of Contributors}% +\def\listfigurename{List of Figures}% +\def\listtablename{List of Tables}% +\def\mailname{{\it Correspondence to\/}:}% +\def\noteaddname{Note added in proof}% +\def\notename{Note}% +\def\partname{Part}% +\def\prefacename{Preface}% +\def\problemname{Problem}% +\def\proofname{Proof}% +\def\propertyname{Property}% +\def\propositionname{Proposition}% +\def\questionname{Question}% +\def\refname{References}% +\def\remarkname{Remark}% +\def\seename{see}% +\def\solutionname{Solution}% +\def\subclassname{{\it Subject Classifications\/}:}% +\def\tablename{Table}% +\def\theoremname{Theorem}} +\switcht@albion +% Names of theorem like environments are already defined +% but must be translated if another language is chosen +% +% French section +\def\switcht@francais{\svlanginfo + \def\abstractname{R\'esum\'e.}% + \def\ackname{Remerciements.}% + \def\andname{et}% + \def\lastandname{ et}% + \def\appendixname{Appendice}% + \def\bibname{Bibliographie}% + \def\chaptername{Chapitre}% + \def\claimname{Pr\'etention}% + \def\conjecturename{Hypoth\`ese}% + \def\contentsname{Table des mati\`eres}% + \def\corollaryname{Corollaire}% + \def\definitionname{D\'efinition}% + \def\examplename{Exemple}% + \def\exercisename{Exercice}% + \def\figurename{Fig.}% + \def\keywordname{{\bf Mots-cl\'e:}}% + \def\indexname{Index}% + \def\lemmaname{Lemme}% + \def\contriblistname{Liste des contributeurs}% + \def\listfigurename{Liste des figures}% + \def\listtablename{Liste des tables}% + \def\mailname{{\it Correspondence to\/}:}% + \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% + \def\notename{Remarque}% + \def\partname{Partie}% + \def\prefacename{Avant-propos}% ou Pr\'eface + \def\problemname{Probl\`eme}% + \def\proofname{Preuve}% + \def\propertyname{Caract\'eristique}% +%\def\propositionname{Proposition}% + \def\questionname{Question}% + \def\refname{Lit\'erature}% + \def\remarkname{Remarque}% + \def\seename{voir}% + \def\solutionname{Solution}% + \def\subclassname{{\it Subject Classifications\/}:}% + \def\tablename{Tableau}% + \def\theoremname{Th\'eor\`eme}% +} +% +% German section +\def\switcht@deutsch{\svlanginfo + \def\abstractname{Zusammenfassung.}% + \def\ackname{Danksagung.}% + \def\andname{und}% + \def\lastandname{ und}% + \def\appendixname{Anhang}% + \def\bibname{Literaturverzeichnis}% + \def\chaptername{Kapitel}% + \def\claimname{Behauptung}% + \def\conjecturename{Hypothese}% + \def\contentsname{Inhaltsverzeichnis}% + \def\corollaryname{Korollar}% +%\def\definitionname{Definition}% + \def\examplename{Beispiel}% + \def\exercisename{\"Ubung}% + \def\figurename{Abb.}% + \def\keywordname{{\bf Schl\"usselw\"orter:}}% + \def\indexname{Sachverzeichnis}% +%\def\lemmaname{Lemma}% + \def\contriblistname{Mitarbeiter}% + \def\listfigurename{Abbildungsverzeichnis}% + \def\listtablename{Tabellenverzeichnis}% + \def\mailname{{\it Correspondence to\/}:}% + \def\noteaddname{Nachtrag}% + \def\notename{Anmerkung}% + \def\partname{Teil}% + \def\prefacename{Vorwort}% +%\def\problemname{Problem}% + \def\proofname{Beweis}% + \def\propertyname{Eigenschaft}% +%\def\propositionname{Proposition}% + \def\questionname{Frage}% + \def\refname{Literaturverzeichnis}% + \def\remarkname{Anmerkung}% + \def\seename{siehe}% + \def\solutionname{L\"osung}% + \def\subclassname{{\it Subject Classifications\/}:}% + \def\tablename{Tabelle}% +%\def\theoremname{Theorem}% +} + +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +\gets\cr\to\cr}}}}} +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr +\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr +\noalign{\vskip\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +<\cr +\noalign{\vskip0.9\p@}=\cr}}}}} +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr +\noalign{\vskip1.2\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr +\noalign{\vskip\p@}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr +\noalign{\vskip0.9\p@}=\cr}}}}} +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-\p@}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr +>\cr\noalign{\vskip-\p@}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.8\p@}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.3\p@}<\cr}}}}} +\def\bbbr{{\rm I\!R}} %reelle Zahlen +\def\bbbm{{\rm I\!M}} +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen +\def\bbbf{{\rm I\!F}} +\def\bbbh{{\rm I\!H}} +\def\bbbk{{\rm I\!K}} +\def\bbbp{{\rm I\!P}} +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox +to\z@{\kern0.4\wd0\vrule\@height0.9\ht0\hss}\box0}}}} +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.7\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to\z@{\kern0.4\wd0\vrule\@height0.7\ht0\hss}\box0}}}} +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +T$}\hbox{\hbox to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox +to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox +to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox +to\z@{\kern0.3\wd0\vrule\@height0.9\ht0\hss}\box0}}}} +\def\bbbs{{\mathchoice +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\hbox +to\z@{\kern0.55\wd0\vrule\@height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\hbox +to\z@{\kern0.55\wd0\vrule\@height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.35\wd0\vrule\@height0.45\ht0\hss}\raise0.05\ht0\hbox +to\z@{\kern0.5\wd0\vrule\@height0.45\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox +to\z@{\kern0.4\wd0\vrule\@height0.45\ht0\hss}\raise0.05\ht0\hbox +to\z@{\kern0.55\wd0\vrule\@height0.45\ht0\hss}\box0}}}} +\def\bbbz{{\mathchoice {\hbox{$\textstyle\sf Z\kern-0.4em Z$}} +{\hbox{$\textstyle\sf Z\kern-0.4em Z$}} +{\hbox{$\scriptstyle\sf Z\kern-0.3em Z$}} +{\hbox{$\scriptscriptstyle\sf Z\kern-0.2em Z$}}}} + +\let\ts\, + +\setlength \labelsep {5\p@} +\setlength\leftmargini {17\p@} +\setlength\leftmargin {\leftmargini} +\setlength\leftmarginii {\leftmargini} +\setlength\leftmarginiii {\leftmargini} +\setlength\leftmarginiv {\leftmargini} +\setlength\labelwidth {\leftmargini} +\addtolength\labelwidth{-\labelsep} + +\def\@listI{\leftmargin\leftmargini + \parsep=\parskip + \topsep=\medskipamount + \itemsep=\parskip \advance\itemsep by -\parsep} +\let\@listi\@listI +\@listi + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\z@ + \itemsep=\parskip + \advance\itemsep by -\parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth by -\labelsep + \parsep=\parskip + \topsep=\z@ + \itemsep=\parskip + \advance\itemsep by -\parsep + \partopsep=\topsep} + +\setlength\arraycolsep{1.5\p@} +\setlength\tabcolsep{1.5\p@} + +\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\chapter*{\contentsname \@mkboth{{\contentsname}}{{\contentsname}}} + \@starttoc{toc}\if@restonecol\twocolumn\fi} + +\setcounter{tocdepth}{2} + +\def\l@part#1#2{\addpenalty{\@secpenalty}% + \addvspace{2em \@plus\p@}% + \begingroup + \parindent \z@ + \rightskip \z@ \@plus 5em + \hrule\vskip5\p@ + \bfseries\boldmath + \leavevmode + #1\par + \vskip5\p@ + \hrule + \vskip\p@ + \nobreak + \endgroup} + +\def\@dotsep{2} + +\def\addnumcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline + {\thechapter}#3}{\thepage}}} +\def\addcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} +\def\addcontentsmarkwop#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}}} + +\def\@adcmk[#1]{\ifcase #1 \or +\def\@gtempa{\addnumcontentsmark}% + \or \def\@gtempa{\addcontentsmark}% + \or \def\@gtempa{\addcontentsmarkwop}% + \fi\@gtempa{toc}{chapter}} +\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} + +\def\l@chapter#1#2{\par\addpenalty{-\@highpenalty} + \addvspace{1.0em \@plus \p@} + \@tempdima \tocchpnum \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by \z@ \@plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip + {\bfseries\boldmath#1}\ifx0#2\hfil\null + \else + \nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern + \@dotsep mu$}\hfill + \nobreak\hbox to\@pnumwidth{\hss #2}% + \fi\par + \penalty\@highpenalty \endgroup} + +\newdimen\tocchpnum +\newdimen\tocsecnum +\newdimen\tocsectotal +\newdimen\tocsubsecnum +\newdimen\tocsubsectotal +\newdimen\tocsubsubsecnum +\newdimen\tocsubsubsectotal +\newdimen\tocparanum +\newdimen\tocparatotal +\newdimen\tocsubparanum +\tocchpnum=20\p@ % chapter {\bf 88.} \@plus 5.3\p@ +\tocsecnum=22.5\p@ % section 88.8. plus 4.722\p@ +\tocsubsecnum=30.5\p@ % subsection 88.8.8 plus 4.944\p@ +\tocsubsubsecnum=38\p@ % subsubsection 88.8.8.8 plus 4.666\p@ +\tocparanum=45\p@ % paragraph 88.8.8.8.8 plus 3.888\p@ +\tocsubparanum=53\p@ % subparagraph 88.8.8.8.8.8 plus 4.11\p@ +\def\calctocindent{% +\tocsectotal=\tocchpnum +\advance\tocsectotal by\tocsecnum +\tocsubsectotal=\tocsectotal +\advance\tocsubsectotal by\tocsubsecnum +\tocsubsubsectotal=\tocsubsectotal +\advance\tocsubsubsectotal by\tocsubsubsecnum +\tocparatotal=\tocsubsubsectotal +\advance\tocparatotal by\tocparanum} +\calctocindent + +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by \z@ \@plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +% +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} + +\renewcommand\listoffigures{% + \chapter*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% + } + +\renewcommand\listoftables{% + \chapter*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% + } + +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width 50\p@ + \kern2.6\p@} + +\newdimen\foot@parindent +\foot@parindent 10.83\p@ + +\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent\parshape\@ne\foot@parindent + \@tempdima}\par + \parindent \foot@parindent\noindent \hbox to \z@{% + \hss\hss$^{\@thefnmark}$ }#1} + +\if@spthms +% Definition of the "\spnewtheorem" command. +% +% Usage: +% +% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} +% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} +% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} +% +% New is "cap_font" and "body_font". It stands for +% fontdefinition of the caption and the text itself. +% +% "\spnewtheorem*" gives a theorem without number. +% +% A defined spnewthoerem environment is used as described +% by Lamport. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\@thmcountersep{.} +\def\@thmcounterend{.} +\newcommand\nocaption{\noexpand\@gobble} +\newdimen\spthmsep \spthmsep=3pt + +\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} + +% definition of \spnewtheorem with number + +\def\@spnthm#1#2{% + \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} +\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} + +\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@addtoreset{#1}{#3}% + \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@spothm#1[#2]#3#4#5{% + \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% + \expandafter\xdef\csname #1name\endcsname{#3}% + \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}}} + +\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\labelsep=\spthmsep\refstepcounter{#1}% +\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} + +\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% + \ignorespaces} + +\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname + the#1\endcsname}{#5}{#3}{#4}\ignorespaces} + +\def\normalthmheadings{\def\@spbegintheorem##1##2##3##4{\trivlist + \item[\hskip\labelsep{##3##1\ ##2\@thmcounterend}]##4} +\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{##4(##3)\@thmcounterend\ }##5}} +\normalthmheadings + +\def\reversethmheadings{\def\@spbegintheorem##1##2##3##4{\trivlist + \item[\hskip\labelsep{##3##2\ ##1\@thmcounterend}]##4} +\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##2\ ##1}]{##4(##3)\@thmcounterend\ }##5}} + +% definition of \spnewtheorem* without number + +\def\@sthm#1#2{\@Ynthm{#1}{#2}} + +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} + +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} + +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} + {#4}{#2}{#3}\ignorespaces} + +\def\@Begintheorem#1#2#3{#3\trivlist + \item[\hskip\labelsep{#2#1\@thmcounterend}]} + +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist + \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} + +% initialize theorem environment + +\if@envcntshowhiercnt % show hierarchy counter + \def\@thmcountersep{.} + \spnewtheorem{theorem}{Theorem}[\envankh]{\bfseries}{\itshape} + \@addtoreset{theorem}{chapter} +\else % theorem counter only + \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} + \if@envcntreset + \@addtoreset{theorem}{chapter} + \if@envcntresetsect + \@addtoreset{theorem}{section} + \fi + \fi +\fi + +%definition of divers theorem environments +\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} +\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} +% +\if@envcntsame % all environments like "Theorem" - using its counter + \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} +\else % all environments with their own counter + \if@envcntshowhiercnt % show hierarchy counter + \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[\envankh]{#3}{#4}} + \else % environment counter only + \if@envcntreset % environment counter is reset each section + \if@envcntresetsect + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{chapter}\@addtoreset{#1}{section}} + \else + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{chapter}} + \fi + \else + \let\spn@wtheorem=\@spynthm + \fi + \fi +\fi +% +\let\spdefaulttheorem=\spn@wtheorem +% +\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} +\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} +\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} +\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} +\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} +\spn@wtheorem{exercise}{Exercise}{\bfseries}{\rmfamily} +\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} +\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} +\spn@wtheorem{problem}{Problem}{\bfseries}{\rmfamily} +\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} +\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} +\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} +\spn@wtheorem{solution}{Solution}{\bfseries}{\rmfamily} +\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} +% +\newenvironment{theopargself} + {\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist + \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}}{} +\newenvironment{theopargself*} + {\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{\hspace*{-\labelsep}##4##3\@thmcounterend}##5} + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist + \item[\hskip\labelsep{##3##1}]{\hspace*{-\labelsep}##3##2\@thmcounterend}}}{} +\fi + +\def\@takefromreset#1#2{% + \def\@tempa{#1}% + \let\@tempd\@elt + \def\@elt##1{% + \def\@tempb{##1}% + \ifx\@tempa\@tempb\else + \@addtoreset{##1}{#2}% + \fi}% + \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname + \expandafter\def\csname cl@#2\endcsname{}% + \@tempc + \let\@elt\@tempd} + +% redefininition of the captions for "figure" and "table" environments +% +\@ifundefined{floatlegendstyle}{\def\floatlegendstyle{\bfseries}}{} +\def\floatcounterend{.\ } +\def\capstrut{\vrule\@width\z@\@height\topskip} +\@ifundefined{captionstyle}{\def\captionstyle{\normalfont\small}}{} +\@ifundefined{instindent}{\newdimen\instindent}{} + +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore\if@minipage\@setminipage\fi + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +\def\twocaptionwidth#1#2{\def\first@capwidth{#1}\def\second@capwidth{#2}} +% Default: .46\textwidth +\twocaptionwidth{.46\textwidth}{.46\textwidth} + +\def\leftcaption{\refstepcounter\@captype\@dblarg% + {\@leftcaption\@captype}} + +\def\rightcaption{\refstepcounter\@captype\@dblarg% + {\@rightcaption\@captype}} + +\long\def\@leftcaption#1[#2]#3{\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \vskip\figcapgap + \@maketwocaptions{\csname fnum@#1\endcsname}{\ignorespaces #3}% + {\first@capwidth}\ignorespaces\hspace{.073\textwidth}\hfill% + \endgroup} + +\long\def\@rightcaption#1[#2]#3{\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \@maketwocaptions{\csname fnum@#1\endcsname}{\ignorespaces #3}% + {\second@capwidth}\par + \endgroup} + +\long\def\@maketwocaptions#1#2#3{% + \parbox[t]{#3}{{\floatlegendstyle #1\floatcounterend}#2}} + +\def\fig@pos{l} +\newcommand{\leftfigure}[2][\fig@pos]{\makebox[.4635\textwidth][#1]{#2}} +\let\rightfigure\leftfigure + +\newdimen\figgap\figgap=0.5cm % hgap between figure and sidecaption +% +\long\def\@makesidecaption#1#2{% + \setbox0=\vbox{\hsize=\@tempdima + \captionstyle{\floatlegendstyle + #1\floatcounterend}#2}% + \ifdim\instindent<\z@ + \ifdim\ht0>-\instindent + \advance\instindent by\ht0 + \typeout{^^JClass-Warning: Legend of \string\sidecaption\space for + \@captype\space\csname the\@captype\endcsname + ^^Jis \the\instindent\space taller than the corresponding float - + ^^Jyou'd better switch the environment. }% + \instindent\z@ + \fi + \else + \ifdim\ht0<\instindent + \advance\instindent by-\ht0 + \advance\instindent by-\dp0\relax + \advance\instindent by\topskip + \advance\instindent by-11\p@ + \else + \advance\instindent by-\ht0 + \instindent=-\instindent + \typeout{^^JClass-Warning: Legend of \string\sidecaption\space for + \@captype\space\csname the\@captype\endcsname + ^^Jis \the\instindent\space taller than the corresponding float - + ^^Jyou'd better switch the environment. }% + \instindent\z@ + \fi + \fi + \parbox[b]{\@tempdima}{\captionstyle{\floatlegendstyle + #1\floatcounterend}#2% + \ifdim\instindent>\z@ \\ + \vrule\@width\z@\@height\instindent + \@depth\z@ + \fi}} +\def\sidecaption{\@ifnextchar[\sidec@ption{\sidec@ption[b]}} +\def\sidec@ption[#1]#2\caption{% +\setbox\@tempboxa=\hbox{\ignorespaces#2\unskip}% +\if@twocolumn + \ifdim\hsize<\textwidth\else + \ifdim\wd\@tempboxa<\columnwidth + \typeout{Double column float fits into single column - + ^^Jyou'd better switch the environment. }% + \fi + \fi +\fi + \instindent=\ht\@tempboxa + \advance\instindent by\dp\@tempboxa +\if t#1 +\else + \instindent=-\instindent +\fi +\@tempdima=\hsize +\advance\@tempdima by-\figgap +\advance\@tempdima by-\wd\@tempboxa +\ifdim\@tempdima<3cm + \ClassWarning{SVMono}{\string\sidecaption: No sufficient room for the legend; + ^^Jusing normal \string\caption}% + \unhbox\@tempboxa + \let\@capcommand=\@caption +\else + \ifdim\@tempdima<4.5cm + \ClassWarning{SVMono}{\string\sidecaption: Room for the legend very narrow; + ^^Jusing \string\raggedright}% + \toks@\expandafter{\captionstyle\sloppy + \rightskip=\z@\@plus6mm\relax}% + \def\captionstyle{\the\toks@}% + \fi + \let\@capcommand=\@sidecaption + \leavevmode + \unhbox\@tempboxa + \hfill +\fi +\refstepcounter\@captype +\@dblarg{\@capcommand\@captype}} +\long\def\@sidecaption#1[#2]#3{\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \@makesidecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\fig@type{figure} + +\def\leftlegendglue{\hfil} +\newdimen\figcapgap\figcapgap=5\p@ % vgap between figure and caption +\newdimen\tabcapgap\tabcapgap=5.5\p@ % vgap between caption and table + +\long\def\@makecaption#1#2{% + \captionstyle + \ifx\@captype\fig@type + \vskip\figcapgap + \fi + \setbox\@tempboxa\hbox{{\floatlegendstyle #1\floatcounterend}% + \capstrut #2}% + \ifdim \wd\@tempboxa >\hsize + {\floatlegendstyle #1\floatcounterend}\capstrut #2\par + \else + \hbox to\hsize{\leftlegendglue\unhbox\@tempboxa\hfil}% + \fi + \ifx\@captype\fig@type\else + \vskip\tabcapgap + \fi} + +\newcounter{merk} + +\def\endfigure{\resetsubfig\end@float} + +\@namedef{endfigure*}{\resetsubfig\end@dblfloat} + +\def\resetsubfig{\global\let\last@subfig=\undefined} + +\def\r@setsubfig{\xdef\last@subfig{\number\value{figure}}% +\setcounter{figure}{\value{merk}}% +\setcounter{merk}{0}} + +\def\subfigures{\refstepcounter{figure}% + \@tempcnta=\value{merk}% + \setcounter{merk}{\value{figure}}% + \setcounter{figure}{\the\@tempcnta}% + \def\thefigure{\if@numart\else\thechapter.\fi + \@arabic\c@merk\alph{figure}}% + \let\resetsubfig=\r@setsubfig} + +\def\samenumber{\addtocounter{\@captype}{-1}% +\@ifundefined{last@subfig}{}{\setcounter{merk}{\last@subfig}}} + +% redefinition of the "bibliography" environment +% +\def\biblstarthook#1{\gdef\biblst@rthook{#1}} +% +\AtBeginDocument{% +\ifx\secbibl\undefined + \def\bibsection{\chapter*{\refname}\markboth{\refname}{\refname}% + \addcontentsline{toc}{chapter}{\refname}% + \csname biblst@rthook\endcsname} +\else + \def\bibsection{\section*{\refname}\markright{\refname}% + \addcontentsline{toc}{section}{\refname}% + \csname biblst@rthook\endcsname} +\fi} +\ifx\oribibl\undefined % Springer way of life + \renewenvironment{thebibliography}[1]{\bibsection + \global\let\biblst@rthook=\undefined + \def\@biblabel##1{##1.} + \small + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + \def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw + {\let\protect\noexpand\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\else % original bibliography is required + \let\bibname=\refname + \renewenvironment{thebibliography}[1] + {\chapter*{\bibname + \@mkboth{\bibname}{\bibname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\fi + +\let\if@threecolind\iffalse +\def\threecolindex{\let\if@threecolind\iftrue} +\def\indexstarthook#1{\gdef\indexst@rthook{#1}} +\renewenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \columnseprule \z@ + \columnsep 1cc + \@nobreaktrue + \if@threecolind + \begin{multicols}{3}[\chapter*{\indexname}% + \else + \begin{multicols}{2}[\chapter*{\indexname}% + \fi + {\csname indexst@rthook\endcsname}]% + \global\let\indexst@rthook=\undefined + \markboth{\indexname}{\indexname}% + \addcontentsline{toc}{chapter}{\indexname}% + \flushbottom + \parindent\z@ + \rightskip\z@ \@plus 40\p@ + \parskip\z@ \@plus .3\p@\relax + \flushbottom + \let\item\@idxitem + \def\,{\relax\ifmmode\mskip\thinmuskip + \else\hskip0.2em\ignorespaces\fi}% + \normalfont\small} + {\end{multicols} + \global\let\if@threecolind\iffalse + \if@restonecol\onecolumn\else\clearpage\fi} + +\def\idxquad{\hskip 10\p@}% space that divides entry from number + +\def\@idxitem{\par\setbox0=\hbox{--\,--\,--\enspace}% + \hangindent\wd0\relax} + +\def\subitem{\par\noindent\setbox0=\hbox{--\enspace}% second order + \kern\wd0\setbox0=\hbox{--\,--\,--\enspace}% + \hangindent\wd0\relax}% indexentry + +\def\subsubitem{\par\noindent\setbox0=\hbox{--\,--\enspace}% third order + \kern\wd0\setbox0=\hbox{--\,--\,--\enspace}% + \hangindent\wd0\relax}% indexentry + +\def\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} + +\def\subtitle#1{\gdef\@subtitle{#1}} +\def\@subtitle{} + +\def\maketitle{\par + \begingroup + \def\thefootnote{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox + to\z@{$\m@th^{\@thefnmark}$\hss}}% + \if@twocolumn + \twocolumn[\@maketitle]% + \else \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle \fi\thispagestyle{empty}\@thanks + \par\penalty -\@M + \endgroup + \setcounter{footnote}{0}% + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} + +\def\@maketitle{\newpage + \null + \vskip 2em % Vertical space above title. +\begingroup + \def\and{\unskip, } + \parindent=\z@ + \pretolerance=10000 + \rightskip=\z@ \@plus 3cm + {\LARGE % each author set in \LARGE + \lineskip .5em + \@author + \par}% + \vskip 2cm % Vertical space after author. + {\Huge \@title \par}% % Title set in \Huge size. + \vskip 1cm % Vertical space after title. + \if!\@subtitle!\else + {\LARGE\ignorespaces\@subtitle \par} + \vskip 1cm % Vertical space after subtitle. + \fi + \if!\@date!\else + {\large \@date}% % Date set in \large size. + \par + \vskip 1.5em % Vertical space after date. + \fi + \vfill + {\Large Springer\par} + \vskip 5\p@ + \large + Berlin\enspace Heidelberg\enspace New\kern0.1em York\\ + Hong\thinspace Kong\enspace London\\ + Milan\enspace Paris\enspace Tokyo\par +\endgroup} + +% Useful environments +\newenvironment{acknowledgement}{\par\addvspace{17\p@}\small\rm +\trivlist\item[\hskip\labelsep{\it\ackname}]} +{\endtrivlist\addvspace{6\p@}} +% +\newenvironment{noteadd}{\par\addvspace{17\p@}\small\rm +\trivlist\item[\hskip\labelsep{\it\noteaddname}]} +{\endtrivlist\addvspace{6\p@}} +% +\renewenvironment{abstract}{% + \advance\topsep by0.35cm\relax\small + \labelwidth=\z@ + \listparindent=\z@ + \itemindent\listparindent + \trivlist\item[\hskip\labelsep\bfseries\abstractname]% + \if!\abstractname!\hskip-\labelsep\fi + } + {\endtrivlist} + +% define the running headings of a twoside text +\def\runheadsize{\small} +\def\runheadstyle{\rmfamily\upshape} +\def\customizhead{\hspace{\headlineindent}} + +\def\ps@headings{\let\@mkboth\markboth + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\runheadsize\runheadstyle\rlap{\thepage}\customizhead + \leftmark\hfil} + \def\@oddhead{\hfil\runheadsize\runheadstyle\rightmark\customizhead + \llap{\thepage}} + \def\chaptermark##1{\markboth{{\ifnum\c@secnumdepth>\m@ne + \thechapter\thechapterend\hskip\betweenumberspace\fi ##1}}{{\ifnum %!!! + \c@secnumdepth>\m@ne\thechapter\thechapterend\hskip\betweenumberspace\fi ##1}}}%!!! + \def\sectionmark##1{\markright{{\ifnum\c@secnumdepth>\z@ + \thesection\seccounterend\hskip\betweenumberspace\fi ##1}}}} + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\runheadsize\runheadstyle\rlap{\thepage}\customizhead + \leftmark\hfil} + \def\@oddhead{\hfil\runheadsize\runheadstyle\rightmark\customizhead + \llap{\thepage}} + \let\chaptermark\@gobble + \let\sectionmark\@gobble + \let\subsectionmark\@gobble} + + +\ps@headings + +\endinput +%end of file svmono.cls From feff28f33e91aca5bd187cac6cdfc54b5ea79c1e Mon Sep 17 00:00:00 2001 From: OksanaTk Date: Wed, 20 Jul 2016 08:49:53 -0400 Subject: [PATCH 175/402] follow proper Python format --- AlexDanoff/src/math_function.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AlexDanoff/src/math_function.py b/AlexDanoff/src/math_function.py index 33ae8de..1704546 100644 --- a/AlexDanoff/src/math_function.py +++ b/AlexDanoff/src/math_function.py @@ -7,7 +7,6 @@ def math_string(file): string = open(file).read() output = [] ranges = math_mode.find_math_ranges(string) - #print ranges for i in ranges: new = string[i[0]:i[1]] output.append(new) @@ -100,7 +99,6 @@ def formatting(file_str): previous = line wrote = "\n".join(updated) - wrote = wrote # remove consecutive blank lines and blank lines between \index groups spaces_pat = re.compile(r'\n{2,}[ ]?\n+') @@ -108,5 +106,3 @@ def formatting(file_str): wrote = re.sub(r'\\index{(.*?)}\n\n\\index{(.*?)}', r'\\index{\1}\n\\index{\2}', wrote) return wrote - -#formatting(open('/home/ont1/DLMF/25.ZE/newMoritz').read()) \ No newline at end of file From 148bdbf8d7532f66e0bcb24ed0be3d01ee09fa71 Mon Sep 17 00:00:00 2001 From: OksanaTk Date: Wed, 20 Jul 2016 08:54:56 -0400 Subject: [PATCH 176/402] remove unnecessary comments --- AlexDanoff/src/replace_special.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/AlexDanoff/src/replace_special.py b/AlexDanoff/src/replace_special.py index 930d3f2..5123917 100644 --- a/AlexDanoff/src/replace_special.py +++ b/AlexDanoff/src/replace_special.py @@ -47,7 +47,6 @@ def main(): # Below: index_str writes to output file, math_string takes output file as input, and change_original # writes to the output based on the previous output file - # print math_mode.find_math_ranges(open(fname).read()) unchanged_math = math_function.math_string(fname) math_string = remove_special(unchanged_math) @@ -192,7 +191,6 @@ def remove_special(content): function = re.sub(r'\\index{(.*?)}\n\n\\index{(.*?)}', r'\\index{\1}\n\\index{\2}', function) content[counter] = function - # print 'content[counter]', content[counter] counter += 1 return "\n".join(content) @@ -239,11 +237,6 @@ def _replace_i(words): # one (but not both) of the surrounding characters IS alphabetic, may need to replace if any(s.isalpha() for s in surrounding): - """"# character before is alphabetic - if surrounding[0].isalpha(): - print('caught') # below was replacing i in ch 16 commands, shraeya wrote unnecessary if char before is vowel - # if surrounding[0] in "aeiou": - # replacement = r'\iunit'""" if surrounding[1].isalpha(): # character after is alphabetic From f5c3f14b00b67901e3aa3d6e7b0645edfdbbb27b Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Wed, 20 Jul 2016 10:01:14 -0400 Subject: [PATCH 177/402] Temporary commit --- AlexDanoff/src/math_function.py | 18 ++++++++--------- AlexDanoff/test/test_math_function.py | 28 +++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 AlexDanoff/test/test_math_function.py diff --git a/AlexDanoff/src/math_function.py b/AlexDanoff/src/math_function.py index 33ae8de..2d8d08f 100644 --- a/AlexDanoff/src/math_function.py +++ b/AlexDanoff/src/math_function.py @@ -2,12 +2,14 @@ import string import re -def math_string(file): - # Takes input file and returns list of strings when in math mode - string = open(file).read() +def math_string(in_file): + # Takes input file or string and returns list of strings when in math mode + try: #test if file or string + string = open(in_file).read() + except: + string = in_file output = [] - ranges = math_mode.find_math_ranges(string) - #print ranges + ranges = math_mode.find_math_ranges(string, drmf=True) for i in ranges: new = string[i[0]:i[1]] output.append(new) @@ -17,7 +19,7 @@ def math_string(file): def change_original(o_file, changed_math_string): # Places changed string from math mode back into place in the original function o_string = open(o_file).read() - ranges = math_mode.find_math_ranges(o_string) + ranges = math_mode.find_math_ranges(o_string, drmf=True) num = 0 edited = o_string for i in ranges: @@ -37,7 +39,7 @@ def formatting(file_str): in_ind = False previous = "" - ranges = math_mode.find_math_ranges(file_str) + ranges = math_mode.find_math_ranges(file_str, drmf=True) lines = file_str.split('\n') in_eq = False @@ -100,7 +102,6 @@ def formatting(file_str): previous = line wrote = "\n".join(updated) - wrote = wrote # remove consecutive blank lines and blank lines between \index groups spaces_pat = re.compile(r'\n{2,}[ ]?\n+') @@ -109,4 +110,3 @@ def formatting(file_str): return wrote -#formatting(open('/home/ont1/DLMF/25.ZE/newMoritz').read()) \ No newline at end of file diff --git a/AlexDanoff/test/test_math_function.py b/AlexDanoff/test/test_math_function.py new file mode 100644 index 0000000..59d024e --- /dev/null +++ b/AlexDanoff/test/test_math_function.py @@ -0,0 +1,28 @@ +from math_function import math_string +from unittest import TestCase + +class TestMathString(TestCase): + def test_math_string(self): + before = """ + \paragraph{Arithmetic Progression} + \index{arithmetic progression} + + \begin{equation}\label{eq:AL.ES.AR} + a + (a + d) + (a + 2d) + \dots + (a + (n-1)d) + = na + \tfrac{1}{2} n(n-1) d + = \tfrac{1}{2} n (a + \ell) + \end{equation} + + where $\ell$ = last term of the series = $a + (n-1)d$. + + \paragraph{Geometric Progression} + \index{geometric progression (or series)}""" + + after = ["""a + (a + d) + (a + 2d) + \dots + (a + (n-1)d) + = na + \tfrac{1}{2} n(n-1) d + = \tfrac{1}{2} n (a + \ell)""", "\ell", "a + (n-1)d"] + + math = math_string(before) + print 'math', math + print 'after', after + self.assertEqual(after, math) From bc486b97abcdba8248fa1935bd27966f891afadb Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Wed, 20 Jul 2016 10:57:52 -0400 Subject: [PATCH 178/402] Complete test cases and add formatting for author and status. --- DLMF_preprocessing/src/math_mode.py | 3 +++ DLMF_preprocessing/test/test_math_mode.py | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 7927bc0..a68a847 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -1,3 +1,6 @@ +__author__ = "Jagan Prem" +__status__ = "Production" + # Dictionary containing math mode delimiters and their respective endpoints. MATH_START = {"\\[": "\\]", "\\(": "\\)", diff --git a/DLMF_preprocessing/test/test_math_mode.py b/DLMF_preprocessing/test/test_math_mode.py index 3008742..67b1d16 100644 --- a/DLMF_preprocessing/test/test_math_mode.py +++ b/DLMF_preprocessing/test/test_math_mode.py @@ -45,14 +45,14 @@ NON_MATH_TESTS = [ { - "string": "\\mbox{Test\\(test\\)} ", + "string": "\\mbox{\\$Test\\(test\\)} ", "start": 14, - "output": 19 + "output": 21 }, { - "string": "test \\\\(\\begin{align*}\\end{align*}\\\\[", + "string": "test{} \\\\(\\begin{align*}\\end{align*}\\\\[", "start": 56, - "output": 37 + "output": 39 }, { "string": "\\begin{multline}\n\\left(2\\right)\n\\end{multline}", @@ -60,7 +60,7 @@ "output": 46 }, [ - (26, 30), + (28, 32), (19, 35) ] ] From 0bd62baa6819461897aff6b6a879f352c85acdac Mon Sep 17 00:00:00 2001 From: Parth Oza Date: Wed, 20 Jul 2016 11:00:06 -0400 Subject: [PATCH 179/402] Update CONTRIBUTING.md for status things --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 258684e..4e75335 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,6 +43,8 @@ PyCharm can help resolve merge conflicts. To resolve conflicts in your project, Code should be stored in a "src" folder. +All Python source files should have `__author__` and `__status__` set to the author's name and development status - either "Prototype", for the most basic, incomplete code, "Development", for code that is currently being worked on, and "Production" for code that is ready to be used without any changes. If there were multiple people working on the code, also set `__credits__` to a Python list of people who have worked on the code. + All subprojects must have README.md files. A guide may be found [here](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2). Note that some of these requirements may not make sense to put in your README.md. Make good use of .gitignore. Anything that has been generated by code in the repository (compiled code, test files, test output, etc.) should be in your .gitignore. The easiest way to do this is to move these files into a folder, and gitignore that folder. From 638255c159194304a030a867d42919f04be39d03 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Wed, 20 Jul 2016 11:06:14 -0400 Subject: [PATCH 180/402] -Run unittests for file math_function.py -Fix text removal error in math_function.py -Add \label to list of commands bringing out of math mode in math_mode.py --- AlexDanoff/test/test_math_function.py | 28 ----------- DLMF_preprocessing/src/math_function.py | 21 +++++--- DLMF_preprocessing/src/math_mode.py | 3 +- DLMF_preprocessing/test/test_math_function.py | 49 +++++++++++++++++++ 4 files changed, 64 insertions(+), 37 deletions(-) delete mode 100644 AlexDanoff/test/test_math_function.py create mode 100644 DLMF_preprocessing/test/test_math_function.py diff --git a/AlexDanoff/test/test_math_function.py b/AlexDanoff/test/test_math_function.py deleted file mode 100644 index 59d024e..0000000 --- a/AlexDanoff/test/test_math_function.py +++ /dev/null @@ -1,28 +0,0 @@ -from math_function import math_string -from unittest import TestCase - -class TestMathString(TestCase): - def test_math_string(self): - before = """ - \paragraph{Arithmetic Progression} - \index{arithmetic progression} - - \begin{equation}\label{eq:AL.ES.AR} - a + (a + d) + (a + 2d) + \dots + (a + (n-1)d) - = na + \tfrac{1}{2} n(n-1) d - = \tfrac{1}{2} n (a + \ell) - \end{equation} - - where $\ell$ = last term of the series = $a + (n-1)d$. - - \paragraph{Geometric Progression} - \index{geometric progression (or series)}""" - - after = ["""a + (a + d) + (a + 2d) + \dots + (a + (n-1)d) - = na + \tfrac{1}{2} n(n-1) d - = \tfrac{1}{2} n (a + \ell)""", "\ell", "a + (n-1)d"] - - math = math_string(before) - print 'math', math - print 'after', after - self.assertEqual(after, math) diff --git a/DLMF_preprocessing/src/math_function.py b/DLMF_preprocessing/src/math_function.py index 2d8d08f..3cdfe88 100644 --- a/DLMF_preprocessing/src/math_function.py +++ b/DLMF_preprocessing/src/math_function.py @@ -2,14 +2,16 @@ import string import re + def math_string(in_file): # Takes input file or string and returns list of strings when in math mode - try: #test if file or string + try: # test if file or string string = open(in_file).read() except: string = in_file output = [] - ranges = math_mode.find_math_ranges(string, drmf=True) + ranges = math_mode.find_math_ranges(string) + print ranges for i in ranges: new = string[i[0]:i[1]] output.append(new) @@ -18,8 +20,11 @@ def math_string(in_file): def change_original(o_file, changed_math_string): # Places changed string from math mode back into place in the original function - o_string = open(o_file).read() - ranges = math_mode.find_math_ranges(o_string, drmf=True) + try: + o_string = open(o_file).read() + except: + o_string = o_file + ranges = math_mode.find_math_ranges(o_string) num = 0 edited = o_string for i in ranges: @@ -39,7 +44,7 @@ def formatting(file_str): in_ind = False previous = "" - ranges = math_mode.find_math_ranges(file_str, drmf=True) + ranges = math_mode.find_math_ranges(file_str) lines = file_str.split('\n') in_eq = False @@ -68,10 +73,10 @@ def formatting(file_str): else: # not in eq - print line if not been_in_eq: # if text line != command if re.match(commands, line) or line == '': + if '\\paragraph' not in line and '\\acknowledgements' not in line: updated.append(line) else: # not in eq but already been in eq @@ -81,7 +86,8 @@ def formatting(file_str): if past_last > ranges[-1][1]: # In section after last eq if re.match(commands,line) or line == '': - updated.append(line) + if '\\paragraph' not in line: + updated.append(line) # if this line is an index start storing it,or write it if we're done with the indexes if IND_START in line: @@ -96,7 +102,6 @@ def formatting(file_str): if previous.strip() != "": ind_str = "\n" + ind_str - fullsplit = ind_str.split("\n") ind_str = "" previous = line diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index 7927bc0..ab8d1c6 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -13,7 +13,8 @@ # List of delimiters that exit math mode. MATH_END = ["\\hbox{", "\\mbox{", - "\\text{"] + "\\text{", + "\\label{"] def find_first(string, delim, start=0): diff --git a/DLMF_preprocessing/test/test_math_function.py b/DLMF_preprocessing/test/test_math_function.py new file mode 100644 index 0000000..9a3c2de --- /dev/null +++ b/DLMF_preprocessing/test/test_math_function.py @@ -0,0 +1,49 @@ +import math_function +from unittest import TestCase + + +before = """ +\\paragraph{Arithmetic Progression} +\\index{arithmetic progression} + +\\begin{equation}\\label{eq:AL.ES.AR} + a + (a + d) + (a + 2d) + \\dots + (a + (n-1)d) + = na + \\tfrac{1}{2} n(n-1) d + = \\tfrac{1}{2} n (a + \\ell) +\\end{equation} + +where $\\ell$ = last term of the series = $a + (n-1)d$. + +\\paragraph{Geometric Progression} +\\index{geometric progression (or series)}""" + +just_math = [""" + a + (a + d) + (a + 2d) + \\dots + (a + (n-1)d) + = na + \\tfrac{1}{2} n(n-1) d + = \\tfrac{1}{2} n (a + \\ell)\n""", "\\ell", "a + (n-1)d"] + +no_text = """ +\\index{arithmetic progression} + +\\begin{equation}\\label{eq:AL.ES.AR} + a + (a + d) + (a + 2d) + \\dots + (a + (n-1)d) + = na + \\tfrac{1}{2} n(n-1) d + = \\tfrac{1}{2} n (a + \\ell) +\\end{equation} + +\\index{geometric progression (or series)}""" + + + +class TestMathString(TestCase): + def test_math_string(self): + math = math_function.math_string(before) + self.assertEqual(just_math, math) + + def test_change_original(self): + c_o = math_function.change_original(before, just_math) + self.assertEqual(before, c_o) + + def test_formatting(self): + formatted = math_function.formatting(before) + self.assertEqual(no_text, formatted) From 8c0f1802df42f624da0f1120ef3b16c22f11884c Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Wed, 20 Jul 2016 11:20:19 -0400 Subject: [PATCH 181/402] Add to test case and made small fix in source. --- DLMF_preprocessing/src/math_mode.py | 1 + DLMF_preprocessing/test/test_math_mode.py | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/DLMF_preprocessing/src/math_mode.py b/DLMF_preprocessing/src/math_mode.py index a68a847..5017006 100644 --- a/DLMF_preprocessing/src/math_mode.py +++ b/DLMF_preprocessing/src/math_mode.py @@ -100,6 +100,7 @@ def parse_math(string, start, ranges): ranges.append((begin, start + i)) i += parse_non_math(string[i:], start + i, ranges) begin = start + i + i -= 1 if string[i:].startswith(MATH_START[delim]): if begin != start + i: ranges.append((begin, start + i)) diff --git a/DLMF_preprocessing/test/test_math_mode.py b/DLMF_preprocessing/test/test_math_mode.py index 67b1d16..2308e51 100644 --- a/DLMF_preprocessing/test/test_math_mode.py +++ b/DLMF_preprocessing/test/test_math_mode.py @@ -27,9 +27,9 @@ "output": 10 }, { - "string": "\\[2\\hbox{Test}\\]", + "string": "\\[2\\hbox{Test}\\\\]\\]", "start": 22, - "output": 15 + "output": 18 }, { "string": "$\\$$", @@ -39,15 +39,16 @@ [ (1, 10), (24, 25), + (36, 39), (13, 15) ] ] NON_MATH_TESTS = [ { - "string": "\\mbox{\\$Test\\(test\\)} ", + "string": "\\mbox{\\$Test\\(test\\\\)\\)} ", "start": 14, - "output": 21 + "output": 24 }, { "string": "test{} \\\\(\\begin{align*}\\end{align*}\\\\[", @@ -60,7 +61,7 @@ "output": 46 }, [ - (28, 32), + (28, 35), (19, 35) ] ] From 9e709a76fe766ada719b2e520e7f1ea04f9c45b9 Mon Sep 17 00:00:00 2001 From: Oksana Tkach Date: Wed, 20 Jul 2016 11:27:59 -0400 Subject: [PATCH 182/402] remove unnecessary code --- DLMF_preprocessing/src/math_function.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/DLMF_preprocessing/src/math_function.py b/DLMF_preprocessing/src/math_function.py index 7809196..2fa1dea 100644 --- a/DLMF_preprocessing/src/math_function.py +++ b/DLMF_preprocessing/src/math_function.py @@ -11,10 +11,6 @@ def math_string(in_file): string = in_file output = [] ranges = math_mode.find_math_ranges(string) -<<<<<<< HEAD:DLMF_preprocessing/src/math_function.py - print ranges -======= ->>>>>>> 148bdbf8d7532f66e0bcb24ed0be3d01ee09fa71:AlexDanoff/src/math_function.py for i in ranges: new = string[i[0]:i[1]] output.append(new) From cfac6aed300aab96b4d8564537348f80f587167c Mon Sep 17 00:00:00 2001 From: Joon Bang Date: Thu, 7 Jul 2016 10:09:25 -0400 Subject: [PATCH 183/402] Create modded Azeem code to update only Main Page --- KLS-main-page/KLS_main_page.py | 14 ++ KLS-main-page/headers.py | 55 +++++ KLS-main-page/list.py | 86 ++++++++ KLS-main-page/modMain.py | 117 +++++++++++ KLS-main-page/symbolsList2.py | 373 +++++++++++++++++++++++++++++++++ 5 files changed, 645 insertions(+) create mode 100644 KLS-main-page/KLS_main_page.py create mode 100644 KLS-main-page/headers.py create mode 100644 KLS-main-page/list.py create mode 100644 KLS-main-page/modMain.py create mode 100644 KLS-main-page/symbolsList2.py diff --git a/KLS-main-page/KLS_main_page.py b/KLS-main-page/KLS_main_page.py new file mode 100644 index 0000000..fc1722a --- /dev/null +++ b/KLS-main-page/KLS_main_page.py @@ -0,0 +1,14 @@ +import os + +inp = raw_input("Update Main Page? (y or n)") +if inp != "n": + print("List") + os.system("python list.py") + print("Symbols List") + os.system("python symbolsList2.py") + print("Headers") + os.system("python headers.py") + print("List Ways") + os.system("python modMain.py") + +print("Done") diff --git a/KLS-main-page/headers.py b/KLS-main-page/headers.py new file mode 100644 index 0000000..bdaac81 --- /dev/null +++ b/KLS-main-page/headers.py @@ -0,0 +1,55 @@ +file = open("main_page.mmd", "r") +lines = file.read() +listStart = lines.find("= Definition Pages =") +listStart = lines.find("* [[Definition:", listStart) +listEnd = lines.find("" in h: + h = h[h.find(">>
\n

)9fX;Y{U;ehE`jeXqsOOpKw*oMPjX1oiG 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