@@ -1808,16 +1808,24 @@ put('log, 'fancy!-functionsymbol, "\log");
18081808put('logb, 'fancy!-prifn, 'fancy!-logb);
18091809put('log10, 'fancy!-prifn, 'fancy!-log10);
18101810
1811- symbolic procedure fancy!-logb(u);
1811+ inline procedure fancy!-logb(u);
18121812 % u = (logb(x, b) -> \log_{b} (x)
1813- fancy!-indexed!-fn {' log, caddr u, cadr u} ;
1813+ fancy!-indexed!-fn {"\ log" , caddr u, cadr u} ;
18141814
1815- symbolic procedure fancy!-log10(u);
1815+ inline procedure fancy!-log10(u);
18161816 % u = (log10 x) -> \log_{10} (x)
1817- fancy!-indexed!-fn {' log, 10, cadr u} ;
1817+ fancy!-indexed!-fn {"\ log" , 10, cadr u} ;
18181818
1819- symbolic inline procedure fancy!-indexed!-fn u;
1820- fancy!-bessel u;
1819+ put('atan2, 'fancy!-functionsymbol, "\arctan_2");
1820+
1821+ symbolic procedure fancy!-indexed!-fn u;
1822+ fancy!-level
1823+ begin scalar w;
1824+ fancy!-prefix!-operator car u;
1825+ w := fancy!-print!-one!-index cadr u;
1826+ if testing!-width!* and w eq 'failed then return w;
1827+ return fancy!-print!-function!-arguments cddr u;
1828+ end;
18211829
18221830put('ln, 'fancy!-functionsymbol, "\ln");
18231831put('max, 'fancy!-functionsymbol, "\max");
@@ -1868,6 +1876,7 @@ symbolic procedure fancy!-polygamma(u);
18681876 end;
18691877
18701878put('iGamma, 'fancy!-functionsymbol, '!P); % P(a,z)
1879+ put('m_Gamma, 'fancy!-functionsymbol, "\gamma" ); % gamma(a,z)
18711880
18721881put('iBeta, 'fancy!-prifn, 'fancy!-iBeta);
18731882put('iBeta, 'fancy!-functionsymbol, '!I);
@@ -1900,6 +1909,7 @@ put('Ci, 'fancy!-functionsymbol, "\mathrm{Ci}");
19001909put('Shi, 'fancy!-functionsymbol, "\mathrm{Shi}" );
19011910put('Chi, 'fancy!-functionsymbol, "\mathrm{Chi}" );
19021911put('erf, 'fancy!-functionsymbol, "\mathrm{erf}" );
1912+ % erfc(x) -> 1 - erf(x) for all x.
19031913put('Fresnel_S, 'fancy!-functionsymbol, "\mathrm{S}" );
19041914put('Fresnel_C, 'fancy!-functionsymbol, "\mathrm{C}" );
19051915
@@ -1917,24 +1927,15 @@ put('Airy_BiPrime, 'fancy!-functionsymbol, "\mathrm{Bi}'");
19171927put('Airy_AiPrime, 'fancy!-symbol!-length, 5 );
19181928put('Airy_BiPrime, 'fancy!-symbol!-length, 5 );
19191929
1920- put('BesselI, 'fancy!-prifn, 'fancy!-bessel );
1921- put('BesselJ, 'fancy!-prifn, 'fancy!-bessel );
1922- put('BesselY, 'fancy!-prifn, 'fancy!-bessel );
1923- put('BesselK, 'fancy!-prifn, 'fancy!-bessel );
1930+ put('BesselI, 'fancy!-prifn, 'fancy!-indexed!-fn );
1931+ put('BesselJ, 'fancy!-prifn, 'fancy!-indexed!-fn );
1932+ put('BesselY, 'fancy!-prifn, 'fancy!-indexed!-fn );
1933+ put('BesselK, 'fancy!-prifn, 'fancy!-indexed!-fn );
19241934put('BesselI, 'fancy!-functionsymbol, '!I);
19251935put('BesselJ, 'fancy!-functionsymbol, '!J);
19261936put('BesselY, 'fancy!-functionsymbol, '!Y);
19271937put('BesselK, 'fancy!-functionsymbol, '!K);
19281938
1929- symbolic procedure fancy!-bessel(u);
1930- fancy!-level
1931- begin scalar w;
1932- fancy!-prefix!-operator car u;
1933- w: =fancy!-print!-one!-index cadr u;
1934- if testing!-width!* and w eq 'failed then return w;
1935- return fancy!-print!-function!-arguments cddr u;
1936- end;
1937-
19381939put('Hankel1, 'fancy!-prifn, 'fancy!-Hankel); % H_{nu}^{(1)}(z)
19391940put('Hankel2, 'fancy!-prifn, 'fancy!-Hankel); % H_{nu}^{(2)}(z)
19401941
@@ -1974,6 +1975,10 @@ symbolic procedure fancy!-Lommel(u);
19741975
19751976put('KummerM, 'fancy!-functionsymbol, '!M); % M(a, b, z)
19761977put('KummerU, 'fancy!-functionsymbol, '!U); % U(a, b, z)
1978+ % Note the Whittaker M & W functions are simplified to expressions
1979+ % involving the Kummer M & U functions respectively.
1980+
1981+ put('Lambert_W, 'fancy!-functionsymbol, "\omega" );
19771982
19781983% Classical Orthogonal Polynomials
19791984
@@ -2031,6 +2036,47 @@ put('LaguerreP, 'fancy!-functionsymbol, '!L);
20312036put('HermiteP, 'fancy!-prifn, 'fancy!-indexed!-fn); % H_n(x)
20322037put('HermiteP, 'fancy!-functionsymbol, '!H);
20332038
2039+ % Other Polynomials and Numbers
2040+
2041+ put('BernoulliP, 'fancy!-prifn, 'fancy!-indexed!-fn); % B_n(x)
2042+ put('BernoulliP, 'fancy!-functionsymbol, '!B);
2043+ put('EulerP, 'fancy!-prifn, 'fancy!-indexed!-fn); % E_n(x)
2044+ put('EulerP, 'fancy!-functionsymbol, '!E);
2045+ put('FibonacciP, 'fancy!-prifn, 'fancy!-indexed!-fn); % F_n(x)
2046+ put('FibonacciP, 'fancy!-functionsymbol, '!F);
2047+
2048+ put('Bernoulli, 'fancy!-prifn, 'fancy!-indexed!-symbol); % B_n
2049+ put('Bernoulli, 'fancy!-special!-symbol, '!B);
2050+ put('Euler, 'fancy!-prifn, 'fancy!-indexed!-symbol); % E_n
2051+ put('Euler, 'fancy!-special!-symbol, '!E);
2052+ put('Fibonacci, 'fancy!-prifn, 'fancy!-indexed!-symbol); % F_n
2053+ put('Fibonacci, 'fancy!-special!-symbol, '!F);
2054+ put('Motzkin, 'fancy!-prifn, 'fancy!-indexed!-symbol); % M_n
2055+ put('Motzkin, 'fancy!-special!-symbol, '!M);
2056+
2057+ symbolic procedure fancy!-indexed!-symbol(u);
2058+ % e.g. u = (Motzkin n)
2059+ fancy!-level
2060+ <<
2061+ fancy!-prefix!-operator car u;
2062+ fancy!-print!-one!-index cadr u
2063+ >> ;
2064+
2065+ put('Stirling1, 'fancy!-prifn, 'fancy!-Stirling); % s_n^m
2066+ put('Stirling2, 'fancy!-prifn, 'fancy!-Stirling); % S_n^m
2067+
2068+ symbolic procedure fancy!-Stirling(u);
2069+ % u = (Stirling1/2 mu nu)
2070+ fancy!-level
2071+ begin scalar w;
2072+ fancy!-prefix!-operator(if car u eq 'Stirling1 then "\mathrm{s}"
2073+ else "\mathrm{S}" );
2074+ w := fancy!-print!-indexlist1({cadr u} , '!_, '!*comma!* );
2075+ if testing!-width!* and w eq 'failed then return w;
2076+ w := fancy!-print!-indexlist1({caddr u} , '!^, '!*comma!* );
2077+ return w;
2078+ end;
2079+
20342080% Other Special Functions
20352081
20362082put('polylog, 'fancy!-prifn, 'fancy!-indexed!-fn);
0 commit comments