# Extrema

2,259 downloads

Its flexibility, sophistication, and power allow you to easily develop your own commands and create highly customized graphs.

Earlier versions of Extrema have been released by TRIUMF under the product name Physica.

ALL THE POWER AND FLEXIBILITY OF EXTREMA'S VERSATILE COMMAND LANGUAGE IS NOW AVAILABLE FROM ITS RICH GRAPHICAL USER INTERFACE.

Although Extrema's command language is already known for its intuitive syntax and ease of use, the graphical user interface simplifies the process even further, by displaying all the options available. No need to remember how to get that obscure special effect you need; just click the button and it's done!

Even so, the power user often requires the flexibility and programming constructs that are truly only available from a proper command-driven program. All the powerful command line and programming features of previous versions of Extrema are still available.

Extrema's detailed help system includes not just basic help on how to run the program, but also sample scripts, examples of use, sample graphical output, and details of the math and statistical theory underlying different commands and effects.

**Here are some key features of "Extrema":**

**EASE OF USE**

· A rich graphical user interface lets you quickly tackle one-off problems.

· For more elaborate tasks, the intuitive command language makes script writing easy. For example, to graph two data vectors x and y against each other, just type "graph x y".

· Automatic script-writing mode will create a script based on your GUI point-and-click actions. Write scripts without typing a single command!

· Data manipulation is easy with Extrema's automatic expression evaluation. For instance, if you have 10,000 (x,y) data coordinates stored in vectors x and y, you can instantly compute each of their distances from the origin with "d = sqrt(x^2 + y^2)".

· Simple, easy-to-understand programming constructs allow you to write code with little or no programming experience.

· The GUI gives you ALL the power of the low-level language, and vice versa.

**3-D GRAPHING**

· Contour plots: colour, legend, area/volume tabulations, control over contour label size, colour, separation, etc.

· Density plots: derivatives, random point type, box type, colour filled regions, dithering patterns with automatic or user defined patterns, diffusion type, profiles, legend, area/volume tabulations, etc.

**2-D GRAPHING**

· Customized 2-D line graphs, scatter plots, horizontal or vertical bar charts, each with a large variety of type styles and fonts of any size and color

· Customized or automatic legends

· Multiple axes with arbitrary axis positioning

· Fill the area between data curves or fill individual histogram bars

· Logarithmic axes, to any base, including e

· Axis scaling can be automatic or user set (including commensurate axes)

· Labels can optionally follow the curves on rescaling a graph

· Many plotting symbols, with control over size, colour and angle

· Complete control over axis appearance (short/long tic mark length and angle, separation between tic marks and axis labels, axis angle, length and location, axis labels size, colour, font, number of digits, etc.)

**DATA REDUCTION & ANALYSIS**

· Differentiate/Integrate an arbitrary expression

· Interpolate 1-D or 2-D data using various methods (linear, Lagrange, weighted splines under tension, Fritsch-Carlson, etc.)

· Smooth data using various methods (weighted splines under tension, Savitzky-Golay filters, etc.)

· Convolution and deconvolution of data

· Integral transforms of arbitrary expressions

· Fast Fourier Transforms and Inverse FFT's

· Reorganize data (sort, step, roll, wrap, etc.)

· Weighted (re-)binning of 1-D or 2-D data into automatic or user defined bins (specified by centres or edges)

· Find multiple real roots of an expression

· Recursive and non-recursive digital filters

· Manual or automatic determination of data extrema using graphics cursor

· Fit data with an arbitrary, non-linear, expression involving up to 25 variable parameters

· Ellipse fitting

· Calculation of parameters for least-squares fit using adjustable parameters

· User defined and named variables (scalars, vectors, matrices, strings, arrays of strings)

· Full indexing on variables and expressions

· Literal vectors may be specified as a list or a range

· Boolean operators (, &, etc.)

· Array operators (inner/outer product, matrix transpose, etc.)

· Over 200 built-in functions including: scalar type (Bessel, Clebsch-Gordan, etc.); array type (sum, product, loop, where, etc.); string type (case, date/time, etc.)

· Mathematical/character expressions may appear in any suitable command parameter

· Use character variables to substitute for complicated expression substrings

**DATA INPUT/OUTPUT**

· Display the history of variables

· Read data from binary or ASCII files by formats or space/tab/comma separated columns

· Output data to binary or ASCII files by formats or in columns

· Dynamic allocation of arrays

· Digitize data from a displayed plot

**EXTREMA'S BUILT-IN LANGUAGE**

· Scripting capability with up to 20 nesting levels and with parameter passing

· Script library of `super' commands

· Nested looping, branching and conditional statements in scripts

· Display messages, prompt for user input from within a script

· Return to interactive mode from within a script, and later resume script execution

· Create a script interactively

**GENERAL GRAPHICS UTILITIES**

· Unlimited text capabilities for titles, labels, and annotations

· Multiple windows within the graphing area

· Any number of charts of any mixed type on a single picture

· High quality graphics display

· Interactive entry of lines, arcs, geometric figures, and text

**OTHER FEATURES**

· Comprehensive on-line documentation: instant help for any command, or interactive browsing through help library

· Keyword searching

· Save/Restore an entire Extrema session, including graphics

· Keep a journal file of all command input and message output

· Dynamic input line recall buffers allow recall/edit of commands using the arrow keys

Last updated on

**March 8th, 2010**