# Tela Features

### For version 1.23 and later

Tela (TEnsor LAnguage) is a scientific computing language and environment.
It is mainly targeted for prototyping large-scale numerical simulations
and doing pre- and postprocessing for them, and it replaces a compiled
language like C++ or Fortran in this respect. The feature set is therefore
biased to operations needed in partial differential equation solvers.
A relatively complete graphics is included via a separate program (PlotMTV).
Even though Tela is mainly a prototyping and development environment,
modest-size 2D simulations can be run in modern (1994) desktop workstations
while preserving "interactive" response times. Only large 2D or 3D simulations
must usually be coded in C or Fortran and run on supercomputers.
- Complete Fortran-90 style array language. Arrays can be N-dimensional
and they can be integer, real or complex valued. Easy and flexible mechanism
for defining new functions. Package (module) mechanism for eliminating
name conflicts.
- Very fast execution in interpreted mode. Translator to C++ is
under development and partially working, which may increase speed
even further.
- Linear algebra: matrix inversion, matrix product, eigenvalues,
eigenvectors, determinant, LU, Cholesky, singular value decompositions
and linear system solution.
- Full set of fast Fourier transform routines. In addition to
ordinary complex and real FFTs there are sine, cosine, plus quarter-wave
sine and cosine transforms. All routines can work along any dimension
in an N-dimensional real or complex array, making it possible e.g. to
solve any constant-coefficient elliptic boundary value problem in 2D or 3D
with any boundary conditions (Dirichlet, Neumann or periodic type; each
boundary may have its own type of boundary condition). An example how
this is done is included in the distribution (testpoisson.t).
- Unix commands can be run under Tela control. Standard input and
output can be mapped to Tela strings. C stdio like functions for
manipulating files.
- Can work with HDF, netCDF (vers.>=1.23), plain ASCII, MATLAB binary
files (MAT-files) and PBM (PPM, PGM) image files directly.
Graphics can be saved as PostScript and GIF from the PlotMTV program.
Can interface to XV.
- Graphics: 2D and 3D line and curve plots, contour plots, density plots,
vector field plots and surface plots. Cartesian intersection surfaces
in 3D space. Bar charts and histograms. Possibility to redraw existing
windows or create new window for each new plot. Possibilities for overlaying
and stacking plots and saving them in PostScript or GIF files. Possibility
to annotate plots with text strings and simple geometric primitives.
Palette can be changed and nonuniform grids can be used (vers>=1.23).
- Numerical analysis: linear interpolation (intpol), integration (integrate),
function minimization (fmin), root finding (roots, fsolve), linear regression
(fitline, fitlinear), nonlinear fitting (fitnl). Preliminary version of
special function package (specfun.t), which contains a relatively complete set
of special functions.

tela-suggestions@fmi.fi