- It’s not open source. Updates are slow and ponderous. And when they do happen, the printed edition is already out of date.
- It’s not authoritative, despite its mandate to be, the first two hits for most special functions are wikipedia or mathworld (and only secondarily, planetmath)
- Lists of formulas do not understanding make. In the preface online it says “

approximately twice the number of formulas that were contained in

the original Handboook.” (yes, it has three Os, like Melllvar.) — as if merely having more formulas makes it more informative or authoritative. - We could use more metaphorical descriptions of functions. The DLMF does not says of the Riemann zeta function : “The Riemann zeta function is…”. Neither Wikipedia nor Wolfram Mathworld says “The Riemann zeta function is a special function of a complex variable s that captures the music of the primes.”
- The DLMF is relentlessly linear. Special functions aren’t.
- Having pictures of escape time fractals of special functions would be nice. (do you know what the Mandelbrot set of a hypergeometric function looks like?). We have the computational power to answer these questions at the moment and we shouldn’t squander it.
- There are numerous special functions that the DLMF misses: automorphic functions and forms, cubic theta functions, cubic L-functions, Ramanujan mock theta functions and Maass forms, Clausen functions (one reference).
- We should see domain colored plots of functions these days.
- Important derivations should contain actual proofs.
- History is good, but library references are next to useless these days. Nobody has the patience to look up Chebyshev’s original papers these days. And not everyone can get at JSTOR papers.
- The software table is incomplete/outdated. I know SAGE has stellar theta function support from mpmath, but it’s not even listed.
- Tables of functions are next to useless these days.
- Methods of computation should include formal algorithms for computing functions, not confusing, reference strewn gobbledygook
- There are only five criteria about computer implementations of special functions that I care about: 1. how easy is it to use, 2. how much does it cost/get/get working? 3. how computationally efficient is it? (what’s its runtime?), 4. Does it deal gracefully with branch cuts and whatnot. 5. Accuracy, and this table doesn’t really tell me what I want to know.

Advertisements
(function(){var c=function(){var a=document.getElementById("crt-197498545");window.Criteo?(a.parentNode.style.setProperty("display","inline-block","important"),a.style.setProperty("display","block","important"),window.Criteo.DisplayAcceptableAdIfAdblocked({zoneid:388248,containerid:"crt-197498545",collapseContainerIfNotAdblocked:!0,callifnotadblocked:function(){a.style.setProperty("display","none","important");a.style.setProperty("visbility","hidden","important")}})):(a.style.setProperty("display","none","important"),a.style.setProperty("visibility","hidden","important"))};if(window.Criteo)c();else{if(!__ATA.criteo.script){var b=document.createElement("script");b.src="//static.criteo.net/js/ld/publishertag.js";b.onload=function(){for(var a=0;a<__ATA.criteo.cmd.length;a++){var b=__ATA.criteo.cmd[a];"function"===typeof b&&b()}};(document.head||document.getElementsByTagName("head")[0]).appendChild(b);__ATA.criteo.script=b}__ATA.criteo.cmd.push(c)}})();
(function(){var c=function(){var a=document.getElementById("crt-902717395");window.Criteo?(a.parentNode.style.setProperty("display","inline-block","important"),a.style.setProperty("display","block","important"),window.Criteo.DisplayAcceptableAdIfAdblocked({zoneid:837497,containerid:"crt-902717395",collapseContainerIfNotAdblocked:!0,callifnotadblocked:function(){a.style.setProperty("display","none","important");a.style.setProperty("visbility","hidden","important")}})):(a.style.setProperty("display","none","important"),a.style.setProperty("visibility","hidden","important"))};if(window.Criteo)c();else{if(!__ATA.criteo.script){var b=document.createElement("script");b.src="//static.criteo.net/js/ld/publishertag.js";b.onload=function(){for(var a=0;a<__ATA.criteo.cmd.length;a++){var b=__ATA.criteo.cmd[a];"function"===typeof b&&b()}};(document.head||document.getElementsByTagName("head")[0]).appendChild(b);__ATA.criteo.script=b}__ATA.criteo.cmd.push(c)}})();