Introduction

EXTREMA provides a high level, interactive programming environment. The program constitutes a fully procedural programming language, with built-in user friendly graphics and sophisticated mathematical analysis capabilities. Combining an accessible user interface along with comprehensive mathematical and graphical features, makes EXTREMA a general purpose research tool for scientific, engineering and technical applications.

EXTREMA provides you with a wide range of mathematical and graphical operations. Over `200` mathematical functions are available, as well as over `20` operators, providing all of the standard operations of simple calculus, along with powerful curve fitting, filtering and smoothing techniques. The program employs a dynamic array management scheme allowing you a large number of arrays with sizes limited only by the operating system. Algebraic expressions are evaluated using a lexical scanner approach. These expressions are made up of "tokens," where a token is a literal constant, a variable name, a function name, or an operator. Array evaluations and assignments can be implemented in a simple, direct manner.

Line graphs and histograms, as well as contour and various density plots are available. Publication quality graphics can be easily obtained. The user has complete control over the appearance of a drawing.

The user interacts with the program through the user interface, consisting of modules for display of messages and for reading user input, and modules for displaying drawings and obtaining hardcopies of user sessions. The user interface is a high-level command language that incorporates a simple to use and easy to learn syntax, based on context-free lexical scanners. The command language incorporates the basic elements of a structured programming language, including conditional branching, looping and subroutine calling constructs.

EXTREMA is not case sensitive. Commands, variable names, and functions may be in upper or lower case (or mixed case).

EXTREMA commands are simple and forgiving of input errors. The principle uses of EXTREMA are to input and manipulate data and then to produce graphical representations of this data. Data can be read from files, input interactively via the keyboard, or generated internally in various ways.

There are four basic types of EXTREMA command line instructions:

Comments | - | input that starts with `!`
Assignments | - | input of the form: `variable=expression`
Evaluations | - | input of the form: `=expression`
Commands | - | all other input

Conventions used in this manual
Getting started
Commands
Variables
Indices
Expressions
Colors