next up previous contents
Next: Mn-Mz Up: Linux Software Encyclopedia Previous: Ln-Lz   Contents

Ma-Mm

Last checked or modified: Aug. 25, 2000

[home / linux ]


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


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.

The Macanova capabilities in working with linear and generalized linear models include:

  • a linear model grammar with multiple error terms and shortcuts for polynomial and periodic regressions;
  • up to 95 variables of which 32 can be factors;
  • on the fly transformations of dependent and independent variables;
  • ANOVA, MANOVA and regression with optional weights;
  • robust ANOVA and regression;
  • logistic, probit and Poisson regression;
  • iterative proportional fitting;
  • branch and bound determination of best subset regression with ability to save the model selected;
  • power and sample size functions for CRD and RBD;
  • residual plots and macros;
  • model coefficients, standard errors, and contrasts;
  • t-tests and confidence intervals;
  • weighted analyses;
  • expected mean squares; and
  • a macro for nonlinear least squares.

The time series capabilities include:

  • fast Fourier transforms;
  • convolution and sums of lagged products;
  • forward and backward autoregression and moving average operators;
  • a Yule-Walker solver and its inverse;
  • ACF to partial ACF and its inverse;
  • spectrum and cross-spectrum analysis, including multi-taper estimation;
  • macros for least squares and maximum likelihood estimation of ARIMA models, including seasonal models;
  • macros for Hannan-Rissanen and innovations estimation of ARIMA models;
  • macros for computing approximate covariances and variances of autocorrelations using Barlett's formula;
  • macros to compute the autocovariance function and the spectrum corresponding to an ARMA model; and
  • times series and frequency function plots.

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.

