Most of these are in the public domain, others are under free licenses.

## Originals

circular 1.2 Computes the circular mean or circular median (and standard deviation or mean absolute deviation) appropriate for quantities that wrap around, like time of day or compass direction. A similar program, cyclic.c (not an exact translation) is available in C. Also see the accompanying article on codeproject.com

Weighted circular mean or weighted circular median are available in FORTRAN and in C.

CLUELA K-means data clustering with support for mixed data and missing data. Browse the source directory of FORTRAN code with complete C translation. Also see the accompanying article on codeproject.com

GOPAK is the first program to apply generalized orthogonality. It offers non-Euclidean solutions to overdetermined and underdetermined systems of linear equations. It also can compute a family of matrix factorizations analogous to the singular value decomposition (SVD). Browse the source directory of FORTRAN code. Also see the accompanying technical report.

K-Means++ The simplest possible implementation of k-means data clustering. Browse the source directory of FORTRAN code with a complete C translation. Also see the accompanying article on codeproject.com

MixMidi 0 Mix together MIDI files. Feature-complete, with a brief manual. Now has its own website.

imidiacy Browse the source directory. IMmediate MIDI - records keystrokes as musical notes. In C, not FORTRAN. Also has a sourceforge page.

Stable sorting with merge sort for real numbers, and radix sort for integers.

navier.f Solution to a homework problem in John D. Anderson's Computational Fluid Mechanics: the Basics with Applications

spacial.f The spatial median.

Gauss-Jordan elimination for solving systems of linear equations.

machine.f Wrapper around FORTRAN 95 routines for machine constants.

## Translations:

fnv32.f Fowler-Noll-Vo 32 bit general-purpose hash function. Home page

poly.f Find an interpolating polynomial by the Bjorck-Pereyra algorithm.

## By others:

graclus by Brian Kulis and Yuqiang Guan. Program for clustering graphs. (in C.)

Praxis by Richard Brent, revised by John Chandler. Unconstrained optimization of a function of several variables.

Random Forests by Leo Breiman and Adele Cutler. Statistics software for classification and clustering. This is the original version. It was released under the GNU GPL, but the authors do not give permission for it to be used commercially, so please don't.

ARPACK and its update patch. By Sorensen, et. al. The ARnoldi PACKage for computing eigenvalues and eigenvectors of sparse matrices.

Hermitian Lanczos Package By Osni Marques. Computes eigenvalues and eigenvectors of sparse Hermitian matrices.

zeta.f Gamma function and Riemann Zeta function, from the CERN library.

trapfpe.c Code snippet to turn on error trapping for floating point exceptions. Finds hard-to-find bugs.

## Experimental Math

l1trig.f Compute the taxicab sine, taxicab cosine, and taxicab arctangent on a plane measured by the L1 norm.

multitrans.m Fourier analysis of .wav files according to triangle waves and flattop waves (the L1 and L-infinity circular functions) as well as the usual sinusoid waves. Color-coded spectrogram. In Matlab.

## Collections

Naval Surface Warfare Center (NSWC) Library Long (3.6 MB) collection of numerical subroutines in FORTRAN 66. Also comes with a manual.

SLATEC Library Sandia / Los Alamos National Laboratories numerical subroutine library. This version is from an old release of Debian GNU/Linux.

cmlib The National Bureau of Standards Core Mathematical Library . Edition of 1988, still available from NIST

CERN Mathlib Math subroutine library of the European physics laboratory, 2000 edition.