... FACTSHEET
MuPAD - the Multi Processing Algebra Data Tool
Because of the attention MuPAD has received on the net, here are some
basic facts about it:
- MuPAD is a system for symbolic and
numeric computation, parallel mathematical programming and
mathematical visualization. It is
intended to be a 'general purpose' computer algebra system.
- MuPAD has easy-to-use language constructs for parallel programming. A
prerelease Version for parallel programming exists for Sequent and Sun
multiprocessor machines. Programming in MuPAD's own programming
language is supported by a comfortable source code debugger.
Window-based user interfaces
for MuPAD exist for the X-Window-System and the Apple Macintosh.
- The 400+ page user manual (in German) and the 200 page tutorial (in
English) for MuPAD are published by Birkhaeuser, Basel.
On-line Hypertext
versions of the manual/tutorial and a demo are distributed with the system.
The English reference manual will follow in autumn 1995. There also is
sufficient on-line documentation, both in English and German.
(Reference manual and helppages in German; tutorial, sample session and
a demo in English)
- MuPAD is distributed for free, but not in the public domain; a
registration is required. MuPAD is available via
anonymous ftp for
several systems: Sun, Silicon Graphics,
DEC, PC with Linux or FreeBSD, IBM workstations, Apple Macintosh.
Prereleased versions exist for Sequent and HP.
- For the development of libraries MuPAD counts on its user community.
Anyone who wants to make contributions to the libraries is invited to
contact the MuPAD group. We will be eager to support you and to solve
any problems you might have with the system.
FACT SHEET
MuPAD is a system for symbolic and numeric computation, parallel
mathematical programming and mathematical visualization.
OVERVIEW
The program consists of a small kernel written in C and Libraries written
in the MuPAD programming language. All features described may be used
interactively or via the programming language. Control structures for
programming are also available at the interactive level. Kernel and
library are machine independant. In addition to the terminal-based user
interface window-based interfaces
exist for the X-Window-System and the Apple Macintosh.
The MuPAD programming language has various built-in constructs for parallel
programming, accessible at any level of programming experience. First
parallel implementations exist. MuPAD is devoted to the scientific
community and freely distributed for non-commercial use.
SYMBOLIC AND NUMERIC COMPUTATION
Data Types
Integers and rational numbers of any length, floating point and complex
numbers of arbitray precision, multivariate sparse polynomials, strings,
Booleans, variable identifiers, dynamic lists, sets and tables, arrays
of any dimension, user defined types (domains) and objects, a rich set
of expressions, procedures and statements, which are first class data
objects.
Constants
E, PI, I, FALSE, TRUE, various system constants.
Data Manipulation
Operand extraction, counting and substitution, object type testing,
indeterminate extraction, concatenation of strings and lists, set
manipulation, extraction, sorting and substitution of list, set, table
and array elements, mapping operands to functions, string searching,
pattern matching, parsing, conversion of strings and polynomials to
expressions and vice versa, run-time generation and manipulation of
procedures.
Operators
Arithmetic (+, -, *, /, ^, mod, div), relational (<, >, <=,
>=, =, <>), Boolean (and, or, not), set operations (union,
intersect, minus), concatenation (.,#), range (..), sequencing (, and $),
domain attribute access (::), assignment (:=), last output (%), user
defined operators. System functions and operators may be overloaded by
user defined types.
Arithmetic
Absolute value, exponential, logarithm, square root, sign, trigonometric
and hyperbolic functions and inverses, rounding, ceil and floor,
truncation, modular computation, factorial, maximum and minimum, numeric
evaluation, extraction of numerator and denumerator, fractional part,
real and imaginary part, set union, intersection and difference, set
membership, differentiation and expansion of expressions, taylor series
and order terms, differential operator.
Polynomials
Coefficient mapping and extraction, degree, leading coefficient, term and
monomial (lexical and degree order), trailing coefficient, number of terms,
nth coefficient, division and pseudo-division, evaluation, integer content,
norm, factorisation.
Domains
User defined types and data structures, operator overloading, object
oriented programming, generic algorithms.
As experimental library: parametric domains, domain constructors,
categories, category constructors, axiomes.
Number Theory (standard)
Integer factorisation, integer GCD and LCM, extended Euclidean algorithm,
prime number test, prime number generation, Eulers phi function, random
number generation.
Library packages
- Linear Algebra
About 40 functions. A short selection of functions provided by linalg:
gaussian elimination, Gauss-Jordan elimination, solving systems
of linear equations, inverting matrices, computing the norm, the
rank and the determinant of a matrix, computing the Sylvester
matrix, computing a basis for a vector space, QR factorization of
regular matrices and many operations on matrices.
- Polynomial Factorisation
Factorization of a multivariate polynomial with integer or rational
coefficients and factorization of a univariate polynomial over a
finite field.
- Integration
- Number Theory
About 30 functions. A short selection of functions provided by
this package: chinese remainder; hensel lifting; computing the
Carmichael and Fibonacci numbers, the Jacobi and Legendre symbol;
solving linear congruences; computing roots.
- Typechecking
Very comfortable possibility to check the type of an expression.
- Share
Indefinite summation of rational functions, finding integer roots
of a polynomial over Q[x], Lindenmayer-Systems and 2D-Turtle graphics.
Also refer to the MuPAD Demo and
read about the new features of the next
release of MuPAD.
USER INTERFACES
General
Selection of printing and error level, line width, formatted or
non-formatted output, verbose printing during procedure execution,
recalling of earlier results. Line editor for raw terminal interface.
X-Windows Version
Look and feel of
OpenLook, editing and recall of input and output, scroll back,
two and also three dimensional
plotting with mouse-controlled
interface ,
on-line manual and tutorial with
hypertext functionality,
pasting of examples from these documents into the input window, mouse
controlled interface for
source code debugger.
Macintosh Version
Mac-like interface with
notebook functionality, structured session documents, editing of text
documents, graphics,
debugger and
hypertext system as in the
X-Windows version.
GRAPHICS
General
Any property of a plot may be set interactively in VCam or defined in a
plot-command. VCam Graphics front-end for 2- and 3-dimensional plotting,
running under X-Windows and MacOS; thightly coupled with the MuPAD kernel.
Defining functions may be entered and manipulated directly in VCam,
objects can be added or deleted by mouse-click.
2D-Plotting Facilities
Two-dimensional scenes, graphs, curves, list of points/lines/polygons;
multiple objects per scene; object style may be points, lines or impulses;
options for titling, labeling, colour selection, smooth colouring by
height, colouring by user defined functions, axes scaling and style,
automatic viewing box, grid and smoothness.
3D-Plotting Facilities
Three-dimensional scenes, graphs, surfaces, space curves, list of points/
lines/polygons; multiple objects per scene; object style may be points,
lines, impulses, wire frame, mesh, x-line, y-line, hidden line, colour
patches, transparent; options for titling, labeling, colour selection,
smooth colouring by height, colouring by user defined functions, axes
scaling and style, automatic viewing box, camera point and focal point,
grid and smoothness.
Plots can be directly saved in different formats:
ASCII, Binary, Raster-, Gif- and Postscript-Files.
PROGRAMMING FACILITIES
General
Functional programming language with procedural extensions and Pascal-like
syntax. Procedures and statements are ordinary data objects and may be
manipulated at run-time. Any language construct is available as system
function. Any system function may be overwritten by user-defined procedures.
Unnamed functions. Formatted output of procedures.
Language Constructs
Assignment, expression, statement sequence, if then elif else end_if,
for from to step do end_for, while do end_while, repeat until end_repeat,
case of do otherwise end_case, proc() begin end_proc, break, next, error,
return, parameter lists of varying length.
Evaluation
The programmer can control any aspect of expression evaluation and variable
substitution: holding evaluation, evaluation in an outer context, defining
substitution level, additional evaluation, retrieving values directly.
Procedures may remember calculations to speed up execution. Results are
stored in a history table which may be accessed by procedures.
Input and Output
Reading and writing of text and binary (M-Code) files, opening and closing
of files, reading and writing of MuPAD data and raw text, printing output
to file, writing a session protocol to file. Entering expressions or text
interactively.
Debugging
Execution tracing, verbose procedure execution, different printing and
error levels, error trapping. A source code debugger allows to step
through procedures, print and observe values of variables, alter values
of variables, execute instructions, display the procedure stack. The
debugger is integrated into the kernel and may be used via command
language or a comfortable window-based user interface (available under
the X-Window-System).
PARALLEL PROGRAMMING
General
There are two levels of parallelism in MuPAD : micro-parallelism on a
processor cluster with high speed communication facilities (a
multi-processor machine for example) and macro-parallel ism on a network
of clusters with medium- to low-speed communication.
Micro-Parallelism
Automatic task creation and distribution by the system. Easy-to-use
language constructs: parallel for-loop, parallel and sequential blocks,
private and global variables, task abortion.
Macro-Parallelism
Blocking and non-blocking message queues and pipes, global network-wide
variables, topology informations.
DYNAMIC MODULES
Beside the conventional concept of libraries written in the language
of the CA system, MuPAD offers another library concept, called
dynamic modules. Users can implement algorithms in the C programming
language (in the near future moreover in C++) to extend the MuPAD
system by new functions. The advantages are:
- Spead.
Functions written in the MuPAD programming language are executed
by MuPAD's interpreter, whereas moduls are compiled into machine
code.
- Users can use the flexibily of C (C++) and have access to all
internal functions and data structures of the MuPAD kernel.
Dynamic modules forces no interprocess communication, they are
directly linked to the MuPAD kernel on demand at run time. It is
also possible to unload modules at run time. This is why we speak
of dynamic modules. The method used is called dynamic linking.
Because the operating system must support dynamic linking, modules
are available only for the following platforms:
- Sun SPARC - SunOS 4.1.1 or later, SunOS 5.x (Solaris)
- Silicon Graphics - Irix 5.1 or later
- IBM RS/6000 - AIX 3.1 or later
- PC/AT - FreeBSD 1.1.5.1 or later
AVAILABILITY
MuPAD Version 1.2.1a is now available for Sun SPARCstation (under SunOS
and Solaris), IBM RS6000, Silicon Graphics, DECstations (under Ultrix),
PC (under Linux and FreeBSD) and Apple Macintosh.
Prereleased versions exist for the Sequent Symmetry and HP 9000.
A version for SUN Multiprocessor systems is in preparation. Please call
for others.
in German:
Birkhaeuser Verlag Basel, 1993
MuPAD: Multi Processing Algebra Data Tool;
Benutzerhandbuch; MuPAD Version 1.1
ISBN 3-7643-2872-X
in English:
Birkhaeuser Verlag Basel, 1993
MuPAD: Multi Processing Algebra Data Tool;
Tutorial
ISBN 3-7643-5017-2
The English reference manual of MuPAD will follow in summer 1995. But
there also is sufficient on-line documentation, both in English and
German (Reference manual and helppages in German; tutorial, sample
session and a demo in English).
Furthermore you will find information on different aspects of MuPAD in
the following issues of MathPAD
Vol. 3. Heft 2, 9/93 (in German) and
Vol. 4. Heft 1, 3/94 (in English), both issues are to be found on our
server. There you also will find additional information on MuPAD.
FURTHER INFORMATIONS
Internet Services
E-mail: MuPAD-distribution@uni-paderborn.de (further email addresses)
WWW : http://math-www.uni-paderborn.de/~cube/
FTP : ftp.uni-paderborn.de:/local/MuPAD/ (further ftp sites)
Mail Address
MuPAD-Distribution
Fachbereich 17
University of Paderborn
Warburger Str. 100
D-33095 Paderborn
Germany
Author: MuPAD-Webmaster
Last updated: 18. May. 1995