\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}