
				S E N A C

    			A Software Environment for
		    Numeric and Algebraic Computation



    Sencore - An interactive computer algebra host language for SENAC modules

    Senpack - An interactive library including Numerical Recipes

    Sengraph - A graphics library with PostScript output

    Numlink - A fully automated symbolic numeric interface to the NAG Library

    Graflink - A symbolic graphic interface to the NAG Graphics Library


SENAC stands for Software Environment for Numeric and Algebraic Computation.

SENAC is a modular software system for Scientists, applied mathematicians and
engineers.  It integrates numeric, symbolic and graphical features, it 
interfaces to existing libraries, and is portable.

SENCORE is a special purpose symbolic manipulation language which provides an
interactive, easy to use software host within which the symbolic form of 
mathematical modelling problems can be easily represented and numeric and 
graphical routines invoked.


SENCORE features


      an easy to learn and use stand-alone natural user interface with extensive
      error checking,
      interactive input of symbolic and numeric expressions,
      symbolic expression output formatting,
      full featured floating point number formatting,
      probabilistic and deterministic algorithms for integer primality testing a
      factoring,
      list, matrix and sparse matrix data types,
      a wide range of matrix transformation functions,
      monomial and recursive polynomial representations,
      Zippel's probabilistic GCD and multinomial-factorisation,
      canonical rational simplification of SENAC expressions,
      user defined functions and programs for symbolic and numeric 
      transformation,
      differentiation of expressions and undefined functions,
      symbolic integration by pattern matching or the Risch algorithm,
      translation of user defined functions into Fortran for SENAC calculation 
      or external use,
      access to common blocks in Fortran code from SENAC,
      callbacks to SENAC from Fortran code for function evaluation,
      command timing and interruption,
      internal form of SENAC expressions,
      compiler for SENAC functions [Jan 1993],
      array data types [Jan 1993],
      a commentary feature to describe the progress of algorithms,
      optional interfaces to graphical and numeric subroutine libraries,
      online help for the host language and each interface included as a
      standard feature.



   Interfaces and Modules

In addition to the host module Sencore, there are available with SENAC two 
optional modules and two optional interfaces: an interactive numeric library 
Senpack and graphics library Sengraph, and the interfaces Numlink to the NAG 
Library of numeric subroutines and Graflink to the NAG Graphics Library. '45'


SENPACK

Volume 1 of Senpack consists of an easy to use Senac adaptation of the widely 
used set of programs "Numerical Recipes in Fortran" by Willam H. Press, 
Brian P. Flannery, Saul A. Teukolsky and William T. Vetterling, published by 
Cambridge University Press and translated with permission. It consists of about
170 functions covering the areas:


solution of linear equations

interpolation and extrapolation

integration of functions

evaluation of functions

special functions

random numbers

sorting

root finding and nonlinear sets of equations,

minimization and maximization of functions

eigensystems

fourier

transform spectral methods

statistics

modelling of data

integration of ordinary

differential equations

two point boundary value problems

partial differential equations.



Also included in Vol 1 of Senpack is a function for portfolio analysis and 
investment prediction.  Volume 2 is currently under development [release 
Jan 1993]. It consists of a set of Senac functions for large scale linear 
real and integer programming with natural algebraic expression input for 
constraints and the objective function. Variables may be indexed.

Senpack does not require any other software than Sencore.


 SENGRAPH

The graphics module is smoothly integrated into the Senac environment.
Sengraph provides a bridge between Sencore and PostScript as well as 
lowlevel PostScript functions like lineto and moveto, it provides elements 
of computational geometry (such as triangulations, convex hull computations, 
contouring of scattered data) and three dimensional graphics (views, clipping 
into a bounding box and hidden surface removal).

Curve drawing features include functions for plotting data, curves, polygons,
b-splines, Bezier curves, least squares approximations, polar curves etc.
Sengraph requires Sencore and a PostScript interpreter, but no other software. 
It is scheduled for release January 1993.


 Numlink

Numlink is a comprehensive interface between the symbolic host language
Sencore and the NAG Library of numeric subroutines.  The advantage of using 
a Library routine is its efficiency, robustness and correctness. The 
disadvantgage is the time required to solve problems.  Finding the routine,
analysing the documentation, writing code including subprograms for function 
and derivative evaluation and formatting input and output are all and time 
consuming and give rise to errors.

Numlink retains the advantages and all but eliminates the coding problem by
using interface routines to automatically perform all steps in the coding
exercise which could possibly be automated.

 Numlink features

Complex calls to subroutine library routines can be made in minutes rather
than days without loss in functionality.

The scope and power of the NAG Library become available to users in a way
that has not until now existed.

