Last checked or modified: Sep. 12, 1997
- 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;
- 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.osc.edu/Lam/lam.html]
- 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 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
implementatino of SML to work.
[http://www.cis.upenn.edu/~dale/lProlog/index.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/
]
- 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.dci.clrc.ac.uk/Activity.asp?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=
Mx
where K is symmetric positive definite and M is positive
semi-definite. It is also capable of solving the problem
Kx=-
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,
improved linear system drivers, and more.
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/
]
- 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]
- Lark
- A non-validating XML processor implemented
in the Java language which attempts to
achieve reasonable trade-offs among compactness, completeness,
and performance.
[http://www.textuality.com/Lark/]
- 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. It is written in ANSI C.
[http://www.tu-freiberg.de/urz/soft/LASPACK/laspack.html]
- LASSAP
- The LArge Scale Sequence compArisons
Package is a programmable, extensible, high-performance,
parallel sequence comparison software package designed
to circumvent the limitations of current programs in
order to meet the needs of large-scale analysis tasks.
It consists of a kernel and algorithms, with
the former providing common services for all algorithms
as well as a way to add any
generic pairwise-based algorithm via an
application programming interface (API)
The available algorithms are
all current major sequence comparison algorithms including
Fasta, Blast, and Smith/Waterman, as well as various other string
and pattern matching algorithms.
The features of LASSAP include
intra- and inter-databank comparisons,
frame translations on queries and databanks,
structured results for easy and powerful post-processing and analysis,
performance enhancement by both parallelization and the
capability of driving special hardware.
The kernel tasks are split into five programs:
- lspbank, which translates primary databanks into LASSAP format,
i.e. a simple, indexed, Fasta-like format;
- lspcalc, which computes pairwise alignments;
- lspextend, which computes full alignments of structured results
to refine lspcalc results;
- lspread, which reads structured results from both
- lspcalc and lspextend; and
- lsppvm, a parallel version which runs on top of
PVM.
A limited version of LASSAP is available in binary format for
DEC Alpha, HP-UX, Linux Intel, IBM RS-6000, SGI IRIX, and
Sun Solaris and SunOS platforms.
An extended version contains the full capabilities of LASSAP
including parallelism, optimized implementations of some
algorithms, a Java interface, and
a suit of post-processing tools.
The documentation includes a reference manual and a tutorial, both
of which are available in PostScript and HTML format.
[http://alize.inria.fr/]
- 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]
- 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
The Oct. 1995 issue of the
Linux Journal
contains an introduction to LaTeX by Kim Johnson.
LaTeX is documented in several books including
Goossens et al. (1994),
Goossens et al. (1997),
Grätzer (1995),
Gurari (1994),
Kopka and Daly (1995), and
Lamport (1994).
There is also a goodly amount of freely available documentation
on various aspects of LaTeX including:
``The Not So Short Introductino to LaTeX2e'' by Tobiss Oetiker et al.
(lshort2e.dvi
),
``Using EPS Graphics in LaTeX2e Documentsi'' by Keith Reckdahl
(epslatex.ps
),
``Figure'ing and Picture'ing LaTeX: Combining Text, Figures, and Images
in a LaTeX Document'' by Anil Goel
(figsinltx.ps
),
``Essential LaTeX'' by Jon Warbrick
(essential.tex
), and
``An Introduction to TeX and Friends'' by Gavin Maltby
(maltby-intro.tex
).
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,
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,
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://ftp.tex.ac.uk/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://ftp.cdrom.com/pub/tex/ctan/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.
[http://tug2.cs.umb.edu/ctan/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.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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://ftp.tex.ac.uk/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://ftp.cdrom.com/pub/tex/ctan/macros/latex/contrib/supported/algorithms/]
- amslatex
- A collection of various LaTeX extensions
for providing sophisticated mathematical typesetting.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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.
[http://tug2.cs.umb.edu/ctan/tex-archive/graphics/axodraw/index.html]
- 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.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/contrib/supported/beton/]
- bm
- A LaTeX package which defines commands to
access bold math symbols.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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://ftp.tex.ac.uk/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://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/supported/calc/]
- 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://ftp.tex.ac.uk/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.
[http://tug2.cs.umb.edu/ctan/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://ftp.tex.ac.uk/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://ftp.tex.ac.uk/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.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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).
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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://ftp.tex.ac.uk/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.
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/tools/]
- envlab
- A LaTeX package for creating mailing envelopes
and labels.
The package can typeset mailing labels or envelopes on a number of
pre-defined labels sheets or envelopes,
be easily configured for any customized label or envelope sizes,
optionally print barcodes and/or process addresses according to the
U.S. Postal Service Rules,
allow the inclusion of a log in the return address,
interact with mail merging packages such as mailing, and
doesn't require special fonts for either address or barcode printing.
[ftp://ftp.tex.ac.uk/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.
[http://tug2.cs.umb.edu/ctan/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.)
[http://tug2.cs.umb.edu/ctan/tex-archive/macros/latex/packages/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/index.html]
- 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/]
- 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://www-dsed.llnl.gov/files/programs/unix/latex2html/]
[http://cdc-server.cdc.informatik.th-darmstadt.de/latex2html/
]
[ftp://ftp.tex.ac.uk/tex-archive/support/latex2html
]
- 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.ius.cs.cmu.edu/help/Document/latex2fm.html]
- 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]
- 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.
[http://www-c.mcs.anl.gov/home/otc/Tools/LBFGS-B/]
- 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-leland.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, 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://larch-www.lcs.mit.edu:8001/larch/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, e.g.
a `mail'' type for an email address with a value ``bobdog.com.''
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.
The most popular implementation of the UDAP is the
UM-LDAP package.
Related packages include
web500gw,
xax500, and
ud.
[http://www.umich.edu/~dirsvcs/ldap/index.html]
[http://www.critical-angle.com/ldapworld/ldapv3.html
]
- 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/]
- 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/]
- 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://www.dogbert.demon.co.uk/leap.html]
- 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]
[ftp://ftp.cs.orst.edu/pub/budd/
]
- LEDA
- The Library of Efficient
Datatypes and Algorithms is
a C++ class library of the data types and algorithms of combinatorial
computing. Several extension packages are in development although
none are currently (3/97) available. See the site for updates on
these.
The main features of LEDA are: a sizable collection of data types and
algorithms in a form which allows them to be used by non-experts;
a precise and readable specification for each of the data types
and algorithms; an item concept which enables access by position
in data structures; 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; and much more.
LEDA is implemented as a C++ class library and the source code
is freely available for academic research and teaching. It has
been successfully compiled with the GNU C compiler suite.
A user's manual is available in either HTML, DVI, or
PostScript format.
See Mehlhorn and Naher (1997).
[ftp://ftp.mpi-sb.mpg.de/pub/LEDA/leda.html]
- 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]
- ldlas
- See xldlas.
- 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 package consists of three programs:
- 1.
- leafnode, the NNTP server which talks to the normal news
clients and stores readership data;
- 2.
- fetch, the NNTP news gatherer which selects what groups to
pull news from; and
- 3.
- 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.troll.no/freebies/leafnode.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://www-cse.ucsd.edu/users/fil/lee/lee.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/]
- 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).
- 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-implementation.html]
- libc
- A generic name for the C library on a given
UNIX system.
Linux systems use the
GNU C Library.
- 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://www.ncsa.uiuc.edu/People/daman/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://www.cygnus.com/~green/libffi.html]
- 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/
]
- libgr
- A collection of public domain graphics libraries in
ELF binary
format. The collection includes tiff, fbm, urt, pbm, pgm,
PPM,
pnm,
JPEG,
PNG and zlib.
[ftp://ftp.ctd.comsat.com/pub/linux/ELF/]
- 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://www.infosys.tuwien.ac.at/Staff/lux/marco/libkb.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.gnu.ai.mit.edu/order/ftp.html]
- 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/]
- 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.
[http://www.maths.unsw.EDU.AU/~norris/software.html]
- 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 which are encapsulated by
libsx are:
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://www.ozemail.com.au/~keithw/]
- 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.gnu.ai.mit.edu/order/ftp.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.EE.McGill.CA/software.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://www.maths.unsw.EDU.AU/~norris/software.html]
- libwww-perl
- A library of Perl
package which provides a simple and consistent programming interface
(API) to the Web. There are versions of this for
both Perl 4 and 5.
[http://www.ics.uci.edu/pub/websoft/libwww-perl/]
- 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/]
- 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(2n), GF(pn);
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/]
- 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;
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.cps.msu.edu/software/lil-gp/index.html]
- LILO
- The LInux LOader is a generic boot loader for
Linux.
[http://sunsite.unc.edu/pub/Linux/system/boot/lilo/]
- 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 includes:
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.stack.nl/~hanwen/lilypond/]
- 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. (1987).
[ftp://elib.zib.de/pub/elib/codelib/limex/]
- LIMEXS
- A Fortran program for the numerical solution of Linearly
IMplicit differential-algebraic systems with
EXtrapolation and Sparse linear algebra techniques.
LIMEXS solves systems up to index 1 using an extrapolation
integrator with order and stepsize control, and uses sparse
matrix techniques for the accompanying linear systems.
This is part of CodeLib.
See Deuflhard et al. (1987).
[ftp://elib.zib.de/pub/elib/codelib/limexs/]
- 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/]
[http://netlib.lucent.com/netlib/c++/index.html
]
- linbot
- A site management tool for webmasters which allows them to
view the structure of a site, track down broken links, find
potentially outdated web pages, list links pointing to external
sites, view a portfolio of inline images, get a rundown of
problems sorted by author, and do all of this periodically
without user intervention.
Linbot is written in Python and requires at least version 1.5.1.
[http://home1.gte.net/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 databse 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;
the capability for user to 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 in 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://www.ida.liu.se/~lincks/]
- 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.
- 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.
- 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]
- 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,
animation creation, 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 plots, panning and zooming,
creating images from irregular and/or sparse data sets,
plotting on polar projections, vector plotting, and more.
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.
[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/) 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]
- 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 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 program 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 in 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; a 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
Hekman (1997),
Kirch (1995),
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 route;
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;
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 (1997),
Strobel (1997),
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]
- 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://www.cs.washington.edu/homes/tlau/linux-game.html]
- 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.redhat.com/linux-info/lg/]
- 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/~dagb/irda/irda.html]
- 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/]
- Linux Organization
- The official site of the Linux Organization.
[http://www.linux.org/]
- 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 List
- This is, in an amazing feat of self-reference,
a tarred and compressed (gzipped)
version of this list. It may even be up to date. Do try to leave
my name on the thing so as to properly feed and maintain my
egomania. The compressed version was last updated on
Apr. 3, 1996.
[http://www-ocean.tamu.edu/~baum/linuxlist/linuxlist.tar.gz]
- 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/]
- 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/]
- Lisp
- A family of related languages that includes
Common Lisp and
Scheme.
[http://www.elwoodcorp.com/alu/]
- 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 (1994), 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/
]
- 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]