next up previous contents
Next: Ln-Lz Up: Linux Software Encyclopedia Previous: Kn-Kz   Contents

La-Lm

Last checked or modified: Aug. 23, 2000

[home / linux ]


CATEGORIES | NEW
Aa-Am | An-Az | Ba-Bm | Bn-Bz | Ca-Cm | Cn-Cz | Da-Dm | Dn-Dz | Ea-Em | En-Ez | Fa-Fm | Fn-Fz | Ga-Gm | Gn-Gz | Ha-Hm | Hn-Hz | Ia-Im | In-Iz | Ja-Jm | Jn-Jz | Ka-Km | Kn-Kz | La-Lm | Ln-Lz | Ma-Mm | Mn-Mz | Na-Nm | Nn-Nz | Oa-Om | On-Oz | Pa-Pm | Pn-Pz | Qa-Qm | Qn-Qz | Ra-Rm | Rn-Rz | Sa-Sm | Sn-Sz | Ta-Tm | Tn-Tz | Ua-Um | Un-Uz | Va-Vm | Vn-Vz | Wa-Wm | Wn-Wz | Xa-Xm | Xn-Xz | Ya-Ym | Yn-Yz | Za-Zm | Zn-Zz |


laboratory and measurements
The Linux Lab Project is always a good place to browse for this type of software. Software for taking and processing laboratory measurements includes:
  • CAMAC-Linux, a package of CAMAC controller device drivers;
  • can4linux, a Linux driver providing a common API for a full-featured CAN development environment;
  • COMEDI, a collection of hardware drivers, a common kernel interface, and a support library for data acquisition hardware;
  • CompactNET, Open Source Linux drivers for a multiprocessing system for developing and running applications in the communications and automation industries;
  • EMC, which implements real-time control of machine tools, robots and coordinate measuring machines;
  • LDDK, a toolkit for the development of hardware drivers for Linux systems;
  • Linux-GPIB, a driver and user interface package for a wide range of GPIB cards;
  • RCS, an archive of code, scripts, makefiles and documentation for developing software to be used in real-time control systems;
  • Real-Time Linux, a Linux extension that allows the handling of time-critical tasks;
  • SampLin, scientific data acquisition, visualization, and process control software;
  • sjyLX, code to operate the Jorway 411S Highway Driver and 73A Crate Controller CAMAC devices;
  • vmehb, a loadable device driver for accessing VME bus spaces;
  • XMAD, a GUI program for data acquisition that uses Real-Time Linux

Lab-3D
An X11 3-D laboratory developed for testing and comparing various graphics algorithms, especially hidden surfaces/lines removing algorithms, and data structures. The features include the creation of 3-D scenes consisting of basic geometric objects, saving and loading created scenes, rotation of scenes, rudimentary animation, the choice of several hidden lines/surfaces algorithms, many adjustable parameters (e.g. rotation angle, scale size, projection type, etc.), choice of output to screen, pixmap, image or file, extensibility for the implementation of new graphics algorithms, and more. The source code is available and should compile on generic UNIX/X11 platforms, e.g. Linux boxes.

