The NM_LIB software library is a collection of mathematical routines written in the C, FORTRAN and Pascal programming language. They include routines to perform the basic numerical operations of equation solving, function minimization and function integration. For each class of numerical operation, the routines in the library have been chosen with the emphasis on versatility and robustness. Well ... actually, the selection represents some of our computational interests over the past 15 years The routines have similar capabilities to some of the routines available in the NAG and IMSL libraries and, because they are supplied as source code, you can use them wherever you have access to a suitable compiler.
This particular collection is a revamp of our CMATH library of C routines that we built way back in pre-World-Wide-Web days. We continue find the routines useful and so have updated the documentation to provide a more convenient mode of access our wider collection of FORTRAN and Pascal routines. Most of these pieces of code started life in the days when, if we wanted a particular function, we would have to read the journal article, type in the source code and debug it ourselves. With so much effort invested in the source code, it is really hard to just throw it away...
This manual is a reference manual only. It tells you how to interface your program to the routines but does not describe the fine details of the algorithms used. If you would like general advice on numerical methods or information on the specific algorithms used in the library then the following references are a good starting point.
If you already know the routine name, look up the function index. It shows where to find the CMATH routines in the distribution. A number of the functions mentioned in the table are not documented in this reference section. They are service routines and are not intended to be called directly by the your program. If you want to find a suitable routine for a particular problem, look up the main contents page.
Note that nearly all of the routines need the header file "cmath.h" to compile correctly and that some CMATH routines use other CMATH routines.
The documentation for each routine (except for the COMPLEX number routines) has the following format.