[ftp://ftp.linux.org.uk/pub/people/jschlst/MacGate/]
[http://www.debian.org/Packages/stable/net/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 (2/99) does work on the Mach kernel they do currently do work on a couple of extensions. Mach-related research projects include:

Freely available overview and detailed documentation includes:

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]

Lites
A 4.4 BSD Lite-based server and emulation library that provides UNIX functionality to a Mach-based system. Lites provides binary compatibility with 4.4 BSD, NetBSD, FreeBSD and Linux on the Intel platform. It works on top of Mach 3.0 (MK83a), RTMach and Mach 4. The documentation is contained mainly in a master's thesis available in PostScript format.

[http://www.cs.hut.fi/~jvh/lites.html]

Real-Time Mach
A real-time operating system that is microkernel-based and focuses on the subject of distributed real-time OS mechanisms and services for developing and supporting real-time and multimedia applications in current and future OSs.

[http://www.cs.cmu.edu/afs/cs.cmu.edu/project/art-6/www/rtmach.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://www.freakout.de/]

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/]

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]

MAD
The Methodical Accelerator Design package is a tool for modeling charged-particle optics in alternating-gradient accelerators and beam lines. The features include:
  • linear lattice parameter calculations;
  • linear lattice and transfer matrix matching;
  • survey calculations;
  • error definitions;
  • closed orbit corrections;
  • particle tracking;
  • chromatic effects and resonances;
  • file services;
  • intra-beam scattering;
  • lie-algebraic analysis; and
  • debugging services.
The MAD framework is written in object-oriented C++ to make is easy to add new features to existing classes or new classes. Source and binary distributions are available, as are user and class structure manuals.

[http://wwwslap.cern.ch/mad/]

MAD (parallel)
The Monitoring And Debugging environment provides debugging support in a parallel computing environment. The goal of MAD is to provide an environment for all activities involved in the debugging task with a user interface that allows usage without a lot of prior knowledge of the underlying implementation. The components of MAD include:
  • MAD, a program that provides a control structure for using the other programs;
  • ATEMPT, a tool for event manipulation that visualizes tracefiles as a global communication graph, i.e. an event graph, a partially ordered graph in time that shows the communication among parallel executing processes;
  • FileBrowser, an integrated file browser for the environment;
  • libtrcUtil, a library of tracefile utilities;
  • libGUP, a library with various GUP utilities; and
  • a suite of example tracefiles.
Binary versions of all of the components are available for Linux Intel and other platforms.

[http://www.gup.uni-linz.ac.at:8001/research/debugging/mad/]

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; and
  • symmetric Gauss-Seidel pointwise or with conjugate gradient acceleration or with minimum residuals.
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.

[http://kinemage.biochem.duke.edu/website/kinhome.htm]
[http://molbio.info.nih.gov/doc/mrus/mage.html]

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/]

Magic
An interactive system for creating and modifying VLSI circuit layouts. A color graphics display and a mouse are used to design basic cells and combine them hierarchically into larger structures. Magic uses a sort of expert system to provide additional operations and information as circuits are constructed, e.g. built-in knowledge of layout rules allows it to continually check for rule violations during editing operations. It knows about connectivity and transistors and contains a built-in hierarchical circuit extractor. It also has a plow operation that can be used to stretch or compact cells and routing tools that can be uses to make global interconnections in circuits.

The features included in the latest version of Magic (6) include:

  • routing improvements including an improved global router, a gate array router, and an interactive maze router;
  • extractor enhancements including better resister extraction and accurate path length extraction;
  • a new contact structure in which multilayer contacts are handled better; and
  • an interface to the IRSIM simulator.
Source and Linux binary distributions are available. An extensive user's manual is included in the distribution in PostScript format.

[http://www.research.digital.com/wrl/projects/magic/magic.html]
[http://sunsite.unc.edu/pub/Linux/apps/circuits/]

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/]

MagicPoint
An X11-based presentation tool not wholly unlike a similarly named commercial package sold by those not wholly unknown in the darker realms. This allows specially marked up files containing text and control commands (i.e. MagicPoint files) to be either shown as full-screen presentations on an X11 window or printed as PostScript slides. Images in several formats can also be included in the presentations. The programs in the package include:
  • mgp, which converts MagicPoint files to on-screen presentations;
  • mgp2ps, which converts the MagicPoint files to PostScript format;
  • mgpembed, which converts a MagicPoint file to an embedded MagicPoint file, i.e. one in which external references are resolved; and
  • mgpnet, a small HTTP server for making presentations on the Web.
The programs are documented in man pages. Several example MagicPoint files are also included in the distribution as templates for creating new presentations. The distribution can be compiled on most UNIX/X11 platforms via the included Imake files. A Perl distribution is also required for full usage.

[http://www.mew.org/mgp/]

MagicPoint Gallery
A collection of reusable templates for MagicPoint, the presentation tool for UNIX systems.

[http://puchol.com/cpg/software/mgp/]

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/]
[http://www.loria.fr/~zimmerma/mupad/magnum.html]

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://www.grouptheory.org/]

MagPIe
A library of MPI collective communications operations optimized for wide-area systems. MagPIe is a separate library designed to be an add-on to MPICH. No changes are needed to application sources to use this, although two functions need to be implemented that tell MagPIe how many clusters a wide-area system has and which MPI porcess is located in which cluster. A source code distribution is available. Documentation includes a couple of technical reports.

[http://www.cs.vu.nl/albatross/]

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]

Mahogany
An Open Source cross-platform mail and news client. The features include:
  • full support for SMTP, POP3, IMAP, NNTP and several different mail folder file formats;
  • full MIME support including editing in a composition window and support for external viewers;
  • support for any number of mixed types of incoming mail folders;
  • FAX receiving via efax.com;
  • support for X-Faces and user-defined message headers;
  • an embedded Python interpreter for full object-oriented scripting capabilities and access to the internal structures and classes;
  • a complete address and contact management database including option auto-collection of addresses from incoming mail;
  • extensive configurability with different configurations for different mail folders;
  • full I18N support;
  • a GUI based on GTK;
  • support for Emacs email address databases;
  • tree control based hierarchical folder management in the main window; and
  • a context-sensitive, HTML-based help system.
Several other features are currently (5/99) under development including a filtering language, encryption support, message templates, and more. A source code distribution is available.

[http://mahogany.home.dhs.org/]

MailTools
A collection of Perl 5 modules related to email in some way. The collection includes:
  • Mail::Address, which extracts a person's name from an address;
  • Mail::Alias, which manipulates mail alias files in various formats;
  • Mail::Cap, which parses mailcap files as per RFC 1524;
  • Mail::Field, a base class for packages that create and manipulate fields from email and MIME headers;
  • Mail::Filter, an interface for filtering mail through multiple programs or subroutines;
  • Mail::Header, a class object for reading, creating, manipulating and writing RFC 822 compliant headers; field names in headers;
  • Mail::Internet, for reading, creating, manipulating and writing messages with RFC 822 compliant headers;
  • Mail::Mailer, which sends mail using any of the available built-in methods;
  • Mail::Send, a simple email interface; and
  • Mail::Util, which provides several email-related utility functions.
A source code distribution is available.

[http://cpan.valueclick.com/modules/by-module/Mail/]

mail transport agent (MTA)
The available MTAs (i.e. mail servers) 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;
  • Mahogany, a cross-platform mail and news client
  • 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;
  • POSTIE, a command-line mailer;
  • Postilion, based on TkRat with additional features to create a clone of the NeXT mail app;
  • Pronto, developed using GTK and Perl;
  • QMH, a system for handling email complaints;
  • SOMA, a reader based on XViews;
  • ThorMail, a Web mail interface;
  • 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 list and related 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 ones;
  • list options which can be easily set via a configuration file and remotely edited;
  • archiving and remote retrieval of messages;
  • digests of messages and FTPMAIL;
  • confirmation of subscriptions and list filters; and
  • list filters.
The package actually consists of several programs which perform specific tasks including:
  • 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://www.conveyanced.com/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:

  • automake, a makefile generator;
  • bras, an alternative to make;
  • CONS, an alternative to make;
  • Cook, a software compilation system;
  • 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;
  • Jam, a redone make;
  • jmake, an automated alternative to creating makefiles;
  • Makefiles, a set of rules for compiling structured projects using other make implementations;
  • makepp, a drop-in replacement for GNU make with improved and additional features;
  • MK, a software compilation and revision control system;
  • Odin, a make replacement with additional features;
  • package, a skeleton framework into which source trees can be imported to create releaseable, buildable packages;
  • ppmake, a parallel make utility running on top of PVM,
  • prototype, a collection of Makefiles and templates for easing the construction and maintenance of projects,
  • SMake, a mechanism for generating standard makefiles out of skeleton makefiles which provide only the essential parts, and
  • TMAKE, for creating plaform-independent makefiles.

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/research/cc/glone/employees/joerg.schilling/private/makefiles.html]

makepp
A drop-in replacement for GNU make with additional features that allow for more reliable builds and simpler build files. It is written in Perl, supports almost all the GNU make syntax, and can be used with makefiles produced by automake. The improved and additional features include:
  • proper checking of include files, with an automatic dependency scanner that works even if the header files have yet to be built;
  • automatic rebuilding even if the build command changes, e.g. a change in command line options;
  • only rebuilding files if they are older than their dependencies;
  • better handling of recursive make invocations via reading all the makefiles into a single process;
  • optionally not recompiling source files if only comments and whitespace have changed;
  • wildcards in dependencies that can refer to files which can be built as well as to those which already exist;
  • a special wildcard that searches through all the subdirectories of a directory;
  • support for repositories, i.e. directories containing files that may be temporarily linked into the build tree if up-to-date files do not already exist there (for, e.g. separating source and object directories, variant builds of the same program, and multiple developers using the same source tree);
  • more sophisticated inferences about the object files that a program needs; and
  • no confusion over multiple names for the same file, e.g. xyz.o and ./xyz.o.

[http://LNC.usc.edu/~holt/makepp/]

makeself
A small shell script that generates a self-extractable tar.gz archive from a directory, with the resulting file appearing as an executable shell script. This is capable of using either gzip or bzip2.

[http://www.lokigames.com/~megastep/makeself/]

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.mame.net/]

MAML
The Multi-Agent Modeling Language is a special purpose programming language providing high-level constructs for describing agent-based computer models. The goal is to make the description of complex models easier while ensuring the simplicity and understandability of the computer program. MAML is currently an extension to Objective C using the Swarm libraries, i.e. it is a macro language for Swarm that provides easy access to all its functionality. It adopts an agent-based modeling paradigm within a discrete event simulation framework, i.e. models consist of a collection of independent agents interacting via messages and events.

The MAML package incorporates both the language definition and a MAML-to-Swarm compiler called xmc that converts MAML source code into Swarm applications. The documentation includes a tutorial, a reference manual, and several technical papers.

[http://www.syslab.ceu.hu/maml/]

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/]

man
Man pages are the traditional method of choice for documenting UNIX systems and utilities. They are usually created using one of the troff family packages and accessed via a program called man. Although quite a bit of Linux system documentation (most significantly that related to the GNU project) is offered in formats other than man pages, much of it is still available in the traditional format.

Man pages have traditionally been divided into nine sections:

  • man1, contains most of the commands comprising the user environment, e.g. text editors (vi, sed), command shell interpreters (bash, sh, tcsh), searching and sorting tools (grep, find, sort), file manipulation commands (cat), system status commands (top), remote file copy commands (rcp), mail commands (elm, mail), compilers and compiler tools (cpp, f77), formatted output tools (troff, eqn), and line printer commands (lpr, lpq);
  • man2, system calls in the C library;
  • man3, other functions in the C library;
  • man4, devices and device drivers (packet, socket, mouse, tty);
  • man5, file formats and conventions fstab, hosts, printcap, motd, termcap, term, ttytype);
  • man6, games;
  • man7, word processing and related programs (man, regex, me, glob, unicode);
  • man8, system maintenance and operation commands;
  • man9, system kernel interfaces.
These can and do vary somewhat among the various UNIX flavors, although most follow it reasonably well.

Programs for converting man pages from one format to another include:

Related and useful sites include:

[ftp://ftp.win.tue.nl/pub/linux/docs/manpages/]

gnumaniak
Up to date man pages for various GNU packages including fileutils, diffutils, sh-utils, libtool and textutils. The GNU project no longer maintains up-to-date documentation for these packages in man page format. This package does.

[http://personal.redestb.es/ragnar/]
[http://niteowl.userfriendly.net/linux/RPM/gnumaniak.html]

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 (1996a) and Rheinboldt (1996b).

[http://netlib.org/contin/manpak/]

man2html
A C program that converts man pages into HTML. The features include:
  • use of raw troff man pages where more layout information is available;
  • combination of proportional fonts and pre-formatted sections;
  • links to other man pages including local include files, email addresses, and FTP and WWW sites;
  • correct conversion of tables as well as readable tables with browsers that can't handle them;
  • a man page index;
  • nested indentation; and
  • printable layout for most pages.

[http://wsinwp07.win.tue.nl:1234/index.html]

MAP
The Materials Algorithms Project is a library of Fortran programs for calculating various properties and other things concerning materials like steel, nickel and crystals. The programs are divided into several categories including:
  • Steel
    • COLLAPSE, solves the problem of diffusion profile collapse during heat treatment;
    • DILAT, calculates the volume fraction of transformation from austerite to ferrite from a measure of the length change;
    • FERR, for the soft impingement problem in Fe-C-X alloys;
    • FINITE, solves the problem of X enrichment during the aging of bainitic steels;
    • FINN, another method for solving the previous;
    • HARDP, calculates the Vickers pyramidal diamond hardness of martensite, bainite and ferrite/pearlite mixtures;
    • MALLOY, calculates free energy of mixing, configurational entropy of mixing, enthalpy of mixing, and structural interfacial energy in mechanical allowing as functions of concentration, particle size and temperature;
    • MS, estimates the Ms temperature of an alloy steel as a function of the free energy;
    • MUCG46, a suite of software for modeling the thermodynamics and kinetics of solid-state transformations in steels;
    • SIMPOWER, calculates the overall transformation kinetics of phases precipitating under diffusion controlled growth;
    • SOL_BOR, calculates the soluble boron, nitrogen and boron nitride content of austenite at any temperature;
    • TTT_TO_CCT, converts an input TTT curve into a CCT curve using Scheil's additive reaction rule; and
    • YSMA956, calculates the components of the yield strength of the recrystallized and unrecrystallized mechanically alloyed ODS ferritic stell MA956.
  • Crystal
    • CEMSTRUCT, calculates the relative intensities of electron diffraction spots when forming a diffraction pattern from a region of cementite in a transmission electron microscope;
    • CORD, calculates the coordinate transformation matrix relating two crystals of arbitrary structure;
    • MET1 through MET6, which calculate the metric tensor for cubic crystal, tetragonal, orthorhombic, hexagonal or trigonal, monoclinic, and triclinic structures;
    • PROGRAM, an interactive program for the analysis of crystal structures;
    • TENSOR1 through TENSOR6, which calculate the metric tensor and its inverse for the same structures as with the MET programs; and
    • TYPE, checks for systematic absences in various lattice types.
  • General Kinetic Theory
    • GRAINGROWTH, simulates grain growth kinetics using a Monte Carlo method in two dimensions.
  • Neural Network Analysis
    • BAINITEPLATE_THICKNESS, estimates the bainite plate thickness of low-alloy steels as a function of transformation temperature, the chemical free energy available for nucleation, and the strength of austerite at the transformation temperature;
    • MA-STEEL, predicts the yield strength, ultimate tensile strength, and elongation of mechanically alloyed oxide dispersion strengthened ferritic stainless steels as a nonlinear function of the important processing and service variables;
    • NEURAL, predicts the Ac1 and Ac3 temperatures of steel as functions of the chemical compositions and heating rate; and
    • WELD_TOUGHNESS, estimates the Charpy toughness of steel as a function of strength, microstructure, chemical composition and temperature.
This is just a partial listing. Many other programs are available.

[http://www.msm.cam.ac.uk/map/entry.html]

Mapa
Modular Accelerator Physics Analysis is a package for designing and modeling particle accelerators. It is an object-oriented C++/Motif-based package whose features include:
  • parsing of MAD and SIL files, including full support for formulas;
  • on-line tracking with fully interactive phase space surface of section (SOS) plots;
  • interactive changing of beam and/or element parameters;
  • plotting the footprint of the full accelerator beamline to quickly check the physical layout;
  • plotting the Twiss parameters or the linear and second-order dispersion using interactive plots; and
  • writing to SIL files.
Although this is not yet (7/00) available, the developers plan to release the full source code.

[http://www.techxhome.com/products/mapa/]

MAPC
A C++ library for manipulating algebraically defined points and curves in the plain. It represents points and curves exactly and makes use of several techniques for increasing the efficieny of manipulating the points. MAPC provides classes for representing and manipulating:
  • multivariate polynomials with floating piont, multiprecision integer, or multiprecision rational coefficients;
  • algebraic numbers represented as the roots of polynomials within an interval;
  • 1- or 2-D points whose coordinates are defined as either algebraic or rational numbers;
  • sections of algebraic plane curves; and
  • 1- and 2-D boxes.
Algorithms are implemented which provide functions for:
  • rapidly finding the sign of a determinant of arbitrary size with entries that are arbitrary sized integers;
  • isolating all intersections of two algebraic plane curves in a region; and
  • decomposing a plane algebraic curve into monotonic subsections.
A source code distribution is available. It is built on top of the LiDIA library and also makes use of LAPACK.

[http://www.cs.unc.edu/~geom/MAPC/]

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/ftp/MAPGEN/mapgen.html]

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.stanford.edu/~bescoto/mapil/]

MapIt!
A CGI application for navigating raster maps via a web browser. The functionality includes zooming in and out, moving in four directions, and selecting objects and object classes identified on the map. This is written in Python and should work with most HTTP servers.

[http://www.mapit.de/index.en.html]

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.geocities.com/SiliconValley/Vista/3141/maplay.html]

MapServer
An open source development environment for building spatially enabled Internet applications. A CGI application included in the package provides numerous capabilities including:
  • support for vector formats including ESRI shapefiles, simple embedded features, and ESRI ArcSDE;
  • support for 8-bit raster formats including TIFF, GeoTIFF, GIF, PNG, ERDAS, JPEG and EPPL7;
  • quadtree spatial indexing for shapefiles;
  • fully customizable template-driven output;
  • feature selection by item/value, point, area or other feature;
  • TrueType font support;
  • support for tiled raster and vector data for display;
  • automatic legend and scalebar building;
  • scale-dependent feature drawing and application execution;
  • thematic map building using logical or regular expression based classes;
  • feature labeling including label collision mediation;
  • on-the-fly configuration via URLs and projection.

In addition to the MapServer plug-in CGI script, a facility called MapScript is available which allows access to the MapServer C API via scripting languages such as Perl. A PHP/MapScript module is also available.

Several utility programs are contained in the MapServer distribution including:

  • shp2img, creates a map from a mapfile;
  • legend, creates a legend from a mapfile;
  • scalebar, creates a scalebar from a mapfile;
  • sortshp, sorts a shapefile;
  • sym2img, creates a graphic dump of a symbol file; and
  • shptree, creates a quadtree-based spatial index for a shapefile.

[http://mapserver.gis.umn.edu/]

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/]
[http://www.cs.cmu.edu/~spot/markup/markup.html]

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 (regression)
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. Note: The original Statlib MARS package seems to have gone commercial, although similar functionality can be found in a couple of add-on packages for R, i.e. mda and polymars.

[http://www.stat.cmu.edu/R/CRAN/src/contrib/PACKAGES.html]

MARS (monitor)
The Monitoring Application for Resources and Servers is a Java application for monitoring the status of Internet servers. It monitors the status of both Internet services and operating system parameters, and displays the results in a small window. This uses a server written in Perl called SPOTS (Something Placed On That System) to pass data about OS parameters to the MARS program. The services and parameters currently (5/99) monitored include SMTP, POP3, IMAP, HTTP, FTP, SSH and load average, free disk space per filesystem, free memory. There is also planned supported for DNS, Telnet, SMB CIFS services and system uptime. A source code distribution is available which requires JDK 1.1.7 or later and Swing 1.1.

[http://www.altara.org/mars.html]

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 available tools include:
  • rsdr, a session directory tool;
  • vic, a video conferencing tool;
  • vat, an audio conferencing tool;
  • mb, a shared whiteboard tool;
  • collaborator, a combined user interface to video, audio and mediaboard conferencing;
  • nsdr, a session directory tool;
  • recorder, a recorder for RTP and SRM traffic;
  • player, a player for recorded RTP and SRM sessions;
  • rover, a client for interacting with the MARS archive server;
  • pathfinder, a web server for live and archive interaction;
  • mplug, a web browser plugin for MASH scripts; and
  • mediapad, a shared electronic whiteboard application for the PalmPilot.

The available services include:

  • AS1, an active service framework with a host manager (hm), a forwarding agent (megafor), and a monitoring tool (mgamon);
  • vgw, a video gateway;
  • agw, an audio gateway;
  • sdgw, a session announcements gateway;
  • tgmb, a reliable multicast proxy for mediapad; and
  • MARS, the MASH Archive Server.

A source code distribution of mash is available as are binaries for some platforms including Linux Intel. Extensive documentation is available for most parts of the mash system.

[http://www-mash.cs.berkeley.edu/mash/]

Mason
A Perl-based Web site development and delivery engine that allows Perl code to be embedded in HTML and pages to be constructed from shared, reusable components. The features include:
  • simple embedded syntax that allows HTML pages to access the full power of Perl;
  • templating with shared components, i.e. pages are built from Perl/HTML components that can call each other and pass values back and forth;
  • parameter handling, e.g. automatic parsing of GET/POST parameters and making them available as local variables;
  • easy use of the Perl debugger;
  • flexible mechanisms for caching pieces of HTML and data;
  • a built-in previewer for reviewing pages while simulating a variety of client and request conditions; and
  • staging and production modes.
Mason is available as Open Source.

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

Mason
A tool for interactively building a firewall using ipfwadm or ipchains. Mason runs on the firewall machine while desired supported connections are made, after which it constructs a list of firewall rules for allowing/blocking those connections. This was designed to allow even novices to build a reasonably good packet filtering firewall. The features of Mason include:
  • accepting an mix of ipfwadm or ipchains log entries as input as well as running on either and creating output from either;
  • running on the firewall machine or another machine using the firewall's packet logs as input;
  • running in real-time or after the fact using firewall logs;
  • a macro for dynamic IP addresses, e.g. a PPP link;
  • support for any interface that can carry TCP/IP traffic;
  • recognition of any protocol listed in /etc/services as well as commonly used ICMP protocols;
  • automatically handling setups like cable modems or satellites where the packets leave on one interface and enter on another;
  • automatically handling masquerading on the firewall;
  • automatic generalization of firewall rules in several ways;
  • changing rule policies on the fly without stopping and restarting;
  • setting of the TOS flag for FTP, FTP-DATA, IMAP, IRC, NNTP, POP, SSH, SNMP and Telnet to improve interactive performance by queuing interactive packets ahead of bulk transfer packets; and
  • an extensive manual with examples.

[http://users.dhp.com/~whisper/mason/]

masqdialer
A daemon that uses standard dialing tools (e.g. pppd and chat) to initiate and terminate dialup connections to ISPs upon a request from an authorized member of an LAN. This is designed to provide easily accessible control of multiple dialout modem connections to the members of a LAN using IP masquerade for Internet connectivity. It has a client/server design, so if a client is available for a platofrm then it can use masqdialer. The available clients include Java, Win95/NT, Tcl/Tk, Gnome and Qt clients. Source code distributions of the server and the clients are available.

[http://cpwright.villagenet.com/mserver/]

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
NOTE: This has disappeared but since it was one of the first things I put on this list I'm just too damned sentimental to remove it just yet. 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/]

MathML
The Mathematical Markup Language is a low-level specification for describing mathematics as a basis for machine communication. MathML is intended to facilitate the use and re-use of mathematical and scientific content on the Web as well as for other applications such as computer algebra systems, print typesetting, and voice synthesis. It is an application of XML and as such will eventually allow browsers to natively render mathematical expressions. It consists of a number of XML tags used to mark up an equation in terms of its presentation as well as its semantics, i.e. it attempts to capture some of the meaning behind the equations rather than concentrating entirely how they're going to be formatted.

Packages that implement MathML include:

  • Amaya, the W3C's browser and authoring tool;

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

WebEQ
A Java applet for viewing Web pages with MathML.

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

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.netlib.no/netlib/env/]
[http://netlib2.cs.utk.edu/env/]

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.cs.ruu.nl/pub/tex-archive/support/mathspad/]
[http://metalab.unc.edu/pub/packages/TeX/support/mathspad/]

Math3d
A 3-D computer graphics math library intended to simplify notation and produce easily maintainable code. It is designed to seamlessly integrate with OpenGL. The classes include:
  • M2d, M3d, M4d, 2-, 3- and 4-D vectors;
  • MQuat, quaternions;
  • MRot, rotation in axis/angle representation;
  • M4x4, a 4x4 homogenous matrix;
  • M3Frame, a Frenet 3-frame;
  • MLookAt, a Frenet 3-frame plus distance;
  • M2dRect, a 2-D rectangle; and
  • M3dBox, an axis-aligned bounding box.

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

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;
  • Bode Step Toolbox, a toolbox for the design of control systems with maximized feedback;
  • Bootstrap Toolbox, a set of functions for resampling, hypothesis testing and confidence interval estimation;
  • calibr, a CCD camera calibration toolbox;
  • Clusters, for performing clustering tasks;
  • Communication System Toolbox, for working with the digital coding of waveforms and digital transmission systems;
  • Coral, for analyzing seismic waveform data;
  • CtrlLAB, for feedback system analysis and design;
  • CUTE, a suite of programs and test problems for exploring linear and nonlinear optimization;
  • Data Visualization Toolbox, a set of programs for performing various data visualization tasks;
  • DBT, a toolbox for radar array processing;
  • Delta Toolbox, for control or systems engineering;
  • Differentiation Matrix Suite, Matlab functions for solving DEs using spectral collocation;
  • DiffMan, a toolbox for solving differential equations on manifolds;
  • DMTTEQ Toolbox, a toolbox for designing and testing various time domain equalizer design methods;
  • Econometrics Toolbox, a collection of econometric estimation methods;
  • FastICA, implements a fast fixed-point algorithm for independent component analysis and projection pursuit
  • FISMAT, for working with fuzzy systems;
  • Fraclab, for fractal analysis in signal processing;
  • GABLE, for learning geometric algebra;
  • GAOT, for experiments in optimization using genetic algorithms;
  • Geodetic Toolbox, a toolbox for geodetic calculations;
  • GTM, the implementation of a mathematical model for density modeling and visualization;
  • GUISDAP, an incoherent scatter design and analysis package;
  • HUTear, a toolbox for auditory modeling;
  • ica, for performing independent component analysis;
  • Krigeage, a kriging toolbox;
  • LIPSOL, for solving linear programs using interior point methods;
  • LMITOOL, for solving optimization problems;
  • LRD, for the joint estimation of the parameters of long-range dependence;
  • LSTT, a toolbox for performing various least squares calculations;
  • lyngby, a toolbox for analyzing fMRI times series;
  • Matlab Astronomy Library, a large collection of astronomy-related programs;
  • matlabPyrTools, tools for multi-scale image processing;
  • MatSeis, a seismic toolbox;
  • MAXDET, for solving determinant maximization problems;
  • MCS, a program for bound constrained global optimization using function values only and based on a multilevel coordinate search procedure;
  • MCSSA, tools for implementing Monte Carlo testing of singular spectrum analysis results;
  • MexCDF, an interface with NetCDF;
  • Mie Scattering Toolbox, a collection of functions for performing scattering calculations;
  • MINQ, a program for bound constrained indefinite quadratic programming based on rank 1 modifications;
  • M-Map, for creating geophysical field maps in several projections;
  • MRPSD, a set of programs for creating pulse sequence diagrams
  • MSSA, tools for implementing multichannel singular spectrum analysis;
  • MTM, for producing estimates of power spectral density from time series using the multiple taper method;
  • NBI, for solving nonlinear multicriteria optimization problems;
  • Netlab, a set of tools for the simulation of theoretically well-founded neural network algorithms;
  • 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;
  • N-way Toolbox, a toolbox implementing the Tucker models for N-way factor analysis;
  • OCEANS, for computing various oceanography-related quantities;
  • Octave, a Matlab-like program that can read most Matlab scripts;
  • OMP, a package for applying optimal multiparameter analysis in oceanography;
  • OPNML, a set of functions for postprocessing results from finite element hydrodynamic simulation codes;
  • Polynomial Toolbox, for performing many types of computations with and on polynomial matrices;
  • PRECISE, a Matlab toolkit for exploring the impact of finite precision on the quality of convergence of numerical methods;
  • PSD, for spectral estimation by the maximum entropy and Welch overlapped segment methods;
  • 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;
  • RIOTS, for solving optimal control problems;
  • 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;
  • SLS, for sparse least squares problems;
  • Smoothing Toolbox, a collection of tools for nonparametric regression and smoothing techniques;
  • SOM Toolbox, a toolbox implementing the self-organzing map (SOM) algorithm;
  • SPACELIB, a library for 3-D kinematics and the dynamics of systems of rigid bodies;
  • Spatial Statistics Toolbox, a toolbox for spatial statistics as used in econometrics;
  • SP-Semi, for semidefinite programming;
  • SSA, for singular spectrum analysis;
  • STAPLOT, for analyzing oceanographic data during and after a cruise;
  • Statbox, a library of statistical functions;
  • Source Coding Toolbox, a source coding toolbox;
  • 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;
  • TOMLAB, a general purpose environment for research and teaching in optimization;
  • Tree-Ring Toolbox, a set of functions for tree-ring analysis;
  • VRMLplot, for creating VRML plots from bathymetric data;
  • WAT, a toolbox for the empirical and theoretical statistical analysis of waves;
  • WAVEKIT, functions for wavelets and wavelet packet algorithms;
  • Wavelet Package, for working with compactly supported wavelets;
  • ZMAP, for implementing a broad range of traditional and novel techniques for seismicity analysis

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/]
[http://www.izap.com/~sirlin/matlab/]

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://obswww.unige.ch/Instruments/GIRAFFE/Files/matlab/astrolib.html]

matlabPyrTools
A collection of Matlab tools for multi-scale image processing. The package functionality includes:
  • recursive multi-scale image decompositions (pyramids) including Laplacian pyraamids, QMFs, wavelets, and steerable pyramids that operate on 1- or 2-D signals of arbitrary dimension;
  • fast 2-D convolution routines with subsampling and boundary handling;
  • fast point operations, histograms and histogram matching;
  • fast synthetic image generation including sine gratings, zone plates and fractals; and
  • display routines for images and pyramids including several auto-scaling options, rounding to integer zoom factors, and useful labeling.
A source code distribution is available

[http://www.cns.nyu.edu/~eero/]

MatLisp
A set of CLOS classes for handling matrices. The classes provide a simple and consistent wrapper interface to the matrix operations available via BLAS and Lapack. Matlisp is compatible with CMUCL, relying on its foreign function interface and the built-in type kernel:complex-double-float.

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

Matpack
A C++ numerics and graphics library containing the sort of numerical methods and data visualization algorithms often required by scientists and engineers. Some significant features of the library include:
  • a template class MpFFT providing a simple and powerful interface to the generalized prime factor complex fast Fourier transform and backtransform in 1-, 2- and 3-D;
  • a template class quaternion providing single and double precision quaternion numbers;
  • a large number of special functions including gamma, error, Bessel and Airy functions as well as exponential integrals, orthogonal polynomials, and vector coupling coefficients;
  • a large collection of high quality random number generators and classes to map the random numbers to various distributions;
  • a powerful class hierarchy for data interpolation using a wide range of algorithms;
  • differential equation solving classes including the Runge-Kutta-Fehlberg 4th and 5th order method and the Bulirsch-Stoer-Gragg extrapolation method;
  • a highly efficient matrix and vector class for linear algebra, eigenproblems, etc.;
  • a powerful X11 API called MpWindow that makes it easy to create GUIs;
  • a raster image class with basic drawing and image manipulation functions as well as I/O functions for various standard formats; and
  • a class of high-level graphics functions for 2- and 3-D rendering of arbitrary polygonal surfaces.

The package contains several applications built using the library including:

  • xmatrix, a 3-D data viewing and plotting tool;
  • calculator, a scientific calculator with many special functions;
  • falpha, a multifractal spectrum analyzer;
  • elements, a period table of elements browser;
  • mandel, a fractal generator with 3-D features; and
  • primefactor, for prime factor calculations.

[http://www.matpack.de/]

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/]

MatSeis
A seismic toolbox for Matlab. MatSeis provides a time-distance profile plot that integrates origin, waveform, travel-time, and arrival data. The package also includes routines for graphical plot controls, data manipulation, and signal processing. This is documented in a user's manual available in PostScript and PDF formats.

[http://zelzal.geology.indiana.edu/~sneal/tutorial/tutorial.html]
[http://www.ctbt.rnd.doe.gov/ctbt/data/matseis/matseis.html]
[http://www.nemre.nn.doe.gov/nemre/data/matseis/pl96_paper-html.html]

MatView
A scalable sparse matrix viewer for viewing and exploring large sparse matrices. Huge matrices can be reduced to a graphically viewable size for perusing the high-level structure, and more detailed views can be obtained by zooming and navigating through subregions of the matrix. The features of MatView include:
  • a variety of data reduction functions;
  • custom color adjustments or greyscale rendering;
  • filtering of matrix values outside the color map;
  • printing or saving of matrix views in PostScript or PPM format;
  • compatibility with several formats including Matrix Market, Harwell-Boeing and Matlab MAT files; and
  • loading of compressed files.
A source code distribution of this Tcl/Tk package is available.

[http://www.epm.ornl.gov/~kohl/MatView/]

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://lnc.usc.edu/~holt/matwrap/]

MATX
A high-performance programming language for numerical and symbolic computations in science and engineering. MATX integrates numerical analysis, matrix computations, and symbolic manipulation in a single package, and adds a language in which problems are expressed similarly to their mathematical equivalents. The features of MATX include:
  • mated, a matrix editor for entering and revising matrices;
  • XPLOT, a graph drawing environment running under X11;
  • a matrix class library composed of higher- and lower-level parts, with the latter containing about 300 functions and the former around 200;
  • matx, an interactive interpreter for quickly prototyping programs;
  • matc, a compiler for compiling production level programs for faster execution;
  • a language that recognizes several data types, e.g. integers, reals, complex numbers, strings, polynomials, rational functions, etc.; and
  • solving polynomial equations and symbolically evaluating derivatives and integrals.
A user manual is available in PostScript format, although it's a real sumbitch to attempt to print it.

[ftp://ftp.matx.org:/pub/MaTX/]
[http://www.matx.org/]

Maverik
A system for managing display and interaction in virtual reality applications. Maverik is designed to address the problems offered by virtual environments wherein many objects have real geometry and can therefore interact. It consists of two components:
  • a micro-kernel that implements a set of core services and a framework that applications can use to build complete virtual environments and virtual reality interfaces; and
  • various supporting modules containing default methods for optimized display management including culling, spatial management, interaction and navigation, and control of VR I/O devices.

The services provided by the Maverik micro-kernel and supporting modules include:

  • a framework for managing the display and interaction requirements specific to an application via a callback mechanism wherein applications register primitives they wish to deal with and the operations they can perform to display them;
  • a spatial management system for keeping track of objects in a 3-D environment (including functions for building and maintaining the data structures underpinning these tasks);
  • high-performance algorithms for culling, navigation and collision detection;
  • a complete set of primitive objects from which complex environments can be constructed, e.g. boxes, cylinders, spheres, cones, tori and polygon meshes;
  • the capability of easily constructing new classes of objects;
  • support for various VR I/O devices, e.g. stereoscopic head-mounted and projection displays, autostereoscopic display, hand- and head-tracking devices, sound output and speech recognition; and
  • navigation and interaction techniques, e.g. for mavigating a model using desktop 2D and 3D mice and conventional keyboards.

A unique aspect of Maverik is its use of an application's internal data structures rather than the conventional method of importing data in a special format. This allows it to easily take advantage of application-specific optimizations as well as more readily adapt to a wide range of application demands. Maverick currently (6/99) uses the OpenGL library to provide portability across many platforms.

Maverik distributions are available in both source code and RPM formats. The Linux distributions require that Mesa be available. Documentation includes several technical papers available in PostScript format.

[http://aig.cs.man.ac.uk/systems/Maverik/]

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.

[http://cds.duke.edu/pub/sunsite/devel/make/]

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.

[http://www.ma.utexas.edu/users/wfs/maxima.html]

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.*.*. See Hall (2000), Kumar (1995) and Savetz et al. (1996).

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;
  • mIR, an application for playing MPEG audio files via multicasting;
  • mMOD, a system for the recording and playback of MBone sessions;
  • mMosaic, a derivative of the Mosaic browser with multicast capabilities;
  • multikit, a distributed multicast-based directory browser;
  • mWeb, for real-time distribution of HTML pages and synchronization of browsers;
  • NeVoT, for participating in audio conferences;
  • Nt, a shared text editor for use on the MBone;
  • nv, a video conferencing tool for X11;
  • pmm, a message replicator for systems that don't support multicast;
  • 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;
  • RTP, a protocol for the transport of real-time data including audio and video;
  • rtptools, a set of applications for processing RTP data;
  • sd, a general managing tool for multimedia sessions;
  • sdr, a tool for managing 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.
Web sites appropriate to the topic are Multicast and MBone on Linux and Linux Multicast Information.

[http://www.cs.washington.edu/homes/esler/multicast/]

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/]

MCF (XML)
The Meta Content Framework provides a data model for describing information organization structures (i.e. metadata) for collections of networked information. The syntax for the data model is an instance of XML. In the MCF data model a database is a set of directed, labelled graphs consisting of a set of labels (or property types), a set of nodes, and a set of arcs (or properties) where each arc is a triple consisting of two nodes (a source and target) and a label. The nodes can represent things like Web pages, images, subject categories, channels and sites as well as their relationships (e.g. hyperlinks, authorship or parenthood) to other objects. A set of bootstrap nodes (i.e. units with predefined semantics) has been defined with which a type system can be bootstrapped. Their names are reserved such that they can only be used for specific purposes. A standard vocabulary has also been proposed that can be used for the purposes of describing the kinds of content found on the Web.

[http://www.textuality.com/mcf/NOTE-MCF-XML.html]
[http://www.oasis-open.org/cover/gen-apps.html]

MCITT
The Manufacturer's CORBA Interface Testing Kit is designed to aid in the testing of systems constructed using CORBA. It produces emulations or test servers from specifications of the behaviors important for specific scenarios. Using these specifications it automatically produces the CORBA boilerplate code, memory management, and stubs for unused operations needed for a test server. The behaviors can be defined procedurally using the Interface Testing Language (ITL) or declaratively using Component Interaction Specifications (CIS).

The ITL is a highly simplfied language for specifying and testing the behavior of CORBA clients and servers. An ITL compiler itlc uses a set of files called a binding to translate ITL into an implementation language. The CIS is a textual specification of an interaction scenario for an entire distributed system that can be used to generate servers that will execute the described scenario. A scenario consists of a tree of CORBA requests having specified inputs, outputs and return values. Other tools included in MCITT include:

  • idlmkmf, which generates makefile rules and variable definitions for a set of IDL files;
  • TEd, a tool for non-interactively editing test scripts and programs used, e.g. for automating the migration of ITL files from a C++ binding to Java.
A source code distribution of MCITT is available. It is defined in a user's guide available in HTML format.

[http://www.mel.nist.gov/msidstaff/flater/mcitt/]

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]

MCLUST/EMCLUST
A package for model-based cluster and discriminant analysis. It includes hierarchical clustering and EM for parameterized Gaussian mixture models. It also has functions that incorporate these into a comprehensive clustering strategy in which the Bayesian Information Criterion (BIC) is used to select the model and number of clusters. MCLUST is written in Fortran 77 with an interface to S-PLUS, although a version modified for use with R is also available.

[http://www.stat.washington.edu/fraley/mclust_soft.shtml]

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://omlc.ogi.edu/software/mc/]

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]

mcrypt
An encryption program meant to replace the standard UNIX crypt utility. This does not replace the file being encrypted but rather creates a new one with the extension .enc. Several symmetric (block) algorithms are used including DES, 3DES (or Triple DES), CAST, TEA, 3-WAY, BLOWFISH, TWOFISH, UNIX crypt, GOST and SAFER. The three available encryption modes are:
  • ECB (Electronic Cookbook Mode), i.e. a simple block cipher that encrypts each block independently;
  • CBC (Cipher Block Chaining), wherein the plaintext is XORed with the previous ciphertest; and
  • CFB (Cipher-Feedback Mode), which resembles a stream cipher implemented from a block cipher.
A source code distribution is available.

[ftp://argeas.cs-net.gr/pub/unix/mcrypt/]

MCS
A Matlab program for bound constrained global optimization using function values only. It is based on a Multilevel Coordinate Search that balances global and local searches, with the local search done via sequential quadratic programming. MCS is guaranteed to converge if the function is continuous in the neighborhood of a global minimizer. See ().

[http://solon.cma.univie.ac.at/~neum/isoftware/mcs/]

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]

MCSSA
A set of Matlab tools for implementing Monte Carlo testing of Singular Spectrum Analysis (SSA) results. The programs include:
  • MCSSA1, tests the null hypothesis that a signal is composed of pure AR(1) noise;
  • MCSSA2, tests the null hypothesis that a signal is composed of pure AR(1) noise plus signal;
  • MCSSADEM, a script demonstrating the use of the toolkit;
  • AR1NV, estimates the AR(1) parameters for a time series for the AR(1) noise null hypothesis in a naive way;
  • AR1, estimates the AR(1) parameters for a time series for the AR(1) noise null hypothesis in a more correct way;
  • AR1SIGNV, estimates the AR(1) parameters for the signal plus AR(1) noise null hypothesis in a naive way;
  • AR1SIG, estimates the AR(1) parameters for the signal plus AR(1) noise null hypothesis in a more correct way;
  • AR1EOF, computes the theoretical EOFs of an AR(1) process;
  • AR1EOF2, computes the theoretical EOFs for a signal contaminated with AR(1) noise;
  • AR1NOISE, generates multiple AR(1) noise realizations given the AR(1) parameters;
  • AR1PSD, computes the theoretical spectral density of an AR(1) process;
  • CONFLIM, computes the confidence limits for an ensemble of surrogates;
  • EOFCORR, examines correlations between two sets of eigenvectors;
  • EOFFREQ, calculates the dominant frequency associated with each of the EOFs;
  • EOFPROJ, projects a covariance matrix on an eigenvalue;
  • EOFSYM, determines whether EOFs are symmetric, anti-symmetric or neither;
  • CHI2CONF, compute approximate confidence limits for an eigenspectrum using the chi-squared distribution;
  • WILHIL, computes the Wilson-Hilferty approximation to the chi-squared distribution;
  • MCBINOM, computes the cumulative binomial distribution; and
  • PLOTEIG, creates a plot of an eigenspectrum with confidence limits.

[ftp://ftp.gi.alaska.edu/pub/eric/mcssa/]

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/]

MDACCLIB
A collection of statistical analysis software created by the M. D. Anderson Cancer Center's Department of Biomathematics. The software, most of which is written in Fortran with a smattering of C, includes:
  • ACCFLF, fits the accelerated failure model to data with or without covariates;
  • BERDS, an implementation of an automatic variable selection algorithm for use in multiple linear regression;
  • B1CISI, finds confidence intervals for single-stage trials involving a single group which have a binomial outcome;
  • BUSSPA, tests for differences in binomial probabilities in two groups;
  • CID2BP, calculates confidence limits on the difference between two binomial proportions according to nine different methods;
  • CRM, implements the Continual Reassessment Method (CRM) for dose-finding in Phase I clinical trials;
  • CUMNOR, computes the cumulative normal (Gaussian) distribution for arguments up to +/- 67861400;
  • DCDFLIB, a library of routines for cumulative distribution functions, inverses and other parameters;
  • DSTATTAB, calculates the cumulative distribution functions, inverses, and values of parameters for several statistical distributions;
  • EFFTOX, implements a strategy for dose-finding and safety monitoring based on efficacy and adverse outcomes in phase I/II of clinical trials;
  • EXPSURV, a set of Xlisp-Stat routines for performing interactive dynamic exploratory graphical analysis of survival data;
  • EXTSIG, provides exact p-values for a test of difference between two binomial proportions as well as the usual chi-square value and Fisher's p-value;
  • FLECS90, converts code written in the Fortran Language Extended Control Structure Processor to Fortran 90;
  • KSB1CI, finds confidence intervals for single- or multiple-stage trials involving a single group which have a binomial outcome;
  • KSBIN1, plans exact single- or multiple-stage experiments on a single group with a binomial outcome;
  • KSBIN2, performs the computations needed to plan multiple-stage experiments involving dichotomous outcomes for comparing the probabilities of an outcome between the two groups;
  • MULTC, for implementing the design strategy for monitoring multiple outcomes in clinical trials;
  • MULTI, corrections for multiple hypothesis testing by any of eighteen different methods;
  • PHASE1, for planning and conducting Phase I trials designed to find the maximum tolerated dose;
  • RANDLIB, a library of routines for random number generation;
  • RANLIST, produces randomization lists with both restricted and unrestricted randomization;
  • SINGLE, finds ``good'' single-stage designs for conducting dose-response experiments in which a logistic or log-log models the probability response as a function of the dose;
  • SOGS, simulates schemes for rapidly breeding congenic mice;
  • STPLAN, performs power, sample size, and related calculations needed to plan studies;
  • SURVAN, survival calculations including Kaplan-Meier estimation, long-rank and Gehan-Breslow tests, proportional hazards and logistic regression models; and
  • WINDOWS, provides a variety of window, kernel and moving average estimators.
There are also several S programs which can probably be used with the R package.

[http://odin.mdacc.tmc.edu/anonftp/]

MDA-SW
The Multivariate Data Analysis SoftWare is a collection of (mostly) Fortran 77 programs for performing various types of multivariate data analysis. The available programs include:
  • pca, for principal components analysis;
  • part, for partitioning;
  • hc, for hierarchical clustering using stored dissimilarities;
  • hcon2, for hierarchical clustering without storage of dissimilarities;
  • lda, for linear discriminant analysis;
  • mda, for multiple discriminant analysis;
  • knn, for K-nearest neighbors discriminant analysis;
  • ca, for correspondence analysis;
  • cmds, for classical or metric multidimensional scaling;
  • sammon, for Sammon mapping; and
  • koh, for Kohonen self-organizing feature maps.
A source code distribution is available.

[http://astro.u-strasbg.fr/~fmurtagh//mda-sw/]

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.

[http://www.gl.umbc.edu/~mabzug1/cs/md5/md5.html]

MDSAX
The Multi-Document Simple API for XML is a set of tools for working with Java SAX parsers and parser filters. This provides more control over the creation and arrangement of SAX filters and makes is easier to specify different filter stacks for different t ypes of documents. It also provides access to several services that allow filters to communicate amongst themselves and with the application.

[http://www.jxml.com/mdsax/]

MEAD
The Macroscopic Electrostatics with Atomic Detail package implements macroscopic, dieletric models of the macromolecule-solvent system. The protein is treated as a low dielectric medium immersed in a high dielectric solvent, and the electric potential is determined by the Poisson-Boltzmann equation solved via finite difference methods. The details of the atomic structure of incorporated into the placement of charges and dielectric boundaries. Source and binary distributions are available, with one of the latter being for Linux Intel platforms. See Bashford (1997).

[ftp://ftp.scripps.edu/pub/electrostatics/]

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]

MEBDF
A Fortran 77 routine for solving 1st-order systems of initial value problems (IVP) for ODEs. This is TOMS algorithm 703 and is documented in Cash and Considine (1992b) and Cash and Considine (1992a).

[http://www.acm.org/calgo/contents/]
[http://www.acm.org/toms/V18.html]
[http://www.netlib.org/toms/index.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 include:

  • 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/]

Medusa DS9
A package that improves the security of Linux by extending the standard security architecture via the implementation of a user-space authorization server at the kernel level. The kernel asks the authorization server for confirmation before executing certain operations. The server permits or forbids the operation, and can even affect the way in which the operation is executed in some cases. This method allows the use of almost any security architecture, and enables access rights within the system to be determined to a very fine level. It also allows extensive and thorough auditing capabilities.

The Medusa DS9 system consists of two basic parts:

  • a kernel patch; and
  • a user space security daemon called a constable, i.e. the authorization server.
Communications between the kernel and server are performed via a special device /dev/medusa, e.g. when the kernel needs confirmation, it writes data to this device, makes the current process sleep, and wakes up constable. The daemon then reads the device data, chooses a response, sends it back to the kernel, and sleeps. Finally, the kernel receives the response, wakes the processes, and determines the result of the operation.

The features and functionality of Medusa DS9 include:

  • full access control to any file in the system via VFS;
  • redirecting access, e.g. from a selected file to another file;
  • complete control of signal sending and receiving;
  • direct control of important process actions;
  • control of the execution of any syscalls for specified processes;
  • hiding processes or files from other processes via a virtual subsystem (VS) within which every process has assigned access rights;
  • a login uid (luid) for every process;
  • forcing execution of specified code for any process; and
  • low level control of any system call.

[http://medusa.fornax.sk/]

meep!Board
A message board system whose features include:
  • moderation capabilities;
  • fully customizable design of all pages using HTML;
  • administration tools for deleting or trimming posts;
  • customizable program options for date format, time of post and email;
  • use of HTML within messages;
  • message previewing;
  • embedded message threading;
  • message editing by a list moderator; and
  • many configuration options including number of messages to list, thread deletion, removing inactive threads, etc.
A source code distribution is available which can be used on any UNIX machine with Perl 5 and telnet access.

[http://www.meep.com/product/]

MEME
Multiple EM for Motif Elucidation is a tool for discovering and using protein and DNA sequence motifs. A motif is a pattern of nucleotides or amino acids that appears repeatedly in a group of related DNA or protein sequences. The MEME system represents such motifs as position-dependent scoring matrices and consists of two programs:
  • MEME, for discovering motifs shared by a group of sequences; and
  • MAST, for searching databases for sequences containing these motifs.
A source code distribution of this ANSI C package is available. It is documented in a series of technical reports available in PostScript format. See the related Meta-MEME.

[http://www.sdsc.edu/MEME/]

memory allocation/management
Packages for handling memory allocation and management tasks include: See also the garbage collection entry.

[http://www.cs.colorado.edu/~zorn/DSA.html]

memwatch
A memory leak detection tool whose features include:
  • logging to a file or a user function;
  • fault tolerent, i.e. it can repair its own data structures;
  • detection of double and erroneous frees;
  • detection of unfreed memory;
  • detection of overflow and underflow to memory buffers;
  • setting maximum allowed memory to allocate to stress test an application;
  • assert and verify macros;
  • detection of wild pointer writes; and
  • collection of allocation statistics at application, module or line level.

[http://www.link-data.com/sourcecode.html]

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://www.cs.virginia.edu/~mentat/]

Mercat
A cross-platform language and programming system whose features include:
  • garbage collection;
  • portable binary files;
  • a C-like syntax;
  • associative arrays as a primitive data type;
  • real strings;
  • expandable via a simple and fast system call interface; and
  • self-host, i.e. the compiler and assembler are written in Mercat.
The assembler and compiler sources are available along with runtime binaries for several platforms including Linux Intel.

[http://wired.st-and.ac.uk/~dg/]

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/]

Merlin
A security tool for managing other security tools. It provides other powerful and cryptic command-line tools with an easy to use interface. The features include:
  • a Web-based interface accessible via a browser;
  • standard support for several popular tools including COPS, Tiger, Crack, Tripwire and SPI;
  • easy extensibility to any other command-line oriented tool that sends information to standard output; and
  • a report browser providing the ability to sort reports based on the type of tool used, the creation date, or the host where the report was produced.
A source code distribution of this set of Perl scripts is available.

[http://ciac.llnl.gov/ciac/ToolsUnixSysMon.html]

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.

[http://videoc.lip6.fr/queinnec/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.mesa3d.org/]
[http://sunsite.unc.edu/pub/Linux/X11/devel/libraries/]

Me3D
A 3-D polygonal modeling program for creating OpenGL models for use in games and other programs that perform real-time rendering. It is intended to be similar in functionality to WorldCraft and is not intended for creating models for ray tracers. A source code distribution is available. Compilation and use require both Mesa and GTK.

[http://www.cs.washington.edu/homes/samr7/me3d/]

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; and
  • memory tracking for locating leaks.

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
Related sites include:

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-Maker
A program for generating 3-D unstructured tetrahedral meshes for use in studies of flow over topography. This was developed and will compile on Linux platforms.

[http://grytviken.leeds.ac.uk/~jason/Mesh-Maker/]

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. Mesh-TV was developed to help scientists analyze data produced by physics and simulation codes and differs from other tools in that it handles multi-block data, mixed material zones, and multi-species materials. It also handles several mesh types including 2- and 3-D multi-block rectilinear, curvilinear and unstructured meshes.

The features of Mesh-TV include:

  • providing quantitative data via:
    • pick-and-query wherein the user picks a point on a plot and the coordinates and value of the variable are printed;
    • value versus distance plots wherein a user chooses a line across a plot and the variable value is plotted as a function of distance along that line; and
    • retention of axes during zooming, panning and rotating operations.
  • comparison of data via several techniques including:
    • multiple graphics windows for side-by-side comparisons;
    • overlaying of images; and
    • simultaneous display of data from many diffferent files either in separate windows or overlaid.
  • a wide range of plot types including:
    • material boundary plots, i.e. lines or filled areas for 2-D mesh data and surfaces for 3-D meshes;
    • iso-contours, i.e. lines or pseudo-color fo 2-D mesh data and surfaes for 3-D meshes;
    • mesh plots;
    • vector plots;
    • 3-D surface plots of 2-D mesh data; and
    • stereoscopic viewing of 3-D images.
  • many data operations including:
    • reflection about any axis;
    • orthogonal and arbitrary slicing of 3-D data;
    • material species selection;
    • index selection, i.e. zooming in on a region specified by nodal indices; and
    • algebraic and mathematical function manipulation of data.
  • Motif-based GUI and command-line interfaces as well as the capability of writing and running batch scripts;
  • creating animations from a series of raster images;
  • a distributed mode wherein a simulation on one machine can send data to Mesh-TV on another machine while it is running; and
  • use of either IEEE 32-bit floating point numbers or a special scientific data format called SILO.

Source code and binary distributions of MeshTV are available, with one of the latter being for Linux Intel platforms. The SILO data system is also separately available. Documentation includes a tutorial, a user's manual, a command-line interface manual and a SILO manual, all of which are available in PostScript format.

[http://www.llnl.gov/bdiv/meshtv/]

MESS
An emulator for several game/computer systems including NES, Sega Genesis/Megadrive, TRS-80, Colour Genie, Colecovision, the Apple ][ series, Atari 800 and 5200, Bally Astrocade, Kaypro 2X, PDP-1, Sega Master System/Game Gear and Vectrex. A source code distribution of this C package is available as are binaries for several platforms.

[http://www.vintagegaming.com/emulators/messnews.html]

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]

MetaDot Portal Server
An integrated, open source package for running Internet and Intranet sites. The server functions include:
  • information management capabilities that allow non-technical users to publish, subscribe and syndicate dynamic content;
  • content aggregation and user customization via features allowing users to collect and place content from a variety of sources into a single page;
  • project areas where users can store documents, host discussion forums, publish information, and manage their own virtual communities;
  • security by both groups and users;
  • link management;
  • personalization;
  • online discussion via built-in bulletin boards;
  • a graphical dynamic layout system;
  • system resource monitoring;
  • dynamic table definition;
  • a registration approval system;
  • an LDAP approval system;
  • monitoring numerous discussions on a single page via newspaper views;
  • polls; and
  • an open and extensible architecture.
The Portal Server is built on top of Perl, MySQL and Apache.

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

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 (1986e) or Knuth (1986b), the former being the paperback and the latter the hardback version. The source code for the program is available as Knuth (1986c) and the details of the computer modern typefaces created by the author using METAFONT in Knuth (1986d). 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/]

MetaKit
A software development library for the storage, transport and manipulation of structured objects and collections in C++. This is a small and self-contained library for maintaining persistent data. The MetaKit library is freely available for personal and non-commercial use.

[http://www.equi4.com/metakit/python.html]

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 contains several programs for specific tasks including:

  • audiocompose, for preparing and previewing audio fragments;
  • audiosend, for sending audio fragments via email;
  • extcompose, for composing a reference to external data for inclusion in a mail message;
  • getfilename, asks for the name of a file in the specified format;
  • mailto-hebrew, for sending mail in mixed Hebrew and English;
  • mailto, multimedia mail sending program;
  • metamail, main program for mailcap-based multimedia mail handling that calls other programs as needed;
  • metasend, crude interface for sending non-textual mail;
  • mimencode, translates to and from mail-oriented encoding formats;
  • richtext, for viewing a richtext document in an email message;
  • showaudio, for playing audio fragments in email messages;
  • showexternal, attempts to obtain the real body of an email message that is included only by reference;
  • shownonascii, view all or part of a mail message in a non-ASCII format;
  • showpicture, view an image received in the mail; and
  • splitmail, split a large mail message into MIME-compliant partial messages.

The capabilities of these programs provide include:

  • plain US ASCII text, plain text in the ISO-8859-8 (Hebrew/English) character set,
  • richtext (i.e. multifont formatted text),
  • image formats (using xloadimage),
  • audio and multipart mail which combines several other types,
  • multipart/alternative mail which offers data in multiple formats;
  • encapsulated messages,
  • partial and external messages (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.

[http://sunsite.org.uk/computing/mail/metamail/]
[http://metalab.unc.edu/pub/Linux/system/mail/mailhandlers/]

Meta-MEME
A toolkit for building and using motif-based hidden Markov models of DNA proteins. Meta-MEME combines a set of similar protein sequences and a set of motif models discovered by MEME into a single, motif-based Markov model and uses it to produce a multiple alignment of the original set of sequences and to search a sequence database for homologs. The programs comprising Meta-MEME include:
  • mhmm, which creates motif-based hidden Markov models (HMMs) of families of related proteins;
  • mhmmt, which trains the parameters of a given HMM using expectation-maximimization (EM);
  • mhmma, which uses a given HMM to produce a multiple sequence alignment of a given set of sequences;
  • mhmms, which searches a protein sequence database using a Meta-MEME motif-based HMM produced by mhmm;
  • mhmm-convert, which converts a linear HMM in Meta-MEME format into HMMER 1.8 format; and
  • score-n-store, a general program for interpreting sorted search results.
A source code distribution of this ANSI C package is available. It is documented in a series of technical papers available in PostScript format.

[http://metameme.sdsc.edu/]

METAN
An integrator for stiff systems of autonomous ordinary differential equations. METAN uses a semi-implicit mid-point rule with h$^2$-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 (1983a) and Deuflhard (1983b).

[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]

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;
  • EOFPACK, a set of codes for performing various types of EOF analysis;
  • FLEXTRA, a kinematic trajectory model;
  • GRIB, a general purposedata exchange format for meteorological data;
  • HWM93, an empirical model of the horizontal neutral wind in the upper themosphere;
  • iplib, a library for interpolating between almost any types of grids used in meteorology; and
  • Streamer, a radiative transfer model for computing either radiances or irradiances for a wide variety of atmospheric and surface conditions.

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]

Metre
An ANSI/ISO standard C parser whose behavior is determined by a set of rules. Rules files are provided for a tool that prints call trees as well as for a metrics tool. The latter is called metre and reports the minimum, maximum, average at the function, module and project level for several metrics including:
  • Halstead's length, vocabulary, volume, level, effort, intelligence content, programming time, and language level;
  • number of source, code, comment and blank lines;
  • number of executable, declaration and preprocessor statements;
  • backfired function points;
  • maximum control depth;
  • identifier count and length; and
  • number of functions and modules.
The call tree tool is called mtree and prints a call graph as an annotated, indented tree of function names.

A source code distribution of Metre is freely available. It is written in standard C, lex and yacc and is portable across operating systems, compilers, and various flavors of lex and yacc. Documentation includes a user's guide in ASCII format as well as some man pages.

[http://www.lysator.liu.se/c/metre-v2-3.html]

MEVAS
A Fortran 77 implementation of an algorithm for the computation of a state feedback for multi-input linear systems that result in a closed-loop matrix with a specified self-conjugate set of eigenvalues. The computation uses only real arithmetic, assigning complex conjugate eigenvalues in one double step. Level 1 BLAS routines are used wherever possible. This is TOMS algorithm 747 and is documented in Miminis and Roth (1995).

[http://www.acm.org/calgo/contents/]
[http://www.netlib.org/toms/index.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.seindal.dk/rene/gnu/]
[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.cs.mu.oz.au/mg/]

MGCP
The Media Gateway Control Protocol is for controlling Voice over IP (VoIP) gateways (also known as telephony gateways) from external call control elements called media gateway controllers or call agents. Telephony gateways are network elements providing conversion between audio signals carried on telephone circuits and data packets carried over the Internet. MGCP assumes that call control intelligence is external to the gateways and handled by external call control elements or call agents. These call agents synchronize with each other to send coherent commands to the gateways under their control, although MGCP does not itself define such a synchronization mechanism. This is a master/slave protocol in which gateways execute commands sent by the call agents. See also the SGCP.

[http://info.internet.isi.edu:80/in-drafts/files/draft-huitema-megaco-mgcp-v1-00.txt]
[http://www.computertelephony.org/]

mgcp
An implementation of the MGCP protocol stack for Linux platforms.

[http://www.vovida.com/sub_mgcp.cfm]

mgetty+sendfax
A package consisting of two programs:
  • mgetty, for optimizing the use of a modem in a UNIX environment by handling incoming calls without interfering with outgoing calls as well as by receving FAXes;
  • sendfax, a backend program for sending FAXes.
The features of sendfax include:
  • sending FAXes directly or via shell scripts;
  • performing FAX polling, i.e. calling elsewhere and having them send a FAX to you; and
  • creating a FAX queue in which outgoing FAXes are automatically sent and the user is informed via email.

The features of mgetty include:

  • knowledge of smart modems to ensure that the modem is always in a defined state;
  • manual answering of incoming calls instead of auto-answer so the modem won't pick up the phone when the machine is down or logins are not allowed;
  • incorporation of all features of uugetty;
  • receiving FAXes if the modem supports FAX class 2 or 2.0;
  • awareness of incoming FidoNet calls;
  • extensive logging and debugging features;
  • setting up a machine as a FAX poll server;
  • selective refusing of calls based on CallerID; and
  • refusing incoming FAXes if disk space is low.

A source code distribution is available. This has been successfully installed on most UNIX flavors and supports quite a few modems as well. Documentation is contained in a manual as well as in a set of man pages.

[http://alpha.greenie.net/mgetty/]

MGF
The Material and Geometry Format is a least common denominator language for describing scenes and objects suitable for physically-based rendering applications. It is expressly suited for visible light simulation and rendering. The specification includes 28 entities divided into such categories as color, material, vertex and geometry. The package also contains an MGF parser and three MGF data translators:
  • mgfilt, for getting usable MGF entities;
  • mgf2inv, for converting from MGF to Inventor or VRML format; and
  • 3ds2mgf, for converting 3-D Studio binary files to MGF format.
Additional translators can be found in the Radiance package.

[http://radsite.lbl.gov/mgf/HOME.html]

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/]
[http://math.nist.gov/mcsd/Staff/WMitchell/mgghat/mgghat.html]

MGL
The Multi-platform Graphics Library was designed for creating interactive graphics applications. It provides fast, low-level rasterization of 2- and 3-D primitives that can be used for creating games, user interfaces, and other real-time graphics applications. The features include:
  • OpenGL API hardware and software support;
  • a game framework for creating commercial quality games;
  • a sprite library for hardware and software sprite management;
  • support for hardware triple buffering;
  • optimized 32-bit assembler rasterization;
  • full hardware and software double/multi-buffering support;
  • hardware scrolling/panning surfaces;
  • rendering direct to video memory, off-screen video memory, and to system memory buffers;
  • real-time 8-bit dithering;
  • resolutions from 320x200 to 1600x1200;
  • color depths from 4 to 32 bits per pixel;
  • automatic detection and use of VGA, ModeX, VESA VBE, VESA VBE/AF;
  • a C++ wrapper class API;
  • 2- and 3-D graphics output features including lines, rectangles, ellipses, elliptical arcs, text, monochrome bitmaps, complex regions, BitBlt, TransBlt, StretchBltt, z-buffered triangles and quads, etc.;
  • support for double buffered mouse cursors;
  • JPEG bitmap file loading;
  • bitmap and scalable vector fonts; and
  • full-screen port of GLUT.

The full MGL package also contains several supplemental libraries including:

  • a MegaVision GUI library, a fully object-oriented user interface library;
  • a Fixed/Floating Point Transform library that provides high performance fixed or floating point math functions (e.g. trig functions, 2- to 4-D vector math functions, 2- and 3-D transformation matrices);
  • a Quick2D Rendering library that provides a fast fixed/floating point 2-D world coordinate system and full support for arbitrary 2-D transformations;
  • a Quick3D Rendering library that provides a fast fixed/floating point 3-D world coordinate system and support for arbitrary 3-D transformations;
  • a QuickModeller 3-D Modeling library that provides support for building complete modeling hierarchies and for single polygons and polygonal models; and
  • a Techniques Class library for neatly implementing various data structures in C++.

The entire package is available under an open source license.

[http://www.scitechsoft.com/dp_mgl.html]

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.netlib.no/netlib/misc/mglab/]
[http://casper.cs.yale.edu/mgnet/www/mgnet/Codes/wesseling]

Mgraph
A package for creating 2-D plots of scientific data that can be used interactively (via a GUI) or on the command-line. The features include:
  • output files in PostScript, TIFF or GIF format;
  • no internal limits on the size of data files;
  • up to 10 simultaneous graphics windows;
  • graphics database management capabilities;
  • interactive formatting of documents;
  • digitization of curves either read in TIFF format or grabbed directly onscreen;
  • various methods for fitting equations to curves;
  • contour drawing and several available geographical projections;
  • batch processing via command files; and
  • easy integration into Fortran or C programs.
Binary distributions of Mgraph are available for several platforms including Linux Intel. A man page provides most of the documentation, although quite a few examples are additionally available.

[http://www-loa.univ-lille1.fr/Mgraph/mgraphE.html]

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://ss104.is.kyushu-u.ac.jp/software/MGTP/]

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.

[ftp://volftp.mondadori.com/pub/pc/windows/win95/programming/]

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; and
  • encapsulation where some messages (such as digests) encapsulate other messages in their body.

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/]

mhash
An ANSI C thread-safe has library containing several hash algorithms that can be used to create checksums, message digests, etc. The algorithms currently (7/99) supported include MD5, SHA1, GOST, TIGER, RIPE-MD160 and HAVAL. A source code distribution is available under a BSD-style license.

[http://schumann.cx/mhash/]

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/]

Micq
Matt's ICQ clone is a clone of ICQ for Linux. It is currently (10/98) available for console mode although a GUI is supposedly in the works. A source code distribution is available.

[http://phantom.iquest.net/micq/]

Microwindows
An open source project for bringing the features of modern graphical windowing environments to smaller devices and platforms. The project has two implementations:
  • Microwindows, for the Win32/WinCE API for Windows variants; and
  • Nano-X, an Xlib-like API for UNIX variants.
The UNIX version runs on 32-bit Linux systems with kernel framebuffer support, under X11, or through SVGALIB. It has also been ported to 16-bit Linux ELKS. The entire system requires less than 64k on 16-bit systems and around 100k on 32-bit systems.

The graphical and other features of Microwindows include:

  • full RGB color support and color mapping;
  • optimized palette bitmap drawing;
  • truecolor and palletized displays;
  • a 3-D look and feel;
  • overlapped and child windows;
  • complete window and client area clipping;
  • proportional and fixed fonts;
  • optimized painting algorithms for maximum response while windows are being moved;
  • offscreen drawing and bit-blit routines for flicker-free drawing and animation; and
  • polygon draws, fills and arbitrary region clipping.
Both source code and binaries are available.

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

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. MIDAS is free for non-commercial usage with licenses available for commercial use.

[http://www.s2.org/midas/]

Midgard
A platform for creating Web applications built on top of Apache, PHP and MySQL. Midgard has several features for developing, processing and maintaining Web sites including:
  • a powerful implementation of database connectivity such that the entire site can be served from databases;
  • separation of content, layout and functionality for easier maintenance and quicker deployment;
  • a platform-independent interface for administration via a Web browser; and
  • a customizabile front-end for the administration toolset.

The components of Midgard are:

  • a relational database (MySQL) for storing all content, i.e. a set of tables for storing Midgard records like articles, persons, hosts and styles;
  • a core library that handles basic tasks like database connectivity, user authentication and authorization;
  • a mod_midgard translation module that maps URLs to Midgard database addresses, collects all the style elements needed for page generation, and handles the initialization and termination of the persistent Midgard database connections; and
  • a midgard-php content generation module that generates the HTML pages.
A source code distribution is available under the GPL.

[http://midgard.greywolves.org/]

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:

See Young (1996).

[http://sound.condorow.net/]
[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;
  • context dependent actions; and
  • a powerful built-in file viewer.

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.gnome.org/mc/]

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://sunsite.unc.edu/pub/Linux/apps/graphics/rays/pov/]

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 compute 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;
  • calcVecYlm, which calculates vector spherical harmonics; and
  • calcMNeo, 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.unternehmen.com/Bernhard-Michel/eindex.html]

Mie Scattering Toolbox
A collection of Matlab functions developed to perform scattering calculations for a scanning nephelometer. The basic functions compute the intensity of light scattered from a single homogeneous spherical particle as well as from distributions of particles and for polychromatic light.

[http://lboro.ac.uk/departments/el/research/optics/matmie/mfiles.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/Homogen_Sphere/Exact_Mie/]

MIF
A set of programs for solving time-dependent PDEs in 1-D that have solutions with steep gradients in space and time. This technique combines a moving-grid method based on a Lagrangian description of the PDE and a smoothed-equidistribution principle to define the grid positions at each time level with a spatial discretization method that automatically discretizes the spatial part of the user-defined PDE using the method of lines. This is TOMS algorithm 731 and is documented in Blom and Zegeling (1994).

[http://www.acm.org/calgo/contents/]
[http://www.netlib.org/toms/index.html]

mif_la
Translates FrameMaker MIF files to LaTeX source.

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

MikMod
This package consists of a sound library (libmikmod) and a module player (MikMod). It can be used to play MOD sound module format files as well as those in the IT, XM, S3M, MTM, 669, STM, ULT, FAR, MED, AMF and DSM formats. A source code distribution of this is available as is a Linux Intel binary. It can be compiled on most UNIX flavors.

Other programs that use libmikmod for their sound module playing needs include:

  • AlsaPlayer, a player for various types of audio data;
  • ClanLib, a platform-independent interface for game development;
  • Crystal Space, a 3-D multimedia application development environment;
  • MAM/VRS, a multimedia application development library; and
  • xmms, a cross-platform multimedia player.

[http://mikmod.darkorb.net/]

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. See Johnson (2000).

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://mindseye.sourceforge.net/]

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://sunsite.org.uk/computing/programming/languages/dylan/dylan/Mindy/]

MINF
A Fortran 90 implementation of a minimization algorithm designed for use in a limited-memory environment. It includes implementations of the Buckley-LeNir method, Nocedal's limited memory algorithm, and an experimental limited-memory implementation of a factored update. It also includes a standard quasi-Newton implementation. This is TOMS algorithm 734 and is documented in Buckley (1994b) and Buckley (1994a).

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

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://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/]

minicom
A serial communications program resembling the DOS TELIX program. The features including a dialing directory with auto-redial, support for UUCP-style lock files on serial devices, a scripting language with an interpreter, capturing to file, and multiple users with individual configurations. A source code distribution is available.

[http://www.pp.clinet.fi/~walker/minicom.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]

minimalist
A minimalist mailing list manager written in Perl that is fast and easy to set up and maintain. The capabilities including subscribing/unsubscribing users via request, obtaining list information, and list archiving on a daily/monthly/yearly basis.

[http://www.webest.com/minimalist/]

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://mot.sourceforge.net/]

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/]

MiniMate
A Web front-end for MiniVend.

[http://www.linuxia.de/minimate/]

MINIX
A free clone of the UNIX operating system with a microkernel-based design. Using this inspired Linux Torvalds to begin the development of the Linux operating system. The features include:
  • full multiprogramming;
  • running in protected mode on x86 processors up to Pentiums;
  • support for extended memory up to 4 GB;
  • RS-232 serial line support;
  • quasi-compatibility with POSIX;
  • an ANSI C compiler;
  • a shell functionally identical to the Bource shell;
  • networking with TCP/IP;
  • over 200 utilities;
  • over 300 library procedures; and
  • extensive online manual pages.
A source code distribution is freely available for education or research purposes. See Tanenbaum and Woodhull (1997).

[http://www.cs.vu.nl/~ast/minix.html]
[http://www.disi.unige.it/person/DoderoG/minix/links.htm]

minordomo
A minimalistic replacement for majordomo that supports the subscribe, unsubscribe and info commands. A source code distribution is available as are RPM files.

[http://www.nodomainname.net/software/minordomo/]

Minotaur
A package that allows scripts written in Tcl, Python and Perl to be intermixed, i.e. a script written in any of them can be run in any of the others. Minotaur embeds one language in the other at runtime, i.e. the context ends up as a single process. This can be done because each language supports both dynamic extensions and being embedded in a C main program, although the pForth scripting language is actually the main language used. A source code distribution is available.

[http://mini.net/pub/ts2/minotaur.html]

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/]

MINQ
A Matlab program for bound constrained indefinite quadratic programming based on rank 1 modifications. MINQ employs a combination of coordinate searches and subspace minimization seps (safeguarded equality-constrained QP-steps when the coordinate searches no longer change the active set). Rank 1 updates are used to keep the linear algebra cheap. This can also be used for general definite quadratic programming since the dual is simply constrained.

[http://solon.cma.univie.ac.at/~neum/software/minq/]

MInT
The Multimedia Internet Terminal is a flexible multimedia toolset allowing the establishment and control of multimedia sessions across the Internet. The system architecture is fully distributed and offers several features including:
  • audio transmission and reception for qualities ranging from GSM up to CD based on the NeVoT and VAT tools;
  • video transmission and reception based on VIC;
  • an integrated conference control instance that hides the complexities of the individual tools;
  • floor control;
  • voting based on MPoll;
  • an interface to sdr;
  • RSVP reservation capabilities for all applications used;
  • adaptive video transmission;
  • joint viewing and remote control of PostScript documents; and
  • invitation of remote users based on SIP with name resolution capabilities.
Source code and binary releases are available for Linux Intel. A user's manual is available in PostScript format.

[http://www.fokus.gmd.de/step/mint/]

mIR
An application for playing MPEG audio files distributed via multicasting. This uses an external player for the audio. This is planned to have four parts:
  • mIR Server, for multicasting MPEG files on different channels;
  • mIR Client, for acting as a tuner allowing the user to choose among the available types of music;
  • mIR Voter, for gathering and storing voting information and playing popular songs more often; and
  • mIR Database Manager, a tool for handling the song database.
A source code distribution of this Java package is available. It requires JDK 1.1. Not all of the functionality is yet (11/98) available.

[http://www.cdt.luth.se/~peppar/progs/mIR/]

MIRACL
A big number library implementing all the primitives needed to include big number cryptography in an application. The MIRACL library consists of over 100 routines covering all aspects of multiprecision arithmetic. Two new data types - big and flash - are defined, respectively, for large integers and large rational numbers. All routines are optimized for speed and efficiency while still being written in standard, portable C, although optional fast assembly language alternatives for some computationally intensive routines are included (e.g. for Intel x86 processors). A C++ wrapper is provided as an additional interface to the library. Over 40 sample programs in C and C++ demonstrating the use of the library are included. These programs demonstrate factoring, discrete logarithms, public-key cryptography, and other more basic library features.

[http://indigo.ie/~mscott/]

Mirage
A virtual reality toolkit descended from the VR386 package for UNIX/X11 platforms Mirage can import files in WorldToolKit NFF format, complex 3-D objects created with AutoCAD through the DXF format, and the VR386 PLG format. A source code distribution of the viewer is available as are binaries for selected platforms including Linux Intel. Compilation requires Tcl/Tk version 7.6 and 4.2 or greater, respectively.

[http://www.gegi.polymtl.ca/electech/marceau/labrv/vrlab.htm]

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.

[http://www.obsidian.co.za/mirrordir/]
[http://sunsite.unc.edu/pub/Linux/system/backup/]

mirroring
Software for mirroring portions of or entire remote sites. This is done by FTP, HTTP or some other protocol. Listed packages include:
  • AutoRPM, for mirroring RPMs from an FTP site;
  • CVSup, for general purpose mirroring as well as specialized capabilities for CVS repositories;
  • ECLIPT Mirror, for mirroring FTP and Web sites;
  • IRRd, for mirroring IRR databases;
  • Mirror, for duplicating directory hierarchies between machines;
  • mirrordir, for mirroring directory trees via FTP;
  • omi, for FTP mirroring;
  • Pavuk, for mirroring the contents of Web documents via HTTP, FTP, Gopher and HTTPS;
  • Wget, for HTTP mirroring;
  • w3mir, for HTTP copying and mirroring.

MISA
Management Inventory Scheduling Accountancy is a project to develop a business commerce suite under the GPL. This is just underway as of 8/98.

[http://misa.freeservers.com/]

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. This is TOMS algorithm 757 and is documented in MacLeod (1996).

[http://www.netlib.org/toms/index.html]
[http://www.acm.org/calgo/contents/]

MISTIC
The MIchigan Synthesis Tools for ICs package is a planar process compiler for thin-film and micromachined devices that automatically generates fabrication process flows starting from a 2-D geometrical device description. The synthesis method is based on topological sorting techniques that find all possible flows in the device from which an optimal flow is selected to maximize device yield.

MISTIC consists of four major software modules:

  • a device cross-section editing tool consisting of a GUI for drawing and editing device cross-sections using materials stored in the database and then generating input for the compiler;
  • the compilation core which reads the device cross-section file and topologically sorts the components, merges them into layers, sequences the layers, and generates a synthetic run sheet containing all the information needed to run the process;
  • an output interface or process viewer that extracts information from the compiler-generated files and displays them in various formats; and
  • a database editor for viewing and modifying entries in the database.
The compiler constructs complete process flows from the sequencing information, a process where the sequence is expanded via the insertion of lithographies, etching steps, ion implantation, diffusion cycles, deposition steps, reactive growth cycles, cleaning cycles and pad oxide steps. It also supports self-alignment, implant-through layers, LOCOS-type processes, and simultaneous solutions of multiple diffusions and multi-zone diffusion cycles to meet specified junction depth targets.

Source and binary distributions of MISTIC are available, with the latter including a version for Linux Intel. A user's manual is available in hypertext format.

[http://www.eecs.umich.edu/mistic/]

Mithril
A dynamic programming language whose semantics are based on both Scheme and Smalltalk, e.g. using Scheme-style primitive objects and Smalltalk-style classes and method dispatching. Mithril will have several standard syntaxes with similar grammars including at least one Lisp syntax, one Algol syntax, and one or two XML syntaxes. All syntaxes will be equal based on parsing to standard intermediate parse trees.

The purposes of Mithril include:

  • to act as a very high level language for assembling lower level components without requiring a complex runtime to achieve easy development with high quality, e.g. efficient and well-designed garbage collection and basic collection classes;
  • to provide access to the entire range of low and high level runtime interfaces of any code that links with it, e.g. so low level C code can be added and still be able to effectively interoperate with the high level internal features of Mithril;
  • to act as a binding language, i.e. a universal glue for components assembled from disparate sources for s specific application; and
  • to confer complete control over the language used through possession of sources and ownership of the build and development processes that can cause entropic changes in the language.

Mithril is not yet (10/99) released although the developer plans to release the source code to the public domain sometime in 1999.

[http://www.best.com/~mccusker/irondoc/irsilver.htm]

MIT Photonic-Bands
A program for computing the band structures (i.e. dispersion relations) and electromagnetic modes of periodic dielectric structures. This computes definite-frequency eigenstates of Maxwell's equations in periodic dielectric structures for arbitrary wavewectors using fully-vectorial and 3-D methods. It is especially designed for the study of photonic crystals but can be applied to other problems in optics such as waveguides and resonator systems. The features include:
  • use of iterative eigensolver techniques to enable large, 3-D calculations;
  • a direct, frequency domain eigensolver that simultaneously obtainsboth eigenvalues and eigenstates;
  • a targeted eigensolver that can compute either the lowest frequencies or the states whose frequencies are closest to a specified target;
  • a flexible and scriptable interface based on Guile;
  • support for nearly arbitrary geometric structures and non-orthogonal unit cells;
  • output in HDF format;
  • portability to most UNIX-like operating systems; and
  • future support for MPI.
A source code distribution of this C package is available. An extensive manual includes a tutorial.

[http://ab-initio.mit.edu/mpb/]

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/projects/scheme/]

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 containing 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 allowing the user to insert points, erase regions, add regions, splice, mix, crossfade, etc.;
  • a sound modification menu for applying envelopes, reversing selections in time, transposing, time shifting, filtering, normalizing, adding delay or DC offset, etc.);
  • a filter submenu with 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.ccmrc.ucsb.edu/~doug/htmls/MiXViews.html]

MJPEG Tools
A set of utility programs for MJPEG recording and playback as well as simple cut and paste editing and MPEG compression of audio and video. The programs include:
  • lavrec, for recording AVI and Quicktime MJPEG files with the Iomega BUZ including sound recording from the sound card;
  • lavplay, plays back AVI and Quicktime MJPEG files;
  • xlav, a GUI for lavplay with fast forward/reverse, single frame stepping, and simple non-destructive editing;
  • lavtrans, converts a mixture of AVI files, Quicktime files or Edit Lists into a single AVI or Quicktime file;
  • lavaddwav, for adding another soundtrack (a WAV file to an AVI or Quicktime file;
  • lavvideo, a test application for the video overlay capabilities of V4L hardware devices;
  • lav2yuv, decodes AVI and Quicktime MJPEG and outputs simple raw YUV video format;
  • lav2wav, decodes AVI and Quicktime MJPEG and outputs WAV format;
  • lavtrans, produces a singleAVI or Quicktime file from a list of edit lists or files;
  • lavaddwav, adds an audio stream to a Quicktime or AVI file;
  • v4l-conf, for setting video framebuffer addresses;
  • mpeg2enc, encodes the output of lav2yuv or suitable output plugins in mpeg2dec to MPEG-1/2 video streams;
  • mp2enc, an MPEG-1 layer 2 audio compressor; and
  • mplex, multiplexes MPEG-1/2 video and audio streams.

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

MK
A configuration management and version control (CMVC) system consisting of:
  • build process management to handle the mechanics of constructing software;
  • release generation management to provide a process of software packaging;
  • version control to record changes made to the project code, documentation and directory structure; and
  • change control to address the administrative side of making changes by providing authorization and tracking functionality.
MK is designed to support all four of these areas by providing multiple work group environments, separation of the development environment from the details of specific platforms, code management in multi-platform environments, and easy customization and extensibility.

MK consists of three subsystems that work together in a multi-platform distributed development environment:

  • a project parameterization system that isolates dependencies by parameterization of project trees, the software construction process, and platform specifics;
  • a construction system involving the parameterization of the software construction process; and
  • a revision control system based on RCS with extended functionality.

The various programs that provide the functionality of MK include:

  • mk, a driver for a number of other tools that coordinates the construction process;
  • mkvars, a variable trace tool that displays MK variables;
  • mksrc, a source module search tool;
  • mktree, a tree linking/duplication tool;
  • mkinstall, a reimplementation of the GNU install script;
  • mkproj, a project creation tool that initializes a directory as the top of the master source tree;
  • chktree, a source tree verification and reporting tool;
  • mkrest, prepares a snapshot restoration script;
  • rs, the revision control interface with all sorts of subprograms with various functionality;
  • teximap, assembles a Texinfo document;
  • getdoc, extracts a documentation node; and
  • mkmake, changes a mk file into a standard makefile.

A source code distribution of MK is available which can be installed on used on most UNIX flavors. It is documented in an extensive manual available in hypertext and PostScript format.

[http://pzi.net/software.html]

mkhybrid
A package for creating ISO-9660/HFS/JOLIET shared hybrid CD volumes. This is a version of mkisofs that can create a shared CD volume containing, in addition to an ISO-9660 file system, an HFS (native to Macintosh computers) file system and a JOLIET (Microsoft extensions to ISO-9660) file system. The hybrid CD will contain the same data but will be seen as an HFS volume by Macintoshes and as an ISO-9660 volume (with or without RockRidge or Joliet extensions) by other machines. A source code distribution is available.

[http://www.ps.ucl.ac.uk/~jcpearso/mkhybrid.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.mklinux.org/]

mktclapp
A program that assists in writing C or C++ programs that use embedded Tcl/Tk. This allows programs to be written in which:
  • C code can call Tcl procedures or execute Tcl commands;
  • Tcl code can invoke C functions;
  • the executable is a single binary that will even run on machines without a Tcl/Tk installation; and
  • the Tcl source is hidden from the end user.
A source code distribution of this C program is freely available. Also available is xmktclapp, a GUI application builder built on top of mktclapp. A user's guide is available in hypertext format.

[http://www.hwaci.com/sw/mktclapp/index.html]

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 and various other slightly more obscure research languages. See Appel (1997b), Cousineau and Mauny (1997), Milner and Tofte (1991), Milner et al. (1900), Reppy (1996), and Wikstrom (1992).

[http://burks.bton.ac.uk/burks/language/ml/giml/home.htm]

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/]

MLC++
The Machine Learning library in C++ is a library of classes for supervised machine learning that was designed to aid both the selection and development of algorithms. The algorithms implemented in MLC++ include:
  • ID3, a decision tree algorithm;
  • Nearest-neighbor, classical nearest neighbor with options for setting weights, normalizations and editing;
  • Naive-Bayes, a simple induction algorithm that assumes a conditional independence model of attributes given the label;
  • OODG, a oblivious read-once decision graph induction algorithm;
  • Lazy decision trees, for building the best decision tree for every test instance;
  • 1R, the 1R algorithm;
  • Decision Table, a simple look-up table;
  • Perceptron, a simple perceptron algorithm;
  • Winnow, a multiplicative algorithm; and
  • Const, a constant predictor based on majority.

MLC++ also provides interfaces to several external inducers including:

  • C4.5, the C4.5 decision tree;
  • C4.5-rules, a trees to rules induction algorithm;
  • CN2, a direct rule induction algorithm;
  • IB, a set of instance based learning algorithms;
  • OC1, an oblique decision tree algorithm;
  • PEBLS, a parallel exemplar-based learning system; and
  • T2T2, a two-level error-minimizing decision tree.
A source code distribution of MLC++ is freely available and will compile with GCC 2.7.2.2 or higher. Various technical reports and other reference documents are available.

[http://www.sgi.com/tech/mlc/]

MLHT
The MultiLingual HyperText package is a set of Lisp libraries for managing large, multilingual hypertext systems. The source text is a Lisp program that describes multilingual text structures with minimal redundancy so a large variety of interlinked single language and format object documents can be generated using the libraries. HTML and LaTeX source is automatically generated which incorporates translations from simple text files into the hypertext structure. The features include:
  • maintenance of all language versions simultaneously in one expression;
  • extraction of parts common to all languages to a location outside of these expressions;
  • exporting of non-redundant single-language strings from the expressions into a translator's interface text file;
  • quick reimportation of the translator's work into the multilingual Lisp source;
  • treatment of anchors, documents and directories as Lisp symbols with URLs and pathnames calculated when needed;
  • generation of HTML or LaTeX versions for each language coding system; and
  • reduction of some natural language structures to Lisp structures to perform pseudo-automatic translation.
A source code distribution is available.

[http://www.lrz-muenchen.de/~phm/mlht/indexen.html]

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.it-c.dk/research/mlkit/]

MLMNP
A set of Fortran 77 subroutines for solving statistical parameter estimation problems for general nonlinear models, e.g. nonlinear least-squares, maximum likelihood, maximum quasi-likelihood, generalized nonlinear least-squares and some robust fitting problems. The basic method is a generalization of the NL2SOL algorithm for nonlinear least-squares, i.e. it employs a model/trust-region scheme for computing trial steps, exploits special structure by maintaining a secant approximation to the second-order part of the Hessian, and adaptively switches between a Gauss-Newton and an augmented Hessian approximation. Subroutine variants are included that handle simple bounds on the parameters and that compute approximate regression diagnostics. This is TOMS algorithm 717 and is documented in Bunch et al. (1993).

[http://www.acm.org/calgo/contents/]
[http://www.netlib.org/toms/index.html]
[http://www.netlib.org/opt/nlr/]

MLton
A whole program optimizing compiler for the Standard ML programming language.

[http://www.sourcelight.com/MLton/]

MM
The Memory Mapped library is a two-layer abstraction library for simplifying the use of shared memory between forked processes on UNIX platforms. The first layer hides all platform-dependent implementation details (i.e. allocation and locking) when dealing with shared memory segments. The second layer provides a high-level malloc-style API for working with data structures inside the shared memory segments. The shared memory is implemented in various platform-dependent variants, the best of which is chosen for each by the MM configuration mechanism. The locking mechanism is similarly implemented.

The MM library is structured into three main APIs internally based on each other. These are:

  • a global malloc replacment API that can be used as a direct replacement for the POSIX.1 memory allocation API, e.g. for converting heap-based data structures to shared memory based data structures without needing to dramatically change the code;
  • a standard malloc-style API for standard high-level memory allocation that provides a comfortable way to work with small, dynamically-allocated shared memory chunks inside large statically allocated shared memory segments; and
  • a low-level shared memory API that provides low-level functions for creating shared memory segments with mutual exclusion (i.e. mutex) capabilities in a portable way.

A source code distribution is available under an Open Source BSD-style license. This was written for eventual migration into the Apache distribution and is configure for a range of platforms including Linux. Documentation is via man pages.

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

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]

mminstance
A pair of UNIX command-line tools for creating instances of multiple master fonts. They are:
  • mmafm, creates the AFM file for an instance given the AMFM and AFM files distributed with a multiple master font; and
  • mmpfb, creates a normal, single-master font for an instance given the multiple master font.
A source code distribution is available.

[http://www.lcdf.org/~eddietwo/type/]

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/]

mMOD
A system for the recording and playback of MBone multicast sessions. This is written in Java and requires JDK 1.1.

[http://www.cdt.luth.se/~peppar/progs/mMOD/]

MMPE
The Monterey-Miami Parabolic Equation model is a continuation of the UMPE modeling effort. The revisions include some better algorithms and major changes to I/O for ease of use.

[http://oalib.saic.com/PE/mmpe.html]
[http://oalib.saic.com/PE/pe.html]

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]
[http://www.nettedautomation.com/qanda/qanda_mms.html]

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.python.net/crew/hinsen/MMTK/]


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