Last checked or modified: Jun. 11, 1998
- M
- See MUMPS.
- MacAnova
- An interactive program for statistical analysis and
matrix algebra. It features powerful commands for such
things as regression analysis, analysis of variance, multivariate
analysis, and time series analysis. Such features as graphical
displays and computation of summary statistics also make it
useful for more elementary analyses.
MacAnova is available in binary format for Mac and Windows
platforms and as source code that should compile on most
generic UNIX platforms. Makefiles are included for HP/UX,
DEC Ultrix and a Linux makefile is promised (3/97) for a
future release, although there is already a platform.h
file modified for Linux platforms.
An introductory document is available in PostScript format and
a manual is available in PDF format.
[http://www.stat.cmu.edu/macanova/]
[http://www.stat.umn.edu/~gary/macanova/macanova.home.html
]
- Macaulay2
- A software system devoted to supporting research in algebraic
geometry and commutative algebra.
It's capabilities are extensive, and just as soon as I sift
through the documentation I'll provide them in a bit of detail.
The Macaulay system is available in source code form or as
a binary for NeXT, SGI IRIX, Windows 95, Linux Intel (ELF),
Sun SunOS, and HP-UX platforms.
It is extensively documented in a large user's manual (236 pages)
and a tutorial, both of which are available in TeX
DVI format.
[http://www.math.uiuc.edu/Macaulay2]
- MacGate
- A gateway between IP and Macintosh LocalTalk
for Linux based on ipddpd.
MacGate translates IP packets to LocalTalk and LocalTalk to IP
by creating a pseudo-ethernet interface for each Mac on the
LocalTalk segment, with these interfaces dynamically added and
deleted as Macs need TCP/IP services.
It does not require a LocalTalk router like ipddpd but rather
creates a virtual router.
It is recommended that MacGate only be used if there are no
other LocalTalk IP Gateways running on your local net, in which
case you can use ipddpd instead.
This is meant to be used to the COPS LocalTalk PC card driver
available at the same site.
See also netatalk,
hfs_fs,
hfsutils, and
CAP.
[http://www.coredcs.com/~onyx/MacGate.html]
- Mach
- A operating system project started in 1985 whose goals included:
providing interprocess communication functionality at the kernel
level and using it as a building block for the rest of the system,
virtual memory support provided by the kernel and by user level servers,
kernel level support for light-weight threads,
support for closely and loosely coupled multiprocessors and a variety of
different commercially available workstations,
micro-kernel architecture limiting the functions supported by the
micro-kernel and enabling multiple user level servers to support various
application and programming interfaces,
maintaining at least one UNIX-style API to enable Mach to support all
the everyday uses of the project members and other researchers, and
distributing Mach to other researchers and commercial sites to use
as the basis for further research or products.
The original research site was Carnegie-Mellon University, and
although CMU no longer (5/97) does work on the Mach kernel they
do currently do work on a couple of extensions: the
Real-Time Mach Project
and
the Mach Multiserver (Mach-US) Project
.
Other Mach-related research projects include:
the Flux Operating System Project
,
the Lites: The 4.4 BSD Lite Server
,
Masix: A Multi-Server OS Running on Mach
,
and the
GNU HURD.
Books which contain information about Mach are
Boykin et al. (1993),
Coulouris et al. (1994),
Milojicic (1994),
Silberschatz et al. (1991),
Tanenbaum (1995), and
Zimmermann (1993).
[http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html]
- MACHCON
- A set of three statement functions that provide machine dependent
information.
The use of these functions in Fortran programs allow programs to
be moved from one machine or architecture to another by simply
changing the functions.
The routines are D1MACH, I1MACH, and R1MACH and
provide machine dependent information about, respectively,
double precision, integer, and real number limitations.
This is part of CMLIB.
See Fox et al. (1978).
[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/]
- macopt
- A conjugate gradient algorithm that makes use of gradient information
and doesn't need a routine to return function values.
The features include:
the optimized parameters are all contained in a single double precision vector;
an adaptive step size used for the initial step of the line search;
gradients used in the line search;
immediate termination of the line search once the minimum has been bracketed;
internal checks to ensure consistent between line search direction
and gradient; and more.
Source code versions of macopt are available in both
C and C++.
[http://wol.ra.phy.cam.ac.uk/mackay/c/macopt.html]
- MacroCALC
- A Lotus 1-2-3 compatible character-based spreadsheat which
supports 1000 rows, 64 columns, 40 functions, 8 display
formats, file linking, macro programming and user-definable
functions.
It is fully integrated with Groff
(and its precursors), units, man, Gawk
(and its precursor), Perl, and sh.
It can act as a filter enabling users to use pipes to perform
complex transforms on streams of data, and contains a C
programming interface as well as Lotus WKS and dBASE
file support. The MacroCALC internal file format is flat
ASCII and thus easily manipulated with many tools.
This is also supposedly the only spreadsheet that manages
units as well as numbers.
Function- and cursor-keys and extended video attributes are
supported, and the menus and messages are in separate
editable files and can easily be translated into any language
(with English, French and German supported in the distribution).
MacroCALC has been sold as a professional product for various
UNIX systems and is RCS-controlled,
lint-clean ANSI C source based on yacc, lex and
ncurses. It can be used on any
terminal or emulator which has a correct terminfo entry and
has convenient user interface very similar to that of
Lotus 1-2-3.
Every command in the package has a detailed English man
page.
See also Teapot.
[http://home.t-online.de/home/Axel_Reinhold/]
- macutils
- A collection of utilities for handling Macintosh files on UNIX
systems.
The package includes:
- macunpack, a Macintosh file de-archiver which will unpack
archives created with
PackIt, StuffIt, Diamond, Compactor/Compact Pro, most
StuffItClassic/StuffItDeluxe, all Zoom and LHarc/MacLHa, and
later versions of DiskDoubler as well as decode files created by
BinHex5.0, MacBinary, UMCP, Compress It, ShrinkToFit,
MacCompress, DiskDoubler, and AutoDoubler;
- binhex, which reads a MacBinary stream or a list of files and
directories and outputs all files in binhexed (.hqx) format;
BinHex 4.0 format on standard output;
- frommac, which will receive on or more files from a Mac using
the XMODEM protocol;
- tomac, which will transmit a MacBinary stream or named files
to the Mac using the XMODEM protocol;
- macstream, which reads files from a
UNIX host and outputs a
MacBinary stream containing those files with information about the
directory structure; and
- macsave, which reads a MacBinary stream from standard input
and writes the files according to given options.
A source code distributions of macutils is available. All of
the utilities are written in C and documented in separate man
pages as well as in some ASCII files.
[http://tug2.cs.umb.edu/ctan/tex-archive/tools/macutils/index.html]
- MAD
- The Machine Aided Deconvolution package is a
powerful image processing system which can be used to recover
images from blurred and noisy representations thereof.
It does this by solving a particular class of ill-posed inverse
problems modeled with the convolution equation.
The particular solution methods used by MAD include
Tikhonov regularization variations such as the optimal-mu
method, the discrepancy-function method, the L-curve
method, and generalized cross-validation (GCV).
Available iterative solution methods include
the Landweber-Fridman (LF) method, the Positive Landweber-Fridman
(LF+) method, the steepest descent method, the conjugate
gradient method, the the maximum entropy/Lucy-Richardson method
(ME/LR).
A source code distribution of MAD is available which has been
compiled and tested on OSF-1 Alpha and Linux Alpha and Intel
platforms. It also requires the use of the
XForms library.
A user's manual is currently (2/98) available online and
is promised in PostScript form.
[http://xtc.fisica.unige.it/mad/english.html]
- Madpack5
- A linear algebra package for numerically approximating the
solution to partial differential equations using
multigrid methods.
One or more levels (or grids) may be used and abstract
multilevel algorithms are implemented in an object oriented
fashion (although not using C++).
Numerous iterative and direct solvers are provided as well as
interfaces to some commonly used solvers.
The package can be used with real or complex data and a method
is provided for user-defined data types.
The solvers provided include: Bi-CGSTAB;
conjugate gradients; point Gauss-Seidel with either natural
ordering or a parallel domain decomposition style ordering;
sparse Gaussian elimination for matrices with a symmetric
nonzero structure;
symmetric Gauss-Seidel pointwise or with conjugate gradient
acceleration or with minimum residuals;
and others.
The package supports one dense and six sparse matrix storage
schemes.
Madpack5 is written in C and Fortran and is set up to compile
and install on many generic UNIX platforms.
The package is documented in a 40+ page user's manual
in PostScript format.
[http://casper.cs.yale.edu/mgnet/www/mgnet/Codes/madpack5]
[http://www.cerfacs.fr/~douglas/mgnet/Codes/madpack5/
]
- MAGE
- A program to view and explore kinemages, i.e. scientific illustrations
presented as an interactive computer display.
The features include:
interactive rotating, panning and zooming to visualize objects in 3-D,
on-screen graphical editing,
selection of which graphical objects to display,
selection of various views of an object;
stereo imaging capabilities, and much more.
MAGE is available in binary format for several platforms
including Linux Intel.
Another program called Prekin which is used to create
kinemages for viewing with MAGE hasn't yet (5/97) been
ported to Linux.
MAGE is documented in an ASCII text file.
[ftp://suna.biochem.duke.edu/pub/]
- Magenta
- An agent communication language (ACL) API which facilitates
communication between agents located in a heterogeneous computing
enviroment. Magenta supports communications in such ACLs as
KIF and KQML.
Various interaction paradigms such as anonymous agent interaction,
client/server, and peer-to-peer are supported.
Simple abstractions layers can be added to the API which allow
users to view the API is a specialized manner.
An example of this included in the distribution is a frame based
or object-oriented model in which all communications are
object creation, deletions, method calls, attribute set/get, or
logical queries.
Other layers can be developed to allow users to view their
communications without having to know about ACL.
Versions of Magenta are available for both C++
and Common Lisp (with two versions available
for the latter).
The distributions are documented in various text files scattered
throughout as well as on the Web site.
[http://logic.stanford.edu/software/magenta/]
- MagicFilter
- An extensible, customizable printing filter that can enable
a wide range of printers to automatically print a wide range
of file types.
It automatically detects file types by searching for magic numbers
and then invokes appropriate conversion utilities to transform
a file into PostScript format if necessary.
The utilities required for full use of MagicFilter are
Ghostscript,
Netpbm,
nenscript or
enscript,
dvips, and
Groff.
A large number of printers are also supported, although the
appropriate files have only been thoroughly tested on a few
printer types.
A source code distribution of MagicFilter is available.
It is written in C and can be compiled and used on most
UNIX flavors including Linux.
Documentation within the code is sparse, although
a man page is generated when the distribution is compiled.
An article in the Nov. 1997 issue of the
Linux Journal gives a good
description and overview of MagicFilter.
[http://sunsite.unc.edu/pub/Linux/system/printing/]
- magnum
- A portable and extensible C++ class
library which implements various fast factorization algorithms
for univariate polynomials over finite fields or the ring
of integers.
A source code distribution is available.
It is written in C++ and can be compiled with
G++. Compilation also requires
Gawk, sed, lex, and yacc.
The documentation is all in German and available in both
PostScript and LaTeX formats.
[ftp://obelix.statistik.uni-mannheim.de/public/magnum/]
- Magnus
- A package designed to explore infinite groups and carry out experiments
with them.
This is available either as source code or in binary format
for Linux Intel ELF platforms.
A user's manual is included in TeX format.
[http://zebra.sci.ccny.cuny.edu/web/]
- MagSolve
- An interactive suite of programs for the solution of 2-D
static magnetic field problems using finite elements (FE).
The MagSolve package includes utilities for geometry specification,
automatic FE mesh generation, problem solution, and solution
analysis.
It is divided into pre-processing, processing, and
post-processing modules.
The pre-processing module includes:
- the capability of importing DXF drawing files (from packages such
as AutoCad),
- a suite of drawing tools for designing models from scratch or
editing imported files,
- the automatic generation of a rough FE mesh from input
geometry specifications,
- adaptive mesh refinement to ensure the attainment of an accurate
solution from the initial rough mesh, and
- the addition of constraints (e.g. currents and material properties)
via interactive pop-up windows.
The processing module solves the governing equations on the FE
mesh for 2-D magnetostatic problems including the effects
of iron saturation.
The post-processing module allows the user to view the solution
in terms of fluxlines and flux densities as well as calculate
quantities such as force and core loss.
It can also generate PostScript
files of any interactively generated plot.
The MagSolve package is available in binary format for
Linux Intel, HP-UX, and Sun SunOS platforms.
The source code is available upon request.
A user's manual in PostScript
format is available.
[http://elecmag3.ucd.ie/e3-magsolve/e3-magsolve.html]
- mail transport agent (MTA)
- The available MTAs include:
- mail user agent (MUA)
- The MUAs available include:
- Arrow, a MUA with features found in such
things on Mac and Windows systems;
- BlitzMail, a client-server system;
- Elm, probably the most popular non--GUI mail reader;
- exmh, an X11 interface for
MH;
- Mew, an Emacs mail interface;
- MH, a set of programs for handling mail;
- ML, a mail program and message processing system
designed around the IMAP protocol;
- Mumail, an X11 reader with MIME
support;
- MUSH, a mail user's shell;
- Mutt, based on Elm with some
additional features;
- nmh, a drop-in replacement for MH;
- Pine, designed for novice users but with features for
more advanced users;
- Postilion, based on TkRat
with additional features to create a clone of the NeXT mail app;
- SOMA, a reader based on XViews;
- TkRat, a reader built on Tcl/Tk;
- UMT, a reader with an RTF editor and viewer;
- XCmail, designed to read mail with
MIME attachments; and
- XMail, an X11 mail user interface.
- mailing lists
- Mailing listing software for Linux systems includes:
- Mailman
- A program that automates email-based mailing lists which differs from
other mailing managers in that it has a well-developed web interface
for list users and administrators. Users can change their options and
subscribe or unsubscribe via the web, and administrators can configure,
moderate, and maintain the list via the web.
The features include:
- standard mailing list features such as moderation, mail-based
commands, digests, etc.;
- an extensive web interface customizable on a per-list basis;
- a web-based list administration interface for all adminstration tasks;
- integrated mail list to newsgroup (and vice-versa) gatewaying;
- automatic web-based hypermail-style archives;
- smart bounce detection and correction;
- fast bulk mailing;
- smart spam protections;
- multiple list owners and moderators; and
- optional MIME-compliant digests.
A source code version of Mailman is available. It should run on
any platform on which Python and
either sendmail or smail
are installed.
Documentation is included in the distribution.
[http://www.list.org/]
- Maisie
- A C-based simulation language that can be used for sequential
and parallel execution of discrete-event simulation models and
that can also be used as a parallel programming language.
It can execute a discrete-event simulation model using several
different asynchronous parallel simulation protocols on a variety
of parallel architectures. It is designed to cleanly separate
the description of a simulation model from the underlying
simulation protocol used to execute it, which enables a Maisie
program to be execute, with few modifications, using the
traditional sequential simulation protocol or one of many
parallel optimistic or conservative protocols. It also
provides powerful message receiving constructs that result in
shorter and more natural simulation programs along with
debugging and message tracing facilities.
The source code for Maisie is available along with
many examples. There are special instructions for
compiling it on Linux boxes. The Maisie runtime system is implemented on
top of PVM, the Cosmic Enviroment, and
UNIX sockets. A user's guide in PostScript format is
available along with much HTML documentation online.
In the works (3/97) are a visual programming environment and
a WWW interface. This is being (2/98) superseded by
PARSEC.
[http://may.cs.ucla.edu/projects/maisie/]
- majordomo
- A program which automates the management of Internet mailing lists.
Commands are sent to Majordomo via electronic mail to handle all
aspects of list maintenance. Once a list is set up, virtually
all operations can be performed remotely, requiring no intervention
by the postmaster at the list site.
The Majordomo software does not itself perform mail delivery but
rather controls a list of addresses for some mail transport
system (e.g. sendmail or smail) to handle.
Majordomo features include: support for various types of lists,
including moderated lists; list options which can be easily set
via a configuration file and remotely edited;
support for archival and remote retrieval of messages;
support for digests of messages; modular design;
support for FTPMAIL; support for confirmation of subscriptions;
and list filters.
The package actually consists of several programs which perform
specific tasks:
- majordomo, the main program which is invoked
each time a message arrives for it;
- resent, which checks the command
line options of a message when it arrives to appear on a list;
- wrapper, which allows other Majordomo programs to run as a trusted
user so they can set the correct envelop sender address;
- bounce, which helps handle subscribers whose mail is bouncing;
- approve, which simplifies the approval of subscriptions or
moderated messages;
- new-list, which answers mail sent to a new list; and
- request-answer, which answers mail sent to the address
listname-request and tells people how to send mail to majordomo.
The Majordomo package is written in Perl (except for the wrapper
program) and should work with Perl 4.036 or 5.002 or greater (i.e.
it will not work with Perl 5.001).
There is an article in the May 1995
Linux Journal
describing this and how to set it up, and similar information
can be found in a chapter of Peek (1994).
A Web-based front-end to Majordomo is
Pandora.
See Liu et al. (1994).
[http://www.greatcircle.com/majordomo/]
- MajorCool
- A CGI script written in
Perl that provides a Web interface to
majordomo.
MajorCool adds to the features of majordomo with several GUI
techniques such as balloon help, per-user preferences, and
mouseover cues.
It also extends the address matching capabilities of majordomo
via the use of configurable modules.
This allows the identification of list subscribers by multiple
valid addresses.
A source code distribution is available.
[http://ncrinfo.ncr.com/pub/contrib/unix/MajorCool/]
- make
- A utility for maintaining groups of programs, make provides
a simple mechanism for maintaining up-to-date versions of
programs that are created by performing several operations on
a large collection of files.
See Oram and Talbott (1991).
Related software includes:
- dmake, a generic parallel make utility;
- GNU Make, the hopped-up GNU version of make;
- Icmake, a hybrid between a make utility and
a scripting language;
- Makefiles, a set of rules for compiling structured
projects using other make implementations;
- ppmake, a parallel make utility running on top
of PVM, and
- SMake, a mechanism for generating standard makefiles
out of skeleton makefiles which provide only the essential parts.
- Makefiles
- A set of rules for compiling structured projects with small
and uniformly structured makefiles. All the rules are located
in a central directory, and compiling the projects on different
platforms can be done without modifying any of the makefiles
in the individual project directories.
The structure consists of a set of small makefiles, each located
in the project's leaf directory and called leaf-makefiles.
Each of these contains no rules but simply define some macros
for the make program and include two files from a central
make rule depository. The included files and the files recursively
included define the rules needed to compile the project.
The leaf-makefiles first define two macros that define the relative
location of the project root directory and the name of the directory
containing the complete set of rules. Then the rule
file rules.top from the directory containing the central rule
depository is included.
Next, macros are defined that describe the target and the source,
with only one target per leaf-makefile. These macros describe
a unique target and contain all source files, local include files,
and all non-global compile time flags needed for that target.
Finally, each leaf-makefile includes a file from the rules directory
that contains rules for the appropriate type of target to be made.
There are rules for commands, drivers, libraries, shared libraries,
localized files, nonlocalized files, shell scripts, man pages,
diverted makefiles and directories.
There are over 60 macros and variables used in the rules.
A source code distribution of Makefiles is available. It is
written in C and can be compiled on most standard UNIX platforms.
It currently (5/98) supports Sunpro make,
GNU Make, and
SMake.
It is documented in a user's manual and a developer's manual,
both available as man pages.
[http://www.fokus.gmd.de/nthp/employees/schilling/index.html]
- MAME
- The Multi Arcade Machine Emulator
is a program that emulates arcade gaming machines using
the original ROM images from those same games.
A X Window version of the emulator is available in both
source code and binary versions, with the latter available for
SGI IRIX, Sun Solaris, and Linux Intel.
A SVGAlib binary version is also available for Linux platforms.
Several ROM images are available at various sites which can
be run using the various emulators that comprise the package.
[http://www.bzzt.com/mame/]
[http://www.davesclassics.com/mamepage.html
]
- MAM/VRS
- The Modeling and Animation Machine/Virtual
Rendering System is a graphics toolkit for animated,
interactive 3-D graphics (MAM) and a rendering meta-system which
encapsulates 3-D rendering libraries such as
OpenGL by a uniform object-oriented
interface (VRS). It can be used to quickly develop animated, interactive
3-D applications in an object-oriented way. It can be used like
any other C++ class library or as a graphics
scripting language embedded in
[incr Tcl], with both versions containing
full functionality.
The MAM/VRS C++ library is composed of several modules:
- BASE, basic classes specifying data containers and numerical
data types;
- VRS, classes specifying 3-D graphics objects such as 3-D
shapes and graphical attributes;
- MAM, node classes used to build geometry and behavior graphs
with the nodes linked to graphics objects in VRS so they can
be arranged in 3-D scenes or animated;
- XTMAMVRS, simple GUI classes for embedding MAM/VRS into an
Xt-based program (along with a simple application
framework);
- TKMAMVRS, a set of GUI classes for Tcl/Tk
used by iMAM, the [incr Tcl] API;
- MFCMAMVRS, a set of MFC classes for Windows NT/95; and
- OPENGL, a set of classes to adapt VRS to Open GL.
A source code distribution of MAM/VRS is available. It can be
installed and used on UNIX platforms on which Tcl/Tk and [incr Tcl]
have already been installed.
The documentation includes a tutorial as well as manuals for the
C++ classes.
[http://wwwmath.uni-muenster.de/informatik/u/mam/]
- MANPAK
- A package of Fortran utility programs
for computations with submanifolds which are implicitly defined
by a system of nonlinear equations. The routines establish
several types of local parameterizations (coordinate systems)
and, once available, compute points on the manifold with given
local coordinates. There are also routines for computing the
first and second derivatives of these local parameterizations
and some other quantities such as sensitivity measures and the
second fundamental tensor.
The distribution consists of four parts: the MANPAK utility
library; DAEPAK, a package of routines based on MANPAK and
MANAUX for solving various types of algebraically explicit
differential algebraic equations (DAEs); DRIVERS, a set of
sample drivers for DAEPAK; and MANUAX, a package of subroutines
for the uniform support of MANPAK and DAEPAK.
The MANPAK routines include:
- AUGM, for generating a specific augmented matrix;
- COBAS, for computing an orthonormal basis matrix of the
nullspace of a given matrix;
- CURVT, for computing approximations of the curvature and
principal normal of a path on a manifold which passes through
three consecutive points;
- DGPHI and D2GPHI, for computing the first and second
derivatives of the local parameterization, respectively;
- DTPHI, for differentiating the local parameterization;
- GCBAS, for computing an orthonormal basis matrix of a local
coordinate space consisting of a given number of basis vectors;
- GLOB, for globalizing a vector of local coordinates;
- GNBAS, for computing an orthonormal basis matrix of a local
coordinate space containing a specific basis vector;
- GPHI, for computing a point on a manifold with specified
local coordinates in a general local coordinate system;
- MOVFR, for using a moving frame algorithm for ordering a local
coordinate basis such that its orientation agrees with that of another
basis;
- ORIENT, for using a combinatorial algorithm for ordering
a local coordinate basis such that its orientation agrees with that
of another;
- PROJ, for computing the orthogonal projection of a point onto a
given local coordinate space;
- SENMAP, for computing the sensitivity map at a given point with
respect to specified natural parameters;
- SENSNR, for computing the Euclidean norm of the sensitivity map;
- TPHI, for computing a point on a manifold with specified local
coordinates in a tangential local coordinate system; and
- TSFT, for computing a componnet of the second fundamental tensor
in a tangential local coordinate system.
The solvers in DAEPAK are:
- DAEN1, a solver for nonlinear, index-1 problems;
- DAEN2, a solver for nonlinear, index-2 problems;
- DAEQ2, a solver for quasi-linear, index-2 problems;
- DAEQ3, a solver for quasi-linear, index-3 problems of second order;
- DAESQ1, a solver for quasi-linear, autonomous, index-1 problems; and
- DAEUL3, a solver for the Euler-Lagrange problem of index-3.
The MANAUX package includes ODE solvers and various linear
algebra routines.
The ODE solvers are:
DOPSTA, a Dormand-Prince order 5 RK-step routine for
autonomous ODEs using reverse communication for function calls; and
DOPSTN, a Dormand-Prince order 5 RK-step routine for non-autonomous
ODEs using reverse communcation for function calls.
The source code for this package is available.
It is written in Fortran 77.
The source code contains documentation for the routines.
See Rheinboldt (1996) and Rheinboldt (1996).
[http://netlib.org/contin/manpak/]
- Mapedit
- A graphical editor for Web image maps, i.e. clickable
image maps. It can be used to create and edit both client-side
and server-side imagemaps.
Mapedit is available in binary form for
several UNIX/X11 platforms including Linux.
[http://www.boutell.com/mapedit/]
- MAPGEN/PLOTGEN
- MAPGEN is
A collection of programs to create graphical displays or maps
of data with geographic coordinates as well as legend information
and graticule plots. This is done by several programs which produce
metagraphical input (called overlay files) which are displayed
either individually or selectively on a wide variety of plotting
devices.
PLOTGEN is a part of the MAPGEN system used for creating
plots of X-Y data instead of geographic data.
MAPGEN/PLOTGEN is written in C and should install on most
generic UNIX systems with an appropriate compiler.
The use of the package also requires the installation of
the PROJ cartographic projection
system and a device independent vector graphics system,
both of which are available in separate directories at
the same site. The graphics system includes drivers for
creating PostScript output files.
[ftp://kai.er.usgs.gov/pub/]
- Mapil
- A Python script that interfaces with
PGP to encode or decode email messages.
It supports the P/MIME standard for
encrypting or signing MIME messages and can maintain a database
of recipients so messages can be automatically tailored to the
recipient.
The features of Mapil include:
support for PGP 2.x and 5.0,
support for interactive or automatic processing,
and many configuration options.
This will run on any platform with an already installed
Python distribution.
[http://www-leland.stanford.edu/~bescoto/mapil/]
- Maplay
- A software-only MPEG audio player.
It can play MPEG audio layer
I or II streams and decode streams to raw 16 bit pcm format at the
frequency of the stream (32, 44.1 or 48 kHz) or to 8 bit u-law
format downsampled to 8 kHz.
The source code for Maplay, written in C++, is available and
can be compiled using g++.
[http://www.powerweb.de/mpeg/maplay.html]
- Mariposa
- A distributed database
management system which addresses fundamental
problems in the standard approach to distributed data management.
Mariposa allows database management systems (DBMS) which are far
apart and under different administrative domains to work together
to process queries by means of an economic paradigm in which processing
sites buy and sell data and query processing services.
The design principels include scalability fo a large number of
cooperating sites, local autonomy, data mobility, no global
synchronization, and ease of local configuration.
The source code for Mariposa, written in C, is available. It
is based on an early version of
Postgres95 and requires
Tcl/Tk for installation as well as an
ANSI C compiler. It is documented in a user's manual available
in PDF and PostScript format.
[http://s2k-ftp.CS.Berkeley.EDU:8000/mariposa/]
- markup
- A Scheme system for generating
LaTeX and
HTML. The use of this requires
the scsh package.
The documentation for
this is a bit sparse.
[ftp://ftp-swiss.ai.mit.edu/pub/scsh/contrib/]
- Marlais
- An interpreter for a programming language strongly resembling
Dylan. It was created to
fill a perceived void where Dylan implementations are concerned and
as such is not intended as a final release. This is a hacker
release intended as a vehicle for education, experimentation,
and also to encourage people to port it to different architectures,
add features and fix bugs. This is alpha software. This release
is known to compile on Linux boxes.
[http://www.cis.ufl.edu/~jnw/Marlais/]
- mars
- A German full text editor.
This is available as a Linux Intel binary.
[http://sunsite.unc.edu/pub/Linux/apps/editors/X/]
- MARS
- The Multivariate Adaptive
Regression Splines package
is a collection of Fortran subroutines that implement the
multivariate adaptive regression spline strategy for data
fitting and function approximation.
The source code is available and a rudimentary ASCII user's
manual is included in the package. References to published
descriptions of the method are also given.
[http://www.stat.cmu.edu/general/]
- Marx
- An interpreted scripting language based on a C-like syntax, i.e.
a quasi-C interpreter with some extensions and exceptions.
It provides a quick way of creating graphical user interfaces
(GUIs) in X Windows. Marx also provides simplified schemes for
UNIX process control, direct shell command/script execuction and
inter-client communication via sockets. It can be easily
incorporated into C programs via its application programming
interface (API) and a mostly transparent data exchange mechanism.
Engels is a lesser version of Marx without the GUI extensions.
It is smaller and faster and good for applications without
GUI requirements.
A source code distribution of Marx is available as are
binaries for Sun SunOS and Solaris,
Alpha OSF/1, and Linux Intel platforms.
platforms. The documentation is currently the man page, a version
of which is available in PostScript format, and the beginnings
of a programmer's manual.
[http://spock.ece.drexel.edu/marx/]
- MAS
- The Modula-2 Algebra
System is an experimental computer algebra
system which combines imperative programming facilities with
algebraic specification capabilities for the design and
study of algebraic algorithms.
The goals of the system are to provide: an interactive
computer algebra system, comprehensive algorithm libraries,
a familiar program development system with an efficient compiler,
an algebraic specification component for data structure and
algorithm design, and algorithm documention which is open to
users.
Key features of the MAS system include:
- portability (with
machine dependencies isolated in a small kernel;
- extensibility
through adding and interfacing to external algorithm libraries;
- an open system architecture and transparent low-level facilities;
- automatic garbage collection and stable error handling;
- input/output
with streams; and
- expressiveness, i.e. the capability of specifying
abstract algebraic concept like rings or fields.
Library packages include those for Gröbner bases, involutive
bases, invariant polynomials, linear algebra, basic arithmetic (complex
numbers, quaternions, octonions, and finite fields), and more.
MAS is available as source code as well as an executable for
HP-UX, AIX, Linux, OS/2, Nextstep and SunOS platforms.
Extensive documentation is available in PostScript format as
well as many examples and test files. Compilation of the
source code will of course require the acquisition and
compilation of the
Modula-2 language
package.
[http://www.fmi.uni-passau.de/algebra/projects/mas.html]
- mash
- A multimedia networking toolkit with which complex multimedia programming
tasks are decomposed into an arrangement of simple objects linked together
and configured with a scripting language.
The mash shell is the backbone of a number of new applications for
multimedia networking and collaboration.
It subsumes existing tools like vic and vat and also supports a number
of new tools that serve as vehicles to explore scalable multicast
protocols and exercise the design framework.
The tools include a floor control application, a next-generation
whiteboard, and archive system and supporting tools, and
new applications for webcasting.
Each of these tools is a script executed by the mash shell.
A source code distribution of mash is available as are binaries
for some platforms including Linux Intel.
Documentation is still (6/98) sketchy as the project is as yet
in the alpha stage.
[http://www-mash.cs.berkeley.edu/mash/]
- Master
- A system configuration tool intended to aid system administrators in
maintaining large numbers of machines.
Master is itself OS and architecture independent but can handle
architecture and OS dependent.
The design goals included reduction of steady-state maintenance
work, reduction of machine setup time, failure recovery, and
simplicity.
The system consists of a driver program that maintains a cache of
machine information and runs any number of other programs called
modules, with each module controlling the configuration of a specific
file or subsystem.
A central repository of configuration information called the configuration
server is periodically accessed by clients to make sure their configuration
state is up to date. The server can also force clients to check for
new configuration information on demand.
A source code distribution of Master is available. It
is written in Perl and runs under both versions
4 and 5.
The distribution contains themaster program, the libraries, and
some example modules that install files, maintain crontab files,
generate /etc/netgroup files, and generate /etc/hosts
files.
[ftp://ftp.caip.rutgers.edu/pub/master/]
- MasterGear
- A portable emulator of two SEGA game consoles: the MasterSystem
and the portable GameGear. The emulator is written in C and can
be ported to any platform that can run 32-bit applications.
A source code version is available which has been successfully
compiled on Linux Intel systems.
[http://www.komkon.org/fms/MG/]
- MAT
- A distributed management tool for Linux, SunOS, and Solaris
machines.
MAT provides an easy to use GUI interface which can be
used to administer many of the common UNIX configuration files.
It can add to, modify, or delete from Users, Hosts, Groups,
Mounts, Motd, DNS client configuration, and cron jobs.
Other features include adminstering many hosts from a single
console, the ability to delegate responsibility to others,
and easy upgrading of the agent binary from the GUI.
Future (1/98) enhancements include a DNS master, an NIS
master, and a tape tool.
[http://sunsite.unc.edu/pub/Linux/system/admin/frontends/]
[http://sunsite.unc.edu/pub/Linux/Incoming/
]
- MATCALC
- MATCALC is an easy-to-use interactive matrix calculator designed
for easy solution of linear algebra and matrix problems involving
either real or complex numbers, easy solution to systems of linear
equations, teaching modern computational methods of linear and
matrix algebra, and solution of matrix-related problems such as finding
zeroes of real or complex polynomials, linear least-squares fits of
multivariable models, etc. It is also specially adapted to handle
singular matrices which can be difficult to handle on other
systems.
MATCALC includes full programming capabilities with facilities for
logical relations and conditions, IF and LOOP blocks, and user-defined
functions and procedures.
Users can write their own functions in C and add them to MATCALC.
The package can be configured to meet specific user requirements,
creating custom MATCALC subsets by omitting selected predefined
functions and procedures to obtain configurations ranging from
a minimal desktop calculator to a full-blown research capable setup.
Basic commands are included for entering matrices, matrix arithmetic,
adjoining matrices, selecting matrix elements, selecting rows and
columns, and for creatin special matrices. Predefined functions
and procedures are included for such problems as polynomial
arithmetic, solving systems of linear equations, finding
triangular factorizations, analyzing row-echelon matrices, finding
eigenvalues and eigenvectors, obtaining Jordan forms, and for
obtaining singular value decompositions (SVD).
The MATCALC distribution includes the source code which is
written in C. It is designed to be portable to any system
with an ANSI C compiler.
The package is document in a 71 page manual in
TeX format.
[ftp://csi.jpl.nasa.gov/pub/matlab/matcalc/]
- MatClass
- A C++ class for numerical computation. It includes a
general purpose dense, real matrix class, a family of
decomposition classes based on LU, Cholesky, Householder QR and
SVD, a familty of OLS regression classes based on the previous
decompositions, a family of special function classes, a random
number class, and a simplified input/output structure.
The documentation is contained within a reasonably complete
manual in TeX format.
[ftp://ftp.mcc.ac.uk/pub/matclass/unix/]
- Mathomatic
- A symbolic math program that can automatically solve,
simplify, and combine algebraic equations, do calculus
operations, perform polynomial and complex arithmetic, and
much more. The C source code for this is available and
should compile on just about any UNIX box. A manual is
available separately for a price.
[http://www.lightlink.com/george2/]
- Mathopd
- A very small and very fast HTTP server for
UNIX systems.
It is designed to handle a large number of connections with
minimal fuss, containing no unnecessary add-ons.
[http://mathop.diva.nl/]
- MathSpad
- A general purpose structure editor which is particularly
useful for writing articles that contain substantial amounts
of mathematical calculations.
MathSpad facilitates the creation of such documents with a
feature called a stencil which defines two views of a document, i.e.
the on-screen view and the output view. The on-screen view is
almost WYSIWYG while the output view is a file written in
a ASCII-based markup language. The system is optimized for
TeX and LaTeX but
can also be used to produce HTML or
troff documents.
The features of MathSpad include:
- the on-screen simulation of what
will be produced in the output makes this package partially WYSIWYG,
and even when an on-screen structure can't be exactly reproduced
a screen representation of some sort can be produced;
- a large collection of symbols available by either clicking on them
or using their keyboard shortcuts;
- a context sensitive help
facility which explains every part of the system (in addition to
a tutorial);
- an interface to the ispell
spelling checker;
- editing operations using the same key bindings
as Emacs;
- templates which define how something
(i.e. a notation or construction) should both be displayed on the
screen and represented in a mark-up language can be constructed
using a template definition tool and a collection of examples;
- search and replace for characters, works, and even templates;
- the flexibility to change keyboard definitions, add your own
symbols, use your own fonts, adust the encoding, or change the
mark-up output that should be produced; and
- an experimental
Maple interface.
Planned features include multiple output
formats for the same template; better keyboard definitions;
more stencils; more primitives to define templates; shortcuts for
templates; support for internationalism; document conversion; and
much more.
The MathSpad distribution includes the source code, written in
C and C++, and a PostScript format version of the manual. It
should install easily on any UNIX system with a compiler for
C and C++ (gcc will work) and X11. A configure script eases
the installation procedure.
[http://www.win.tue.nl/win/cs/wp/mathspad/]
- Matlab macros
- Freely available Matlab-related packages include:
- Air-Sea, for computing surface wind and heat
flux components from measurements;
- ARfit, for the estimation and
spectral decomposition
of multivariate autoregressive models;
- bobstuff, for performing vector correlation,
complex correlation, and other statistical tasks;
- Clusters, for performing clustering tasks;
- Communication System Toolbox, for
working with the digital coding of waveforms and digital transmission
systems;
- CtrlLAB, for feedback system analysis and design;
- CUTE, a suite of programs and test problems for
exploring linear and nonlinear optimization;
- Delta Toolbox, for control or systems
engineering;
- FISMAT, for working with fuzzy systems;
- Fraclab, for fractal analysis in signal processing;
- GAOT, for experiments in optimization using
genetic algorithms;
- INCT, for analyzing and synthesizing linear
systems using linear matrix inequalities;
- LIPSOL, for solving linear programs using
interior point methods;
- LMITOOL, for solving optimization problems;
- Matlab Astronomy Library, a
large collection of astronomy-related programs;
- MAXDET, for solving determinant maximization
problems;
- MexCDF, an interface with
NetCDF;
- M-Map, for creating geophysical field maps in
several projections;
- NetSolve, a client/server application for solving
computational problems over a network;
- NNSYSID, tools for neural network based
identification
of nonlinear dynamic systems;
- Numerical Integration Toolbox, a
toolbox for 1-, 2-, and n-D numerical integration;
- OCEANS, for computing various oceanography-related
quantities;
- Octave, a Matlab-like program that can read most
Matlab scripts;
- Parallel Toolbox, for running and
testing parallel algorithms;
- PyrTools, for multi-scale image processing;
- QMG, for geometric modeling and mesh generation in
2- and 3-D;
- Regularization Tools, for analyzing
and experimenting with solution methods for discrete ill-posed problems;
- Rice Wavelet Toolbox, for wavelet
and filter bank design and analysis;
- Robotics Toolbox, a collection of functions
useful for robotics applications;
- RPSstuff, for performing various time series
manipulations and analyses;
- Schwarz-Christoffel Toolbox, for
the computation and visualization of Schwarz-Christoffel conformal maps;
- SDPpack, for semidefinite programming;
- SDPSOL, for semidefinite programming;
- SEA-MAT, a collection of Matlab tools for
the oceanographic community;
- SP-Semi, for semidefinite programming;
- STAPLOT, for analyzing oceanographic data
during and after a cruise;
- Tela, a programming and analysis environment that
can translate Matlab programs to its own format;
- Templates, a library for numeric computation;
- Test Matrix Toolbox, a collection of
test matrices and tools for visualizing them;
- TFTB, for the analysis of non-stationary signals
using time-frequency distributions;
- Timeplt, for the Gregorian labeling of time
series and other plots;
- TMath, a Tcl/Tk interface; and
- VRMLplot, for creating VRML plots from
bathymetric data.
- Matlab (Classic)
- This is a version of Matlab from 1981. It featured an
interactive command-line interface and included various
LINPACK
and EISPACK routines.
Matrices could be defined and operated on
without using the loop structures of Fortran.
New functions could be defined and
used, and Matlab itself could be used as a subroutine to be
called from other programs. The source code, about 7000 lines
of Fortran, for this early version is available. See how Cleve
Moler first attempted to implement a matrix manipulation laboratory
in Fortran. The documentation is contained in a 300+ kb ASCII
text file and includes several examples.
[ftp://csi.jpl.nasa.gov/pub/matlab/classic/]
- Matlab Astronomy Library
- A collection of Matlab codes for performing various types of analyses
on astronomical data, although most are generic and have wider
application.
Currently (10/97) the routines include those for performing:
Gram-Schmidt orthonormalization,
low-pas filtering of evenly spaced data,
Haar wavelet transforms,
the complex bi-conjugate gradient method,
conjugate gradient least squares,
the complex error function,
Fourier deconvolution,
the Hankel transform using the backprojection method,
the Hilbert transform,
linear least squares,
and much more.
Some of these may also work with the mostly Matlab-compatible
package called Octave.
[http://phobos.astro.uwo.ca/~etittley/matlab/matlab-astrolib.html]
- Matrix
- The Matrix library was designed and implemented
to provide object-oriented, semantically clean support for FE++, an
object-oriented framework for finite element programming in Structural
Engineering. FE++ is part of a major research effort in the development
of the Structural Engineering Software Development Environment (SESDE)
at Purdue University. To address a variety of time/space demands in
structural engineering computing, the library supports a wide range of
matrix abstractions and algorithms, such as symmetric matrices, profile
matrices, banded matrices, column vectors, and LU decompositions, etc.
The object-oriented paradigm supported by C++ is applied in the design
of the library. Consistent semantics and uniform syntax of the library
interface is a major focus of the design.
The source code for the Matrix package, written in C++, is
available.
It is documented in a technical report available in PostScript
format as well as in Lu et al. (1995).
[http://dalmatians.ecn.purdue.edu/~sesde]
- Matrix Market
- A repository of test data for use in comparative studies of
algorithms for numerical linear algebra. Matrices and related
data from problems in linear systems, least squares, and eigenvalue
problems in a wide variety of scientific and engineering
disciplines are provided along with tools for browsing through
the collection or for searching for matrices with special
properties. Each matrix (and matrix) set has a separate
home page which provides details and allows the downloading
of the matrix in one of several file formats.
The Market presently holds 482 individual matrices and 24 matrix
generators.
[http://math.nist.gov/MatrixMarket/]
- Matvec
- An interactive matrix/vector manipulation and calculation
environment. It is written in C++ but the distribution contains
only the object files which are compiled into the final binary
using the GCC compiler. The documentation is in HTML form and
is viewed from within the program by invoking a Web viewer such
as Lynx or Netscape.
[ftp://orion.animal.uiuc.edu/pub/twang/]
- MA28
- A package from the Harwell Subroutine Library (HSL) which consists
of four routines for the solution of sparse linear equations
where the coefficient matrix may be unsymmetric and numerical
pivoting may be required for stability.
This part of the HSL is freely available, although the
remainder is a commercial product.
[http://www.netlib.org/harwell/readme]
- Matwrap
- A tool for interfacing C++ code into matrix-oriented
scripting languages such as Matlab,
Octave and Tela.
Matwrap generates all the code to convert from the scripting language's
internal types into the types that C++ understands. All that is
needed is a .h file describing the functions.
The features include:
- automatic vectorization of functions;
- arguments containing dimensions of other vector and matrix arguments
can be automatically computed;
- pointers to structures and classes are not supported, although
public member functions of classes may be called and public data
members may be evaluated or set;
- support for inheritance.
A source code distribution is available. It requires
Perl 5 and a C++ compiler, with
GCC okay for the latter.
A man page contains the documentation.
[http://www.klab.caltech.edu/~holt/matwrap/]
- max
- A makefile generator which takes as input a short file
describing the structure of a package and outputs a set
of makefiles and a configure script.
The features include
compilation on a wide range of platforms,
support for both C and C++ source files,
support for shared libraries on most systems,
generation of clean/install/uninstall commands,
an automated make depend command,
compatiblity with autoscan output, and
output mostly compliant with GNU standards.
A source code distribution of max is available.
It is written in C and can be compiled on several platforms
using the supplied configure script.
It is documented in a user's manual available in
Texinfo format.
[ftp://ftp.uni-muenster.de/pub/linux/misc/]
- MAXDET
- A software package for determinant maximization problems which
implements a long-step path-following method.
The distribution includes the full C source code (with calls
to LAPACK, a Matlab
MEX file interface (although the code can also be used directly
via the C source), Matlab examples, and documentation.
See also CSDP, INCT,
LMITOOL, SDPA,
SDPpack, SDPSOL,
and SP.
[http://www-ISL.Stanford.EDU/people/boyd/MAXDET.html]
- MAXIMA
- A fairly complete computer algebra system which is
a Common Lisp
implementation based on the original
implementation of Macsyma at MIT. This can be compiled
with GCL.
This distribution comes with a 235+ page user's manual
in Texinfo
format. The same directory also holds a package
called Affine which is a set of extensions to MAXIMA
which allows things like Todd-Coxeter algorithms and
non-commutative Grobner bases to be used. The directory
also contains xgraph which is used by MAXIMA for some
plots. The use of this software supposedly requires that
a fee be paid to DOE NESC, although a README file in the
directory isn't exactly crystal clear on that point.
[ftp://ftp.ma.utexas.edu/pub/maxima/]
- Maxwell
- A word processor for Linux.
Maxwell has the usual features including named styles,
WYSIWYG editing, tables, and RTF import and export.
Binary and source code distributions are available, with the
latter requiring Motif to build and
still (as of 7/98) in a beta stage.
[http://www.eeyore-mule.demon.co.uk/]
[http://sunsite.unc.edu/pub/Linux/apps/wp/
]
- MBone
- The IP Multicast Backbone
is a method for multicasting live audio and video via the Internet.
It is a virtual network layered on top of portions
of the physical Internet to support the routing of IP
Multicast packets. The network consists of islands which
can directly support IP Multicast linked by virtual point-to-point
links called tunnels, with the tunnel endpoints typically
being workstation-class machines with operating system
support for IP Multicast and running the mrouted
multicast routing daemon.
The IP Multicast routers (called mrouters) take the
responsibility of distributing and replicating the multicast
data stream to their destinations as opposed to individual
IP hosts, with the mrouter topology designed such that
packets are efficiently distributed without unduly
congesting any single node.
The IP Multicast is a class D addressing scheme with
addresses ranging from 224.0.0.0 to 239.255.255.255 and
the MBone-based audio/video conferences allocated the address
range 224.2.*.*.
Software related to using the MBone includes:
- confcntlr, an MBone videoconferencing
tool for controlling conferences;
- Confman, a tool for initiating and
administering online conferences;
- Free Phone, an audio tool for phoning
over the Internet;
- gwTTS, a set of interactive multimedia tools
that enable instructors and students to interact;
- isc, a conference controller;
- LGMP, a protocol suite for reliable multicast
transfer applications and a library which implements the suite;
- mash, a multimedia networking toolkit
where complex multimedia programming tasks are decomposed into simple
objects linked together and configured with a scripting language;
- MiMaze, a multiplayer game that uses the
MBone;
- mMosaic, a derivative of the
Mosaic browser with multicast capabilities;
- multikit, a distributed multicast-based
directory browser;
- Nt, a shared text editor for use on the MBone;
- nv, a video conferencing tool for X11;
- RAT, an audio tool thatl ets users talk over
the MBone;
- Rendez-Vous, a videoconferencing
tool;
- RMF, a protocol (and implementation thereof)
to address a variety of multicast needs;
- sd, a general managing tool for multimedia
sessions;
- Speak Freely, an audio application;
- vat, a multicast audio tool;
- vic, a real-time video conferencing
application;
- wb, a whiteboard application for the MBone;
- WebCanal, a project to provide a conference
tool for broadcasting HTML documents and push information channels;
- XTP, a transport layer protocol which includes
explicit multicast support; and
- Ztalk, a voice communication tool with
multicast support.
See Kumar (1995) and Savetz et al. (1996).
Web sites appropriate to the topic are
Multicast and MBone on Linux
and
Linux Multicast Information
.
[http://www.best.com/~prince/techinfo/mbone.html]
- MCF
- An implementation of a primal and a dual network simplex algorithm.
A source code distribution, written in C, is freely available for
academic usage.
A user's manual is available in PostScript format.
[http://www.zib.de/Optimization/Software/Mcf/]
- mc-layer
- A Monte Carlo radiative transfer program for vertically inhomogeneous
atmospheres. This routine, written in Fortran 90, can compute
both fluxes and radiance fields for vertically layered plane-parallel
atmospheres with isotropic reflecting surfaces.
It is documented via comments within the code.
See Macke et al. (1995).
[http://www.ifm.uni-kiel.de/me/research/Projekte/RemSens/SourceCodes/source.html]
- MCML
- Monte Carlo for Multi-Layers is a steady-state
Monte Carlo simulation program for multi-layered turbid media with
an infinitely narrow photon beam as the light source. Each layer
has its own optical properties of absorption, scattering, anisotropy,
and refractive index. The simulation is in 3-D with the results
stored in an r-z array in cylindrical coordinates (i.e. radial and
depth positions). Output variables include the radial position and angular
dependence of local reflectance and transmittance as well as the
internal distribution of energy deposition and fluence rate within
the multilayered medium.
A source code distribution of MCML is available. It is written in
C and can be compiled on most platforms with such a compiler.
An extensive manual is available in PDF format.
See also Wang et al. (1995).
[http://ee.ogi.edu/omlc/science/software/mc/index.html]
- MCPL
- A simple typeless language based on BCPL
which makes use of extensive pattern matching somewhat related
to that used in ML and
Prolog.
MCPL is typeless, runs using a contiguous runtime
stack, and has no built in garbage collector.
An interpreted version of MCPL is available which can be
installed and used on generic UNIX platforms.
A user's manual is available in TeX DVI
format.
See Richards and Whitby-Strevens (1981).
[http://www.cl.cam.ac.uk/users/mr/MCPL.html]
- MCSim
- Monte Carlo Simulator is a general purpose
modeling and simulation program which also performs standard
or Markov chain Monte Carlo simulations. The user can specify
a set of parameterized nonlinear differential equations and integrate
them using parameters values either chosen or sampled from user-specified
statistical distributions.
MCSim consists of a model generator and a simulation engine.
The model generator mod is a stand-alone facility which takes
a model description file and creates a C language file while is compiled
and linked to the simulation program. It allows the user to define
equations for the model, assign default values to parameters or default
initial values to model variables, and define scaling functions for
both the input parameters and output variables. It was created to allow
the use to create and modify models without having to maintain C code.
The simulation program mcsim allows four types of simulations
to be performed.
A DefaultSim simulation simply solves the specified equations using
the default parameter values.
A Monte Carlo simulation will perform repeated stochastic
simulations across a randomly sampled region of the model
parameter space.
A MCMC simulation performs a series of simulations along a Markov
chain in the model parameter space, i.e. Monte Carlo simulations in
which the choice of a new parameter value is influenced by the
current value.
A SetPoints simulation integrates the model under the
experimental conditions for a series of specified parameter sets listed
in a separate file.
The MCSim distribution contains the source code for both
mod and mcsim, examples of model and simulation
files, and a user's manual in PostScript format.
The source code is written in ANSI C and can be installed on
generic UNIX platforms with an appropriate compiler.
[http://rfs63.berkeley.edu/users/fbois/mcsim.html]
[http://www.gnu.ai.mit.edu/order/ftp.html
]
- mCWEB
- A descendant of the CWEB
system for literate programming.
The mCWEB system adds features which make it easier for more than
one person to use it concurrently, i.e. version control features.
It considers a project to be similar to a book consisting of
several chapters. The relationships between chapters and even
between books are automatically managed by means of various import
and export commands.
Another feature is a second TeX file
containing interface documentation which makes it possible
to define a common interface between the various parts of
a project. A completely rewritten manual is included in
the distribution as are examples.
[ftp://ftp.ist.tu-graz.ac.at/pub/software/packages/CWeb/]
- MDBMS
- A small and powerful RDBMS for performing complex database work.
The entire system consists of one binary that simply performs
all database functions.
The features of MDBMS include:
- support for a large SQL subset including subselects, referential
integrity, primary and foreign keys consisting of multiple attributes,
and more;
- support for tables without a primary key;
- full control over a telnet TCP connection with a user port for
normal use as well as a client port for access by clients;
- multitasking in which every port can run its own query
simultaneously;
- a full user-based security system;
- a dynamic CGI bin script for web integration that can talk to the
DB in SQL and also supports DES password encryption, logical constructions,
arithmetic calculations, and more; and
- a Java interface called JDBS.
A source distribution of MDBMS is available as are binaries for
Linux Intel and Alpha platforms.
It is free for home and educational use but not for commercial use.
Documentation is a bit sparse.
[http://www.hinttech.com/mdbms/]
- MDD
- The Mooring Design and Dynamics package is a Matlab
toolkit for designing and evaluating oceanographic moorings and
mooring data. MDD allows both surface and subsurface mooring
configurations to be built and evaluated using a set of graphical
user interfaces and a preliminary database of components.
It allows the design and evaluation of oceanographic moorings
under the influence of time-dependent 3-D currents by solving
a set of force balance equations to determine the spatial position
of each mooring element relative to the anchor.
Mooring elements can include current meters, in-line floats,
thermistor chains and acoustic releases, each with a specified
buoyancy, shape and effective fluid drag.
Wire and chain segments are divided into multiple hinged pieces
so the shape of the mooring will realistically represent a subsurface
or surface mooring under the influence of current shear.
This package works under Matlab 5.1.
[http://canuck.seos.uvic.ca/rkd/mooring/moordyn.html]
- MD5
- A program which calculates a message-digest fingerprint
or checksum for a file.
It is intended for use in digital signature applications
where a large file must be compressed in a secure manner
before being encrypted with a private key under a public-key
cryptography system.
MD5 takes an input message of arbitrary length and produces
a 128-bit fingerprint or message digest of the input.
It is supposed that it is computationally extremely improbable
to produce two messages having the same message digest or to
produce any message having a given prespecified target message
digest.
The MD5 program is available as source code written in C.
It is briefly documented in an ASCII text file.
[ftp://ftp.cert.org/pub/tools/md5/]
- MEASERR
- A program for the determination of error in individual discharge
measurements. MEASERR computes these uncertainties based on a
root-mean-square error analysis of the individual component
errors, with the latter including errors in the measurement of
width, depth and velocity as well as in computation procedures.
The velocity measurement errors include the uncertainties introduced
by the measurement instrument, the pulsation of flow
in natural rivers, the vertical distribution of measurements,
and oblique flow.
This error analysis can be used to evaluate the uncertainty for most
discharge measurements made with the vertical axis, cup-type
current meter.
Standard errors are computed at the 68% level of significance, i.e.
one standard deviation from the true value. The estimate of the
standard error is computed by computing the standard error of the
individual error components, and then combining them in a root mean
square error analysis.
A source code distribution of MEASERR for UNIX platforms is
available.
The primary documentation is contained within
Sauer and Meyer (1992).
This is part of the USGS
Water Resources Applications Software
collection.
[http://water.usgs.gov/software/measerr.html]
[http://www.geogr.uni-jena.de/software/measerr.html
]
- MEBDFDAE
- A code for the solution of stiff initial value problems (IVP) and differential
algebraic equations (DAE) in linearly implicit form.
The algorithm is based on a modified extended backward
differentiation formula which has considerably better stability than
BDF and is A-stable up to order 4 and alpha-stable up to order 9.
The MEBDFDAE distribution includes the source code, written
in Fortran, drivers for the program,
and various example results. Documentation is sparse and mostly
in the source code itself.
[http://www.ma.ic.ac.uk/~jcash/IVP_software/readme.html]
- mEDA-2
- The multi-Extended Dataflow Architecture is
an extension to the PVM distributed processing
system which provides Virtual Shared Memory (VSM) for inter-task
communication and synchronization. The mEDA-2 package was
developed to facilitate the construction of parallel programs in
PVM by providing a unified approach to message passing and shared
memory models.
It consists of a library (libeda.a) and a daemon
which avoids deadlocks while accessing VSM (edad).
It is based on the EDA multiprocessing model in which distributed
memory is a set of shared variables distributed between processes
and a shared variable contains either a meaningful value (i.e. it
is full) or the empty value.
EDA provides eight operations on shared variables:
x-store, storing to an empty variable with acknowledgment;
s-store, storing to an empty variable without acknowledgment
and queueing the request if the variable is full;
i-store, equivalent to s-store except that the
request is discarded if the variable is full;
u-store, updating a variable without acknowledgment;
x-fetch, extracting a meaningful value from a full variable;
s-fetch, extracting any value from the variable;
i-fetch, copying a meaningful value from a full variable;
and u-fetch, copying any value from the variable.
These EDA operations are used in different combinations or
in matching pairs to perform various operations.
The mEDA-2 pacakge is written in C and uses functions from
the PVM library. It can be compiled and
used on most platforms on which PVM can be installed.
The library is documented in man pages and in various technical
reports available in PostScript format.
See Vlassov et al. (1995).
[http://www.it.kth.se/labs/cs/meda2/]
- MEdit
- A graphical, multi-window, cross-platform text editor originally
written to demonstrate the capabilities of MGUI.
The features include cut and paste, go to line, search, replace,
multi-level redo/undo, auto-indent, printing, customizable colors
and fonts, and more.
This can be used on any platform on which MGUI can be installed.
[http://sunsite.unc.edu/pub/Linux/apps/editors/X/]
- Medusa
- An architecture for very high performance TCP/IP
servers (e.g. HTTP, FTP,
NNTP) which differs from other servers in
that it runs as a single process which multiplexes I/O with its
various client and server connections within a single process/thread.
Medusa is capable of smoother and higher performance than most
other servers, and also places a dramatically reduced load on the
server machine.
Persistence is also easy to implement in Medusa, i.e. the address
space of its process (and thus its database handles, variables, etc.)
is available to every client since all are using the same process.
A server which forks requires some sort of IPC mechanism to
achieve persistence, which requires yet more overhead.
Medusa is also easily extensible, being written
entirely in Python, and secure since it
is not written in a low-level language which can be more easily
exploited.
The current (10/97) features of Medusa includes:
integrated HTTP and FTP servers;
a secure remote-control capability called a monitor server which
enables authorized users to log in to the running server and control,
manipulate, and examine it while it is running;
several extensions to the HTTP server including
status extension which provides status information via the HTTP server,
the capability of acting as a proxy server for HTTP requests which
lets it be used as a firewall server,
a CGI extension, and several more planned features such
as pseudo-filesystem extensions and access to databases like
mSQL and Oracle;
and an API which allows users to extend not just the HTTP server
but Medusa as a whole, e.g. mixing in other server types and new
capabilities into existing servers (e.g. NNTP and POP3 servers have
already been written).
A source code distribution of Medusa is available. It is
written in Python and will run on most UNIX flavors with
this already installed.
[http://www.nightmare.com/medusa/]
- Mentat
- An object-oriented parallel processing system designed to
directly address the difficulty of developing architecture-independent
parallel programs. It combines a medium-grain, data-driven
computation model with the object-oriented programming paradigm and
provides automatic detection and management of data dependencies.
The two primary aspects of Mentat are the Mentat Programming
Language (MPL), a language based on C++ that masks the difficulty
of the parallel programming environment from the programmer, and
the Mentat run-time system, which supports parallel object-oriented
computing on top of a data-driven,, message-passing model. The
Mentat distribution is available in binary form for several
systems, including Linux.
See Wilson and Lu (1996).
[http://uvacs.cs.virginia.edu/~mentat/index.html]
- Mercury
- A logic/functional programming language which combines the clarity
and expressiveness of declarative programming with advanced
static analysis and error detection features. It has a highly
optimized execution algorithm which delivers efficiency far
greater than that of existing logic progrmaming systems and
close to that of conventional programming systems.
Mercury addresses the problems of large-scale program development by
allowing modularity, separate compilation, and numerous
optimizing/time trade-offs.
The Mercury compiler compiles programs to C which it uses
as a portable assembler, and it can exploit some of the C
extensions of gcc.
The features of Mercury include:
it is purely declarative, i.e. predicates and functions do not have
non-logical side-effects;
it is strongly typed with a type system based on many-sorted
logic with parametric polymorphism (similar to ML);
it is strongly moded, i.e. a programmer must declare the instantiation
state of the arguments of predicates at the time of the call to the
predicate and at the time of the success of the predicate;
it has a strong determinism system, i.e. for each mode of each
predicate the programmer should declare how many times the predicate
will succeed (i.e. once, at most once, at least once, or an arbitrary
number of times);
it has a module system wherein programs consist of one or more
modules with interfaces which contain the declarations for the
types, functions and predicates exported from that module;
it supports higher-order programming with closures, currying,
and lambda expressions; and
it is very efficient compared to other logic programming languages.
The Mercury system is available as either source code or as
a binary for Linux Intel, Sun Solaris and SunOS, DEC Alpha and
Windows 95/NT platforms.
The documentation includes a user's guide as well as library
and language reference manuals.
[http://www.cs.mu.oz.au/research/mercury/]
- Merle
- A scripting language designed to support decentralized information
retrieval applications on the Web, especially those concerned with
medical records.
The goal of Merle was to develop a script language tool to facilitate
the construction of efficient, fully functional, multi-point information
systems that can be accessed anywhere by low cost Web browsers to
search, retrieve, and analyze patient information.
Merle is based on MUMPS and permits
legacy code in that language to function in the Web environment
and make use of Web graphical, sound, and video presentation
services. It can be used as a CGI script
or in standalone mode.
The Merle script language features include:
it is derived from MUMPS and provides a
full range of string handling routines and built-in functions;
it provides full access to user-entered HTML form data;
it has several extensions which aid in the return of HTML
document code to the server and client;
it provides a B-tree based hierarchical and relational data
base facility;
it permits access to operating system facilities including
other script processors and DBM systems;
it can access all system facilities such as SQL and DB2;
and more.
A binary distribution of the Merle script language is
available for Linux Intel, Sun Solaris, Windows NT/95, and
OS/2 platforms.
A user's manual is available in HTML format.
[http://www.cs.uni.edu/~okane]
- Meroon
- An object-oriented system written in
Scheme.
The features of Meroon include:
all objects of Scheme can be seen as Meroon objects without
restriction on inheritance;
CLOS-like generic functions with the capability of adding
new functions and methods on top of previously defined classes;
self-description features;
and more.
A source code distribution of Meroon is available. It is
written in Scheme and has been ported to several freely
available Scheme systems.
It is documented in a user's guide available in
PostScript format.
[ftp://ftp.inria.fr/INRIA/Projects/icsla/WWW/Meroon.html]
- Mesa
- A 3-D graphics library with an API which is very similar to
that of OpenGL.
Most programs which use the OpenGL tk, aux or
GLUT
toolkits will work with Mesa without changing the source
code. The primary goal in the development of Mesa was correctness
rather than speed, with optimizations being the focus of most future
work. Mesa works on most UNIX workstations with ANSI C and X11,
and installed as part of
Vis5D on my Linux box.
[http://www.ssec.wisc.edu/~brianp/Mesa.html]
[http://sunsite.unc.edu/pub/Linux/X11/devel/libraries/
]
- Meschach
- A numerical library of C routines for performing calculations
on matrices and vectors. It is intended for solving systems of
linear equations (both dense and sparse), solving least squares
problems, computing eigenvalues and eigenvectors, and more.
It has a collection of data structures which are self-contained,
can be created, destroyed, and resized at will and which
includes permutations, vectors, matrices, integer vectors,
complex vectors and matrices, and sparse matrices.
It is meant for those who know something about the C language,
something of how to solve the numerical problem they have,
and do not want to create all the needed software from scratch.
The features of Meschach include: dynamic allocation, de-allocation
and copying of objects; dense complex matrices and vectors as well as
the usual real ones; input and output routines for objects as well as
a MATLAB save/load format; error/exception handling; basic numerical
linear algebra; dense matrix factorization and solution; dense matrix
factorization update routines; eigenvector/eigenvalue routines;
sparse matrix utility routines as well as those for factorization and
solution; sparse incomplete factorizations (i.e. Cholesky and LU);
iterative techniques (e.g. pre-conditioned conjugate gradients (GC),
CGNE, LSQR, CGS, GMRES, MGCR, Lanczos and Arnoldi); torture routines
for checking Meschach; memory tracking for locating leaks; and much
more.
The source code for Meschach, written in C, is freely available.
It comes in five shar files containing housekeeping and utility
routines, basic dense linear algebra routines, dense factorization
routines, sparse matrix operations, and complex matrix operations.
The chief documentation source is a manual that can be obtained at
the home site for about $30, although a manual for an older version
of Meschach can be obtained in DVI format at the home site.
A subset of this documentation can
be found online at the home site in HTML format.
[http://www.netlib.org/c/meschach/]
[ftp://ftpmaths.anu.edu.au/pub/meschach/
]
- mesh generation
- Packages for generating meshes for finite element solvers.
These include:
- ADMesh, for processing triangulated
solid meshes;
- ALADDIN, a finite element computational
toolkit with mesh generation capabilities;
- BL2D, a package for creating 2-D isotropic
or anisotropic meshes;
- DIME, a environment for creating unstructured
triangular meshes and doing calculations on the mesh;
- EasyMesh, a 2-D mesh generator that
generates unstructured, Delaunay, and constrained Delaunay triangulations
in general domains;
- EMC2, a WYSIWYG 2-D finite element mesh
generator;
- FEAT, a finite element package for solving
PDEs that includes a mesh generation utility;
- FElt, a finite element analysis tool with
mesh generation capabilities;
- FEMLAB-2D, a finite element package for
solving 2-D PDEs which has automatic mesh generation capabilities;
- GEOMPACK, a package of routines for
the generation of meshes using geometric algorithms;
- GRUMMP, a C++ library for manipulating
unstructured finite element meshes and a set of executables built
using the libraries;
- MagSolve, a package for the solution
of 2-D static magnetic field problems which includes automatic
mesh generation capabilities;
- METIS, a set of programs for producing
high quality graph partitions;
- PadFEM, a environment for implementing
adaptive finite element simulation in 2- and 3-D which includes
a set of mesh generators;
- ParMETIS, a parallel version of
METIS for partitioning unstructured graphs;
- QMG, a package for geometric modeling
and mesh generation in 2- and 3-D;
- SCOTCH, a package for static mapping
and graph partitioning;
- Super Delaunay, a fully dynamic
constrained Delaunay triangulation engine;
- TOCHNOG, a finite element package with
mesh generation capabilities;
- Triangle, a 2-D mesh generator;
- Xcog, an interactive 2-D overlapping
grid generator; and
- Xwake, an electromagnetic code solver
with mesh generation capabilities.
- Mesh-TV
- An interactive graphical analysis tool for visualizing and
analyzing data on 2D and 3D meshes. It is general purpose in
that it handles many different mesh types, provides many different
ways of viewing the data, and is virtually hardware/vendor
independent while still providing graphics at the speed of
the native graphics hardware. Plot types implemented include
material boundary plots, iso-contours, mesh plots, velocity
contour plots, 3D surface plots of 2D mesh data, and stereoscopic
viewing of any 3D image. Data operations supported include
reflection about any axis, orthogonal and arbitrary slicing of
3D data, material selection, index selection, and algebraic
and mathematical function manipulation of data. Mesh-TV uses
the SILO data storage
and retrieval library, which can be obtained separately.
At present (1/31/96) there is a
Mesh-TV Linux port
as well as
Mesh-TV binaries
for IBM, HP and Sun workstations. A PostScript
manual is also available in the latter location. See also
another Mesh-TV FTP site
.
[http://www.llnl.gov/bdiv/meshtv/]
- mess822
- A library for parsing Internet mail messages which supports the
full complexity of RFC 822 address lists
including address groups, source routes, spaces around dots, and
more.
It also supports common extensions such as quoted atoms, dots in
phrases, and addresses without host names.
It extracts each address as a string with a separate string for
the accompanying comment.
The package contains several applications including
rejectblind for checking whether a known address is list in
To or Cc and 822header, 822field, 822date,
822received and 822print for extracting various pieces
of information from a message.
A source code distribution is available.
[ftp://koobera.math.uic.edu/www/mess822.html]
- METAFONT
- A computer language for the production of professional quality
typefaces using mathematical type design.
METAFONT can also be used to create figures and symbols other
than typefaces.
The source code is available at the given URL and requires
the CWEB package for compilation and
use.
The original METAFONT manual by its creator Donald Knuth is
available as either Knuth (1986) or
Knuth (1986), the former being the paperback and the
latter the hardback version.
The source code for the program is available as
Knuth (1986) and the details of the computer modern
typefaces created by the author using METAFONT in
Knuth (1986).
A related program is Metapost.
[ftp://labrea.stanford.edu/pub/tex/mf/]
- Meta-HTML
- An internet application engine and HTML-based scripting
language that allows the quick building, deploying and
managing of web resources. The programming language is specifically
designed for working within the Web environment, and as such
it provides the most commonly wanted Web functionality as
built-in primitives in addition to a full capability for
large-scale symbolic manipulation that one might expect from
a programming language. Web pages include standard HTML and
Meta-HTML statements intermixed which, when requested by a
browser, are passed through the Meta-HTML engine an dynamically
processed to produce an HTML page to be delivered to the browser.
Interpreter options include using it as a CGI engine that can
be run by any Web server, as a full-featured Web server (mhttpd)
with the interpreter built in, as a stand-alone processor (like
Perl), or as an interactive debugger.
The Meta-HTML language includes flow control, arithmetic
operators, relational operators, and Web applications
features like stateful sessions (with or without browser
cookie support); GDBM database storage, retrieval and
searching; network and file system streams; macros and
functions that allow the writing of new tags; an interface
to the MSQL database system; file upload and download over
HTTP connections; and extended regular expression syntax
in string operations.
The Meta-HTML source code is freely available as both
source code and in binary form for Linux (a.out and ELF),
IRIX, BSDI, OSF, Solaris SunOS and HPUX platforms. A manual
in hypertext format is included with each distribution.
The present version 5.0 is freely available although I'm
not sure if future releases will remain so.
[http://www.metahtml.com/]
- metamail
- A package which can be used to convert virtually an mail-reading
program (on UNIX, DOS, or Amiga) into a multimedia mail-reading
program. It is an extremely generic implementation of
MIME, the proposed standard for multimedia
formats on the Internet. This implementation is extremely
flexible and extensible, using a mailcap-type file mechanism
for adding support for new data formats when sent through
the mail.
The core of the package is a mechanism that allows the easy
configuration of mail readers to call external viewers for
different types of mail, e.g. Ghostview
for PostScript, xv
for bitmapped images in any of several formats, etc.
The distribution also contains viewers for a number of mail
types defined by the MIME standard so that it can be immediately
useful with any site-specific customization or extension.
The metamail distribution has built-in support for:
plain US ASCII text, plain text in the ISO-8859-8 (Hebrew/English)
character set, richtext (i.e. multifont formatted text),
image formats (using the xloadimage program under X11),
audio, multipart mail which combines several other types,
multipart/alternative mail which offers data in multiple
formats, encapsulated messages, partial and external message
(for large data objects), and arbitrary (untyped) binary
data. Some support is also offered for the use of non-ASCII
characters in certain mail headers.
The distribution comes with a small patch for each of over a
dozen popular mail reading programs, e.g. Berkeley mail,
mh, Elm, Xmh, Xmail, Mailtool, Emacs Rmail, Emacs VM, Andrew, and
others.
The source code for metamail, written in C, is included with
the distribution as are several sample MIME format files.
Documentation is available in the form of a user's manual
and several technical reports in PostScript format.
[ftp://ftp.bellcore.com/pub/nsb/]
- METAN
- An integrator for stiff systems of autonomous ordinary differential
equations.
METAN uses a semi-implicit mid-point rule with
h2-extrapolation to solve the equation system.
The source code for this is written in Fortran and
its use is documented
via embedded comment statements.
This is part of CodeLib.
See Deuflhard (1983) and Deuflhard (1983).
[ftp://elib.zib.de/pub/elib/codelib/metan1/]
- MetaPost
- A system that implements a picture-drawing language similar to
Metafont except that the output is expressed with cubic splines
and PostScript commands rather than
in Metafont's raster-oriented Generic Font Format. It is a powerful
language for expressing figures for documents printed on PostScript
printers and can also be used for creating PostScript fonts.
The data types are mostly the same as those in Metafont except
that pictures represent a continuous version of what is scan-converted
in order to create Metafont's pictures. Some raster-oriented
Metafont primitives are removed and primitives for expressing
PostScript concepts are added.
Facilities for integrating text and graphics are also included to
make it convenient for figures to include labels which match the
document text typography.
Perhaps the easiest way to obtain and install MetaPost is via
the teTeX distribution wherein it is
automatically installed along with the rest of the package.
The master MetaPost distribution can also be installed by
itself using the web2c package, the details for which can be
found at the MetaPost web site.
This package is documented in a series of technical reports
available in PostScript format.
[http://cm.bell-labs.com/who/hobby/MetaPost.html]
- MetaWeb
- A Java class library that supports the
development of synchronous collaborative applications which can
be either applets running in a browser or stand-alone Java
applications running on a desktop, i.e. a groupware toolkit.
The goal of MetaWeb is to simplify the development and
deployment of synchronous multi-user applications which can
be used on the Web.
MetaWeb is an extension of the BSCW
software package which provides access to information about
the activities of other Web users. This meta-information
is represented by the abstractions of User, Location, and Session.
A single User is represented by each application; a Session
represents a dynamic group of users who can interact; and
a Location is an abstraction of a place where people can meet
and interact using application-specific tools.
The relations among these abstractions describe the state of
the MetaWeb object space wherein users visit locations,
locations host sessions, and sessions contain users.
MetaWeb includes an API whose functionality includes
access to shared information, session management,
application-specific message exchange, mechanisms for
access control, and basic GUI components for collaborative
sessions.
The toolkit currently provides a chat tool and a shared whiteboard
as demonstration tools.
A source code version of the MetaWeb package is available.
It currently (7/97) is based on JDK 1.0.2
and will be updated for newer JDK releases.
The package is documented in a collection of HTML documents.
[http://bscw.gmd.de/MetaWeb/]
- meteorology software
- Applicable packages include:
- AGROMET, a set of routines for implementing
optimal interpolation procedures for agrometeorological variables;
- CMAPF, a library providing mathematical
transforms of conformal maps;
- DISORT, for computing quantities related
to radiative transfer in a multi-layered plane-parallel medium;
- DOM, a polarized multi-dimensional
discrete-ordinates radiative transfer model;
- GRIB, a general purposedata exchange format
for meteorological data;
- iplib, a library for interpolating between
almost any types of grids used in meteorology;
- METIS
- A set of programs for partitioning graphs and for producing
fill reducing orderings for sparse matrices using a multilevel
graph partitioning scheme. It provides high quality partitions,
is fast, and produces low fill orderings. Such things are
pragmatically used to create optimal finite element meshes.
Some of the newer features (for version 2.0) include:
a faster k-way partitioning algorithm which produces good
partitions and is much faster than the algorithms used in
earlier releases,
the extension of the algorithms to handle non-power of 2 partitions,
the provision of a stand-alone library to interface with the
algorithms,
the checking of input graph consistency during input, and
better memory management.
METIS is written in ANSI C and has been tested on IBM AIX, SGI IRIX,
Sun Solaris and SunOS, and Cray UNICOS systems, although it is
apparently portable to any system with the GNU C compiler.
The documentation is contained within a user's guide in
PostScript format.
A parallel version called ParMETIS
is also available.
[http://www.cs.umn.edu/~karypis/metis/metis.html]
- MET++
- An object-oriented application framework that supports the
development of multimedia applications by providing reusable objects,
i.e. widgets,
for 2D graphics, user interface components, 3D graphics, audio and
music. It manages the standard behavior of a multimedia application
such as time synchronization and user interaction (e.g. file
dialog, cut and paste, commands, etc.).
MET++ is an extension to the ET++ Application Framework, an
object-oriented
class library that integrates interface building blocks, basic
data structures, input/output, printing, and high-level application
framework components. It supports user-interaction features such as
direct manipulation, multi-undoable
commands, and a flexible mechanism to compose visual objects with
declarative layout specification and automatic object positioning
via components like pop-up and pull-down menus, buttons, scroll-bars
and more included as predefined classes. All of the rich and varied
functionality of ET++ is inherited by MET++ applications.
The MET++ extensions to ET++ include 3D graphics routines realized
with PEX, GL and OpenGL adapters. This
framework provides objects
for camera, light sources, material definitions, primitive 3D objects,
polygons, and more, with 2D and 3D graphics integrated so they can
be mixed in the same view. Building block classes for audio and
music include intensity, pitch, tonalsystem, pitchscale, and more.
Time synchronization is realized via temporal grouping elements
such as loop, repeat, sequence, and synchronize. Import and
exchange converters for many file formats are included as is
a hypertext/hypermedia link mechanism.
Both ET++ and MET++ are C++ class libraries that can be compiled
with almost any AT&T based C++ compiler or with GCC/C++. Although
the ET++ library is highly portable amongst UNIX/X11 platforms,
some of the advanced multimedia features of MET++ limit its
portability to a subset of the platforms amenable to ET++.
Documentation includes man pages and several technical
reports in PostScript format.
A book entitled Developing Object-Oriented Multimedia Software Based
on the MET++ Application Framework is available, although it's
presently (4/97) only available in German.
[http://www.ifi.unizh.ch/groups/mml/projects/met++/met++.html]
- Mew
- Messaging in the Emacs World is an
Emacs interface to integrate email, news,
MIME and PGP as well as
to make it easy to view and compose with them.
The features of Mew include:
- easy display and composition of complicated structured messages;
- automatic decryption of messages encrypted with PGP;
- easy encryption or signing of messages with PGP;
- a single view for multiple folders;
- an icon-based interface on Xemacs;
- choosing messages via specific conditions such as subject or date;
and more.
Mew will run on sufficiently recent versions of both Emacs and Xemacs.
[http://www.mew.org/]
- MexCDF
- A mex-file interface between NetCDF
and Matlab which invokes the complete C language NetCDF
interface. This allows Matlab users to read, write, and
manipulate NetCDF data files in a general and efficient
manner.
[http://crusty.er.usgs.gov/mexcdf.html]
- MEXX
- The MEXanical systems eXtrapolation integrator is
a package of numerical software for the integration of constrained
mechanical multibody systems including dry friction, nonholonomic
constraints, generalized velocities, and external dynamics.
MEXX is suited for the direct integration of the equations of
motion in descriptor form and is based on the extrapolation of
a time stepping method that is explicit in the differential
equations and linearly implicit in the nonlinear constraints.
This requires the solution of only well-structured systems of
linear equations with the computational burden growing linearly
with the number of bodies. Position and velocity constraints are
enforced throughout the integration, with acceleration constraints
not needed.
The solution method is an extrapolated half-explicit Euler method.
It also has options for a continuous time solution representation
and for the location of events such as impacts.
A source code distribution of MEXX is available.
It is written in Fortran 77 and documented in an ASCII file as
well as via comment statements included in the source code files.
This is part of CodeLib.
[ftp://elib.zib.de/pub/elib/codelib/mexx/]
- m4
- A GNU macro processor which is an implementation
of a traditional UNIX macro processor.
It is mostly SVR4 compatible although it has some extensions
such as built-in functions for including named files, running
shell commands, doing arithmetic, manipulating text in various
ways, and recursion.
It can be used either as a front-end to a compiler or as a
stand-alone macro processor.
It is perhaps most widely used by the GNU
Autoconf utility which uses it for
generating configure scripts, although it can be useful for
many things.
A source code distribution of m4 is available at the
usual GNU sites.
It is written in C and can be compiled and used on many
platforms using the supplied configure script.
It is documented in a user's manual available in
Texinfo format.
[http://www.gnu.ai.mit.edu/order/ftp.html]
[http://sunsite.unc.edu/pub/Linux/utils/text/
]
- MG
- The Managing Gigabytes system is a collection of
programs which comprise a full-text retrieval system (i.e.
one in which a database
created out of some given documents
can be queried to retrieve relevant documents).
It is full-text in that every word in the text is indexed and
the queries operate only on this index.
This is a research prototype for managing
multi-gigabyte archives.
The source code to MG, written in C and Tcl/Tk , is available.
The prior installation of the
Tcl/Tk package is
required to install and run this package.
The MG system is fully documented in
Witten et al. (1994) although some documentation
can also be found on the Web site.
[http://www.kbs.citri.edu.au/mg/]
- MGGHAT
- MultiGrid Galerkin Hierarchical
Adaptive Triangles is a
Fortran program for the solution of
second order linear elliptic partial differential equations with
Direchlet, natural, or mixed boundary conditions on 2D
polygonal domains (with and without holes).
It uses a finite element method with linear, quadratic or
cubic elements over triangles. The adaptive refinement via newest
vertex bisection and the
multigrid iteration are both based on
a hierarchical basis formulation. Graphical display of results
is also possible.
The MGGHAT distribution includes the source code which
is written in Fortran. This will compile on several UNIX
platforms including Linux using either f2c
or g77. Some routines from both
LINPACK and
BLAS are needed for compilation.
The Tcl/tk package is also needed for
interactive manipulation of graphics displayed using
Gnuplot.
A user's manual in PostScript format is included in
the distribution.
[http://www.cerfacs.fr/~douglas/mgnet/Codes/mgghat/]
- MGLAB
- A tutorial multigrid
program which solves elliptic boundary
value problems in one dimension. The user can choose various
multigrid cycles, transfer operators, smoothing methods,
and nested iteration end defect corrections. Cell-centered
and vertex-centered discretization and multigrid is included.
The MGLAB source code, written in Fortran,
is included in the distribution along with sample input and output
files. Their is some documentation in the code although the
primary documentation is contained in
Wesseling (1992).
[http://www.cerfacs.fr/~douglas/mgnet/Codes/wesseling/]
[http://casper.cs.yale.edu/mgnet/www/mgnet/Codes/wesseling
]
- MGTP/G
- The Model Generation Theorem Prover/Ground
version is
a theorem prover for non-Horn clauses that deal with ground atoms.
MGTP/G is a bottom-up theorem prover with several available
options for efficient execution including clause indexing,
elimination of redundant computation, and atom indexing.
Useful frame work such as negation as failure and hypothesis
reasoning can be easily implemented using MGTP/G.
It is possible to obtain the same proof using different
strategies and proof tracing and statistical data can
be optionally displayed.
A source code version of MGTP/G is available. It is written
using the KL1 langauge and can be used on UNIX platforms on
which KLIC is already installed.
A user's manual is included in PostScript format.
[http://www.icot.or.jp/AITEC/IFS/IFS-abst/090.html]
- MGUI
- The Morello Graphic
User Interface
is a cross-platform graphical user interface written in ANSI C.
It consists of a library and a code generation tool. The
library contains the usual collection of GUI objects (widgets), e.g.
menus, push buttons, editable fields, list, etc., and the
MGUI Designer tool allows the user to create and maintain
window layouts using the mouse. It can be used to develop
multi-platform applications that do not require GUI porting
across Windows 3.1, Windows 95, X Windows, and DOS BGI and
DJGPP, thus decoupling the application code and the host system
API.
The features include
total source level compatibility among all supported platforms,
the same look and feel in all environments, compact source
code, a manager object that automatically positions and
resizes its children, a designing tool that generates C source
code files that can be compiled in all supported environments,
support for 16, 256, 32K and 64K colors under DOS BGI and up
to 16 million in the other environments, text cut and paste
capabilities, various drawing primitives (e.g. rectangles,
circles, polylines, etc.), image drawing in up to 24 planes,
and a log facility with a run-time user modifiable tracing
level.
MGUI is available for several programming environments, including
Linux with X11. The freely available package includes the MGUI
library, the MGUI designer, documentation, examples and MEdit
source code.
[http://www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/
index_e.htm]
- MH
- A Message Handler for email which consists of a set
of programs that can be used at the UNIX shell prompt.
In addition to the basic functions provided by a user agent such
as reading and sending mail, MH includes additional message
handling capabilities such as mechanisms for organizing messages,
tailoring its own behavior, and extending its functions.
Advanced MH features include:
draft folders which provide a method by which several message
drafts can be simultaneously composed and maintained until sent;
message selection wherein MH commands accept message sequence
specifications to specify which messages are to be operated on;
distribution lists which permit the efficient distribution of
interest group messages on a single host to a group of hosts;
encapsulation where some messages (such as digests) encapsulate
other messages in their body; and more.
The source code for MH is in the public domain and can be
installed on most generic UNIX
systems. Binaries are available
for many platforms. MH is usually accessed via some sort of
interface program, e.g. exmh,
mh-e, metamail,
Qmh, etc.
Quite a bit of documentation for MH is available in both
PostScript and HTML format.
The second URL below is a link to an online version of the now out-of-print
book ``MH & xmh: Email for Users and Programmers.''
[http://www.ics.uci.edu/~mh/]
[http://www.ics.uci.edu/~mh/book/
]
- MHonArc
- A Perl program for converting e-mail messages
as specified in RFC-822
and the MIME
standard to HTML.
MHonArc can convert MH mail folders or
UUCP/Unix style mailboxes into an HTML mail archive,
add or remove messages to an existing HTML mail archive,
and convert a single message to HTML.
MHonArc also provides: a main customizable index for all mail
messages archived, a customizable thread index listing messages
by thread, control over message formatting, and the ability to
hook in your own custom message filters.
More recent (i.e. V2.0) features include support for message
header extensions for non-ASCII text, multi-page index
generation, subject-based threading in done in conjunction with
explicit threading, author-based sorting, support for
Content-Length fields, and many more customization features.
MHonArc should be usable on any platform for which a
Perl distribution exists. Documentation is available online
in HTML format or as part of the distribution.
A FAQ is also available.
[http://www.oac.uci.edu/indiv/ehood/mhonarc.doc.html]
- Mica
- An object-oriented 2-D graphics framework created
using Java with the goal of
supporting the
implementation and intermingling of graphing editors, drawing editors,
and user interfaces. Mica provides extensive support for display
lists, event handling, action dispatching, coordinate transforms,
and connectivity to meet this goal.
All parts derive from a richly featured base class to make it easy
for a programmer to add functionality.
The features of Mica include:
- written in Java with no native methods for maximum portability;
- provision of many graphics objects including shapes, connections,
widgets, windows, dialogs and message boxes, editors, choosers,
pre-built menubars, toolbars, and graphics editors;
- subclassing from a single base class to enable all graphics
objects to be treated the same and to be modified using their API
or by using composition;
- a large number of behavioral objects called event handlers
that can be assigned to graphics objects to allow, for instance,
widgets to respond to a user's input;
- differentiation of actions (generated by graphics objects) from
events (generated by the keyboard and mouse);
- use of world coordinates fro all graphics objects for accuracy
and flexibility of display;
- automatic detection and accounting for any and all modifications
made to any graphics objects;
- the real-time moving, resizing, connecting, reconnecting, and
animating of graphics objects so the user doesn't get confused by
disappearing graphics;
- connections are first class graphics objects and extensive support
for having connections is included in all graphics objects;
- graphics objects called attachments that make it easy to add resizing
handles or to add a textfield widget to a connection;
- full support for end-user and programmatic specification of
properties via text files containing defaults;
- built-in drag and drop and clipboard cut/copy/paste functionality;
- extensive support for help;
and much more.
Mica comes with several pre-built applications including:
- MiNetwork, a graphics editor which can be used to create, edit,
save, and load graphs of many different types;
- MiColorBrowser, a tool for displaying color combinations including
the standard 16 colors defined in java.awt and the 216 browser-safe colors;
- MiFontBrowser, a tool for displaying the Java system fonts
in all styles and various sizes;
- MiImageBrowser, a tool for viewing images in GIF, JPG and
XPM formats;
- MiLife, a program for specifying cell-based rewrite rules and
animating the results a la Conway's game of Life; and
- MiPerformanceSuite, a suite of performance and other types of
tests which generates a table of user-browsable results.
A source code distribution of Mica is available. It requires
JDK 1.0.2 or better and will run on all JDK-supported
platforms.
It is documented in a white paper and an overview, both available
in PDF format. The source is also documented in the usual way for
Java programs.
[http://www.swfm.com/mica.htm]
- MICO
- MICO Is CORBA is a project to provide a freely
available and complete CORBA 2.0
implementation.
The features of version 2.0.6 (5/98) include:
- IDL to C++ mapping;
- a Dynamic Invocation Interface (DII);
- a Dynamic Skeleton Interface (DSI);
- a graphical interface Repository browser allowing the invocation
of arbitrary methods on arbitrary interfaces;
- an Interface Repository (IR);
- IIOP as a native protocol, i.e. ORB prepared for multiprotocol support;
- support for nested method invocations;
- an interface (Any) for inserting and extracting constructed
types that were not known at compile time;
- a full BOA implementation including all activation modes, support for
object migration, and the implementation repository;
- support for using MICO from within X11 applications and Tcl/Tk;
- Naming and Event Services; and
- support for secure communication and authentication using SSL.
A source code distribution of MICO is available.
It is written in C++ and can be compiled with egcs 1.0
or GCC 2.7.2 and 2.8.1.
It has been succesfully compiled on Linux Intel platforms.
It is documented in a manual available in PostScript format.
[http://www.vsb.informatik.uni-frankfurt.de/~mico/]
- tclmico
- A Tcl interface to
MICO. It provides CORBA client
functionality to Tcl scripts and allows you to invoke any methods
of any CORBA object in a typesafe manner.
An interface to DSI allows you to implement servants in Tcl.
The capability of reading, writing and manipulating and IR
allows the creation of new interfaces or dynamic data types
on the fly.
[http://www.informatik.uni-frankfurt.de/~fp/Tcl/tclmico/]
- MIDAS
- A multichannel digital sound and music system designed for use with
games, demos and other real-time multimedia applications.
The support sound formats include:
- uncompressed 8-bit mono and stereo samples and streams;
- uncompressed 16-bit mono and stereo samples and streams;
- compressed 8-bit mu-law mono and stereo samples and streams; and
- compressed 4-bit ADPCM mono and stereo streams.
The supported module formats are:
- FastTracker 2 modules (XM) with up to 32 channels;
- Scream Tracker 3 modules (S3M) with up to 32 channels; and
- Basic Protracker modules (MOD) with 4 channels as well as
extended PT-like formats with up to 32 channels.
MIDAS supports several platforms including Linux with GNU C/C++.
It accesses the sound hardware through the system sound drivers and
thus works with any supported sound card.
[http://www.s2.org/midas/]
- MidCom
- A file manager and visual shell for Unix systems.
It provides a clear, user-friendly, and somewhat protected
interface to a UNIX system while making many frequent file
operations more efficient and preserving the full power of
the command prompt. It uses GNU autoconfigure and will
install on most UNIX systems, including Linux.
[ftp://ftp.nuclecu.unam.mx/linux/local/]
- MIDI
- The Musical Instrument Digital
Interface is a standard hardware and software protocol
for allowing musical instruments to communicate with each
other.
Events sent over a MIDI bus can also be stored as MIDI files
for editing or playback. Some sound cards provide a MIDI
interface, but even those that don't can usually play MIDI
files using the on-board capabilities of the sound card.
MIDI-compatible packages available for Linux include:
Cecilia,
CM,
Csound,
JAZZ,
Midi2Cs,
Rosegarden,
Tclmidi, and
TiMidity.
See Young (1996).
[http://www.digiserve.com/ar/linux-snd/]
[http://www.bright.net/~dlphilp/linux_soundapps.html
]
- midikb
- A program that reads input from a standard computer keyboard as if it
were a synthesizer keyboard and sends MIDI
events to programs or files or devices.
This can be used with the Csound package.
A source code distribution is available. It was developed
on a Linux Intel system.
[http://www.sdf.se/~simon/midikb.html]
- Midi2Cs
- A program which converts a
MIDI file to a
Csound score and orchestra.
It also works with WAV and AIFF files.
Csound files can be taken as input to provide synthesizing.
The combination of Midi2Cs and Csound enables the creation of
audio tracks of MIDI files directly on a hard disk without
the need for external samplers.
Midi2Cs is available as an executable for MS-DOS,
Linux Intel, Sun SunOS, SGI IRIX, and NeXT platforms.
The documentation is available in both
PDF and ASCII text formats and
includes a FAQ, a tutorial, and a manual.
[http://www.snafu.de/~rubo/songlab/midi2cs/]
- Midnight Commander
- A freely available clone of Norton Commander, a directory
browsing tool with many features.
The features include:
a built-in virtual file system in which one can manipulate
remote files via FTP or MC's own MCFS protocol;
the capability of using all of the MC operations with the virtual
file system which enables the performance of complex tasks;
mouse support on the Linux console and on xterm;
run-time configuration to support any kind of input keys for a given
terminal;
text and hex editors;
a hotlist capability;
command completion;
subshell support to enable the running of commands in a real shell;
a find file command which can search inside the contents of files;
background operations which allow the copying or moving of files
while other tasks are performed;
Linux file recovery for recovering deleted files from an ext2fs
partition;
the availability of context dependent actions;
a powerful built-in file viewer; and more.
A source code distribution of Midnight Commander is available.
It can be compiled and installed on a range of platforms via the
supplied autoconf scripts.
It is documented via a man page.
[http://www.gnu.ai.mit.edu/order/ftp.html]
- Midnight Modeller
- A GUI based interface for the POV 2.x raytracer. It features
an ACAD style interface and supports complex surface creations,
nested CSGs, layers, import/export of DXF and RAW files, shaded
previews, nearly full control over the pOV textures, interactive
panning/rotating/zooming and more.
[http://www.directnet.com/~dtaylor/midnight.htm]
- MIEPACK
- A collection of Fortran 77 programs, subroutines, and functions
for performing various tasks in electromagnetic scattering
theory.
The programs are divided in numerical functions, special
functions in spherical coordinates, Mie theory functions,
and test programs.
The numerical function included is
adaptIntVec, an integration routine based on Simpson's
rule with adaptive step-size control.
The special functions are further divided in radial functions
and angular functions.
The radial functions include:
bessel, which calculates the spherical Bessel functions
by backward recurrence;
neumann, which calculates spherical Neumann functions;
hankell, which calculates spherical Hankel functions of
the first kind and spherical Bessel functions;
and sphbesc and sphbesr, which computes spherical
Bessel and Neumann functions with complex arguments.
The angular functions are:
legendre, which calculates legendre polynomials;
sphHarm, which calculates single spherical harmonic;
calcYlm, which calculates spherical harmonics;
calcPiTau and piTau1, which calculate various
angular functions; and
calcVecYlm, which calculates vector spherical harmonics;
calcMNeo and calcMNlm, and calc1MNlm, which
calculate various vector functions.
The Mie theory programs include:
- mieCoeff, which calculates Mie coefficients for internal
and scattered fields;
- mieCrossec, which calculates the scattering, absorption,
and extinction cross-sections of a homogeneous sphere;
- mieIntField, which calculates the electrical field inside
a homogeneous sphere;
- mieScattField, which calculates the electric field scattered
by a homogeneous sphere; and
- mieScattAmp, which calculates the matrix elements for
scattering by a homogeneous sphere.
The test programs are:
- test1PWlm, which checks the spherical expansion of circularly
polarized plane waves;
- testInt1 and testInt2, example applications of
adaptIntVec;
- testIntSph, which checks the orthonormality of spheric harmonics
via explicit integration;
- testPlaneWave, which checks the spherical expansion of the scalar
plane wave in terms of spherical harmonics;
- testVecPlaneWave, which checks the spherical expansion of a
linearly polarized plane wave in terms of vector functions;
- testMie1 and testMie2, which check the Mie scattering
subroutines; and
- testAngScatt, which calculates the differential scattering
cross-section and the degree of polarization for scattering
by a homogeneous sphere.
A source code distribution of all of the programs in MIEPACK
is avaiable.
All routines are written in Fortran 77 and documented via
comment statements contained within the source code files.
[http://www.uni-jena.de/~phb/Programs/program.html]
- MIEV
- A Fortran 77 computer code which calculates the quantities
involved in electromagnetic scattering from a homogeneous sphere.
These quantities include:
scattering and extinction efficiencies;
the asymmetry factor;
forward- and back-scatter amplitudes;
scattering amplitudes versus scattering angle for incident
polarization parallel and perpendicular to the plane of scattering;
coefficients in the Legendre polynomial expansions of either the
unpolarized phase function or the polarized phase matrix;
various quantities needed in polarized radiative transfer; and
information about whether or not a resonance has been hit.
A source code distribution of MIEV is available.
It is written in Fortran 77 and is documented in a technical
report available separately at the same site.
A program called MVTst which exhaustively tests the
code is also available.
See Wiscombe (1980).
[ftp://climate.gsfc.nasa.gov/pub/wiscombe/Single_Scatt/Mie_Code/]
- MiMaze
- The Multicast Internet Maze is
a multiplayer game with a distributed architecture that uses the
MBone network.
MiMaze is a research project to study the transmission control mechanisms
needed to make it possible to play a real-time multiplayer game on the
Internet.
The components of the completely distributed communication
architecture based on IP
multicast include a communication system based on RTP/UDP/IP and distributed
synchronization mechanisms to guarantee the consistency of the game
independent of network delay.
The features of MiMaze include:
- a distributed game that allows anyone anywhere to play
together on the same game field;
- real-time interactivity wherein reactions are immediately based
on the actions of other players;
- a distributed architecture in which each local copy of the
software processes the actions of a player and then transmits the
state of the player to all other players;
- use of multicast which allows players to send their state just
one time to reach all other players as opposed to unicast wherein
the state has to be sent separately to all other players;
- audio enhancements including a phone that allows players to
speak to each other;
- a virtual world wherein players are in a 2-D labyrinth with
a 3-D representation; and
- a connectionless game wherein players can join and leave at
any time.
Distributions of MiMaze are available for Sun SunOS and Solaris,
Linux Intel, FreeBSD Intel, SGI Irix, and DEC Alpha OSF platforms.
Various documentation is available including some technical
reports in PostScript format.
[http://www.inria.fr/rodeo/MiMaze/]
- MIME
- The Multi-purpose Internet Mail
Extensions is a freely available set of specifications
which offers a way to interchange text in languages with
different character sets as well as multimedia e-mail
among many different computer systems that use Internet mail.
MIME allows e-mail messages to contain: character sets other
than US-ASCII, enriched text, images, sounds, other messages
(reliably encapsulated), tar files, PostScript, pointers to
FTP-able files, and more.
It supports several pre-defined types of non-textual message
contents and also permits you to define your own types of
message parts.
Some MIME applications include mpack,
MetaMail, emil,
exmh,
AUIS, and
MIME++.
See also
Chemical MIME
.
[http://www.oac.uci.edu/indiv/ehood/MIME/MIME.html]
- MIME++
- A C++ class library for parsing, creating,
and modifying messages in MIME format.
MIME++ is designed to greatly reduce the amount of programming
effort needed to create e-mail, Usenet or HTTP applications.
The features of MIME++ include:
an intuitive object-oriented architecture;
a design which permits user customization or extension via
inheritance; class names taken directly from the BNF grammars
given in
RFC-822 and
RFC-1521; support for all MIME types and subtypes documented
in RFC-1521 including multipart, message, and application types;
support for quoted-printable and base64 content transfer encodings
(with support for uuenconde, binhex and other formats coming soon);
and the provision of high-level, wrapper classes called Message,
MultipartMessage, and MessageWithAttachments which are especially
easy to use and serve as examples for using the library.
MIME++ is available as source code and is written using the most
portable features of C++, and should thus compile on nearly all
compilers including g++.
Tested platforms include Sun Solaris and SunOS, Dec Digital UNIX,
Linux Intel, SGI IRIX, and DOS and Windows 3.1.
The documentation is contained within man pages which are also
available in HTML format.
[http://www.hunnysoft.com/mimepp/]
[http://sunsite.unc.edu/pub/Linux/devel/lang/c++/
]
- MindsEye
- A project to create a complete modeling and animation package for
the Linux operating system. It also aims to combine the functionality
of several other freely available, scattered packages for performing
various 3-D graphics functions.
The features include:
- a modular design which makes it easy to add or change things;
- a multi-scene/user concept, i.e. an RCS
for graphical objects rather than source code;
- a kernel-system view rather than a modeler-system view;
- an object-oriented modeling design; and
- network support via a network module which can tie several
kernels together and make them behave like a single program.
A source code distribution of MindsEye is available.
Compilation requires the installation of some other libraries including
Qt, Mesa and
Nurbs.
Binaries are also available for several platforms including
Linux Intel.
There is a growing (although still incomplete) collection of
documentation including a user's guide and a programmer's guide.
[http://www.ptf.hro.nl/free-d/]
- Mindy
- Mindy Is Not Dylan Yet is
an implementation of a language very much like the language
that is called Dylan. The name is derived from the recursive
Dylan is an object-oriented language being developed at
Apple, more about which can be gleaned at the
Dylan Web site
.
Mindy comprises two C programs, a compiler that produces byte-codes
and a byte-code interpreter, and has been built and run on a variety
of platforms including Linux. It is a research tool and is not meant
to be an industrial-strength implementation of Dylan.
[http://legend.gwydion.cs.cmu.edu/gwydion/]
- Mingw32
- The Minimalist GNU Win32 package is
a version of the
GNU-Win32 Project which allows
the use of GCC on Win32 platforms like
Windows NT/95 to compile native programs.
Native programs are those which don't require extra DLLs like
the Cygwin DLL but rather use CRTDLL.DLL to provide C run-time
library functions, the latter of which is supplied with all
current Win32 platforms. Programs compiled this way are smaller
and easier to distribute.
[http://www.fu.is.saga-u.ac.jp/~colin/gcc.html]
- miniLZO
- A lightweight version of the LZO real-time
data compression library.
It is intended for small applications that require some data
compression but don't need the entire LZO package.
It compiles to about 6 KB with the sources being around 14 KB.
[http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html]
- Ministry of Truth
- A Web-based job, equipment and software tracking system built
on top of Apache,
PHP and MySQL.
It can be used, for example, by a support department to keep
track of its support calls while simultaneously maintaining
change logs for all machines and software packages.
[http://tomato.nvgc.vt.edu/~hroberts/mot/]
- MiniVend
- A full-featured electronic catalog system (i.e. shopping cart) that
can be set up with multiple catalogs and as a mall.
The features of MiniVend include:
- complete SQL database support via the Perl
DBI/DBD interface;
- SSL support for secure ordering;
- PGP support for secure off-site mailing of orders;
- built-in support for CyberCash;
- catalogs can be of very large size with excellent performance;
- a multi-server mode for very high capacity on systems with
sufficient memory;
- cookie support allowing browsers to leave a catalog and come back
without losing session state;
- multiple shopping carts that allow buy/sell operations or classified
ad exchanges;
- built-in addressable database support with almost unlimited rows,
columns, and field sizes (i.e. SQL is not required to run the system);
- powerful search capabilities including a complete
Glimpse interface, fast binary search,
range searching, embedding searches within searches, etc.;
- complete control of web appearance with over 80 predefined tag
functions, user-definable tags, embedded Perl and conditional HTML to
allow complex and flexible catalog pages to be built on the fly,
full frames support, and full client-side imagemap support;
- a flexible ordering process with multi-level order screens,
shipping calculation, sales tax calculation, fully configurable
discoutns and quantity pricing, etc.; and
- easy administration including automated installation and
configuration, several administration utilities, etc.
The source code for MiniVend is available under the
GPL. It is written in Perl and requires
version 5.004 (although it may also work with 5.003 and 5.002 with
slight modifications).
It is documented in a set of HTML files included in the distribution.
[http://www.minivend.com/minivend/]
- MINOS
- A general purpose package of algorithms for constrained
optimization. This general purpose optimizer is designed to
find locally optimal solutions for models involving smooth
nonlinear functions (in the objective or the contraints).
The gradients required for the nonlinear functions can either
be supplied by the user or are automatically estimated via
finite differences by the package. MINOS is especially good
if the number of constraints and variables number in the thousands.
It is also recommended for more moderately sized problems where
the constraints are linear and at least to some extent sparse,
there are no constraints, the constraints are just bounds on
the variables, or most of the constraints are linear and the
rest nearly linear.
MINOS is available in executable form for DOS and Linux
systems. It was originally developed at the
Systems Optimization Laboratory
]
(SOL) at Stanford, where more
details can be found. The source code, written in Fortran,
can also be purchased
from SOL along with the official user's manuals.
Further information about optimization can be found at the
NEOS Guide Optimization Tree
and the
Mathematical Programming Glossary
.
[http://www-math.cudenver.edu/~hgreenbe/consortium/linuxfiles/]
- MINPACK-2
- A package for the solution of systems of nonlinear equations, nonlinear
least squares problems, and minimization problems.
A Levenberg-Marquardt method for
nonlinear least squares and a trust region Newton method for
minimization problems are available, and both suitable
for the solution of medium-scale
problems on vector and shared-memory architectures.
A version of the latter method as well as a variable-storage
variable metric method are available for larger scale problems.
Future work is planned on algorithsm for distributed memory
architectures. BLAS and
LAPACK routines are used wherever
possible to enhance performance on the widest variety of
architectures.
MINPACK-2 features include:
- a reverse communication interface
for flexibility and ease of use;
- various auxiliary routines, e.g.
for computing the covariance matrix in least squares problems,
estimating the noise in the function, estimating the difference
parameter, estimating sparse Jacobian and Hessian matrices, etc.; and
- and the availability of the routines in single and double
precision.
The package also includes a large test problem collection including
problems dealing with: flow in a channel, swirling flow between
disks, incompressible elastic rods, solid fuel ignition, flow in
a driven cavity, a human heart dipole, exponential data fitting,
Gaussian data fitting, Chebychev quadrature, elastic-plastic
torsion, and much more.
The distribution includes all the source code, written in Fortran,
and some PostScript documents describing the package and the
test problem collection. All of the BLAS and LAPACK routines
needed by the package are included in the distribution. An
earlier version of this package called
MINPACK-1
is also still available.
[ftp://info.mcs.anl.gov/pub/MINPACK-2/]
- MIRIAD
- The Multichannel Image Reconstruction, Image
Analysis and Display package is a toolbox in the form
of an environment containing a large set of moderate sized programs
which perform various individual tasks involving the calibration,
mapping, deconvolution, and image analysis of interferometric
data.
Examples of the over 200 tools or tasks contained in the MIRIAD
package include:
- atmos, which analyzes phase statistics from a UV dataset;
- blcal, which computes and applies a baseline calibration;
- calplot, which plots the flux of primary calibrators;
- demos, which performs an inverse mosaicing operation;
- ellint, which integrates a MIRIAD image in elliptical annuli;
- fits, which converts between MIRIAD and FITS
images and UV formats;
- gpscal, which performs self-calibration of visibility data for
arrays with linear feeds;
- histo, which finds statistics of images and plots
simple histograms;
- imfit, which fits models to a given image dataset;
- maxfit, which fits a 2-D parabola to a 3x3 region of an image;
- odnh3, which creates optical depth and rotational temperatures
maps from ammonia maps;
- pbplot, which plots primary beam shapes;
- regrid, which regrids an image by interpolation;
- shifty, which aligns two images;
- tvdisp, which displays an image on a TV device;
- uvfft, which performs a Fourier transform on a sequence of UV data;
- velplot, which interactively plots spectra and slices from MIRIAD
images;
- xyphase, which determines XY phase corrections from on-line
measurements; and
zeeeta, which computes the Zeeman parameter.
A source code distribution of MIRIAD is available. It is written
mostly in Fortran 77 with some lower level I/O routines written in
C.
Is has been ported to several platforms including Intel Linux.
A large amount of documentation is available including
a user's guide, a reference manual, a cookbook and much more.
All are available in PostScript format.
[http://bima.astro.umd.edu/bima/miriad/]
- Mirror
- A program designed to duplicate a directory hierarchy between two
machines. Mirror avoids copying files unnecessarily by comparing
the file time stamps and file sizes before transferring.
It is written in Perl.
[http://sunsite.doc.ic.ac.uk/packages/mirror/]
- mirrordir
- A program that mirrors a directory tree in every detail including
devices, ownerships, permissions, symlinks, hardlinks and
access times.
It can also be used to create backup files before deleting
and store multiple revisions through any number of levels.
It works over FTP and MCFS.
A source code distribution is available.
It is documented in a man page.
[ftp://lava.obsidian.co.za/pub/linux/mirrordir/]
[http://sunsite.unc.edu/pub/Linux/system/backup/
]
- MISCFUN
- A software package to compute uncommon special functions such
as Abramowitz, Airy, Bessel integrals, Debye, Struve, synchrotron
radiation, transport integral, inverse-tangent integral, Clausen
integral, Lobachevski integral, and Stromgren integral. The
documentation is contained within an article in TOMS (Transactions
on Mathematical Software), Vol. 22, 1996, p. 288.
This is TOMS Algorithm No. 757.
[http://www.netlib.org/toms/index.html]
- MIT Scheme
- This run-time Scheme system is probably the most widely used
Scheme
distribution and includes a compiler (Liar) and an
Emacs-like editor (Edwin).
[http://www-swiss.ai.mit.edu/scheme-home.html]
- Mixmaster
- An anonymous remailer, i.e. a mailer which allows you to send
e-mail to a Usenet news group or a person without the recipient
knowing your name or your e-mail address.
Mixmaster uses a special message format for which you need a
special program to make messages, i.e. a client.
Once you have used the client to create a message you simply
tell it which remailers to use.
The remailer software is also available should you want to
run one.
The Mixmaster client software is available as source code.
It can be compiled and used on all UNIX platforms except
DEC Alpha.
The program is documented in the package. Additional
information about anonymous remailing is available at the site.
[http://www.obscura.com/~loki/]
- MiXViews
- A tool for editing, processing and analyzing digitized sounds and other
forms of binary data. It is built upon the
InterViews library and runs with
the X Window environment.
It is based on the MVC (Model-View-Controller) paradigm of
object-oriented programming in that every chunk of data being
edited is represented in the program as a type of object called
a model with which the user interacts using another object called
a view. The view shows the model data in some format, e.g. a
graph. The third object, the controller, coordinates communication
between the model and its views and is invisible to the user.
Several menus are available in MiXViews depending on the
type of data being editing. Menu types include:
a view menu which contains all the commands relating to the visual
display of the data (e.g. new views, zooming, reset vertical scale,
etc.); a file menu with which files can be opened, closed, saved, etc.;
an edit menu which allows the user to insert points, erase regions,
add regions, splice, mix, crossfade, etc.;
a sound modification menu which allows the user to apply envelopes,
reverse selections in time, transpose, time shift, filter, normalize
add delay or DC offset, etc.); a filter submenu which features
low, resonant, comb, and elliptical filters; and several other
menus for specific data types.
The source code for MiXViews is available as are binary
versions for NeXT, Sun SunOS and Solaris, SGI IRIX, and
Linux Intel (ELF) platforms. It can be straightforwardly
ported to other UNIX platforms for which the InterViews
library is available.
The current user's manual is available in ASCII text format.
[http://www.create.ucsb.edu/~doug/htmls/MiXViews.html]
- mkisofs
- A pre-mastering program to generate the ISO-9660 filesystem, i.e.
it takes a snapshot of a given directory tree and generates a
binary image which will correspond to an ISO-9660 filesystem
when written to a block device.
It can also generate the System Use Sharing Protocol (SUSP) records
specified by the Rock Ridge Interchange Protocol (RRIP) which are
used to further describe the files in the ISO-9660 filesystem
to a UNIX host. These records supply such information as longer
filenames, uid/gid, POSIX permissions, and block and character devices.
Mkisofs is not designed to communicate directly with a CD-ROM
writer. Another program such as
cdwrite must be used to do this.
A source code distribution of mkisofs is available. It
is written in C and can be compiled and installed on most
UNIX flavors using the supplied configure file.
It is documented in a man page.
[ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/]
- MkLinux
- A project to develop a Linux server that runs on top of the
OSF Microkernel, i.e. a combination of Mach and Linux.
The Microkernel adds improved support for real-time, symmetric
multi-processing, scalability to clusters and MPP machines,
and modular OS design. There are currently (5/96) versions
for Intel x86 and Apple PowerMac platforms.
[http://www.gr.osf.org/mklinux]
- ML (language)
- Meta-Language is a family of advanced programming
languages with (usually) functional control structures, strict
semantics, a strict polymorphic type system, and parameterized
modules. Implementations of ML include
Bigloo,
ML Kit,
Moscow ML,
Objective Caml,
Standard ML,
and various other slightly more
obscure research languages.
See Appel (1997),
Cousineau and Mauny (1997),
Milner and Tofte (1991),
Milner et al. (1900),
Reppy (1996), and
Wikstrom (1992).
[ftp://pop.cs.cmu.edu:/usr/rowan/sml-archive/faq.txt]
- ML (mail program)
- A mail program and message processing system designed around
the IMAP mail protocol, although it can also be used in many
other modes and access messages via POP3, NNTP or local file-based
mailboxes. ML uses a concept called logical views which greatly
simplifies the handling of large collections of messages.
A logical view is a representation of a mailbox distinct from
the mailbox itself. It is created by a filter which defines
the messages it contains. A view has the appearance of a normal
mailbox but contains only those messages matching the filter rules.
The features of ML include:
- the use of IMAP for robust client/server based mail processing;
- configurable MIME support including the
ability to easily create and view multi-level attachment structures;
- all of the normal mailbox reading, composing, filing and printing
operations;
- the ability to follow URLs embedded in messages (with
the help of an external browser);
- the capability of invoking an arbitrary program on each new message
delivery;
- the capability to alter the Reply-to address automatically
on outgoing messages based on the recipient and/or subject;
- a personal address book for storing commonly used addresses;
- multiple active mailbox support on multipe servers including
NNTP news;
- message sorting on any mailbox or view;
- configurable quick load parameters for handling large mailboxes
and newsgroups;
- action scripting to simplify repetitive tasks;
- mail filters which use a filter language to sort mail automatically
into logical views;
- simultaneous posting to mail and/or Usenet newsgroups at any time
with any message composition;
- a built-in jot pad for making notes;
- spelling correction using ispell;
- configurable hot keys;
- editres support;
- outgoing message logging;
- cross server mailbox copies;
- complete support for local files;
- significant international support;
- header field encoding and decoding of alternate character sets; and
- built-in MIME fetching of FTP or mail-server remote attachments.
ML is available as source code or as a binary for Linux Intel
(ELF and a.out), Sun Solaris and SunOS, and SGI IRIX platforms.
The source code can be built on generic UNIX platforms with
X11R4 or greater, Motif 1.2 or greater,
and an IMAP4 server (which is supplied with all source code
and binary distributions). An extensive user's manual is
available in both HTML and PostScript formats.
[http://camis.Stanford.EDU/projects/imap/ml/]
- ML Kit
- The ML Kit with Regions is a compiler for
Standard ML intended for use in the
development of stand-alone applications which must be reliable,
fast, and space efficient.
The main feature of the Kit is that it uses a stack of regions
for memory management rather than traditional garbage collection
techniques.
This consequences of this include:
compile-time garbage collection where all memory allocation
directives are inferred by the compiler;
the safety of deallocation of memory is ensured by the compiler;
static detection of space leaks;
the possibility of giving explicit directives
about the resetting of regions in cases where the static analyses
are too conservative;
real-time programming in software since there are no interruptions
of unbounded duration at runtime; and
the capability of calling C functions using standard C calling
conventions during runtime, with the region scheme also taking care
of memory allocation and deallocation for these.
A source code distribution of the ML Kit is available which
contains the compiler, the runtime system, and the region profiler.
The Kit has code generators for ANSI C and for HP PA-RISC code.
The compiler is a batch compiler with a text-based menu system.
The source code can be built on UNIX platforms which have
available both SML/NJ and
the Edinburgh Library.
A user's guide, a guide to programming with regions, and several
technical reports are available in
PostScript format.
[http://www.diku.dk/research-groups/topps/activities/mlkit.html]
- M-Map
- A collection of Matlab programs (m-files) which allow the creation
of publication quality maps of geophysical fields in 13 different
projections. It includes a simple coastline and elevation database
and allows the addition of data to the maps by the user.
It also contains a grid generation routine to create axes in either
lat/lon or planar X/Y terms.
The projections available are Stereographic, Orthographic,
Azimuthal Equal-Area and Equidistant, Gnomonic, Albers Equal-Area
Conic, Lambert Conformal Conic, Mercator, Miller Cylindrical,
Equidistant Cylindrical, Oblique and Transverse Mercator, and
Sinusoidal.
These programs can be used either with Matlab or with the
freely available Octave package which
can run most Matlab m-files.
[http://www.ocgy.ubc.ca/~rich/map.html]
- MMDF
- The Multi-Channel Memo Distribution
Facility is a sophisticated
mail transport agent (MTA)
for UNIX systems.
It is a unified family of mail handling programs which supports
a variety of user interfaces and delivery mechanisms.
MMDF was designed to grow from a single host system to a large
mail relay with degradation of performance and to degrade
gracefully as the load becomes huge.
It has separate processes for mail submission and delivery.
MMDF was originally developed and released at the University of Delaware
in 1980 and was significantly developed after that at the Ballistic
Research Laboratory and University College London.
[http://sunsite.unc.edu/pub/Linux/system/mail/mta/]
- MME
- The MultiMedia Extension is a package featuring
a C++ class hierarchy and development tools to compose multimedia
applications and multimedia user interfaces in a quick and easy way.
MME offers a hierarchy of object classes to encapsulate access to
different media formats, types, and retreival mechanisms.
It also includes classes providing temporal relations between
media objects like sequences and continuous synchronity.
General multimedia applications can be constructed using these
classes.
The features of MME include:
modeling of various media types, e.g. text, audio, images, and video;
encapsulation of distributed media access and control, e.g. cameras,
VCRs, and access to window and file systems;
the explicit modeling of time in a time model and of spatial and
temporal relations between media objects based on the time model;
implementation in C++ for easy extensibility and flexible use; and
an interactive design tool called MIB (Multimedia Interface
Builder).
The source code for MME is available. It is written in
C++ and can be compiled using g++.
The MME documentation is in German but is in the process of
being translated to English.
The version of MME on the FTP site is a bit outdated. The
author must be contacted for a more recent version.
[http://zgdv.igd.fhg.de/www/zgdv-uig/software/MME/]
- MMediator
- The Mnemonic Mediator is a planned (2/98) powerful and portable
groupware framework to be implemented as a spin-off to the
Mnemonic web browser project as part of
the GNOME desktop project.
The features will include a complete groupware environment,
integrated web browser and mail/news user agents,
shared document repository,
collaborative trouble ticket management,
a knowledge database, and
support for individual and relay chat protocols.
The features of the planned MMediator architecture include:
an extensible client/server architecture,
on-demand loading of front-end modules,
encryption of all network traffic,
object-oriented architeture and APIs,
support for CORBA and
FastCGI distributed agents,
support for server data replication and mobile clients,
a user interface that supports groupware metaphors,
core functionality that can also be accessed via command line mode, and
based exclusively on open source code software.
Check the site for updates.
[http://mediator.cs.uni-bonn.de/mediator/]
- MM5
- The PSU/NCAR Mesocale Model 5 is a limited-area,
hydrostatic or nonhydrostatic, sigma-coordinate model designed to
simulate or predict mesoscale and regional-scale atmospheric
circulation. It was originally developed on and only ran on
Cray supercomputers, but parts have recently been ported to
workstation platforms.
The system consists of a main simulation code MM5 and several
ancillary data preparation and analysis programs, all
written in Fortran.
The main MM5 code has been ported to workstations as has
the INTERP program for vertically interpolating data from pressure
levels to the model's sigma-coordinate system and the
GRAPH program for displaying output form each of the other components.
The programs which haven't yet (7/97) been ported are:
TERRAIN, which defines the model domain and map projection and
generates terrain and land-use category data on model grids;;
DATAGRID, which generates first-guess fields on model grids from
a large-scale model dataset and calculates map-scale factors
and Coriolis paramters for the model;
and RAWINS, which performs objective analysis and blends first-guess
fields with radiosonde and surface observations.
The MM5 model can use polar stereographic, Lambert conformal,
and Mercator projections and supports different true latitudes.
It can be configured to run from global scale down to cloud
scale in one model via nesting.
It has two nesting modes: a multiple nests and moving nests
mode and a mode in which a fine-mesh model is driven by
a coarse-mesh model.
It uses routine observations for input and can also incorporate
special observations, and can be coupled with other global or
regional models to use their output as a first guess for objective
analysis or as lateral boundary conditions.
It has a four-dimensional data assimilation system based on
nudging as well as an adjoint model (under development).
The physics options include six cumulus parameterization
schemes, six resolvable-scale microphysics schemes,
four planetary boundary layer process parameterizations,
four surface layer process parameterizations, and three
atmospheric radiation schemes.
The source code for all of the components of MM5 is available.
It is written in Fortran 77 with some Cray-specific constructs
in the codes that haven't yet been ported to workstation platforms.
I haven't yet attempted to compile the appropriate parts using
g77, but it's on the agenda.
A massive amount of documentation is available in
PostScript format.
[http://www.mmm.ucar.edu/mm5/overview.html]
- MMM
- A Web browser written in
Caml Special Light
that uses Tcl/Tk for the
user interface. The features include support for HTML2.0 level 2
(including forms), multiple windows, applets (like those in
Java) written in the Caml
Special Light language, display of HTML parsing errors, pseudo-CGI
support, and more. There are Linux ports for both this and the
language in which it's written.
[http://pauillac.inria.fr/~rouaix/mmm/]
- MMS
- The Manufacturing Message Specification is an
OSI application layer protocol designed
for the remote control and monitoring of industrial devices.
MMS is a set of services that allow the remote manipulation of
variables, programs, semaphores, events, journals, terminals,
and more.
The only known (7/98) freely available implementation of MMS
is written in Ada and can be located at the given URL.
[http://litwww.epfl.ch/MMS/mms_main.htm]
- MMTK
- The Molecular Modelling ToolKit is a program
library for molecular modelling applications.
Its goal is to provide researchers with a code basis that can
be easily extended and modified to deal with standard and non-standard
problems in molecular modelling.
MMTK is based on an object-oriented model of molecular systems which
consist of molecules, complexes, and atoms, all of which are defined in
a central database of definition files.
For example, a molecule is defined in terms of atoms, functional groups,
bonds, force field parameters, etc.
It is possible to introduce specialized versions of these objects, e.g.
MMTK already has special support for proteins which can be handled in
terms of peptide chains, residues, sidechains, etc.
MMTK is developed using the Python language
and consists mostly of a collection of Python modules with a few
time-critical parts written in C.
The operations currently (10/97) implemented in MMTK include:
construction of molecular systems with special support for proteins,
standard geometric operations on coordinates,
rigid-body fits,
visualization using external PDB and VRML viewers,
animation of dynamics trajectories and normal modes,
the AMBER 94 force field,
energy minimization,
molecular dynamics, and
normal mode calculation.
A source code distribution of MMTK is available either as an extension
to an already installed Python distribution or as an extended Python
distribution containing all necessary components.
The documentation includes a user's guide and a developer's
guide.
[http://starship.skyport.net/crew/hinsen/mmtk.html]