

FACT SHEET:




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
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 for MuPAD is published by Birkhaeuser, Basel.
An on-line Hypertext Version of the manual is distributed with the
system.  The manuals are, at present, in German, but we are working 
on an English Version right now.

MuPAD is distributed for free, but not in the public domain; a
registration is required.  MuPAD is available via anonymous FTP for Sun
Silicon Graphics, PC with Linux, IBM workstations and Apple Macintosh.  
Prerelease Versions exist for  PC-386 (DOS ) and Sequent.

But be aware: MuPAD is (up to now) not a full fledged computer algebra
system in the sense that there are hundreds or thousands of library
routines for any problem you have at hand. The MuPAD group is just
entering the business of developing the necessary libraries. The first
libraries to be developed will be in the field of polynomial operations,
number theory and basic domains and categories.

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

Integer factorisation, integer GCD and LCM, extended Euclidean algorithm, prime 
number test, prime number generation, Eulers phi function, random number 
generation. 


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 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 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; multiple objects per scene; object style
may be points, lines or impulses; options for titling, labeling, colour 
selection, smooth colouring by height, axes scaling and style, automatic viewing
box, grid and smoothness.

3D-Plotting Facilities

Three-dimensional scenes, graphs, surfaces, space curves; 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, axes scaling and style, automatic 
viewing box, camera point and focal point, grid and smoothness. 


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. 


AVAILABILITY
------------

MuPAD Version 1.2 is now available for Sun SPARCstation (under SunOS and 
Solaris), IBM RS6000, Silicon Graphics, PC (under LINUX) and Apple Macintosh.
Prereleased versions exist for 80386-based MS-DOS systems and Sequent Symmetry. 
A version for SUN Multiprocessor systems is in preparation. Please call for 
others. 


DOCUMENTATION
-------------

MuPAD Benutzerhandbuch,(in german) by B. Fuchssteiner et. al., Birkh"auser, 
Basel, 1993. 
MuPAD Tutorial,(in english) by B. Fuchssteiner et. al., Birk"auser, Basel, 
1994. (English manual will soon be available.)  


FURTHER INFORMATIONS
--------------------

E-mail: MuPAD-distribution@uni-paderborn.de
 
MuPAD-Distribution
Fachbereich 17
Univ. of Paderborn
Warburger Str. 100
D 4790 Paderborn
Germany

