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.