Input and output variables are classified into two types: those relating to 
the problem to be solved such as the name of an input function, endpoints of
a function's domain and so on, and those relating to algorithm tuning or 
analysis which the user may not need to change frequently. These latter 
variables are placed in the environment and need never be looked at unless 
the user wishes. There is a significant reduction in the complexity of the 
subroutine call which, through Numlink, reflects the essence of the problem 
in a natural manner.

Input and output data are always valid SENAC data types and so may be
manipulated interactively - in particular the output from one call becomes
the input for another with no special formatting.

All the features of the NAG Library become accessible to the user through


SENAC:

Complex arithmetic,

zeros of polynomials,

roots of non-linear equations,

summation of series,

quadrature,

fourier transforms,

special functions,

matrix inversion,,

simultaneous linear equations,

eigenvalue and eigenvectors,

determinants,

linear algebra operations,

orthogonalisation,

ordinary differential equations,

stiff ordinary differential equations,

integral equations,

partial differential equations,

interpolation,

curve and surface fitting,

polynomial zeros,

non-linear optimization,

linear programming,

basic statistics,

non-parametric statistics,

analysis of variance,

correlation,

random number generators,

contingency table analysis,

univariate estimation,

multivariate regression,

time series analysis,

operations research,

sorting real data.



 Graflink

Graflink is an interface between SENCORE and the NAG Graphical Supplement.
The same function call argument rationalizations employed with Numlink are
applied to the plotting of functions. The user need only be concerned with 
the essence of a problem to obtain graphs. Implementation details and low 
level FORTRAN program writing tasks are performed by SENAC internally.

 Graflink features

Calls to plot routines are significantly simplified.  The features of the NAG 
Graphical Library become available to the user interactively in the SENAC 
environment:

plotting of axes and grids

point plotting and straight line drawing

curve drawing

ode graphics

general and special function drawing

function plots with error bars

fitting of single and

multiple valued curves

Chebyshev and B-spline interpolation

contouring over grids or user defined functions

isometric and perspective surfaces

two and three dimensional vector field plotting

histograms

data presentation graphics

statistical graphics



The following plot output devices may be interfaced to

Senac through Graflink: GHOST80,

GINO-F,

CalComp,

GKS,

Lineprinter,

HPGL,

DEC Regis,

Tektronix Plot 10 IGL,

Adobe PostScript,

DEC UIS,

UNIRAS.



 SENAC Documentation


Senac documentation comes in printed and on-line forms. All of the on-line
documentation is included in the system, no matter what interface options 
are chosen by the user. The documentation for Senpack and Sengraph is not 
on-line. The on-line help of each VMS implementation is structured in the 
form of a VMS help library and can be accessed from the command interpreter 
(DCL) as well as from Senac. The Unix versions are accessed using the Unix 
function "more".

The Senac printed manual set is as follows:

Sencore Manual

Senpack Manual

Sengraph Manual

Numlink Manual

Graflink Manual



The Graflink manual can in general be used independently of the corresponding 
NAG documentation. The Numlink Manual requires access to the NAG printed or 
On-line Information Supplement for variable interpretations where this is not 
fully defined in the Manual. There is also a document called the Wslink manual,
for the NAG Workstation subset of the full NAG Library which can be used 
independenly of the NAG documentation.  There are over 1300 symbolic, numeric 
and graphical functions in Senac.  Each function comes with an example program 
which is included in the printed documentation.


 Portable code

Versions of SENAC and the interfaces to numeric and graphical libraries are
written in Allegro CL or VAX LISP. SENAC may be ported to any system with a 
supported version of Common Lisp.  Current implementations are listed below. 
Other are under development: VAX/VMS, Sun-3, Sun-4/Sparcstation, DECstation.

SENAC Option combinations:

Standard module: Sencore

Optional additional modules:

A. Senpack - no other requirements

A. Sengraph - requires PostScript (available January 1993)

B. Numlink - requires a Fortran compiler and NAG Library

C. Graflink - requires a Fortran compiler and NAG Graphics Library



Not all options are available for every implementation


For further information in the UK/Europe: 
University of London Computer Centre (ULCC)
20 Guilford Street
London WC1N 1DZ
FAX (071)242-1845
Tel (071)405-8400
e-mail: senac@ulcc.ac.uk

All other regions: Associate Professor Kevin Broughan
Mathematical Software Project Director
Department of Mathematics and Statistics,
University of Waikato, Private Bag 3105
Hamilton 2001, New Zealand
Telephone: -64(7)856-2889x8330 or -64(7)856-6358
Fax: -64(7)838-4155
e-mail: senac@waikato.ac.nz
