This directory is maintained by the author of Tela.
Email: tela-bugs@fmi.fi
A short README for Tela the Tensor language PJ 20.2.1994, modified 7.11.1994, 20.10.1995
---------------------------------------------
Files in this directory
-----------------------
bin: Tela binary distributions for some architectures
needed: Source code for some packages needed when compiling Tela
tela-VERS.tar.gz: Tela kernel source code
Addresses
---------
Author : Pekka.Janhunen@fmi.fi
Distribution site : ftp.funet.fi:pub/sci/math/tela
Tela bugs : tela-bugs@fmi.fi
Tela suggestions : tela-suggestions@fmi.fi
Tela WWW-page : http://sumppu.fmi.fi/prog/tela.html
(includes all online Tela documentation as hypertext with complete
cross-references; also some graphics examples)
What is it
----------
Tela (pronounced teh-lah) is a interactive numerical computing
primarily targeted for prototyping numerical simulations. It is,
however, also a general purpose programming language that reminds C
but has also derived something from Pascal and other interactive
systems such as Matlab.
What it is not
--------------
Tela is not a Matlab clone, although the scopes of the two programs
partly overlap. Tela is both faster and more general than Matlab;
however, Matlab has more functions for specific tasks such as signal
processing.
Pros and cons
-------------
+ Supports integer, real and complex arithmetic
+ Supports arbitrary rank arrays (at the moment the maximum rank is four,
but it can raised to eight just by recompiling)
+ Speed in both scalar and vector computation. In scalar-dominated code
Tela tends to be about 4-10 times faster than Matlab, in some cases
even faster. In vector code and in dense linear algebra (linear solving etc)
the speed ratio is generally 1-2.5. On a IBM Power-2 workstation, matrix
multiplication runs at over 200 Mflops for all matrix sizes starting from
N=40. On Cray C90 matrix multiplication can be 800 Mflops and addition
of two vectors over 300 Mflops if the vectors are long.
- Function minimization, root finding, special functions and some other
numerical analysis tools are implemented but perhaps not very much tested.
Getting started
---------------
Synopsis: tela [-v] [-b] [input.t]
-v : sets verbose mode
-b : exits after executing input files (batch mode)
If -b is not given, Tela executes given input files, if any, and then
enters interactive mode. Other options: see tela --help.
Use the command help(fname) to get help on fname, eg. help(rand),
help(format).
You can set and reset the verbose mode interactively by verbose(on)
and verbose(off).
You can see the functions contained in the C-tela libraries by using
the verbose mode flag -v.
Tela architecture
-----------------
Tela programs are contained in t-files (files ending .t). They are
first parsed, producing a Treecode representation, which is like Lisp.
A code generator takes the Treecode and produces Flatcode, which is
similar to machine code. The Flatcode is then interpreted (executed).
In addition, C-tela code can be written. C-tela is like C++ but it has
an extended syntax for argument lists resembling Tela. C-tela programs
are contained in files ending with .ct. The .ct files are first
preprocessed by the C-tela preprocessor ctpp and then compiled using
the system C++ compiler. The resulting object files can be made
callable by Tela by either statically linking them with the
executable, or using the dynamic linking on systems that support
that (at least IRIX now). By using C-tela, it is
easy to add efficient C functions to Tela without worrying about
destroying something in the Tela kernel.