[ftp://dec50.vm.stuba.sk/pub/csgrp/packages/Lab-3D/]

LAM
The Local Area Multicomputer is an MPI programming environment and development system for a message-passing parallel machine constituted with heterogeneous UNIX computers on a network. With LAM, a dedicated cluster or an existing network computing infrastructure can act as one parallel computer solving one compute-intensive problem. LAM runs on each computer as a single UNIX daemon uniquely structured as a nano-kernel and hand-threaded virtual process. The nano-kernel provides simple message passing and rendezvous service to local processes. Some of the processes in the daemon form a network communication subsystem which transfers messages to and from other LAM daemons on other nodes, with the inter-node packet exchange proceeding via a scalable UDP-based protocol. This network subsystem procides features like packetization and buffering to the basic synchronization.

The features of LAM include:

  • a full MPI implementation in which compliant applications are source code portable between LAM and any other MPI implementation;
  • capability of use on heterogeneous networks;
  • extensive process/message debugging;
  • dynamic MPI process spawning in which a group of MPI processes can collectively create a group of new processes;
  • dynamic LAM nodes which can be added or deleted during execution without tragic consequences;
  • a guaranteed envelope resources (GER) property which guarantees that a minimum amount of envelope buffering will be available to each process pair and that the producer of messages which overflows a resource will be throttled or cited with an error as is necessary;
  • fault tolerance in which a removed or crashed node is detected by LAM and handled in a manner to prevent an overall program crash; and
  • fast client-to-client communication.

A source code distribution of LAM is available. The current (5/97) supports compilation on DEC OSF/1, HP-UX, IBM AIX, Linux Intel, SGI IRIX, and Sun SunOS and Solaris platforms. Documentation includes an overview, an installation guide, a primer on using MPI with LAM, and several technical reports, all of which are available in PostScript format. Available ancillary software includes: XMPI, a GUI for running and debugging MPI programs; XMTV, a graphics client/server package which emulates a frame buffer; and XLED, a client/server package which emulates hardware LEDs.

[http://www.mpi.nd.edu/lam/]

LAMARC
A package of programs for computing population parameters such as population size, growth rate and migration rates. The programs use likelihoods for samples of data (e.g. sequences, microsatellites, and electrophoretic polymorphisms) from populations and approximate the summation of likelihood over all possible gene geneaologies that could explain the observed sample. All the methods use coalescence theory to estimate population parameters. Random geneaologies of sequences are sampled using a Metropolis Monte Carlo technique to concentrate the sampling in regions that contribute to the final result.

The programs in the LAMARC package include:

  • Coalesce, which estimates the effective population size of a single constant population using nonrecombining sequences;
  • Fluctuate, which estimates the effective population size and an exponential growth rate of a single growing population using nonrecombining sequences;
  • Migrate, which estimates the effective population sizes and migration rates of n constant population using nonrecombining sequences, microsatellite data, or enzyme electrophoretic data; and
  • Recombine, which estimates the effective population size and per-site recombination rate of a single constant-size population.

Source code distributions of all components are available. All are written in C and can be compiled using standard compilers. Documentation in the form of manuals and/or technical reports is available for each component.

[http://evolution.genetics.washington.edu/lamarc.html]

Lambda Library
A C++ template library providing various aspects of functional programming including:
  • Lambda functions;
  • function argument binding; and
  • tuple types.

[http://lambda.cs.utu.fi/]

lambda Prolog
A logic programming language which is an extension of standard Prolog where terms are simply typed lambda-terms. This language can be used for standard Prolog applications and is especially useful for those in which scoping of variables is important, e.g. for theorem proving, implementation of type systems, formal transformation of structured programs, etc. Language features include polymorphic typing, sound unification, implicational and universal quantified queries, modular programming, abstract data types, higher-order programming, and simply-typed and unification of lambda-terms.

Implementations of lambda Prolog are: the Terzo interpreter (implemented in SML); the Prolog/Mali system which includes a C translator, a linker, libraries, and documentation; and the LP-SML, another implementation in SML. Linux binaries are available for the first two implementations, and the third requires an implementation of SML to work.

[http://www.cse.psu.edu/~dale/lProlog/]

LAME
LAME Ain't an MP3 Encoder is, as the name sort of implies, a patch against the dist10 ISO demonstration source available under the GPL. This patch will not compile without the ISO source, which is also freely available but only for noncommercial use.

[http://www.sulaco.org/mp3/]

dist10
The ISO MP3 encoder demonstration source needed to compile LAME.

[ftp://ftp.tnt.uni-hannover.de/pub/MPEG/audio/mpeg2/software/technical_report/]

GOGO
An MP3 encoder that is basically LAME version 3.29beta optimized for x86 chips.

[http://homepage1.nifty.com/herumi/gogo_e.html]

LameTeX
A package to create and format unusual PostScript effects to embed in TeX documents.

[http://sunsite.unc.edu/pub/Linux/apps/tex/]
[ftp://ftp.cc.gatech.edu/pub/linux/apps/tex/]

la_mml
A LaTeX to FrameMaker MIF translator.

[http://www.cs.stir.ac.uk/~kjt/software/framemaker/]

LANCELOT
A Fortran 77 package for solving large-scale nonlinearly constrained optimization problems. The areas covered include unconstrained and constrained optimization problems, the solution of systems of nonlinear equations, and nonlinear least-squares problems. Complete documentation is available in a published manual, although enough information to use the package is available in the distribution package.

[http://www.cse.clrc.ac.uk/Activity/LANCELOT]

LANCZOS
A package of Fortran programs for finding eigenvalues and eigenvectors (as well as singualar values) of real symmetric and Hermitian matrices using Lanczos tridiagonalization with and without reorthogonalization. The main programs in the package include:
  • HLEVAL, for computing distinct eigenvalues of a Hermitian matrix;
  • HLEVEC, for computing the eigenvectors corresponding to the eigenvalues found by HLEVAL;
  • LEVAL, for computing distinct eigenvalues of a real symmetric matrix;
  • LEVAC, for computing the eigenvectors corresponding to the eigenvalues found by LEVAL;
  • LSVAL, for computing distinct singular values of a real, rectangular matrix;
  • LSVEC, for computing the singular vectors corresponding to the singular values found by LSVAL;
and several utility and linear algebra routines used by most of the other routines.

A source code distribution of the LANCZOS codes is available. All codes are written in Fortran 77 and documented in a pair of user's guides available in ASCII format. See Cullum et al. (1983).

[http://www.netlib.org/lanczos/index.html]

LANZ
A software package for solving large, sparse, symmetric generalized eigenvalue problems. LANZ solves the eigenproblem Kx=$\lambda$Mx where K is symmetric positive definite and M is positive semi-definite. It is also capable of solving the problem Kx=-$\lambda$Mx where M can be indefinite. It can find either all the eigenvalues and eigenvectors in a specified range or those closest to some specified value. LANZ was developed to run efficiently on a range of architectures, including vector and parallel computers. It uses a Lanczos algorithm with spectral transformations. It also uses the partial reorthogonalization algorithm to maintain semi-orthogonality among the Lanczos vectors as well as a dynamic shifting algorithm to accelerate convergence to desired eigenvalues and eigenvectors.

A source code version of LANZ is available. It is written mostly in Fortran except for some machine dependent programs which are written in C. It is documented in a user's manual in LaTeX format as well as in several ASCII files scattered throughout the distribution. See Simon (1984).

[http://www.netlib.org/lanz/index.html]

LAPACK
The Linear Algebra PACKage provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems, eigenvalue problems, and singular value problems. Also provided are the associated matrix factorizations (e.g. LU, Cholesky, QR, SVD, Schur, generalized Schur, etc.) and related computations such as Schur factorization reordering and estimating condition numbers. LAPACK can handle dense and banded but not sparse matrices, and provides routines for real and complex matrices as well as for single and double precision calculations. It consists of driver routines for handling standard types of problems, computational routines for performing distinct computational tasks, and auxiliary routines for performing various subtasks or low-level computations. The higher level routines typically call a sequence of the lower level routines, i.e. the driver routines consist of several calls to computational routines.

LAPACK was originally designed to extend the EISPACK and LINPACK libraries to run efficiently on shared-memory vector and parallel processors. This was accomplished by reorganizing the algorithms to use block matrix operations, e.g. matrix multiplication, in the innermost loops. Block operations can then be optimized for each architecture for maximum performance. The routines are written such that a maximal amount of computation is performed via calls to the BLAS subprograms. While LINPACK and EISPACK were based on the Level 1 BLAS, LAPACK exploits the Level 3 BLAS which provides specifications for subprograms that do various types of matrix multiplication and the solution of triangular systems with multiple right-hand sides.

Version 2.0 of LAPACK was released in late 1994 and included several new routines as well as extensions of the functionality of existing routines. The new routines included those for:

  • the generalized nonsymmetric eigenproblem,
  • the generalized definite banded eigenproblem,
  • least squares with linear constraints,
  • the Gauss-Markov linear model problem,
  • the generalized (quotient) singular value decomposition,
  • faster routines for symmetric eigenproblems and bidiagonal SVD, and
  • improved linear system drivers.
Numerous bug fixes were also performed as well as the translation of the original Fortran routines into other languages.

Distributions of LAPACK in Fortran are available for single and double reals as well as single and double precision complex numbers. Other LAPACK versions include: LAPACK90, a Fortran 90 interface; LAPACK++, a C++ version; CLAPACK, a C version; and ScaLAPACK, an implementation of some of the core routines across MPI, PVM, and some massively parallel machines. In addition to the source version indicated there is also a Linux ELF shared library LAPACK binary available for Linux Intel platforms. The library and its development are documented in a series of technical reports available in PostScript format as well as in Anderson et al. (1995).

[http://netlib2.cs.utk.edu/lapack/index.html]
[http://sunsite.unc.edu/pub/Linux/devel/lang/fortran/]
[http://www.fysik.dtu.dk/~schiotz/linux/lapack-linux.html]

LAPACK90
A Fortran 90 interface to the LAPACK software package. All LAPACK driver routines and some computational routines have both LAPACK90 and LAPACK77 interfaces, with the remaining computational routines having only LAPACK77 interfaces. Interface modules are available to use both the LAPACK90 and LAPACK77 routines from Fortran 90, i.e. F90_LAPACK and F77_LAPACK. A technical report containing further details about using LAPACK with Fortran 90 is available in PostScript format.

[http://www.netlib.org/lapack90/lapack90.html]

LAPACK++
The Linear Algebra PACkage in C++ is a software library for numerical linear algebra that solves systems of linear equations and eigenvalue problems on high performance computer architectures. The present version (1.0 as of 3/96) doesn't include all of the the capabilities of the original F77 LAPACK, although it is planned for future versions to do so. The source code is available as is a user's guide in PostScript format. LAPACK++ is currently (6/97) being superseded by the Template Numerical Toolkit which uses new features of the ANSI C++ specification and a new design. See Dongarra et al. (1993).

[http://math.nist.gov/lapack++]
[http://www.netlib.org/c++/lapack++/]

Larch/C++
A format specification language tailored to C++ whose basic use is the formal specification of the behavior of C++ program modules. Larch/C++ specifies how to use such modules from within a C++ program and as such is not designed for specifying the behavior of an entire program. The main use of it is for the precise, unambiguous documentation of the behavior of C++ program modules, e.g. functions, classes, etc. A Larch/C++ specification can be a completely format contract about an interface and its behavior, recording all the C++ details about the interface such as the parameter mechanisms and whether the function is virtual, const, etc. It can be used either before coding or as documentation of the code. The goals of the Larch/C++ project are to have a syntax that is intuitive for C++ programmers, to aid the specification of modules that use common C++ idioms (e.g. subtype polymorphism, virtual functions, mutation, etc.), to promote inheritance of specifications, and to allow the specification of several interfaces for each class, i.e. the public, protected, and private interfaces.

A source code distribution of Larch/C++ is available. It can be installed on generic UNIX flavors using commonly available tools. The documentation available includes a reference manual (over 300 pages long in PostScript format), a tutorial, and several technical papers.

[http://www.cs.iastate.edu/~leavens/larchc++.html]

LARKIN
A package for the simulation of large systems arising in chemical reaction kinetics. LARKIN provides an interactive method for setting up the appropriate equations with rate constants, solving the resulting system of equations, and outputting the results numerically or graphically. The input can be any number of reversible or irreversible elementary chemical equations involving any number of species, with the input being in the form of familiar chemical nomenclature rather than in Fortran code. LARKIN was designed to solve moderate to large problems efficiently, and to this end it employs a number of techniques such as string handling, hash techniques, sparse matrix solution algorithms, specially adapted scaling devices for error tests, and an efficient stiff integrator.

The LARKIN package consists of four major subsystems: an interactive EDITOR which creates and modifies the chemical input file; a COMPILER which reads the chemical input file and creates a file containing information about elements, species, and reaction mechanisms for a simulation; a SIMULATION system which reads the file created by the COMPILER and solves the governing system of stiff ODEs; and an interactive OUTPUT system which writes requested output to a file or a printer.

A source code distribution of LARKIN is available. It is written in Fortran and documented in an ASCII user's guide as well as in comment statements within the source codes. This is part of CodeLib.

[ftp://elib.zib.de/pub/elib/codelib/larkin_3.1/]

LASO
A set of Fortran routines for computing either a few eigenvalues (at either end of the spectrum) of a large sparse symmetric matrix or all eigenvalues outside an excluded interval using a block LAnczos method with Selective Orthogonalization. Single and double precision versions of all routines are available. The use of LASO is documented in an ASCII file.

[http://www.netlib.org/laso/index.html]

LASPACK
A package for solving large sparse systems of linear equations like those which arise from the discretization of PDEs. It contains classical as well as selected state-of-the-art algorithms which are commonly used for large sparse systems such as CG-like methods for non-symmetric systems and multilevel methods such as multigrid and conjugate gradient method preconditioned by multigrid and BPX preconditioners.

The LASPACK library consists of several modules including:

  • VECTOR, MATRIX and QMATRIX, the main components of the library which implement the basic objects of linear algebtra as data types with their definitions consisting of data structures as well as the corresponding management routines;
  • OPERATS, containing the basic operations of linear algebra;
  • FACTOR, procedures for the incomplete factorization of quadratic matrices;
  • ITERSOLVE, containing classical iterative, semi-iterative, conjugate gradient, and non-symmetric solvers;
  • MLSOLV, containing multilevel solvers;
  • PRECOND, containing the most common preconditioners;
  • EIGENVAL, containing procedures for the estimation of extremal eigenvalues;
  • RTC, which controls the convergence of iterative solutions; and
  • ERRHANDL, which supports error handling.
A source code distribution of LASPACK is available. It is written in ANSI C and has been successfully installed on several platforms including Linux Intel.

[http://www.tu-freiberg.de/urz/soft/LASPACK/laspack.html]

LASSPTools
A collection of UNIX utilities for numerical analysis and graphics. It is a set of more than 35 programs for assisting researchers with number crunching and dynamical display of graphics similarly to the way standard UNIX utilities assist with text processing. The functionality of the utilities is broadly grouped into four categories: graphics and animation, analog input devices, numerical analysis, and data filtering. The graphics and animation utilities include:
  • DynamicLattice, an X Window program to represent sites on a 2-D rectangular lattice based on their values;
  • PlotAtoms, an X Window program which plots x-y input in the form of spheres, i.e. atoms;
  • PlotM, a X Window program which plots atoms in 3-D and animates them;
  • SurfPlot, which produces surface plots in 3-D;
  • circledraw, an X Window program which reads circle specifications and draws them in color;
  • matrix2X, which reads a set of matrices and produces a density plot;
  • meter, an analog style output device;
  • polydraw, an X Window program which reads polygon specifications and plots and draws them in color;
  • polydraw3D, an X Window program which reads in one frame polygons in 3-D coordinates and can rotate and do simulated perspectives of that frame;
  • xplot, a simple 2-D plotting utility;
  • lattice2ps, a filter to produce a PostScript file of shaded elements in a 2-D square lattice base on their values;
  • poly2ps, a filter to produce a PostScript file of drawn and shaded polygons;
  • axis, which plots pairs of numbers and connects them with straight lines;
  • movieaxis, which allows multiple, movie-style plots to be generated with axis;
  • branch, a datastream splitter;
  • inter, which replaces the cryptic axis commands with real words; and
  • laser, a filter for converting plot5 commands to PostScript and send them to a printer.

The analog input device utilities in LASSPTools are:

  • rotate, an interactive data entry device which displays a rotation ball with axes and allows a user to pick a rotation matrix;
  • slider, an interactive data entry device which displays a number of slider widgets;
  • items, a data entry window; and
  • XYinput, an interactive data entry device that displays a coordinate plane and an accompanying options window.
The numerical analysis filters include:
  • DI, a linear algebra program for calculating determinants and inverses;
  • Random, a random number generator;
  • Det, a linear algebra program for calculating determinants;
  • Eigen, a program for calculating eigenvalues, eigenvectors, or both;
  • Fourier, a program for calculating Fourier transforms and their inverses;
  • Invert, a linear algebra program for calculating inverses;
  • MMult, a program for multiplying two matrices;
  • MSolve, a program for solving linear equations of the form Ax=B for x; and
  • fit_it, which performs nonlinear least squares parameter fitting.

The data filtering programs in LASSPTools are:

  • 3D-2D, a filter to convert lines with triples to lines with pairs;
  • ConvertFrames, which converts frames of ASCII triples to and from binary;
  • ComplexDoubleMatrices, which converts ASCII double precision complex matrices to and from binary;
  • ComplexFloatMatrices, which converts ASCII floating point complex matrices to and from binary;
  • ConvertMatrices, which uses get_matrix and put_matrix routines to convert ASCII to and from binary;
  • ComplexDoubleVectors, which converts complex double precision vectors to and from binary;
  • ComplexFloatVectors, which converts complex floating point vectors to and from binary;
  • ConvertVectors, which converts integer vectors to and from binary;
  • RotateFile, a filter for rotating data triples from a file;
  • RotateStream, a filter for rotating data triples from a file, pipe, or terminal session;
  • blend, which inserts a smooth curve through data points;
  • histogram, which reads numbers and produces a file suitable for making a histogram;
  • rotate_echo, which helps RotateStream do non-blocking I/O;
  • rotate_aid, which helps RotateStream do non-blocking I/O;
  • slab, a filter for passing slices of data which uses a slider to change the size of the slab;
  • sortit, a filter which sorts data triples in terms of the values in the third column;
  • thin, a filter that reduces the amount of data going down a pipeline; and
  • translate, a filter for translating data sets which takes triples and adds specified amounts to each coordinate.

The source code is available along with binaries for Linux, IBM/AUX, PowerPC, and SUN platforms. Each utility is documented, in the grand UNIX tradition, in a separate man page.

[http://www.lassp.cornell.edu/LASSPTools/LASSPTools.html]

LastWave
A signal processing package with emphasis on wavelet algorithms. It was designed to allow anyone with a basic knowledge of signal processing to experiment with wavelets and wavelet-like techniques. It includes a powerful command-line language which includes a high-level object-oriented graphics language allowing the display of simple and complex objects. Several other packages are contained in the distribution along with the core and the command language including:
  • wtrans1d, a basic wavelet transform package;
  • extrema1d, a wavelet transform extrema package;
  • wtmm1d, an implementation of wavelet transform modulus maxima fractal analysis;
  • mpp, an implementation of matching pursuit; and
  • image, an image creation and display package.
A source code distribution is available. It is written in C and with the basic X11 library. An extensive user's manual is available in PostScript format.

[http://www.cmap.polytechnique.fr/~bacry/LastWave/index.html]

LaTeX
A set of macros for the TeX typesetting system that make it quicker and easier to typeset specific document styles like letters, reports, books, etc. Quite a few scientific journals have created and made available LaTeX document styles for their specific formatting needs, making it reasonably easy for authors to prepare camera-ready copy. More information can be found at

Online LaTeX documentation includes:

The Oct. 1995 issue of the Linux Journal contains an introduction to LaTeX by Kim Johnson. LaTeX is documented in several books including Buerger (1989), Diller (1998), Goossens et al. (1994), Goossens et al. (1997), Goossens and Rahtz (1999), Grätzer (1993), Grätzer (1995), Griffiths and Higham (1997), Gurari (1994a), Hahn (1993), Hoenig (1997), Kopka and Daly (1995), Kopka and Daly (1999), Lamport (1994), Sawyer and Krantz (1995) and Shultis (1994)

There are many ancillary packages available for LaTeX which serve to extend its basic functionality. These are collected into various categories at the CTAN site. The tools bundle contains packages written and supported by members of the LaTeX3 Project Team and includes: afterpage, array, bibtex, bm, dcolumn, delarray, enumerate, fileerr, fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol, rawfonts, showkeys, somedefs, tabularx, theorem, varioref, verbatim, xr, and xspace. Other LaTeX packages not written by the Project Team but still supported by their authors include: achemso, acronym, addindex, aiaa, algorithm, amslatex, babel, beton, booktabs, calc, camel, caption, changebar, chemsym, custom-bib, deleq, envlab, euler, float, fncychap, footbib, latexmk, mslapa, natbib, nomenclature, PSfrag, supertabular, typehtml, vector, vrsion, wasysym, and yhmath. Other related software includes rtflatex, texi2html, texi2roff, TeXPerfect, tr2latex, and windex.

achemso
A LaTeX package which formats BibTeX output in accordance with the requirements of most journals of the American Chemical Society as well as providing a LaTeX interface to be used with the BibTeX style files.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/achemso/]

acronym
A LaTeX package which provides an environment for keeping a list of acronyms somewhere in a document, usually at the end. It also ensures that all acronyms used in the text are spelled out in full at least once.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/acronym/]

addindex
A program which inserts LaTeX index commands into a document source file. A list of words and index entries is input to the program and it indexes every word from the list that occurs in a document.

[ftp://ctan.tug.org/tex-archive/support/addindex/]

afterpage
A LaTeX package which implements a afterpage command that causes the commands specified in its argument to be expanded after the current page is output. This is useful for: flushing out all unprocessed floats without making the current page end prematurely as can happen with the clearpage command; using in combination with the optional float argument [H] to cause figures to be printed near rather than strictly ``here''; and providing a floating version of the longtable environment.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

aiaa
A LaTeX package for producing AIAA-conformant conference papers, journal submittals, and page-proof journal articles. It also contains a bibliographic style sheet for use with BibTeX.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/aiaa/]

algorithm
A LaTeX package which provides two environments: algorithmic, for describing algorithms; and algorithm, which provides a float wrapper for algorithms. The former provides a number of commands for typesetting popular algorithmic constructs as was as an option for line numbering. The constructs available include if-then-else, for loops, while loops, repeat-until loops, infinite loops, pre- and post-conditions, and comments. These can be arbitrarily nested to describe complex algorithms. The algorithm environment provides all of the numbering and placement capabilities of the float environment for algorithms rather than figures or tables.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/algorithms/]

amslatex
A collection of various LaTeX extensions for providing sophisticated mathematical typesetting.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/amslatex/]

array
A LaTeX package which is an extended implementation of the array and tabular environments. The major features of this package include further options for formatting columns and that fact that some fragile LaTeX commands no longer have to be protected within the array environment.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

axodraw
A set of drawing primitives for use in LaTeX which can be used for the drawing of Feynman diagrams, flow charts, and simple graphics. It uses PostScript for its drawing commands and thus works only in combination with dvips.

[ftp://ctan.tug.org/tex-archive/graphics/axodraw/]

babel
A LaTeX package which provides a set of option files that allow the selection of different languages in which to typeset a document. The capabilities include: the use of multiple languages simultaneously, the dynamic definition of hyphen patterns via an external file, and translations for the names of document elements and commands for facilitating text input for over twenty different languages.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/babel/]

beton
A LaTeX package for facilitating the use of the Concrete fonts in a document. These fonts are those designed by Donald Knuth for his book ``Concrete Mathematics.'' The mathematics fonts used in the same book are accessible via the related euler package.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/beton/]

bibtopic
A style file that allows for bibliographic references to be taken from several *.bib files and written to separate bibliographies within a LaTeX document.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/bibtopic/]

bm
A LaTeX package which defines commands to access bold math symbols.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

booktabs
A package which is a style guide for authors of scientific papers and books as regards table layout. It allows the author to produce additional space above and below rules and rules of varying thickness. It is also distinguished by a lack of vertical rules and double rules. This enforces some fairly simple rules for laying out tables in LaTeX that are trickier to accomplish in the standard tabular environment.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/booktabs/]

calc
A LaTeX package which provides proper infix notation arithmetic. This allows expressions rather than just numbers to be used in such commands as setcounter, addtocounter, setlength, and addtolength.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

camel
A citation engine for the LaTeX system intended to supersede the BibTeX package. It is intended to provide an intuitively straightforward syntax for entering citations which can be applied to all citation styles, including those unsupported by other citation managers.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/camel/]

caption
A LaTeX package which provides several ways to customize captions in floating environments such as figure and table. The customization options include providing captions with hanging indentations, centering all lines in a caption, centering the last line in a caption, setting the font size and attributes, and supporting ruled floats.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/caption/]

changebar
A LaTeX package which enables the inclusion into documents of vertical bars indicating where changes have been made compared to previous versions.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/changebar/]

chemsym
A LaTeX package which makes it easier to correctly typeset chemical symbols. A command is defined for each element of the periodic table, deuterium, the methyl, ethyl, and butyl groups, and for the OH, COOH, and CH groups.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/chemsym/]

custom-bib
A LaTeX package for generating customized BibTeX bibliography styles from a generic file. A user interactively chooses the desired bibliography characteristics from a series of menus, after which a customized *.bst file is created by the program. Over 50 different *.bst files were used to provide the available range of choices.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/custom-bib/]

dcolumn
A LaTeX package which defines a system for defining columns of entries in an array or tabular environment which are to be aligned on a decimal point.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

delarray
A LaTeX package which provides commands for implicitly specifying large left and right delimiters (or a single left delimiter for case-like environments).

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

deleq
A LaTeX package for the partial numbering of equations in documents, e.g. 2a, 2b, etc. It can produce partial equation numbers intermixed with ordinary equation numbers also in an eqnarray-like environment, with the intermixing occurring within one environment. References to a partially numbered equation can be both the complete number (3b) or only the main number (3). The package also provides commands for putting commentary text in an eqnarray environment.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/deleq/]

enumerate
A LaTeX package which provides the enumerate list environment with an optional argument which determines the style in which the counter is printed. This allows counters to be explicitly specified for each element in a list.

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

EnvLab
A LaTeX package providing a comprehensive and easily customizable system for creating mailing envelopes and labels including barcodes and address formatting according to U.S. Postal Service rules. The features include:
  • typesetting mailing labels or envelopes on a number of pre-defined label sheets or envelopes;
  • configurability for any customized label or envelope size;
  • inclusion of logos in the return address;
  • interaction with mail merging packages; and
  • no special fonts required for printing addresses and barcodes.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/envlab/]

euler
A LaTeX package which facilitates the use of the AMS Euler font family in documents. These fonts were designed by Hermann Zapf to ``capture the flavor of mathematics as it might be written by a mathematician with excellent handwriting'' and used in Donald Knuth's text ``Concrete Mathematics.'' The Concrete text fonts used in the same book are accessible via the beton package.

[ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/euler/]

fileerr
A LaTeX package which provides a graceful exit out of TeX if a file is not found and one gets stuck in an error loop. (This is only a problem if the basic TeX package notices the missing file since the LaTeX package provides an exit mechanism.)

[ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/]

float
A LaTeX package for improving the interface for defining floating objects such as figures and tables. It adds the concept of a float style which governs the appearance of floats, and allows new kinds of floats to be defined using a newfloat command analogous to the newtheorem command.

[ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/supported/float/]

fncychap
A LaTeX package which offers six alternative styles for creating chapter headings and contents listing.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/fncychap/]

fontsmpl
A LaTeX package which produces a test of a font family. It prints a sample text, a table of accents, and a sample of various symbol commands.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

footbib
A LaTeX package which makes bibliographic references appear as footnotes. It defines a command footcite similar to cite which causes references to appear at the bottom of pages. This bibliography can exist simultaneously with the the standard bibliography in the same document.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/footbib/]

ftnright
A LaTeX package for placing footnotes at the bottom of pages with multiple text columns. This assembles all of the footnotes on a page and places them together at the bottom of the rightmost column, sets the footnotes in a smaller type, and places the footnotes markers at the basline instead of raising them as superscripts.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

hhline
A LaTeX package which produces a single or double horizontal line via a single command hhline which replaces hline. The new command takes as an argument a list of tokens that specify the type, number, and width of the horizontal line(s) desired.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

latexmk
A specialized make utility written in Perl which completely automates the process of generating a LaTeX document. Given the source files for a document, it issues the appropriate sequence of commands to generate a DVI, PostScript, or hardcopy version of a document.

[http://tug2.cs.umb.edu/ctan/tex-archive/support/latexmk/]

layout
A LaTeX package which reimplements the layout.sty file to provide an overview of the layout of a document.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

longtable
A LaTeX package which allows the typesetting of tables over multiple pages. This package, unlike the similar supertabular, enforces equal widths for the portions of the table on each page.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

mslapa
A LaTeX/BibTeX package containing style files for a close approximation the the American Psychological Association (APA) citation and reference styles.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/mslapa/]

multicol
A LaTeX package which implements a multicols environment which allows switching between single and multicolumn formats on the same page.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

natbib
A LaTeX package for using BibTeX to create bibliographies for natural sciences citations in many variations of the author-year format. It also supports the numerical citation style of standard LaTeX, supplying replacement *.bst files for the standard LaTeX *.bst files. Natbib acts as a single, flexible interface for most of the available bibliographic styles.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/natbib/]

nomenclature
A LaTeX package which uses the makeindex program to automatically create lists of symbols in a document. It can also be used for creating customized glossaries.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/nomencl/]

PSfrag
A LaTeX package which makes it possible to overlay Encapsulated PostScript (EPS) files with arbitrary LaTeX constructions, e.g. equations, comments, etc.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/psfrag/]

rawfonts
A LaTeX package which implements an environment that provides an emulation of low-level LaTeX 2.09 commands such as tenrm which may be required to process older LaTeX documents.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

showkeys
A LaTeX package which modifies the label, ref, pageref, cite, and bibitem commands so that the internal key is printed on the page. The label and bibitem keys are printed in boxes in the margin, and the rest are printed in small type raised just above the current line.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

somedefs
A programmer's toolkit for those writing LaTeX packages. It allows package writers to provide options which switch definitions on and off. This can save memory if a package defines a large number of commands but only a few are desired or needed.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

supertabular
A LaTeX package which defines supertabular and supertabular* environments which make it possible to have a tabular that spans multiple pages. Each page is its own tabular environment so each may have different widths. The longtable package enforces equal widths for multi-page tables.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/supertabular/]

tabularx
A LaTeX package which provides an environment tabularx which modifies the tabular environment such as the widths of certain columns are calculated such that the table is a specified width. It adjusts the widths of any number of chosen columns to achieve a desired width.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

theorem
A LaTeX package which extends the available theorem mechanisms to satisfy the different requirements of various journals. It allows the layout of the theorems in a document to be manipulated by determining a style in a manner similar to BibTeX's style files.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

typehtml
A LaTeX package which can typeset raw HTML source code. It can process either HTML2 or HTML3, allows the choice of a variety of section headings, can automatically include the HTML images in the document, handles Latin-1 characters, and much more.

[ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/supported/carlisle/]

varioref
A LaTeX package which defines two new commands similar to the ref command. The vref command adds an additional page reference, e.g. ``on the facing page'' or ``on page 27'' whenever the corresponding label command is not on the same page. The vpageref command is a variation of pageref with similar functionality.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

vector
A LaTeX package which provides an enhanced set of commands for representing vectors. There are commands for representing vectors as bold characters, sans serif characters, and character underlined with straight or wavy lines, each of which is available with and without an additional carat above the letter. There are also commands for representing a vector as a row or column of elements, either implicitly with first and last elements joined by dots or explicitly by including all the elements.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/vector/]

verbatim
A LaTeX package which reimplements to standard verbatim and verbatim* environments. It implements a solution to the problem of long verbatim listings sometimes overflowing TeX's memory.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

vrsion
A LaTeX package which provides a method for introducing file version numbers into documents. It remembers previous version numbers via information in the dvi files and can be incremented at three different levels: units, tenths, and hundredths.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/vrsion/]

wasysym
A LaTeX package which makes available additional characters and symbols from the Waldis symbol fonts. Some are available in math mode and others in text mode. The math mode symbols include variants of greater and less than, diamonds, boxes, and some integral symbols variants. The text mode symbols include male and female symbols, a phone symbol, up and down solid arrows, smiley and frownie symbols, a sun symbol, a bowtie symbol, a per million symbol, and more. There are also electrical symbols, polygons and stars, music notes, various circles, phonetic signs, astronomy symbols, astrological symbols, and the APL symbols.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/wasysym/]

xr
A LaTeX package which implements a system for external references. If the document source in one.tex refers to something in another document two.tex, this package is loaded into the first file with a special command given in the preamble containing the name of the second file. This allows anything labeled in either document to be referred to in the first document.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

xspace
A LaTeX package which implements a command xspace to be used mainly in text to add appropriate spaces after macros used within the text. For example, if an abbreviation is used for a long noun or phrase which is used often, the spacing after the use of the macro needs to be adjusted. This command does this automatically.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]

yhmath
A LaTeX package which consists of a font written in Metafont, a style file, and an FD file for the OMX encoding using the new font. This adds several capabilities to typsetting math in LaTeX including: very big parentheses which remain curved at all sizes, very big versions of the left angle and right angle symbols for use with matrices, a new set of root signs for large expressions, a command for antidiagonal dots in a matrix, a command to typset a ring accent like those used in topology for the interior of a space, a set of hats and tildes which are much wider than those currently available, and triangle and parenthesis accents.

[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/yhmath/]

LaTeX Journal Style Files
Available sorts of these things include:

achemso
A LaTeX package for typesetting journal entries for the American Chemical Society (ACS). This can be used to prepare manuscripts for:
  • Accounts of Chemical Research
  • Chemical Reviews
  • Inorganic Chemistry
  • Journal of the American Chemical Society
  • Journal of Chemical Information and Computer Sciences
  • Journal of Medicinal Chemistry
  • Journal of Organic Chemistry
  • Journal of Physical Chemistry A & B
  • Langmuir
  • Macromolecules
  • Organometallics
The reference handling in the reference list and text is aimed to be in accordance with the requirements of all these journals.

[ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/achemso/]

AGU
This set of files is for typsetting:
  • Journal of Geophysical Research
  • Geophysical Research Letters
  • Paleoceanography
  • Global Biogeochemical Cycles
  • Tectonics
  • Radio Science
  • Geomagnetism and Aeronomy International
  • Computational Seismology and Geodynamics
The journals Water Resources Research and Reviews of Geophysics are typeset by the AGU and have no LaTeX style files. See the AGU++ package for extensions to this that actually make it usable.

[http://www.agu.org/pubs/agutex.html]

AGU++
Extensions to the AGU journal typesetting package that render it quite a bit more useful. This also adds extra features such as author-year citations with BibTeX, true figures in the preprint version, correcting coding to avoid have to explicitly specify some numbers, sublabelling of equations and figures, and balancing two columns on the last page. The documentation for this is also infinitely more readable and useful than is the official AGU package documentation. This is documented in a 10 page user's manual.

[ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/aguplus/]

aiaa
A LaTeX macro package that produces AIAA-conformant (i.e. American Institute of Aeronautics and Astronautics) conference papers and journal submittals. It can simulate the typesetting of journal articles and notes for the purposes of determining length. Also included is a mostly AIAA-compliant bibliographic style sheet, sample documents, a sample presentation, and other test files. This is documented in an 8 page user's manual.

[ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/aiaa/]

LaTeX2HTML
A Perl program which translates LaTeX source code into HTML source code. It replicates the basic structure of a LaTeX document as a set of interconnected HTML files which can be traversed like any hypertext document. All of the parts of typical documents are translated into their hypertext equivalents, including chapters, sections, abstracts, cross-references, citations, footnotes, tables of contents, figures, tables, lists of figures and tables, and just about anything else that can be put into a printed document. LaTeX2HTML will attempt to translate any document with embedded LaTeX commands into a hypertext document, and will do a reasonable job most of the time. The original version was created by Nikos Drakos although others have done a tremendous amount of work extending and improving his original version.

The features of LaTeX2HTML include:

  • breaking up a document into one or more components via user specification;
  • providing optional, customizable iconic navigation panels on every page which contain links to other parts of the document or other documents;
  • handling inlined equations, equation alignment, right-justified and numbered equations, tables, figures, and just about any arbitrary environment by passing it to LaTeX and converting the processed file into an image;
  • the inclusion of tables and figures as full inlined images, thumbnail images with links to the full images, or within a table using the appropriate table tags of HTML 3.2;
  • support for theorem-like environments and automatic numbering of equations;
  • the capability of producing output for both image- and character-based browsers (e.g. Netscape and Lynx, respectively) including the display of mathematical expressions and formulas in the latter; support for colored text and both colored and image-based backgrounds;
  • handling of definitions of new commands and environments defined in external files which allows the definition of HTML macros in LaTeX;
  • handling of footnotes, tables of contents, lists of figures and tables, bibliographies and indexes;
  • automatic translation of cross-references and citations into hyperlinks both within a document and between documents;
  • translation of LaTeX accent and special character commands into the equivalent ISO-Latin-1 or Unicode character set when equivalents are available;
  • recognition of hypertext links to any multimedia resource, e.g. sound, video, arbitrary program scripts, etc.;
  • conditional text capabilities to allow text to be included in only either the hypertext of hardcopy version;
  • inclusion of raw HTML commands in a LaTeX document to, for example, add interactive forms;
  • the capability of dealing with most of the concepts and commands found in the LaTeX blue book, i.e. Lamport (1994), where a meaningful HTML equivalent exists;
  • the capability of dealing with many of the LaTeX extensions found in Goossens et al. (1994) and Goossens et al. (1997); and
  • translation of equations into either images or HTML 3.0 math mark-up or some combination thereof.

A source code distribution of LaTeX2HTML is available. It is written in Perl and requires version 5.003 or greater to work on most UNIX systems. Ancillary programs needed to realize its full features include LaTeX, Ghostscript, and the Netpbm utility library. A comprehensive user's manual is available in both PostScript and HTML formats, with the processing of the manual the acid test for a LaTeX2HTML installation. See also Hyperlatex, HyperTeX, Ltoh, tex2pdf, Tex2RTF, TeX4ht, and tth as alternatives to this for translating documents from text into hypertext.

[http://saftsack.fs.uni-bayreuth.de/~latex2ht/]
[http://cdc-server.cdc.informatik.th-darmstadt.de/latex2html/]
[ftp://ftp.tex.ac.uk/tex-archive/support/latex2html]

LaTeX2hyp
A program that converts LaTeX source code into formatted ASCII documents. It doesn't just remove the LaTeX markup but also formats the text, performs character set substitutions, and generates cross references. It currently (12/98) supports chapters, parts, sections, appendices and their numbering, enumeration, descriptions, itemizations, accents and symbols, bibliographies, tables of contents, indexes, cross referencing of labels/references and cites/bibitems, and math and tables. A source code distribution of this C program is available upon filling out an online registration form.

[http://tug2.cs.umb.edu/ctan/tex-archive/support/latex2hyp/]

LA2MML
A program that can convert LaTeX files in FrameMaker's MML format. The current (6/98) version supports the original LaTeX macros and the new macros described in the second edition of Leslie Lamport's LaTeX manual. A source code distribution is available. It is written in C and known to compile on generic UNIX platforms.

[http://www.cs.stir.ac.uk/~kjt/software/framemaker/]
[ftp://142.104.100.100/pub/la2mml/]

LATS
The Library of AMIP Data Transmission Standards is a library of routines to output gridded data. Its primary function is to establish and implement a convention or standard for gridded data and thus facilitate data handling and exchange. The LATS API is designed to be simple to understand and use with version available for both Fortran and C. LATS applications output data in either GRIB or NetCDF format and thus can be read by any package which recognizes these formats.

The features of LATS include:

  • the output of rectinlinear, gridded, spatio-temporal data with the fundamental data unit being a horizontal longitude-latitude slice of a variable (although other structures are also supported);
  • output to machine independent formats;
  • the maintenance of an internal parameter table which prescribes variable names, descriptions, units, datatype, basic structure, and compression; and
  • an option to override the internal table with an external parameter file;
  • multiple variables and variables at multiple levels may be written in any order for a given time point.
The current limitations include that all variables written to a given file must share a common frequency, and that all fields must be rectilinear gridded data.

The LATS library is distributed in binary format for several platforms including IBM AIX, DEC Alpha, Cray C90 and J90, HP-UX, SGI IRIX, Linux Intel, and Sun SunOS and Solaris. The library functions are documented in a man page that is also available in PostScript format.

[http://www-pcmdi.llnl.gov/software/lats/index.html]

Latte
The LAnguage for Transforming TExt is a simple and powerful language for including markup in text documents. A document written in Latte can be quickly converted to HTML, allowing documents to be written in the much simpler syntax of Latte to be converted for use on the Web. It also allows the definition of powerful, reusable functions for encapsulating repeated text, layout constructs and style information. A source code distribution is available. It is written in C++ and includes code to build a binary (latte-html) for converting Latte to HTML and a library (liblatte.a) for creating additional applications. A user's manual is available in HTML format.

[http://www.zanshin.com/latte/]

Launcher
A program that centralizes type/handler management across all applications, i.e. those programs that call various other programs to handle various types of files. Launcher is a command-line program (with a separate GUI process) that can be used as a drop-in replacement for every type/handler pairing in most applications. The features include:
  • handling files, directories, URLs and executables;
  • making use of well-known files and formats by parsing the Apache mime.types file and using the UNIX file utility with the Apache magic number definition file;
  • use of MIME types for mapping files to handlers;
  • allowance for multiple handler definitions per type along with GUI-based disambiguation;
  • runs synchronously or asynchronously;
  • launches handlers by file or type; and
  • allows multiple files to be handled by the same handler invocation, e.g. only one copy of xv launched for several image files.
A source code distribution is available. It is written completely in Tcl/Tk 8.0.

[http://www.cs.columbia.edu/~etgold/software/launcher/]

Lava Rocks
A set of Java classes for performing a variety of tasks. The classes include:
  • array, for array manipulation and conversion and with support for large and sparsely populated byte arrays;
  • awt, for use with AWT;
  • clib, ports of functions from the standard C library;
  • code, implementing the Data Encryption Standard (DES);
  • io, for I/O, batch data processing, and console-based user dialogs;
  • math, for numeric formatting and various math operations;
  • string, for string construction, manipulation, conversion and formatting as well as wildcard expressions;
  • swing, for use with Swing and drag-and-drop support;
  • tools, various standalone utilities; and
  • util, for queues, stacks, enumerations and bit-twiddling.
A source code distribution is freely available for noncommercial uses.

[http://www.newbie.net/sharky/lava/]

Lawson-Hanson
A collection of Fortran 77 and 90 routines for solving least squares problems that supplement Lawson and Hanson (1995). The routines include:
  • BNDACC, a sequential algorithm for the accumulation phase of a banded least squares problem;
  • BNDSOL, a sequential algorithm for the solution phase;
  • G1, which computes the orthogonal rotation matrix;
  • G2, which applies the rotation computed by G1;
  • H12, which constructs or applies a single Householder transformation;
  • HFTI, which solves a least squares problem using Householder Forward Triangulation with column Interchanges;
  • LDP, which performs Least Distance Programming;
  • MFEOUT, which created labeled matrix output for use with singular value analysis;
  • NNLS, which performs nonnegative least squares;
  • QRDB, a QR algorithm for singular values of a bidiagonal matrix;
  • SVA, which computes the singular value decomposition (SVD) of the matrix of a least squares problem and produces a printed report;
  • SVDRS, which performs SVD also treating the right hand side vector;
  • PROG1 through PROG7, demonstration programs;
  • BVLS, a Fortran 90 program which solves a least-squares problem;
and several utility programs.

A source code distribution of the Lawson-Hanson program suite is available. It is written mostly in Fortran 77 with a couple of routines in Fortran 90. See the book for full documentation of the algorithms used.

[http://www.netlib.org/lawson-hanson/]

Layout
An Xt widget class which uses a stretch/shrink model similar to that used by TeX to constrain the layout of an application in a manner which allows the geometry of the children to respect the desires of the application designer while adapting to its environment, both in terms of the changing geometry allocated to the widget and to the changing needs of the child widgets.

A source code distribution of Layout is available. It can be compiled and used on most UNIX flavors, and will work with either Xt or Motif. It is documented in a technical report available in PostScript format.

[ftp://ftp.x.org/R5contrib/]

L-BFGS-B
An optimization package for minimizing nonlinear functions which is especially useful for solving large problems in which the Hessian matrix is difficult to compute or dense. LBFGS-B is the only limited memory quasi-Newton algorithm capable of handling bounds on the variables. A source code distribution is available and is written in Fortran 77. This is TOMS algorithm 778 and is documented in Zhu et al. (1997).

[http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/]
[http://www.acm.org/calgo/contents/]

lbnamed
The load balancing named is a load balancing name server written in Perl. It was originally designed to be a proof of concept to be added into BIND, but is still (6/97) available in the Perl version. It allows the creation of dynamic groups of hosts that have one name in the DNS name space, with a host capable of being in multiple groups at the same time.

The server side consists of the lbnamed and poller programs which run in parallel and communicate using signals and configuration files. The poller program contacts the client daemon on the hosts being polled, gathers the responses into a configuration file, and sends a signal to lbnamed. The lbnamed program reads the poller-generated configuration file, loads it into a number of different data structures containing the hosts and their weights, and returns the host with the lowest weight as the best host. It looks like a standard DNS server to other name servers except that it doesn't answer recursive queries but rather only requests for the dynamic groups it maintains. The client side hosts need to run a special daemon which responds to poller requests using a simple protocol.

The source code for lbnamed is available. It is written in Perl 5. It is documented in a man page and in some online documentation.

[http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html]

LBU
The Linux Backup Utility is a menu-driven backup/restore/compare interface to the tar command. LBU allows the performance of foreground, background and scheduled backups.

[http://sunsite.unc.edu/pub/Linux/system/backup/]

lcc
A retargetable compiler for ANSI C code which generates code for the SPARC, MIPS R300, and Intel x86 and its successors. The lcc compiler is much smaller than gcc, and although the latter has a better global code optimizer (and emits better code with full optimization options), lcc implements a few low-cost and high-yield optimizations that can yield respectable code a bit faster. It should perhaps be thought of as being complementary to gcc, with an good strategy being to use lcc during development and gcc for the final binary. The lcc is compiler also differs from gcc in that it strictly follows the ANSI standard and implements no extensions. This can also be used as a cross-compiler that runs on one machine and compiles code for another, and it can also be used to link code generators for several machines into each executable.

The lcc compiler is available as source code as well as in binary format for Linux platforms. The program is fully documented in ``A Retargetable C Compiler: Design and Implementation'' (Addison-Wesley, 1995, ISBN 0-8053-1670-1) by Chris Fraser and David Hanson. Various ancillary packages are also available in the FTP directory containing the lcc distributions.

[http://www.cs.Princeton.EDU/software/lcc/]

LCLint
A tool for statically checking C programs. It can do even more than standard lint if special annotations are added to programs. LCLint performs many of the traditional lint checks including unused declarations, type inconsistencies, use-before-definition, ignored return values, execution paths with no return, likely infinite loops, and fall-through cases. The addition of annotations, i.e. stylized comments that document certain assumptions about functions, variables, parameters, and types, allows other checks to be performed. These include indicating where the representation of a user-defined type is hidden, limiting where a global variable may be used or modified, constraining what a function implementation may do to its parameters, and expressing checked assumptions about variables, types, structure fields, function parameters, and function results. The annotation also allow some traditional lint checks to be improved. Checking can be customized to select which classes of errors are reported by both stylized comments in the code and by command line flags.

The range of problems detected by LCLint include:

  • violations of information hiding,
  • inconsistent modification of caller-visible state,
  • inconsistent use of global variables,
  • memory management errors,
  • danger data sharing or unexpected aliasing,
  • using possibly undefined storage or returning storage that is not completely defined,
  • dereferencing a possibly null pointer,
  • dangerous macro implementations or invocations,
  • violations of customizable naming conventions,
  • and program behavior that is undefined because it depends on order of evaluation, and
  • likely infinite loops, incomplete logic, statements with no effect, ignored return values, unused declarations, and exceeding certain standard limits.

A source code version of LCLint is available as is a binary for Linux Intel platforms. It is written in ANSI C and should compile on any UNIX flavor with an appropriate compiler. A user's guide is available in several formats.

[http://www.sds.lcs.mit.edu/lclint/]

LCWA
The Last Changes Web Agent is a web agent that determines the last changed times of a set of HTML documents on a Web site. It crawls quickly through Web pages via HTTP, using a variable number of pre-forked crawling clients which work in parallel. They are coordinated by a server which implements a shared URL stack and a common result pool.

A source code distribution of LCWA is available. It is written in Perl and documented in a man page.

[http://www.engelschall.com/sw/lcwa/]

LDAP
The Lightweight Directory Access Protocol is a client-server protocol for accessing a directory service that runs over TCP/IP It was initially used as a front-end to X.500 but can also be used with stand-alone and other kinds of directory servers. LDAP is a simpler protocol that X.500 and doesn't require the upper layers OSI stack. The LDAP directory service model is based on entries which are collections of attributes with a distinguished name (DN). Each of the attributes has a type and one or more values. The directory entries are arranged in a hierarchical tree-like structure reflecting political, geographic, and/or organizational boundaries, with entries representing countries appearing at the top of the tree. The LDAP defines operations for interrogating and updating the directory, with most operations dealing with searching for information. See Wilcox (1999).

Related software includes:

[http://www.umich.edu/~dirsvcs/ldap/index.html]
[http://www.critical-angle.com/ldapworld/ldapv3.html]
[http://www.rage.net/ldap/]

ldb
A retargetable debugger for ANSI C whose targets include MIPS, SPARC, VAX and MC68000 processors. This is a research prototype that can be used, e.g. as a low-level platform on which to build a high-level debugger, for porting the lcc compiler to a new platform, or to build a debugger for another language. The design of ldb assumes that the compiler, i.e. lcc, has and therefore provides most of the machine-dependent information needed by the debugger. The debugging symbol format is designed to support retargeting and multi-language debugging.

A source code distribution of ldb is available. The current (5/99) version requires lcc 3.4b as well as Modula-3 (the DEC version), noweb and Icon. It is documented via the techniques of literate programming.

[http://www.cs.virginia.edu/~nr/ldb/]

LDDK
The Linux Driver Development Kit is a toolkit which helps minimize the development time needed for a hardware driver module. It also provides a standard driver interface which should be compliant to the MPC-API eventually. A description file of a driver written in the supplied Driver Description Language (DDL) is compiled using the ddl2c compiler to automatically generate a complete driver source tree include makefiles, libraries, includes, and all necessary code.

The LDDK project is currently (5/97) in the early alpha stage with many planned features yet to be implemented including:

  • automatic generation of man pages,
  • a more flexible DDL and macroprocessor,
  • code templates for PCI/ISA-dma code and interrupt servicing,
  • a register layout facility which generates flexible register access functions,
  • more documentation and examples,
  • a garbage collector, and
  • intrinsic configuration code.
The source code is available as is some presently sketchy documentation.

[ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/LDDK]

LDL
The Language Development Laboratory is a system supporting language design, the derivation of provably correct prototype interpreters, and test program generation based on formal specification. The goal of the project is to support readable, useful, compact, modular, and extensible language definitions which a language designer can assemble and complete by applying a tool based on a library and a knowledge base, as well as to automatically derive correct prototype interpreters as well as test examples.

LDL language definitions are formal and executable and based on both a kind of attribute grammars called GSFs and recursive function definitions. Building blocks of these are described by operations supporting concepts like refinment and interpretation. In the LDL proposed default model of language definition the attribute grammar is intended to describe static semantics and the construction of annotated abstract syntactical entities, whereas a separate semantics description handles dynamic semantics to ensure that interpreted terms satisfy the context conditions. Definitions with a different structure are also possible, e.g. multi-pass translators or applications generators, with prototype interpreters derivable from the formal definitions exploiting implementational models based on logic programming.

LDL is designed to run on top of Prolog, specifically SWI-Prolog. The Tcl/Tk package is also required to use this. Several technical reports are available in PostScript format.

[http://www.informatik.uni-rostock.de/FB/Praktik/psuet/ldl/]

ldlas
See xldlas.

LDM
The Unidata Local Data Manager is a collection of cooperating programs that select, capture, manage, and distribute meteorological data products. The system is designed for event-driven data distribution and currently used in the Unidata Internet Data Distribution (IDD project and includes network client and server programs and their shared protocols. The LDM software features include: configurability, i.e. the LDM server can be instructed to append a particular product to a file, execute and arbitrary program with the data program as input, store or retrieve products in a simple key-access database, or forward the data along to other running servers; support for distributed processing, i.e. data capture on one machine can be stored on other machines on a network; extensibility, i.e. new decoders can be easily added; event-driven mode, i.e. data is handled as it arrives.

The tools that comprise LDM include:

  • ldmadmin, a high-level interface to the LDM system;
  • ldmfail, a monitor for the local LDM server and its upstream primary and failover sites;
  • rpc.ldmd, the LDM server;
  • feedme, an event driven data sink client that obtains selected data as it becomes available;
  • ldmping, which checks if the LDM server is running;
  • notifyme, which receives notification messages from the LDM system and prints it with timestamps;
  • pqact, which processes products from a local product queue;
  • mailpqstats, which sends statistics collected from an LDM product queue to UPC for further processing;
  • pqbinstats, which accumulates time based statistics from and LDM product queue;
  • pqutil, an interactive interface to the LDM product queue;
  • pqcat, which outputs the data products from a product queue;
  • pqcreate, which creates a product queue;
  • pqexpire, which deletes old products from a product queue;
  • pqing, which performs real time capture of data into a product queue;
  • pqinsert, which inserts data into a product queue;
  • pqsend, which sends products from a local queue to a LDM server;
  • runpg, which runs other programs in a single process queue;
  • pqsurf, which splits surface bulletins and processes the observations;
  • scour, which deletes old data files;
  • ldmsend, which sends data using LDM protocols;
  • ldmprods, which displays statistics for the minute and cumulative statistics for the current hour;
  • netcheck, which monitors network connectivity to selected hosts; and
  • syscheck, which runs various system utilities to monitor workstation performance.
The LDM package also contains four libraries:
  • gdbm, the GNU database library interface;
  • pq, the LDM product queue interface;
  • regexp, the regular expression library interface; and
  • ulog, the LDM logging interface.

The LDM package can be installed on most standard UNIX platforms with a C compiler, Perl, and (optionally) the JDK. It can be obtained in source code form or in binary form for several platforms including Linux.

[http://www.unidata.ucar.edu/packages/ldm/]

LDP
The Label Distribution Protocol is a set of procedures and messages by which Label Switched Routers (LSR) established Label Switched Paths (LSP) through a network by mapping network-layer routing information directly to data-link layer switched paths. The LSPs can have an endpoint at a directly attached neighbor (i.e. compatibility with IP hop-by-hop forwarding), or it can have an endpoint at a network egress node, i.e. enabling swtiching via all intermediate nodes.

[http://community.roxen.com/developers/idocs/drafts/draft-ietf-mpls-ldp-08.html]

CR-LDP
Constraint-based Routing using the LDP provides the signaling mechanism for path setup, teardown, and maintenance in traffic engineering of service provider backbone networks. The CR-LDP signaling system offers scalability, reliability, and simplicity of implementation. A source code distribution of the CR-LDP message processing engine is freely available.

[http://www.nortelnetworks.com/products/announcements/mpls/]

le
A terminal-based editor with a host of features including:
  • use of rectangular and stream blocks for copying, moving, deleting, writing, reading, filtering through external commands, shifting left and right, case conversion, prefix insertion, and yanking buffered blocks;
  • search and replace with full regular expressions;
  • navigation via line number, offset, to place of last edit, and to block begin/end;
  • text formatting, line centering and optional automatic word wrap;
  • pseudo-graphics drawing;
  • text undeletion and uninsertino;
  • viewing and editing hex files;
  • binary clean, i.e. safely loading binary files;
  • viewing/editing of large files or devices using the mmap system call;
  • configurable syntax highlighting and key sequences; and
  • configurable colors.
A source code distribution of this C++ program is available under the GPL.

[ftp://ftp.yars.free.net/pub/software/unix/util/texteditors/]
[http://metalab.unc.edu/pub/Linux/apps/editors/terminal/]

Leafnode
A Usenet software package designed for small sites with less than a few tens of readers and a slow link to the net. Leafnode sites between NNTP clients and the real server, acting like a normal server to the clients and a normal client to the server. The programs comprising the package are:
  • leafnode, the NNTP server which talks to the normal news clients and stores readership data;
  • fetch, the NNTP news gatherer which selects what groups to pull news from; and
  • texpire, a program responsible for deleting old and uninteresting news, i.e. those that haven't been recently read.
Only groups that have been read in the last week are fetched from the upstream server, and when nobody reads a group for a week the articles from that group will no longer be fetched until someone starts reading it again.

[http://www.leafnode.org/]
[http://sunsite.unc.edu/pub/Linux/system/news/readers/]

LEAP
LEAP is a relational database management system written as an educational tool. It supports relations, has an elementary query language, and has a support environment for users. The query language is a full implementation of the relational algebra and, as such, users can enter complex algebraic expressions and see the result. Since it was designed to be a complete tool for educational purposes other goals such as performance, applicability and compatibility (as one will find in commercial RDB programs) were of secondary importance. The original version of LEAP was written in Borland Pascal, although a version in ANSI C that will compile and install on UNIX platforms is currently in alpha test stage. The documentation is included with the source code distribution and is also available at the site as a hypertext document.

[http://leap.sourceforge.net/]

Leda
A multiparadigm programming language which combines imperative, object-oriented, functional, and logic-oriented paradigms. See Budd (1995).

[http://www.cs.orst.edu/~budd/leda.html]

LEDA
The Library of Efficient Datatypes and Algorithms is a C++ class library of the data types and algorithms of combinatorial computing. The categories into which the algorithms are divided include simple data types and basic support operations, number types and linear algebra, basic data types, dictionaries, priority queues, graphs and related data types, graph algorithms, graphs and iterators, basic and advanced data types for 2-D geometry, basic data types for 3-D geometry and graphics.

The main features of LEDA include:

  • a sizable collection of data types and algorithms in a form allowing them to be used by non-experts;
  • a precise and readable specification for each of the data types and algorithms;
  • an item concept enabling data structures to be accessed by position;
  • efficient implementations of each data type (e.g. Fibonacci heaps for priority queues, red-black trees and dynamic perfect hashing for dictionaries, etc.);
  • a comfortable data type graph that allows programs to be written in a form close to that seen in the typical textbook; and
  • implementation via a C++ class library that can be used with almost any compiler.

LEDA is implemented as a C++ class library. A source code distribution is available as are object code files for a wide range of platforms. LEDA is not in the public domain but can be used freely for academic research and teaching, and a commercial license is also available. A user's manual is available in several formats. See Mehlhorn and Naher (1997).

[http://www.mpi-sb.mpg.de/LEDA/index.html]

LEE
Latent Energy Environments is an artificial life model and simulator of controlled complexity using endogenous fitness. It can be used to evolve populations of neural networks adapting to environments of increasing complexity. The chief motivation of this project is the modeling of environmental complexity across different artificial life experiments. A spatially distributed series of atomic elements must be combined to transform their latent potential energy into work necessary for survival. The population must evolve behavioral strategies such as to allow an efficient exploitation of the available energy, with the latent energy used to measure the environment complexity with respect to the survival task.

LEE is written in C and is portable to most generic UNIX systems with an appropriate compiler. Documentation is contained within a user's guide in ASCII format as well as in some technical reports available in PostScript format.

[http://dollar.biz.uiowa.edu/~fil/LEE/]

less
A replacement for the UNIX more utility which allows both backward and forward movement in a file. It also doesn't have to read th entire input file before starting so it starts faster than more. A source code distribution of this GNU package is available.

[http://www.gnu.org/software/less/less.html]

Lesstif
A clone (in the works) of the O$F/Motif widget set. The Nov. 1995 issue of the Linux Journal has an article about LessTif by Malcolm Murphy. A Linux Lesstif binary is also available.

[http://www.lesstif.org/]

Le Sursis
A project to facilitate CGI programming in Common Lisp. I'm not quite sure if I should think this a good or a bad thing.

[http://sursis.sourceforge.net/]

lex
The lexical analyzer is a a program generator designed for the lexical processing of character input streams, i.e. a tool that helps in the creation of new languages. It reads an input stream and creates an output stream that partitions the input into strings which match the given expressions. The source code input is a table of regular expressions and corresponding program fragments, and the output is a C (or some other language) routine which is plugged in as a front-end for a compiler. This program gives the compiler the ability to recognize literals, numbers, and operators and thus parse a given program. The first version of lex was written by Mike Lesk at Bell Labs in the mid-1970s. Many other versions of lexical analyzers are currently available including the GNU flex. See Levine et al. (1992) and Schreiner and Friedman, Jr. (1985).

lftp
A command-line based FTP client whose multithreaded design allows multiple multiple commands to be simultaneously issued and executed. It also has advanced mirroring capabilities and can automatically reconnect and continue transfers if disconnected. Other features include tab-key command completion, file list caching, command aliases, proxy support, parallel file retrieval, and all the other usual FTP features. A source code distribution is available.

[ftp://ftp.yars.free.net/pub/software/unix/net/ftp/client/]

LGMP
Local Group-based Multicast Protocol is a complete protocol suite for reliable multicast transfer based on the Local Group Concept. The LGMP developer's kit allows applications programmers to use LGMP to dramatically improve the efficiency and scalability of their multicast applications. It includes implementations of both LGMP and the Dynamic Configuration Protocol (DCP). The LGMP implementation provides a user space library that can be linked to applications using multicast communication. The features include:
  • multi-threading using the POSIX-conforming Pthreads package;
  • an interface to CDP/QoSMonitor/Session Control via shared memory;
  • local acknowledgment processing;
  • local retransmissions;
  • dynamic reconfiguration of local groups; and
  • rate, flow and congestion control.

The DCP packge is a user space implementation running on top of UDP. Its features include:

  • multi-threading using the POSIX-conforming Pthreads package;
  • an interface to LGMP/QoSMonitor/Session Control via shared memory;
  • the Expanded Ring Advertisement mechanism;
  • interactive debugging; and
  • application-specific metrics.

A source code implementation of the LGMP Developer's Kit is available. It is written in C and includes make files for several systems including Linux Intel. It is documented in several technical reports available separately at the site.

[http://www.telematik.informatik.uni-karlsruhe.de/~hofmann/lgc/lgmp.html]

libart
A library for high performance 2-D graphics that is used as an antialiased rendering engine for some GNOME applications. The libart package supports an imaging model basically the same as SVG and the Java 2D API. It includes all PostScript imaging operations and adds antialiasing and alpha transparency. The supported data structures include vector and Bezier paths, RGB and RGBA images, sorted vector paths, microtile arrays and affine transformations. The available algorithms include those for:
  • converting Bezier paths into vector paths;
  • sorting vector paths into SVPs;
  • antialiased rendering of SVPs;
  • computation of stroke paths with line cap and join options;
  • intersection, union and difference of SVPs;
  • finding covering UTAs for rectangles, vector paths and SVPs;
  • union of UTAs;
  • decomposition of UTAs into minimal rectangle sets;
  • alpha compositing; and
  • affine transformation of paths and images.
The library is freely available with various components under either GPL or LGPL.

[http://www.levien.com/libart/]

libc
A generic name for the C library on a given UNIX system. Linux systems use the GNU C Library.

libcabinet
A C++ library for creating, using and modifying cabinet files on any system. A cabinet file is an archive of other files (usuallly with the suffix .cab) similar to a UNIX tar file. These are used extensively in Win 9X/NT applications as well for many Java program suites.

[http://Trill.cis.fordham.edu/~barbacha/cabinet_library/]

libcdaudio
A multi-platform CD player development library that includes a bsaic command set for controlling the operation of CD-ROM drives as well as functions for accessing the CDDB, CD Index and the Cover Art Index.

[http://cdcd.undergrid.net/libcdaudio/]

libcgi++
A C++ class library which decodes CGI-encoded data and allows other applications to use it. Any program which requires CGI input can use the libcgi++. The features include: an object-oriented design and implementation, improved security over interpreted scripts, and high performance (i.e. compiled rather than interpreted code).

The distribution contains the source code, written in C++, a make file, and documentation of the available functions in PostScript format.

[http://micro-workflow.com/dam/cgi++/]

libdes
A package that includes a DES encryption library and a DES encryption program. It supports ecb, cbc, ofb, cfb, triple ecb, triple cbc, triple ofb, triple cfb, desx, and the MIT pcbc encryption modes and also has a fast implementation of crypt(3). The libdes distribution also contains support routines to read keys from a terminal, generate a random key, generate a key from an arbitrary length string, and read/write encrypted data from/to a file descriptor. It was writtein to conform with the manual entry for the des_crypt library routines from the MIT project Athena. Documentation is contained in the source distribution.

[ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/]

Libero
A programmer's tool and code generator in which the high-level logic of a problem is defined as a diagram. Libero then uses a finite-state machine as an underlying model to generate code which implements this logic. It can generate code in C, C++, Java, Perl, Gawk, 80x86 assembler, Cobol, MS Visual Basic, MS Test Basic, UNIX C, Korn, Bourne, and bash shells, and Rexx. Additional languages can also be supported via external schema files.

Libero is supplied with full portable ANSI C source code and runs on MS-DOS, VAX/VMS, and most UNIX platforms. It has been tested on Linux, HP-UX, Sun SunOS, and IBM AIX platforms. It is documented in a user's manual and technical reference available in HTML format.

[http://www.imatix.com/html/libero/index2.htm]

libffi
The Foreign Function Interface library provides a portable, high level programming interface to various calling conventions, i.e. sets of assumptions made by the compiler about where function arguments will be found on entry to a function. These conventions also specify where the return value for a function is found. Libffi can be used in programs to provide a bridge from the interpreter program to compiled code. A foreign function interface is one that allows code written in one language to call code written in another language, and libffi provides the lowest, machine-dependent layer of a fully featured foreign function interface. A layer must exist above libffi that handles type conversions for values passed between the two languages.

A source code version of libffi is available. It is been ported to Linux Intel and some other UNIX flavors and has been tested on gcc 2.7.2.

[http://sources.redhat.com/libffi/]

libf2c
Library support for the f2c (Fortran 77 to C) converter.

[http://sunsite.unc.edu/pub/Linux/devel/lang/fortran/]
[ftp://ftp.cc.gatech.edu/pub/linux/devel/lang/fortran/]

libg++
The GNU C++ library is intended to provide a variety of C++ programming tools and other support for GNU C++ programmers. It is not intended to be a clone of the AT&T libC since it contains code depending on special features of GNU g++ either different than or lacking in libC (although the differences are minor for the vast majority of C++ programs which will compile on both). The libg++ package also contains some workarounds for certain limitations in g++, although both are currently (6/97) undergoing rapid development.

The libg++ package has adopted the so-called ``forest'' approach to object-oriented programmingi, i.e. it comprises a collection of free-standing classes that can be mixed and matched (as opposed to the completely hierarchical style found in, e.g. Smalltalk). Within this style it provides support for a few basic kinds of classes. The first kind provides an interface between C++ programs and C libraries, e.g. basic header files and the file and stream classes. The second kind contains general-purpose basic classes which transparently manage variable-sized objects on the freestore, e.g. obstacks, multiple precision integers and rationals, etc. The third kind provides several classes and utilites of common interest, e.g. complex numbers. The fourth kind contains a set of pseudo-generic prototype files available as a mechanism for generating common container classes.

Source code and binary distributions of libg++ are available in various places and on all the Linux distributions I've seen. It is documented in a user's guide provided in the usual GNU Texinfo format.

[http://www.gnu.ai.mit.edu/order/ftp.html]
[http://sunsite.unc.edu/pub/Linux/GCC/]
[http://www.faqs.org/faqs/g++-FAQ/plain/]

libHTML
A Perl library that combines CGI and HTML generation functions. The features of libHTML include:
  • constructing HTML tags from within a Perl script;
  • HTML 3.2 compliance for all generated tags;
  • stringing together CGI and HTML commands for more compact code;
  • several easy to use aggregate HTML, CGI and FORM methods;
  • debugging methods;
  • different output environments, e.g. EOL markers for UNIX, PC and Macs; and
  • command-line scripts that will prompt for CGI parameters.
A source code distribution of libHTML is available.

[http://www.netaxs.com/~joc/perl/libHTML/libHTML.html]

libkb
An advanced and portable low-level keyboard library developed for MS-DOS and Linux platforms. Libkb allows access to all keys and all combinations thereof, and supports virtual terminal switching under Linux. It is useful for games and other applications that want total keyboard control. It has a built-in kbhit()/getkey()-like interface which allows the easy reading of the keyboard for text input, high score names, or cheat codes. A source code distribution of libkb is available. It is written in C and can be compiled and used on the platforms previously mentioned.

[http://wildsau.idv.uni-linz.ac.at/mfx/libkb.html]

LibMPEG2
A re-entrant library for decoding MPEG-1 Layer II Audio, MPEG-1 Layer III Audio, AC3 Audio, MPEG-2 Video and multiplexed MPEG-2 program streams. This can read unencrypted VOB files and movies synthesized using MPEG-2 Movie. It can use more than one processor for video compression, with framerates up to 31fps having been achieved on dual Celerons. It can seek within a file and includes MMX acceleration in the video decoder.

[http://heroine.linuxave.net/libmpeg2.html]

libnet
A collection of routines for constructing and handling network packets. This provides a portable framework for low-level network packet writing and handling. The features include:
  • portable packet creation interfaces for the IP and link layers;
  • packet memory management routines;
  • address resolution routines;
  • packet injection framework routines;
  • packet building routines;
  • ASN.1 BER routines; and
  • miscellaneous support routines.
A source code distribution is available.

[http://www.packetfactory.net/libnet/]

libnet
A collection of Perl 5 modules related to networking tasks. The modules in the package include:
  • Net::FTP, a class implementing a simple FTP client;
  • Net::NNTP, a class implementing a simple NNTP client;
  • Net::SMTP, a module implementing a client interface to the SMTP and ESMTP protocols to enable applications to talk to SMTP servers;
  • Net::PH, a CCSO nameserver client class;
  • Net::POP3, a class implementing POP3;
  • Net::SNPP, a class implementing SNPP;
  • Net::Time, a class implementing time and daytime network client interfaces;
  • Net::Domain, which attempts to evaluate the current host's Internet name and domain;
  • Net::TFTP, which supports TFTP with some extensions; and
  • Net::LDAP, which supports LDAP.
A source code distribution is available.

[http://rpmfind.net/linux/RPM/perl-libnet.html]

libobjects
The GNU Objective-C Class Library is a collection of classes for the Objective-C compiler which is part of GCC. The classes in libobjects fall into five categories. The collection objects store their contents generically (e.g. Set and Bag), with keys (e.g. Dictionary and MappedCollector), or with indices (e.g. Array, Queue, GapArray, etc.). The magnitude classes include Time and Random, with the latter working in conjunction with pseudo-random number generators. The stream objects provide a consistent interface for reading and writing bytes. The coders provide formatted ways of writing to stream objects, e.g. BinaryCoder for a stream of illegible bytes and TextCoder for human readable text. The remote messaging support classes include Connection, Proxy, ConnectedCoder, Port, and SocketPort.

A source code distribution of libobjects is available which can be compiled and installed on a wide variety of platforms via the supplied autoconf scripts. The library is documented in a user's guide supplied in Texinfo format.

[http://www.embl-heidelberg.de/nmr/GNUstep/GNUOpenStep/libobjects/libobjects.html]

LibOrb
A library for communicating with SpaceOrb 360 and Spaceball Avenger six degree of freedom virtual reality controllers.

[http://jedi.ks.uiuc.edu/~johns/projects/liborb/]

libpcap
A system independent interface for user-level package capture. Libpcap provides a portable framework for low-level network monitoring, with applications for network statistics collection, security monitoring, network debugging, and more. This was developed since system vendors each tend to supply a different interface for packet capture. The libpcap interface supports a filtering mechanism based on the architecture in the BSD packet filter (BPF). The packet capture interface supports in-kernel filtering on systems which have BPF, but on those that don't all packets are read into userspace and the BPF filters are evaluated in the lipcap library.

The libpcap source code is available and can be compiled and installed on most generic UNIX platforms via the included autoconfig script. It is known to work on Linux Intel boxes with kernel version 2.0.25 or later. The library is documented in a man page and in some ASCII files included in the distribution.

[ftp://ftp.ee.lbl.gov/]
[http://rpmfind.net/linux/RPM/libpcap.html]

LibPrint
A project to build a printing library for Linux and other Open Source operating systems. The goal is to create a library that will make it extremely simple for application programmers to produce nice-looking output and for users to add fonts and install printers on their systems. LibPrint is implemented in layers such that applications that already produce competent PostScript output will still be able to benefit from its printer discovery and font retrieval features, while new applications can also choose to use the lpDraw API to generate output. It uses URLs to load fontlists and font files, thus allowing applications to share fonts throughout a workgroup. Configuration files can also be included from URLs to allow global printing configuration. A source code distribution of the version 0.2.1 (3/99) is available as is a document explaining the API.

[http://marktwain.net/~newcent/libprint/]

libsafe
A library that protects processes against the exploitation of buffer overflow vulnerabilities in process stacks. It works with any existing pre-compiled executable and can be used transparently with single programs or system-wide. It works by intercepting all calls to known vulnerable library functions and substituting a function with the original functionality but not the vulnerability. This ensures that buffer overflows are contained within the current stack frame. The functions monitored by libsafe include strcpy, strcat, getwd, gets, [vf]scanf, realpath and [v]sprintf. The source code is available under the LGPL.

[http://www.bell-labs.com/org/11356/libsafe.html]

Libsigc++
A C++ framework implementing a full callback system for use in widget libraries, abstract interfaces, and general programming. This was originally part of GTK- but has been separated out to provide for more general usage. It is the most complete library of its type with the ability to connect an abstract callback to a class method, function or function object, and it contains adaptor classes for the connection of dissimilar callbacks.

The features of Libsigc++ include:

  • compile time typesafe callbacks;
  • typesafety violations report line numbers correctlly with template names;
  • no use of compiler extensions or meta-compilers;
  • proper handling of dynamic objects and signals;
  • an extendable API at any level Slot, Connection, Object and Signal;
  • extensions do not require the alteration of basic components;
  • user-definable marshallers;
  • provision of headers for up to seven arguments and two callback data;
  • m4 macros for building templates with various numbers of araguments and callback data;
  • easy building olf support for templates with an undefined number of arguments and callback data in library headers; and
  • supports several compilers including GCC 2.8.0.
The source code is available under the GPL.

[http://libsigc.sourceforge.net/]

libsndfile
A C library for reading and writing sound sample files of various types via one standard interface. It was designed to handle both little- and big-endian files as well as compile and run correctly on both types of processor systems. It was also designed to be easily extensible to new sound file formats. The formats currently (6/99) supported include:
  • Microshaft WAV uncompressed file formats (8, 16, 24 and 32 bit integer as well as 32 bit floating) and PCM formats;
  • Apple/SGI uncompressed AIFF and AIFC formats (8, 16, 24 and 32 bit);
  • Sun/NeXT AU/SND format (big endian 16, 24 and 32 bit PCM and 8 bit u-law);
  • DEC AU format (little endian 8, 16, 24 and 32 bit PCM and 8 bit u-law);
  • Microshaft IMA/DVI ADPCM WAV format (16 bits per sample compressed to 4 bits); and
  • Microshaft ADPCM WAV format (16 bits per sample compressed to 4 bits) (read only).
A source code distribution is available under the GPL.

[http://www.zip.com.au/~erikd/libsndfile/]

libsol
A library of iterative solvers for finite volume and finite difference discretizations of PDEs. The solvers include Jacobi's method, SOR, SSOR, RBSOR, ILU, SIP, MSI, and a series of conjugate gradient type solvers along with a wide range of preconditioners. Both 2-D and 3-D versions of the solvers exist.

The source code is written in a subset of Fortran 90 that can be compiled on the CM-5, DEC Alphas, SGI Power Machines, Cray J90s, and Linux boxes (using NAG f90). Documentation for the solvers can be found in a report by the author (S. E. Norris) entitled An investigation into the comparative speeds of linear solvers in the solution of PDEs in a file called solvers.ps.gz. Note: The name of this package has been changed to SixPACK.

[http://flo.mech.eng.usyd.edu.au/~norris/software.html]

LibSBall
A library for communicating with the Spaceball 2003 and 3003 six degree of freedom virtual reality controllers made by Spacetec (now Labtec).

[http://jedi.ks.uiuc.edu/~johns/projectslibsball/]

libsql++
A C++ library that wraps ODBC calls into an object-oriented interface resembling a subset of Java's JDBC. The goal is to provide C++ applications with a way to use databases without losing any functionality. This requires the iODBC driver manager and the egcs compiler for some of its advanced C++ features. A source code distribution is available.

[http://www.orcane.net/sql++/]

libsrm
A library implementing a transport protocol framework for reliable multicast applications. This implements a solution to the so-called naming problem called the Scalable Naming and Announcement Protocol (SNAP) which uses structured namespaces and a special protocol to disseminate them scalably. The package is intended as a vehicle for research into issues in multicast transport such as loss recovery, data naming, data consistency and congestion control, and as a testbed for large scale real world RM experiments. The software architecture of the toolkit consists of:
  • a core SRM engine implementing a distributed and randomized loss recovery protocol;
  • hierarchical namespaces;
  • scalable namespace announcements using SNAP;
  • a rate controller for data transmission; and
  • two-step local recovery.
The library is implemented as an event-based library and plugs into any event system via a simple API that allows handlers for timer and I/O events to be registered. Both C and Tcl interfaces are provided.

[http://www-mash.CS.Berkeley.EDU/mash/software/srm2.0/]

LIBSVM
A LIBrary for Support Vector Machines, i.e. a method for creating functions from a set of labeled training data. LIBSVM is an integrated tool for support vector classification (C-SVC, nu-sVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM).

[http://www.csie.ntu.edu.tw/~cjlin/libsvm/]

libsx
The Simple X library is a library of code that sits on top of and to the side of the Athena widget set (i.e. Xaw. Its purpose is to make writing X applications much easier, and it does this by encapsulating a large portion of the gorier details as well as by filling in some of the gaps that exist in Xaw. Libsx attempts to simplify common cases down to a single function call with only a few arguments.

The interface components encapsulated by libsx include:

  • labels, buttons, radio button groups and toggle buttons,
  • single line text entry,
  • multi-line text entry (a full text-edit box),
  • horizontal and vertical scrollbars,
  • scrolling lists, menu buttons with pop-up menus,
  • drawing areas (which can be drawn in and recieve mouse/keyboard events), and
  • multiple form widgets.

The library is available in source code form or in binary format for Linux boxes. It is written in mostly POSIX-compliant C and can be compiled on most generic UNIX platforms. It includes a demo program which shows most of its features. Compilation requires Xaw. The widgets are all defined in ASCII text files.

[http://sunsite.unc.edu/pub/Linux/libs/X/clibs/]

Lib3d
A high performance 3D rendering library. It is claimed to be 2 to 3 times faster than TAGL and many times faster than Mesa, with half to a third the speed of commercial renderers. Optimization features include bounding box culling, clip plane selection, lighting calculations in object space, model optimization including shared vertex, normal and material detection, culling and lighting per normal and light rather than per polygon, and more. The documentation is sparse thus far and contained in hypertext form in the package.

[http://sunsite.unc.edu/pub/Linux/libs/graphics/]

libtiff
A C library for working with image files in the Tag Image File Format (TIFF). The library provides interfaces to image data at several layers of abstraction. The highest level allos data to be read into an 8-bit/sample ABGR pixel raster format without regard for the underlying data organization, colorspace or compression scheme. Lower levels provide scanline-, strip- and tile-oriented interfaces that return data decompressed but otherwise untransformed. At the lowest level the library provides access to the raw, uncompressed strips or tiles, returning the data exactly as it appears in the file.

The distribution also contains several tools for working with TIFF files including:

  • tiffinfo, displays information about TIFF files;
  • tiffdump, displays the verbatim contents of a TIFF directory in a file;
  • tiffcp, copy, concatenate and convert TIFF images;
  • tiff2ps, converts TIFF into PostScript;
  • tiffcmp, compares the contents of two TIFF files;
  • tiff2bw, converts a color image into grayscale;
  • ras2tiff, converts Sun rasterfiles into TIFF:
  • rgb2ycbcr, converts an RGB, grayscale or bilevel TIFF image to a YCbCr TIFF image;
  • gif2tiff, converts GIF 87a images into TIFF;
  • ppm2tiff, converts PPM images into TIFF;
  • fax2tiff, converts raw Group 3 or 4 FAX data into TIFF;
  • pal2rgb, converts a palette-style image to a full color RGB image by applying the colormap;
  • tiffdither, dithers a B&W image into a bilevel image;
  • tiffsplit, creates one or more single-image files from a multi-image file;
  • fax2ps, converts a Group 3 or 4 compressed TIFF file into PostScript;
  • thumbnail, copys a bilevel TIFF into one including an 8-bit grayscale thumbnail image for each page;
  • tiffmedian, reads an RGB TIFF image and creats a TIFF palette file; and
  • sgi2tiff, converts SGI image files into TIFF.

The distribution also contains extensive documentation for the library and tools as well as an assortment of contributed software for accomplishing various tasks.

[http://www.libtiff.org/]

libtool
A GNU generic library support package which hides the complexity of using shared libraries behind a consistent interface. The libtool encapsulates both the platform specific dependencies and the user interface in a single script, and is designed to make the complete functionality of each host type available via a generic interface while hiding the gory details. It works by adding library building commands to your Makefile, Makefile.in, or Makefile.am, and can created both shared and static libraries on all supported platforms. Currently (9/97) supported platforms include all ELF targets which use gcc and ld, AIX 3.x and 4.x, Digital UNIX i.e. OSF/1, FreeBSD, HP-UX 9.x and 10.x, SGI IRIX 5.x and 6.x, Linux ELF, NetBSD, OpenBSD, SCO OpenServer 5.x, Solaris 2.x, and SunOS 4.x.

A source code distribution of libtool is available. It consists of a shell script ltmain.sh which does most of the work as well as several ancillary programs. The package is documented in a user's guide available in Texinfo format.

[http://www.profitpress.com/libtool/libtool.html]
[http://www.gnu.org/software/libtool/libtool.html]

libtsp
The LIBrary of the Telecommunications and Signal Processing Laboratory at McGill University contains C routines for performing various signal processing tasks as well as a number of general purpose tools for program development. The routines are divided into a number of categories including:
  • AF, audio file routines;
  • FI, filtering routines for filtering signals, generating windows, and designing Kaiser-windowed lowpass filters;
  • FL, file routines;
  • FN, functions included Bessel functions and series expansion of Chebyshev polynomials;
  • MA, matrix routines for manipulating matrices and solving equations;
  • MS, miscellaneous routines for convolving array coefficients, interpolating, etc.;
  • SP, signal processing routines for FFTs, discrete cosine transforms, calculating covariances and autocorrelations, converting between linear prediction parameters, solving for linear prediction coefficients, calculating mean-square filtering error, etc.;
  • ST, string handling routines;
  • UT, utility routines; and
  • VR, vector routines.

A source code distribution of libtsp is available. All routines are written in C and have been compiled on a variety of ANSI and non-ASNI C compilers. All of the routines are documented in both HTML format and in man pages.

[http://www.tsp.ece.mcgill.ca/software/libtsp/libtsp.html]

libU77
A Fortran system library for UNIX platforms. Some vendors supply only a limited number of calls and some platforms (i.e. Linux and AIX) don't have such a library at all, so this can serve as either a replacement or a newly available library. This library allows system calls to be made from within Fortran programs.

The available system calls include access, alarm, bit, chdir, chmod, ctime, drand, dsecnd, dtime, etime, exit, falloc, fdate, fork, free, fstat, gerror, getarg, getcwd, getenv, getgid, getlog, getpid, getuid, gmtime, hostnm, iargc, idate, ierrno, irand, itime, kill, len, link, lnblnk, loc, lstat, ltime, malloc, mclock, perror, qsort, rand, rename, second, seterr, sleep, stat, symlnk, system, time, unlink, util, wait, and wclock.

The library is written mostly in ANSI C with a few routines written in Fortran 77. Most of the BSD Fortran 77 system library is provided with the exception of the signal call (already provided by most vendors) and the highly nonportable I/O calls (e.g. fgetc, etc.). The documentation consists of a man page for each call and a PostScript document containing formatted versions of all the man pages together.

[http://flo.mech.eng.usyd.edu.au/~norris/software.html]

LibVRML97/Lookat
A portable C++ class library for reading and displaying VRML97 files. This is not a browser, although a simple example browser program called lookat is included in the distribution. It is designed mainly for integrating some level of VRML97 support into existing applications and to serve as a testbed for extensions to the VRML specification. A source code distribution is available which requires a C++ compiler, some implementation of OpenGL (Mesa will do), and libraries for handling JPEG and PNG formats.

[http://www.vermontel.net/~cmorley/vrml.html]
[http://sdk.web3d.org/source/OVAL/]
[http://www.openvrml.org/projects/libvrml97/]

GtkLookat
A viewer for VRML97 built using LibVRML97 and GTK+.

[http://www.openvrml.org/projects/gtklookat/]

QtLookat
A viewer for VRML97 built using LibVRML97 and Qt.

[http://www.openvrml.org/projects/qtlookat/]

XmLookat
A viewer for VRML97 built using LibVRML97 and Motif/Lesstif.

[http://www.openvrml.org/projects/xmlookat/]

Libwww
A general purpose Web API written in C. Libwww is a highly extensible and layered API which can accomodate many types of Web applications including clients and robots. It was designed to provide a highly optimized HTTP sample implementation as well as other Internet protocols and to serve as a testbed for protocol experiments.

The main design criteria of Libwww was to make is easily extensible to readily accomodate new standards for the transportation and representation of data objects. It makes it possible to dynamically plug in new modules without touching the inner parts of the library. This results in a library architecture consisting of five main parts:

  • a large set of generic utility modules such as container classes, string and network utilities, etc. designed to separate the upper layer code from platform specific implementations using a large set of macros that make it more portable;
  • a small core providing a standard interface to the application program for requesting a service;
  • stream modules for transporting data back and forth between the applications and the network;
  • protocol-specific access modules that allow applications to communicate with a wide variety of Internet services including HTTP, FTP, Gopher, WAIS, NNTP, Telnet, etc.;
  • application modules that include function requiring user interaction, management of history lists, call back functions, logging, etc.

The standard distribution contains several examples including:

  • WebCon, a command line tool;
  • Webbot, a fast Web robot with support for regular expressions, SQL logging, etc.;
  • WWW, a line mode Web browser;
  • cvs2sql, a CVS to SQL logging module; and
  • libpics, a PICS sample code library.
A source code distribution of Libwww is available. It can be compiled and used on most UNIX flavors including Linux. Extensive documentation of the API is included in the distribution and can also be found on the site in hypertext format.

[http://www.w3.org/Library/]

libwww-perl
A library of Perl package which provides a simple and consistent programming interface (API) to the Web. The features include:
  • reusable components (i.e. modules) that can be used separately or together;
  • an object-oriented model of HTTP-style communication;
  • library access by either a full object-oriented interface or a simple procedural interface;
  • support for basic and digest authorization schemes;
  • transparent redirect handling;
  • support for access through proxy servers;
  • handling of both absolute and relative URLs;
  • a framework for constructing robots;
  • the capability of working with Tk;
  • an implementation of the HTTP content negotiation algorithm that can be used in both protocol modules and server scripts; and
  • dealing with HTTP cookies.
A source code distribution of this library is available.

Programs constructed with libwww-perl include:

[http://www.ics.uci.edu/pub/websoft/libwww-perl/]

libxml
The XML library provided in the Gnome framework. The features include:
  • written in ANSI C;
  • an internal document representation as close as possible to the DOM interfaces;
  • a SAX-like interface designed to be compatible with Expat;
  • a nearly complete Xpath implementation; and
  • exporting push and pull type parser interfaces for both XML and HTML.

[http://xmlsoft.org/]

LICEPAK
A package of Fortran 77 subroutines which provides an interface to EISPACK to solve various linear algebraic eigenvalue problems. The routines in LICEPAK include:
  • CGEEV, for computing the eigenvalues and/or the eigenvectors of a general complex matrix;
  • CHIEV, for doing the same for a complex Hermitian matrix;
  • SGEEV, for doing the same for a general real matrix;
  • SSIEV, for doing the same for a real symmetric matrix; and
  • SSPEV, for doing the same for a real symmetric matrix stored in packed form.

A source code distribution of LICEPAK is available. All the routines are written in Fortran 77 and are documented in comment statements contained within each source code file. This is part of CMLIB.

[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/]

Licq
An ICQ clone written in C++ using the Qt widget set. This is being developed to supply a non-Java option for using the ICQ protocol. The currently (10/98) functioning features of Licq include:
  • an online/offline user list with pixmaps;
  • sending and receiving messages both online and offline via the server;
  • chatting in regular mode;
  • setting status to any of the available ones;
  • server retrievable basic user information;
  • keeping a log of messages to and from a user;
  • a network monitor window;
  • adding, removing and editing user information from within; and
  • customizable colors, fonts, sizes, and pixmaps for the contact list.
A source code distribution is available.

[http://www.licq.org/]

LiDIA
A C++ library for computational number theory which provides a collection of highly optimized implementations of various multiprecision data types and time-intensive algorithms. The functionality can be used interactively via the LC interpreter which implements a subset of C++ and provides function overloading and automatic coercions in addition to standard programming facilities. Functions and statements are treated as ordinary objects and may be manipulated at run-time, and LC functions can be easily transformed into C++ programs and compiled.

The current (8/97) capabilities of LiDIA include:

  • basic arithmetic over Z, Q, R, C, interval arithmetic, GF(2$^n$), GF(p$^n$);
  • several factorization methods including integer factorization (e.g. trial division, elliptic curve method, self-initializing multipolynomial quadratic sieve) and factorization of polynomials over finite fields;
  • various versions of lattice basis reduction (LLL/MLLL) including Schnorr-Euchner and Benne de Weger;
  • linear algebra over Z including basic operations and normal forms of matrices;
  • quadratic number fields including an implementation of Buchmann's subexponential algorithm for computing classgroups and higher-degree number fields of arithmetic and maximal order; and
  • generic data types including vectors, matrices, polynomials, power series, and has tables implemented as templates.

A source code distribution of LiDIA is available. It is written in C++ and can be compiled and used on many UNIX platforms including Linux with G++ 2.7.2.1. The package is documented in a 500 page user's and reference manual available in several popular formats.

[http://www.informatik.th-darmstadt.de/TI/LiDIA/]

LIDS
The Linux Intruder Detection System is a kernel patch for enhancing security. The features include:
  • security alerts sent directly from the kernel;
  • denial of non-local switching off of LIDS;
  • hot switching capabilities;
  • unmounting and killing protected processes when shutdown (for UPS);
  • execution control of non-protected programs before sealing;
  • cleaning of buffers containing passwd;
  • a two-level encryption password;
  • use of RipeMD-160 encryption instead of MD5;
  • hidden processes identified at exec by the dev/inode they had at LIDS startup;
  • coexistence with Openwall project;
  • protection of raw disk access;
  • allowance for specified programs to access raw disk;
  • protection of IO ports (/dev/port and ioperm/iopl;
  • protection of append-only files and protected files.

[http://www.lids.org/]

LifeLines
A genealogical database system that stores persons, families and other records. The databases and records can grow to any size with few restrictions on their contents. Lineage-linking betwen persons and families is automatically supported, and you can also set up your own inter-record linking schemes Additional features include:
  • provision of all operations needed to maintain geneaological databases including adding, changing and deleting records;
  • availability of all lineage-linking operations;
  • adding, removing and swapping children in families;
  • persons may have any number of spouses and families any number of children;
  • relationships between persons can be easily added, modified and deleted;
  • a merge operation that allows two persons or two family records to be merged into one;
  • a multi-screen interface with each screen providing a logical group of operations;
  • support for the importation and exportation of GEDCOM format data;
  • internal handling of GEDCOM data in any format; and
  • a report programming language for building customized report formats with many report programs for standard genealogical report types included.
The source code as well as binary versions for several UNIX platforms is freely available. Documentation includes a user's guide and a programmer's reference guide.

[http://www.bartonstreet.com/software/lines/]
[http://sourceforge.net/project/?group_id=852]

LiftPack
A C library for the Fast Lifted Wavelet Transform (FLWT). This is an implementation of the Lifting Scheme, an efficient method to implement the wavelet transform without messy boundary conditions and separated high and low pass filters. This is currently (2/97) in beta test stage and you have to make a request to obtain the package. Quite a bit of documentation is available at the site.

[http://www.cs.sc.edu/~fernande/liftpack/]

LightMat
A portable C++ class library for efficient arithmetic operations and basic mathematical functions on vectors, matrices, and 3 and 4 dimensional arrays. LightMat is specially optimized for vectors and matrices with dimensions 3 and 4, and is also optimized to minimize or eliminate object creation overhead. Loops are unrolled whenever possible to provide better performance and data is stored on the stack whenever possible. There is no support for sparse matrices or complicated linear algebra operations, although external routines from packages like BLAS and LAPACK can be called to operate directly on LightMat arrays since it uses the Fortran column-major storage format. A source code distribution is available which can be compiled using GCC. A user's manual is available in HTML format.

[http://www.ida.liu.se/labs/pelab/lightmat/]

LightPipes
A toolbox that aids in building models of optical devices when diffraction is essential. It consists of a set of UNIX filters, each of which represents an optical element or a step in a free-space light beam propagation. There are apertures, intensity filters, beam-splitters, lenses, and models of free space diffraction included in LightPipes. This is a portable set of UNIX-style tools written in C that was developed and tested on a Linux box and should compile and run on generic UNIX platforms. There is also an MS/DOS port. A dynamically linked Linux ELF binary is available as a free demo. It is limited to grids of 256x256 points.

[http://www.xs4all.nl/~oko/pipes/index.html]

lil-gp
A generic genetic programming tool written for speed, ease of use, and to support a number of options. It evolves trees whose nodes are C function pointers so tree evaluation is done entirely with compiled code. This increases the speed of the code and allows the handling of large problems. It includes support for multi-threading with either Solaris or POSIX threads.

The features of lil-gp include:

  • ease of use where options are specified via a flexible format parameter file;
  • support for multiple subpopulations with arbitrary interchange topologies;
  • several selectin methods including fitness proportionate, greedy overselection, inverse fitness, variable size tournament, random, best, and worst;
  • a choice of genetic operators including crossover, reproduction, and mutation;
  • writing and restarting from checkpoint files;
  • optional node and/or depth limitations on tree size;
  • support for ephemeral random constants; and
  • extensive output options including statistics files ready for import into plotting or analysis packages.

A source code distribution of lil-gp is available. It is written in ANSI C and can be compiled and used on most UNIX platforms. It is documented in a user's manual available in PostScript format.

[http://garage.cse.msu.edu/software/lil-gp/lilgp-index.html]
[http://parallel.vub.ac.be/~johan/Projects/]

LILO
The LInux LOader is a generic boot loader for Linux.

[http://sunsite.unc.edu/pub/Linux/system/boot/lilo/]

KLilo
A KDE GUI for configuring LILO.

[http://klilo.sourceforge.net/]

LilyPond
The GNU project music typesetter is a program which converts music definition files into visual or audio output. It can typeset formatted sheet music to a TeX file and performances to a MIDI file. LilyPond reads source files written in a language called the Music Definition Language or mudela. The features include:
  • ASCII script input with identifiers (for music reuse), customizable notenames, and a customizable fontset;
  • output which lets you check if you have entered the correct notes;
  • MIDI to mudela conversion via the mi2mu program;
  • multiple staffs in one score with each staff having different meters;
  • beams, slurs, ties, chords, super/subscripts, triplets, general n-plets, lyrics, and transposition dynamics;
  • multiple voices within one staff with beams optionally shared between voices and up to four voices cleanly handled;
  • multiple scores within one input file; and
  • clef changes, meter changes, a cadenza mode, key changes, and repeat bars.

A source code distribution of LilyPond is available. It is written in ANSI C and is known to compile on several UNIX flavors including Linux. It is documented in a user's guide available in PostScript format.

[http://www.cs.uu.nl/~hanwen/lilypond/]
[http://sca.uwaterloo.ca/lilypond/]

Limbo GUI Builder
An interactive, cross-platform tool for graphically designing a user interface for a Limbo application, where Limbo is the native language used to program Inferno applications. This generates Limbo/Tk code as output to which code can be added to handle events generated by actions on the user interface. This is basically a GUI tool implemented in Tcl/Tk that allows developers to efficiently design GUIs with single source coding and full interactivity between the programming and testing phases. Developers can check, edit and test any part of an interface using the interactive WorkBench comprised of a tree hierarchy, a shell, a project field, and a versatile, multi-object editor called the Object Inspector.

The features of this GUI builder include:

  • support for all of the Tk widgets used in Limbo;
  • a canvas geometry manager with drag and drop placing, x/y active helplines, anchor points to manipulate canvas items, scaling object sizes, and movable and editable nodes;
  • the capability of converting existing Tcl/Tk projects to Limbo/Tk;
  • full customizability via designing multiple symbol bars, reconfigurable preference settings, loading and discarding widget packages, and user-defined widget packages;
  • reconfigurable designs via widget name after creation, widget Z-order, canvas item Z-order, and any menu, canvas, widget, and geometry item attribute;
  • a flexible and dynamic builder tool edit option for moving complete widget hierarchies or menu items and contents via drag and drop, and cutting, copying, pasting or deleting widget hierarchies, menu and canvas items;
  • builder tool features including n-level and selective undo/redo, a multiple paste buffer, and online and context help; and
  • context-sensitive help menus for any widget, to switch between symbol bars, and for many attribute default menus.

[http://www.vitanuova.com/products/contents.html]

Limes
The LInux MEmory Simulator is a tool for the simulation of multiprocessors. It creates an illusion of N connected processors running a parallel application on a single processor machine. Processes (or, more accurately, lightweight threads) of the parallel application executing on these virtual processors are manipulated such that the result of their work is as it would be if they were executed on a real multiprocessor. Limes can be used for either architecture evaluation studies or for parallel algorithm evaluation and development.

Limes performs instrumentation at the assembly level which means that the compiler compiles and optimizes application code as it normally would. This means that existing applications (written in either C or C++) do not require source code modifications to be used wit Limes. The resulting assembly code is then optimized with each memory reference replaced with a kernel call-out which defers its execution until the time stamp of the operation reaches global simulation time. The simulation kernel is responsible for multiplexing threads and scheduling their memory requests at proper times and in the correct order.

The source code for Limes is available. It runs on a PC with an i486 or higher CPU which is running the Linux operating system. An extensive user's guide in PostScript format is included in the distribution.

[http://galeb.etf.bg.ac.yu/~dav0r/limes/index.html]

LIMEX
A Fortran program for the numerical solution of Linearly IMplicit differential-algebraic systems with EXtrapolation techniques. LIMEX can solve systmes up to index 1 using an extrapolation integrator with order and stepsize control. The Fortran source code is available and is documented internally via comment statements. This is part of CodeLib. See Deuflhard (1985) and Deuflhard et al. (1987b).

[ftp://elib.zib.de/pub/elib/codelib/limex/]

limo
An enhanced version of ls that gives more control over the output format. It allows the ordering and format of the output to be modified as well as the printing style.

[http://users.gtn.net/fraserm/limo.html]

LIMP
The Large Image Manipulation Program is an image processing library for very large images, i.e. those too big to fit into memory. The features include:
  • a variety of data formats, e.g. char, int, RGB, YCC, float, double and variations thereof;
  • more than one sample per pixel (although the channels must all be simultaneous);
  • processes large images in a limited amount of memory;
  • easy extensibility via the creation of applied functions and conversions; and
  • optimization for speed.
The source code distribution requires Qt 2.X for building.

[http://www.remotesensing.org/docs/limp-ht/]

LinAlg
A C++ library that contains declarations of Matrix, Vector, and subMatrices over the real domain as well as efficient and fool-proof implementations of BLAS levels 1 and 2. LinAlg also contains code for matrix transpositions and determinant evaluation/inversion. The major features include:
  • Hooke-Jeeves multidimensional optimization,
  • Aitken-Lagrange interpolation,
  • singular value decomposition and its application to solving Ax=b where A does not have to be square and b does not have to be a vector, and
  • more support for matrix/vector promises.
A source code distribution is available which can be compiled using gcc 2.7.2. Documentation is via a README file as well as comments within the code.

[http://www.lh.com/oleg/ftp/packages.html]

linbot
A management tool for Web sites. Linbot is written in Python and its functionality includes:
  • a modular scheme that allows new functionality to be easily added;
  • themes support via CSS;
  • plug-in support for third-party schemes;
  • viewing the structure of a site;
  • tracking down broken links;
  • finding potentially outdated pages;
  • listing links pointing to external sites;
  • viewing portfolios of inline images;
  • producing a summary of problems sorted by author;
  • locating pages that can be slow to download; and
  • do all of the above and more automatically and periodically.

[http://starship.python.net/crew/marduk/linbot/]

LINCKS
An object-oriented, multi-user database system developed for complex information system applications where the editing and browsing of information in the database is of paramount importance. The focus is on the sharing of small information chunks which combine to comprise complex information objects used by different users for different purposes. The information chunks are semi-structed in that they contain one part which is well-structured to facilitate the addition of AI processing in the system, and one part which is unstructured and suitable for management by the user.

The features of LINCKS include:

  • the capability of handling multiple users;
  • a hypertext-ish database X Window based user interface;
  • composite objects which, although built of small pieces, can be edited as an object;
  • a database history wherein the system maintains information about the history of objects and actions within the system;
  • interactively define alternative views on the udnerlying database objects;
  • an easy way for users to share database objects or for one user to share information across all of his accessible objects;
  • parallel editing notification wherein a list of objects being edited or maintained and warnings issued when parallel editing occurs; and
  • an interactive tutorial which illustrated the basic ideas and capabilities of the system.

The LINCKS source code, written in C, is available and should compile and install on generic UNIX/X11 systems. The documentation is supplied in a user's manual available in PostScript format.

[http://metalab.unc.edu/pub/Linux/apps/database/lincks/]
[http://www2.linuxjournal.com/lj-issues/issue11/1017.html]

LINDRV
A package of Fortran 77 subroutines which provides an interface to LINPACK for the solution of linear systems of algebraic equations in a number of forms. The routines in LINDRV include:
  • CGEFS, factors and solves a general complex system of linear equations;
  • CGEIR, the same as CGEFS plus it provides an estimate of solution accuracy;
  • CNBCO, factors a complex band matrix by Gaussian elimination and estimates its condition number;
  • CNBDI, computes the determinant of a complex band matrix from previously computed factors;
  • CNBFA, factors a non-symmetric complex band matrix by elimination;
  • CNBFS, factors and solves a general complex band matrix system of linear equations;
  • CNBIR, the same as CNBFS plus it provides an estimate of solution accuracy;
  • CNBSL, solves the nonsymmetric complex band system of equations using factors previously computed;
  • CPOFS, factors and solves a positive definite symmetric complex system of linear equations; and
  • CPOIR, solves a positive definite Hermitian complex system of linear equations and estimates the accuracy of the solution.
Double precision versions of the above are DNBCO, DNBDI, DNBFA, DNFBS, DNBSL, and DPOFS. Single precision versions are SGEFS, SGEIR, SNBCO, SNBDI, SNBFA, SNBFS, SNBIR, SNBSL, SPOFS, and SPOIR.

The LINDRV package is available in source code format. All the routines are written in Fortran 77 and documented via comment statements contained within each source code file. This is part of CMLIB.

[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/]

linear algebra
Software for performing numerical linear algebra includes: ARPACK, ARPACK++, Aztec, BLACS, BLAS, Blitz++, BlockSolve95, BPKIT, BLZPACK, CG, DOUG, EISPACK, GNUSSL, IML++, ITPACK, LANCZOS, LANZ, LAPACK, LAPACK++, LASO, LASPACK, LICEPACK, LinAlg, LINDRV, LINPACK, MatClass, Matrix, MA28, Meschach, MV++, NAPACK, Newmat, NSPCG, PARPACK, PBLAS, PeIGS, ParPre, PCG, PETSc, PIM, PLAPACK, P-SPARSLIB, QMRPACK, sB-BLAS, ScaLAPACK, SLAP, SLEIGN2, SL11F/SL12F, SMMS, Sparse, SparseBLAS, SparseLib++, SparseQR, SPARSKIT2, SPLIB, SuperLU, SYISDA, Template Numerical Toolkit (TNT), Templates, UMFPACK, and Y12MA. Numerical analysis/matrix manipulation systems or larger packages which use one or more of the above or their own linear algebra routines include: Algae, Cephes, Diffpack, Euler, HOMPACK, Macanova, MATCALC, MuPAD, Octave, Oorange, Ox, Ptolemy, R, RLaB, Scilab, SLATEC, SoPlex, SU, Tela, Viewit, Xi, Xlisp-Stat, and Yorick.

LinGate
A network gateway package that provides network security. Access control mechanisms are used to restrict access to services. The features include:
  • performing different services for requests from different IPs on the same port;
  • a SOCKS5 server and client;
  • TCP UDP mapping for redirecting requests;
  • a telnet client;
  • a POP relay server;
  • an FTP relay server;
  • an IRC relay server;
  • enabling console programs to respond on specific ports;
  • a remote shell for administration tasks;
  • access control configuration for each service;
  • creation of IP groups for specifying collective access control and services;
  • multiplexing different services on a single port; and
  • X11 and Java GUIs.

[http://lingate.webjump.com/]

linguistics
Related software includes:
  • Alembic Workbench, a project to create a natural language engineering environment for the development of tagged corpora;
  • ASR, a large vocabulary conversational speech recognizer;
  • Display Signal, a GUI tool for viewing signal waveforms;
  • Emu, a collection of tools for the creation, manipulation and analysis of speech databases;
  • Festival, a multi-lingual speech synthesis system;
  • MtScript, a multi-lingual text editor;
  • Nb, a GUI for annotating the discourse structure of spoken dialogue, monologue and text;
  • TransTool, a tool for transcribing spoken language;

LINK
LINK is a software system designed to be a general-purpose, extensible computing environment in which discrete mathematical objects representing real world problems can be easily manipulated and visualized. The system features a full Scheme interpreter with access to the Tcl/Tk graphics toolkit (via STk), a flexible GUI, and a rich variety of Collection and Graph objects which are grouped into C++ libraries. This computing environment offers access at levels ranging from point-and-click to command-line manipulation and query writing to large-scale systems development. LINK is ideal for quick and easy creation, manipulation, loading, and storing of graphs, hypergraphs, and their attributes. This power will encourage experimentation with algorithms and properties of graphs. Link has been designed primarily as an educational tool and research tool. Since the system uses an interpretive, object-oriented graphics package, viewing graphs of more than 1000 vertices and edges is not currently practical, though future work can improve that number somewhat.

The distribution includes the source code which is written in C++. It is known to compile and run on SunOS and Solaris and Linux platforms. The STk package mentioned above is needed to run LINK. The documentation is contained within a user's guide written in PostScript format.

[http://dimacs.rutgers.edu/Projects/LINK.html]

Link Conservatory
A system for sharing web links that allows users to add, modify or remove links in a moderated or unmoderated fashion. This allows a Yahoo-like directory (or, to use the current buzzphrase, an "enterprise information portal", to be constructed.

[http://www.working-dogs.com/conservatory/]

LinkWinds
A visual data exploration system which is a test bed for a NASA/JPL program of research into graphical methods for rapidly and interactively accessing, displaying, and analyzing large multivariate multidisciplinary datasets. LinkWinds provides a variety of functions and services including interactive 2- and 3-D graphical data displays, hard copy output of graphical displays and text, interactive color manipulation, animation creation and display, interactive creation of data subsets at input or output, journal and macro capabilities, context sensitive help, network support for collaborative data analysis, and data search and retrieval. It is an integrated multi-application execution environment with a full GUI running under UNIX systems. It uses either OpenGL on SGi machines, XGL on Sun machines, or Mesa on Linux and other UNIX platforms.

LinkWinds operations involve the dynamic interconnection of multiple windows containing visual displays and controls via a data linking paradigm wherein links are created by dragging rubber band icons between data and applications. This functions as a sort of graphical spreadsheet which is an easy to use and powerful method for organizing large amounts of data for a large variety of analysis procedures. The database interface can read several formats including raw binary data, HDF, CDF, NetCDF, RGB image format, FITS, ASCII text, and a few less well known formats. The graphical and analysis functions available include:

  • 2- and 3-D scatterplots,
  • rotating data sets about various axes,
  • selecting slices of data along any axis of a data set,
  • creation of animations,
  • performing mathematical operations on data slices,
  • modifying color palettes,
  • combining data slices from the same or different data sets,
  • contouring data,
  • image annotation,
  • rendering data images on a globe of the Earth,
  • histogram creation,
  • creating isovalue surfaces in 3-D data sets,
  • adding simulated lighting to 3-D applications;
  • line and vector plots,
  • panning and zooming,
  • creating images from irregular and/or sparse data sets, and
  • plotting on polar projections.

Binary distributions of LinkWinds are available for SGI, Sun, HP-UX, IBM RS6000, and Linux Intel platforms. A reference manual and user guide are available in PostScript format. A Java version of LinkWinds called WebWinds is in the works with an initial release planned for summer 1998. See Jacobson et al. (1994).

[http://linkwinds.jpl.nasa.gov/]

LINPACK
A collection of Fortran subroutines which analyze and solve linear equations and least-squares problems. This can solve linear systems whose matrices are general, banded, symmetric indefinite or positive definite, triangular, and tridiagonal square. LINPACK can also compute the QR and SVD of rectangular matrices and apply them to least-squares problems. This was designed for use with supercomputers in the 1970s and early 1980s but has now been mostly superceded by LAPACK, a package designed to run more efficiently on the shared-memory vector supercomputers that started appearing in the mid-1980s. The Fortran source code for this package is available but the documentation is sparse. This package is now of mostly historical interest as LAPACK is superior to it in just about every conceivable way. This is part of CMLIB.

[http://www.netlib.org/linpack/index.html]

lint
See Darwin (1988).

LInteger
A set of C++ libraries support multiple precision integers. The package also includes libraries supporting chain hash functions and pseudo-random number generators. The core methods are coded in i386+ assembly language for high speed, and as such the libraries will only compile under GNU's g++. Package features include probable prime generation, ASCII I/O in bases 2 to 36, Pentium optimizations for multiplication and squaring, and much more. The source code is available. The documentation is contained within HTML files included with the package.

[http://www.interchg.ubc.ca/janke/linteger.html]
[http://www.cryptocd.org/cryptocd/source/libs/linteger.0_1/]

lintre
Molecular biology programs for testing the molecular clock on a given topology of a phylogenetic tree and making linearized trees, i.e. re-estimating branch lengths under the assumption of a constant evolutionary rate. The can use either nucleotide or amino acid sequences as data. The programs in the package are:
  • njboot, constructs a neighbor-joining tree;
  • postree, creates a PostScript version of a tree;
  • tpcv, conducts a two-cluster test;
  • branch, conducts a branch length test; and
  • branbst, conducts a branch length test by bootstrap.
The programs are written in standard C and should compile on most platforms.

[ftp://ftp.bio.indiana.edu/molbio/evolve/lintr/]

Linux
A bloody fine reason to live. Also, an independent implementation of the POSIX operating system specification with SYSV and BSD extensions. The multitudinous features of Linux (as of kernel 2.0) include:
  • multitasking, multiuser, and multiplatform capabilities;
  • multiprocessor support for SMP on Intel and SPARC platforms;
  • running in protected mode on *86;
  • memory protection between processes;
  • demand loading of executables to reading only those parts of a program that are used;
  • shared copy-on-write pages among executables so multiple processes can run in the same memory;
  • virtual memory using paging to disk with the capability of adding more swapping areas during runtime;
  • a unified memory pool for user programs and disk cache so all free memory can be used for caching;
  • shared and dynamically linked shared libraries;
  • core dumps for post-mortem analysis which allows debugging of programs after they've crashed as well as when they're running;
  • near compatibility with POSIX, System V, and BSD at the source level;
  • near compability with SCO, SVR3, and SVR4 at the binary level via an iBCS2 emulation module;
  • complete availability of source code;
  • POSIX job control;
  • pseudoterminals;
  • kernel emulation of 387 when needed;
  • support for many national or customized keyboards;
  • multiple virtual consoles (up to 64);
  • support for several filesystems including minix, Xenix, the common System V systems, and a Linux advanced filesystem;
  • transparent access to MS-DOS partitions via a special filesystem;
  • a filesystem called UMSDOS which allows Linux to be installed on a DOS filesystem;
  • a CD-ROM filesystem which reads all standard formats;
  • TCP/IP networking with all the bells and whistles;
  • an Appletalk server anda Netware client and server;
  • a LAN manager (SMB) client and server; and
  • a full range of networking protocols including TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP, NetBEUI, Netrom, etc.

Linux currently (7/97) operates stably on Intel *86 processors above 286, Digital Alpha processors, Sparcs, and on some Amiga and Atari computers. Ports are being developed for PowerPC (almost there), ARM, and MIPS processors as well as some other less well known chips. It's free; it's stable; and it's very good. Linux Bob sez check it out. See Anonymous (1999), Garzik (2000), Hekman (1997), Hsiao (1999), Kirch (1995), Meyers (1999), Tranter (1996) and Welsh and Kaufman (1996).

Linuxconf
A system administration tool for Linux systems which is a fully integrated utility to help maintain a working Linux system without difficulties, and especially without having to reboot. Linuxconf can be configured to decide if a daemon must be started, a configuration command must be executed, a daemon must be killed and restarted, a daemon must be signalled, a network interface must be (re)configured, a network route must be set/removed, or a volume must be (re)mounted. It acts based on configuration files, and already knows about most Linux configuration files so it can compare their current status to a baseline. Simple one line commands are used to get a report of the system status and also to bring the system up to correct status if it is not already in that state. In addition to command-line mode, a Web interface is also available which allows the system to be configured via a browser.

A utility called askrunlevel can be used to configure or reconfigure a system before the boot sequence is finished. From within this utility a user can start Linux in graphical mode and activate networking (or not active it), run as an X terminal, start in text mode with full networking (or without it), and configure the machine. Linuxconfig knows how to configure:

  • system time, time zone, and the CMOS clock;
  • LILO management;
  • basic networking configuration (i.e. IP numbers and net mask) of the Ethernet adapters;
  • static routing by the default router;
  • filesystems (/etc/fstab);
  • the routed daemon;
  • the NIS client, i.e. ypbind;
  • the NFS server;
  • PPP client configuration and activation;
  • users and groups;
  • the named daemon for DNS;
  • sendmail;
  • firewalls, i.e. packet filtering;
  • the RARP setup;
  • the IP Alias setup; and
  • UUCP management.
It also has a friendly interface to help configure /etc/fstab, /etc/host.conf, /etc/hosts, /etc/networks, and /etc/resolv.conf.

Linuxconf has been installed and tested on Slackware and Redhat distributions and should work on most if not all others. It is written in C++ and has an Ncurses interface. Both source and binary (both a.out and ELF) distributions are available. It is documented via extensive online help for almost all of the configuration screens.

[http://www.solucorp.qc.ca/linuxconf/]
[http://sunsite.unc.edu/pub/Linux/system/admin/]

Linux Benchmarks
Over 30 Linux benchmarks using the BYTE UNIX Benchmark Test Suite. This includes 486 and Pentium platforms of many types.

[http://www.silkroad.com/linux-bm.html]

Linux books
Books directly related to Linux include Barkakati (1996), Beck and Bohme (1996), Butzen and Forbes (1997), Cornes (1996), Eckel (1995), Heath (1997), Hekman (1997), Husain (1995), Husain (1996), Kirch (1995), Komarinski (1996), Parker (1995), Parker (1997), Peterson (1996), Probst and Flaxa (1997), Purcel (1997), Que Development Group (1996), Rankin (1997), Reichard (1997), Rubini (1997), Sobell (1997), Strobel (1997b), Strobel (1997a), Tackett (1996), Tranter (1996), Volkerding (1995), Volkerding (1997), and Welsh and Kaufman (1996). Most if not all other books related to UNIX are also applicable to Linux.

Linux Distributions
A distribution is a package consisting of the Linux kernel plus ancillary software, documentation, etc. to expand the software into a usable and reasonably complete system. These distributions can be downloaded via ftp or purchased for $20-$100 on CD-ROMs with hardcopy documentation. The March 1996 Linux Journal has an article about Linux Distributions that offers quite a bit of detail about several distributions. An up-to-date list of commercial distributions is kept on the Linux on the World Wide Web section of the SSC Web site.

Linux Documentation Project
A project to gather and develop documentation about Linux. The most valuable documents you'll find here are several manuals in PostScript and/or HTML format, e.g. Linux Installation and Getting Started, The Linux Kernel Hacker's Guide, The System Administrator's Guide, The Network Administrator's Guide.

The HOWTO documents can also be found here. These are a series of documents with wholly practical advice on such topics as AX25 networking, x86 assembly programming, booting software, creating boot/root maintenance disks, bus mouses, CD-ROM drives, the Chinese character set, Linux consultants, the Cyrillic character set, DNS, migrating from DOS to Linux, DOSEMU, the Danish character set, Linux distributions, ELF, Ethernet, the Finnish character set, firewalls, ftape drives, GCC, German-specific features, amateur radio software, compatible hardware, the Hebrew character set, IPX networking, hooking up to an ISP, installation, the Italian character set, Java-capable CGI bins, the Linux kernel, keyboards and consoles, the MGR graphics interface, email, kernel modules, TCP/IP, NFS, NIS/YP, Usenet, PCI, PCMCIA, PPP, Polish-specific features, the Portuguese character set, printing software, printing usage, SCSI, SMB, serial devices, shadow passwords, Slovenian-specific features, sound hardware and software, sound playing, Spanish-specific features, teTeX, the Thai character set, the UMSDOS filesystem, UPS, UUCP, value added resellers (VAR), migrating from VMS to Linux, WWW clients and servers, and XFree86. These are available in several formats including ASCII, TeX, PostScript, and HTML.

There is also a series of mini-HOWTOs with concise information covering 3 button mouses, ADSM backup, AI/Alife, backup with MS-DOS, battery powered systems, Boca serial cards, BogoMips, Ethernet bridges with and without firewalls, writing CD-ROMs, setting and keeping clock time, colors, Comeau C++, serving DHCP information, dial-on-demand, diald, using DIP/SLiRP/CSLIP, diskless Linux boxes, dynamic IP addresses, ext2fs file undeletion, GTEK multiport boards, GUI development, graphics tools, Gravis UltraSound cards, HTML validation, HTTP on Netware LANs, I/O port programming, IP aliasing, IP masquerading, IP subnetworking, Jaz drives, kerneld, cursor control key setup, low-bandwidth X (LBX), LF1000 optical disk drives, LILO, using Linux/DOS/Win95 together, using Linux and the NT boo loader together, using Linux/OS2/DOS together, using Linux/DOS/OS2/Win95 together, using Linux/Win95 together, using Linux/NT together, large hard disks, using locales, MIDI keyboards with a Sound Blaster, mail queues, mail to news gateways, man pages, using modeline, multiple disk layout, multiple Ethernet, proxy servers for Netscape, offline mailing, PLIP, PPP over ISDN, PPP over minicom, process accounting, proxy ARP, paging gateways, disk partitioning, using SAMBA to print to Win, installing qmail and MH, disk quotas, remote booting, using SLIP and proxy ARP to connect LANs to the net, using sendmail with UUCP, serial port programming, the SoundBlaster 16 PnP card, the StarOffice suite, sharing swap space between OSs, using TIA, using term over a firewall, using INN, token ring cards, upgrading Linux distributions, setting up a VPN or a virtual WWW site, disabling and enabling bells, using Linux/Win95/Win3.* together, using SCO WordPerfect, enlarged X cursors, connecting X terminals to Linux boxes, Zip drives, and more. These are available only in ASCII format.

[http://sunsite.unc.edu/mdw/linux.html]

LinuxFailSafe
A project for porting SGI's FailSafe product to Linux systems. The architecture of the FailSafe system consists of a cluster infrastructure, cluster administration services, and a cluster manager. The cluster infrastructure layer is called the Clustered High Availability Operating Services or CHAOS, and is comprised of:
  • Cluster Membership Services (CMS) providing cluster node membership to upper layers and offering clients the up/down status of nodes within a cluster;
  • Group Communication Services (GCS) providing an abstraction of process groups, i.e. collections of processes distributed across a cluster that cooperate o provide a distributred application service;
  • a System Resource Manager (SRM) that uses GCS for communication and to provide exclusive access to the resources, and contains detailed information for managing system resources such as disks, volumes, file systems, network adapters, IP addresses, etc.; and
  • Cluster Reset Services (CRS).

The Cluster Administration Services (CAS) are accessed via the cluster manager, and allow users to administer, configure and monitor CHAOS and other applications controlled by FailSafe. All configuration information is stored in a Configuration DataBase (CDB) that consists of two parts:

  • a front-end providing the client view of the CDB; and
  • one or more back-ends, i.e. plug-in libraries that handle the actual storage of some subset of the configuration data (or the dynamic synthesis of that data).

The features of FailSafe include:

  • support for up to 16 nodes in a cluster, with star configurations available;
  • local failover of applications that allow support for single node configurations;
  • fine grain failover of applications wherein specific applications on a node are failed over rather than the entire node;
  • ordered, selective and cascading application failover;
  • dynamically managed application monitoring;
  • dynamically managed FailSafe resources and upgrades;
  • a single point of administration with a GUI; and
  • enforcing I/O clean property.

[http://www.linux-ha.org/LinuxFailSafe/]

Linux Game Tome
A catalog of the games available for the Linux platform. The page constructor has even rated the games and provided the occasional screen shot.

[http://happypenguin.org/]

Linux Gazette
An electronic publication in which John Fisk takes ``all the ideas, suggestions, tips, tricks, and sundries that [he's] culled from numerous sources and present[s] them in a way to make it easy for others to try.''

[http://www.linuxgazette.com/]

Linux/IR Project
A project whose goal is to incorporate an IrDA compliant protocol stack into the Linux kernel. The current (5/98) implementation is written as a kernel module and works with 2.0.x and 2.1.x kernels.

[http://www.cs.uit.no/linux-irda/]

Linux Journal
The official Web site of our favorite magazine, ``The Linux Journal''. It contains the full text of selected articles from the Journal (including the recent series on ELF), book reviews, supporting code from various articles, the Linux User Group list, the covers and tables of contents from all issues, and the manual for the Red Hat distribution.

[http://www.ssc.com/lj/]

Linux Lab Project
An effort to develop, adapt, and apply Linux tools in a laboratory setting. This is a point of exchange for experimentalists and hardware developers and is intended to help all those developing measurement of process-control software for Linux. A goal is to eventually provide a collection of useful software.

There software archive currently (5/97) contains bus system drivers for DBCC CAMAC and GPIB devices; digital signal processing (DSP) drivers for Northrop Grumman Affinity ACC286 and Transtech devices; data acquisition drivers for Analog Devices RTI860, CIO-DAC 16/330 A/D, Keithley K575, LPM-16, ML16p A/D, DAS1200, National Instruments LabPC+ and atMIO16 (F and E series), and CIO DAS-1600 devices; EE tools and drivers for the Motorola 68HC11 PCODER, printer circuit board (PCB) design, tools for embedded system and PCI hardware design, and a tool to read and write several EPROM types using the Quickbyte 2.0 EPROMMER; a microcontroller board drivers for the PC537(LWL) device; drivers for the CIO-DIO49 digital I/O board and the PCL-725/ACL-725 relay actuator and isolated D/I cards; drivers for the CED1401 laboratory interface and the WSB 100 frequency synthesizer; and the LDDK Toolkit. Check the site frequently for further additions.

[http://www.llp.fu-berlin.de/]

Linux Laptop Project
A collection of information and documentation of interest to those who use or are considering using Linux on a notebook or laptop computer.

[http://www.cs.utexas.edu/users/kharker/linux-laptop/]

LinuXML
A project devoted to changing the UNIX de facto standard for inter-process communication and storage from line-based ASCII records to XML. This will allow, for example, a program like ls to output data in XML rather than ASCII format which will in turn allow programs downstream of this (e.g. sort and xterm) to understand what the data is and be able to do more things with it. The project is still (9/99) in the very early stages, although some alpha versions of an XML version of ls are currently available.

[http://www.geocities.com/ResearchTriangle/Forum/6751/]

Linux Phone Project
A project to send digital audio using 4800 bps modems. The features include:
  • a real-time Linear Predictive Coding (LPC) coder;
  • compression better than 97%;
  • compression of either sound files from disk or real-time sound;
  • a file player;
  • network support which allows voice link (half-duplex at present) using standard dial-up modems (4800 bps or better); and
  • a multicast daemon server process for audio distribution to several clients at once.

The source code for the LPP is available and requires, in addition to a generic UNIX system such as Linux, a sound card, a driver supporting the /dev/dsp interface, and a TCP/IP connection for network support.

[http://www.lightlink.com/mhp/lpp/]

Linux Security
Information on how to make your Linux installation more secure from hoodlums and ne'er-do-wells on the Infobahn. The content is at present (2/96) sparse but more, including a FAQ, is promised.

[http://bach.cis.temple.edu/linux/linux-security/]

Linux Software Map
A searchable index of software for Linux systems. One of the reasons I started the list you're reading was dissatisfaction with this software map, although it can be useful.

[http://www.boutell.com/lsm/]

Linux-GPIB
A driver and user interface package for a range of widely used GPIB cards. The GPIB (also called IEEE-488) Standard provides standards for measurement, data acquisition, and control. The Linux-GPIB package consists of: a driver module designed as a loadable kernel module which handles all of the gritty details; a GPIB library which provides higher-level calls to C programs including functions that provide device management, configuration, and read/write commands; a Tcl/Tk extension which allows the testing of hardware and writing of simple applications via a GUI; and a software diagnostic program that checks a set-up for installation errors. Supported hardware includes various National Instruments boards (e.g. AT-GPIB, PCII, PCIIa), the IBM GPIB Adapter, and the Hewlett Packard HP82355 and 27209 boards.

A source code version of Linux-GPIB is available. It can be used on Linux kernel versions 1.1.61 or greater as a loadable kernel module. A Tcl/Tk installation is required to use the GUI portion of the package. Installation and use are documented in a user's manual available in PostScript format. An introduction to the use of Linux with GPIB can be found in the March 1998 issue of the Linux Journal.

[http://www.llp.fu-berlin.de/pool/software/busses/]

Linuxdoc-SGML
The name of this has been changed to SGML-Tools.

LinuxThreads
An implementation of the POSIX 1003.1c threads package for Linux. LinuxThreads provides kernel-level threads, i.e. threads are created with the a new clone() system call and all scheduling is done in the kernel. This allows full advantage to be taken of multiprocessors as well as a simpler and more robust thread library, especially with respect to blocking system calls.

A source code distribution of LinuxThreads is available. It must be used with libc 5.2.18, 5.4.12 or later. A specially adapted version of this package is distributed along with the GNU libc version 2 (which should become Linux libc6. Documentation is included with the package and is also available at the site.

[http://pauillac.inria.fr/~xleroy/linuxthreads/]

Linux Trustees
An advanced permission management system for Linux. Special objects called trustees bound to every file or directory are used to set permissions, i.e.
  • deny access if access is explicitly denied;
  • permit access if access is explicitly granted; and
  • deny access by default.
The trustees objects are stored in kernel memory for quick lookup. This is implemented as a kernel patch, with patches available for several kernel versions.

[http://www.braysystems.com/linux/trustees.html]

LIPSOL
Linear-programming Interior-Point SOLvers is a Matlab-based package for solving linear programs using interior-point methods. LIPSOL is an implementation of a primal-dual infeasible-interior-point algorithm for large-scale linear programming, i.e. optimization problems. It is designed to solve relatively large problems using the sparse matrix data structure and MEX external interface facilities of Matlab. It also takes advantage of existing and efficient Fortran Cholesky decomposition codes for solving large, sparse, symmetric, positive definite linear systems.

A source code distributionof LIPSOL is available. It is written in Matlab and Fortran, requiring an installation of the former and a compiler for the latter for installation and use. It is documented in a user's guide and a technical report, both of which are available in PostScript format.

[http://www.caam.rice.edu/~zhang/lipsol/]

LIRC
The Linux Infrared Remote Control allows you to control your Linux box with a remote control. It can be used with applications under X11 or to control an application in a pseudoterminal. Emulated mouse support is also included. Required hardware includes an IR receiver on a serial or parallel port and a supported remote control.

[http://fsinfo.cs.uni-sb.de/~columbus/lirc/]

LISC
The LIghtweight Scheme interpreter on Caffeine is a Scheme interpreter written in Java that provides:
  • arbitrary precision numbers;
  • rational and complex numbers;
  • first-class environments;
  • environment-relative addressing;
  • first-class errors;
  • data triggers;
  • dynamic module support; and
  • use of FCEs to provide object orientation.

[ftp://ftp.gamora.org/pub/gamora/lisc/]

Lisp
A family of related languages that includes Common Lisp and Scheme.

[http://www.elwoodcorp.com/alu/]

LiSP2TeX
A literate programming tool that can insert Lisp or Scheme code into TeX files. More specifically, LiSP2TeX is a filter that identifies specific directives in an input stream and translates them into Lisp or Scheme S-expressions surrounded by the appropriate TeX macros.

[http://youpou.lip6.fr/queinnec/WWW/LiSP2TeX.html]

Listar
A mailing list package originally written by someone dissatisfied with majordomo. The features of Listar include:
  • a built-in SMTP client that doesn't need root, mail or daemon permissions to change the sender;
  • running suid to a dedicated user that doesn't need to have special permissions;
  • an API allowing new functionality to be created as a dynamic library written in C;
  • being set up for secured remote administration so list administrators can retrieve and send their configuration files;
  • allowing users to set flags on individual subscriptions (e.g. VACATION) that prevents mail from being sent to their accounts until they unset the flag;
  • smart sendmail behavior that sorts outgoing addresses by domain to reduce the number of connections to any given mail server; and
  • allowing a mailing list to automatically cc another list without the second mailing list address having to be subscribed to the first.
A source code distribution of Listar is available. It is written in C and was originally created on a Linux platform.

[http://www.listar.org/]

ListProcessor
A system for automating and archiving electronic mailing lists. ListProcessor allows users to add themselves to mailing lists, post messages, review the members of the list, and more. It also maintains hierarchical archives of files that users can access. Mailing lists and archives can be public or private, with the latter requiring a password for access. Lists can also be moderated wherein the owner decides which messages are made public. A source code version is available along with a Linux patch dated January 1998. Documentation is contained within a user's guide available in PostScript and ASCII format.

[ftp://cs-ftp.bu.edu/pub/listserv/]

literate programming
A method of programming in which one source document is kept which contains both the program documentation and the program itself. One or more tools are used to separately extract both. This style of programming was created by Donald Knuth during his development of the TeX typesetting software package. The original literate programming tool he developed was called WEB. It was so-called because he thought of a software program's structure as a web comprised of many interconnected pieces. Documentation of such a program requires a description of each individual part as well as how it relates to the other parts. In the WEB system the TeX typographical tools are used to explain the various parts of a program, and the language C is used to formally specify the algorithms therein. The combination of both tools allow a style of programming to be developed that makes it easier to both develop and document large software systems. See Gurari (1994a), Knuth (1992), Ramsey (1994), and Sewell (1989).

Tools for literate programming include:

[http://www.cs.cmu.edu/~vaschelp/Programming/Literate/literate.html]
[ftp://ftp.th-darmstadt.de/pub/programming/literate-programming/]

liwc
A collection of programs for manipulating C source code including:
  • ccmtcnvt, converts C++ comments to C comments;
  • rmccmt, removes C comments;
  • entrigraph, converts single characters to trigraphs;
  • untrigraph, converts trigraphs to single characters; and
  • cstr, prints string literals in C programs.
A source code distribution is available which is document via a set of man pages.

[http://liw.iki.fi/liw/programs/]

LKCD
The Linux Kernel Crash Dump project is designed to develop a more reliable method of examining system failures after the machine recovers. The functionality of the kernel and user level code in LKCD includes:
  • saving the kernel memory image when the system dies due to a software failure;
  • recovering the kernel memory image when the system is rebooted; and
  • analyzing the image to determine what caused the failure.
Patches for 2.2 and 2.3 kernels are currently (8/00) available.

[http://oss.sgi.com/projects/lkcd/]

LLDRLF
A package for calculating the log-likelihood and two derivatives with respect to the data argument for log-F models. This is TOMS algorithm 762 and is documented in Brown et al. (1996).

[http://www.mirror.ac.uk/sites/netlib.bell-labs.com/netlib/toms/]

LLgen
A parser generator for generating an efficient recursive descent parser from an ELL(1) grammar. (Extended LL(1) parsers are an extension of LL(1) parsers derived from an Extended Context-Free (ECF) syntax instead of a Context-Free (CF) syntax.) The grammar can be ambiguous or more general than ELL(1), with both static and dynamic facilities available to resolve the ambiguities. LLgen has been used to create recognizers for Pascal, C, and Modula-2.

A source code distribution of LLgen is available. It is written in C and can be compiled and used on most UNIX platforms. It is documented in a man page.

[http://www.cs.vu.nl/~ceriel/LLgen.html]

LLNL XDIR
An advanced graphical FTP client for managing files on a heterogeneous network. It provides a GUI for drag-and-drop file transfer and for direct manipulation of local and remote directories. This can view information in four different formats including hierarchical and iconic views. The features include:
  • advanced directory browsing including a number of advanced mechanisms for traversing directory structures and the option of caching remote directory lists during a session;
  • drag-and-drop file transfer wherein files and directories can be transferred either singly or in groups with just a few movements;
  • searching directory structures for files or directory names matching a specified pattern;
  • viewing local or remote files via either a built-in viewer or any combination of external viewers, e.g. xv or vi;
  • a history mechanism that automatically remembers wild card expressions, previously visited directories, and host and user names used connecting to remote hosts;
  • directory manipulation features, e.g. several ways to select a group of directory entries such as direct toggling of entries, sweeping out a rectangular area, and wild card selection;
  • a GUI for configuring the behavior of the program; and
  • extensive online help.
A source code distribution of XDIR, which was designed for portability across UNIX platforms, is available.

[http://www.llnl.gov/ia/xdir.html]

LLNL XFTP
An X11 FTP client designed for easily transfering and managing files in a distributed computing environment. The features include:
  • performing third-party transfer, i.e. transferring files between two computers, neither of which is executing XFTP;
  • viewing local and remote files with a built-in viewer or an external viewer; and
  • directory browsing and manipulation functionality including renaming entries, creating new directories, deleting groups of entries or entire directory substructures, moving entires between directories, and viewing directory entries in several formats.
A source code distribution is available which requires Motif for compilation.

[http://www.llnl.gov/ia/xftp.html]


next up previous contents
Next: Ln-Lz Up: Linux Software Encyclopedia Previous: Kn-Kz   Contents
Manbreaker Crag 2001-03-08