\documentstyle[twocolumn]{article} \title{Netlib news: contributions} \author{Eric Grosse}\date{} \begin{document}\maketitle {\sloppy {\em This is the second installment of Netlib News; for readers who missed the first, see the November 1990 issue of SIAM News, page 14.} How do programs get in netlib? It's a rather haphazard process. Jack Dongarra and I are always on the lookout for good mathematical software to add, but of course we can't know about everything going on in the world. So we depend on users' and authors' suggestions as well. The basic criteria are: relevance, quality, maturity, and legality. First of all, we're looking for {\em mathematical} software and databases. Although to accommodate someone in our local organizations we occasionally add items that are only tangentially related to scientific computing, as a general policy we focus on roughly the same areas as SIAM's numerical journals. Fortunately, people in other disciplines have taken my automatic mail-answering software and run similar services for their communities. For example, Tony Hearn supports the REDUCE symbolic algebra system this way; statistical software is available from statlib@temper.stat.cmu.edu. A future column will survey the various netlib-like services. The most important criterion is quality. Netlib was an early success because we could start with superb libraries like eispack and linpack. The long tradition in numerical analysis of building portable, robust software solving cleanly defined problems is immensely powerful and other computer scientists are just beginning to emulate it. No one is perfect; bugs have been found and fixed even in eispack. But we all strive to write software to that standard. There is a place, however, for research codes. Authors may have a promising new algorithm that deserves testing in a variety of applications before the final polishing. For pedagogical purposes or to allow consistent benchmarking, it may even make sense to include implementations of methods with known (or worse, unknown!) limitations. But as general policy, an addition to netlib ought to either fill a gap or be demonstrably better than codes already in the collection. This is not a refereed collection and as a practical matter the user ought to recognize that quality will vary. A contribution has reached the minimum level of ``maturity'' if updates are not anticipated more often than, say, every six months. This is just to keep the administrative workload at a manageable level. Finally, do no harm. Everyone who worked on the code must agree to the distribution. We do our best not to let in any viruses, stolen credit card numbers, libelous remarks, and the like. Netlib has no provision for royalties or license agreements, so all contributions should be in the public domain. From time to time, people announce in na-net that they are looking for certain kinds of codes and haven't found anything in netlib. If you eventually find something good, please let me know. Or if you're using someone's program that you've had good success with, encourage the author to deposit it in netlib. If you've just written the world's most wonderful program and wish to donate it to mankind, great! Ask netlib to ``send contrib from misc'' and you'll get back a checklist of things to think about when preparing your file for distribution. May you make the next bestseller list! \section*{Recent additions} {\em As usual, the second half of Netlib News is devoted to a quick overview of material added to the collection since the last column.} One of the early motivations for netlib was Gene Golub's observation that Stanford Ph.D. students frequently wrote valuable programs as part of their thesis work, but that these codes were too often lost when the students moved away. So it is fitting that one of the recent additions to the collection is the {\bf praxis} program (version dated March 1973!) from the book {\em Algorithms for Finding Zeros and Extrema of Functions Without Calculating Derivatives} by Richard Brent. We took this opportunity to start a new optimization directory. At the moment, the only other entry is {\bf tn}, Stephen Nash's codes for unconstrained and simply bounded optimization by a truncated Newton algorithm. But this will grow, with editorial help from David Gay; ask netlib to ``send index from opt'' for the current status. The TOMS directory of Collected Algorithms of the ACM is current through Algorithm 684, {\bf dfc1c2}: $C^1$ and $C^2$ interpolation on triangles with quintics and nonics by A. Preusser. The request ``send {\bf dp12} from ode'' will get you Jeff Cash's extended backward differentiation formula solver for stiff ordinary differential equations. Those of you who are learning the {\bf C++} programming language may be interested in {\em The C++ Answer Book} by Tony L. Hansen. The codes are online; ``send index from c++/answerbook'' for details. SIAM headquarters has provided \LaTeX\ macros for book chapters in the ACM/SIAM Preprint series. Say ``send ltexpprt.all from typesetting.'' Thanks to the efforts of Chris Paige and Clement Pellerin of McGill University, the bibliography from Gene H. Golub and Charles F. Van Loan, {\em Matrix Computations, 2nd ed.}, is now available. You can get the entire file by asking for ``{\bf gvl.bib} from bib,'' but the bibliography is large (204 kilobytes), so we've provided an alternative to downloading the whole thing. Instead you may send netlib a message like {\bf find paige in linalg}. You'll get back the results of a search for all matching entries. Unix$^{\mbox{TM}}$ aficionados may be interested to know that your search string is broken in white-space-separated patterns, then ``grep -i'' is used to find entries that match each pattern. For this purpose, each bibliography entry is converted to a single line, passed through a pipeline of grep's, and converted back the original format before mailing. Another file in the bib directory is {\bf ovr.bib}, ``A Bibliography on Parallel and Vector Numerical Algorithms'' by Ortega, Voigt and Romine. This is an even larger file, almost 444 kilobytes! We encourage you to do remote searches instead of loading a fresh copy of the database each time it changes. Therefore the netlib command ``find ... from linalg'' searches both the Golub Van Loan and the Ortega Voigt Romine files. The resulting improvement in coverage was judged to outweigh the annoyance of duplicate matches. If you have trouble deciphering the journal abbreviations used in ovr.bib, ask netlib to ``send ovr-strings from bib.'' {\em If you're new to netlib, send e-mail containing the line ``help'' to one of the Internet addresses {\tt netlib@research.att.com}, {\tt netlib@ornl.gov}, or {\tt netlib@nac.no} or uucp address {\tt uunet!research!netlib}. A few minutes later, assuming you have speedy mail connections, you will receive information on how to use netlib and an overview of the many mathematical software libraries and databases in the collection.} {\em Eric Grosse can be reached at the Computing Science Research Center, AT\&T Bell Laboratories, Murray Hill NJ 07974, USA or by email at {\tt ehg@research.att.com}. Unix is a trademark of AT\&T Bell Laboratories. This column was written December 9, 1990.} }% end sloppy \end{document}