- The function whos() didn't work in the previous release,
for which reason there is this early bug fix release now.
- Since introduction of KShallowObjectArray in 1.32, I forgot to
increase the constant 12 to 13 in #define pair(ka,kb) ... in
objarithm.C. Result: E.g., 2/x where x is undefined did not produce
error message but silently evaluated to 0. There could be other much
more obscure errors also. Now the constant 12 is no longer
hard-coded but is defined to be int(Kundef)+1. This works as long as
Kundef remains the last in enum Tkind (object.H). There is comment
telling it... - in tela.C:FindMachineNan(), using switch()
statement can cause compile-time error due to duplicate case labels,
fixed now by rewriting switch() as nested if's (tela.C)
(This is in code segment that was put in tela only in the previous
release.)
- some changes to allow compilation with gcc-3.0 (contributed by Ch. Spiel)
BUG FIXES
- t-functions using ellipsis argument (...) crashed Tela (this was due to the
"deep" copy object array feature introduced in previous version 1.31, cure
was to introduce another internal type KShallowObjectArray which is now used
in Tprg::execute() in prg.C)
- memory leak in object arrays (object.C:Tobject::setsize, deep clear was missing)
(also this bug existed only in version 1.31, not before, because object array
semantics was changed from shallow copy to deep copy in 1.31).
USER-VISIBLE CHANGES
- new diag() function contributed by Ch.Spiel which allows a second input argument
specifying the super- or sub-diagonal (the default zero meaning the main diagonal),
this function is compatible with Matlab's and also compatible with the old diag()
function (std.ct)
- added global symbol NaN if compiler supports NaN's (ieee754.h header is present and working) (tela.C)
Version 1.31 (Released 8 Mar 2001)
----------------------------------
USER-VISIBLE CHANGES
- copying an object array (see help voids) is now "deep" copy rather than "shallow" copy.
This means that when an object array is assigned to another variable, a completely new
copy is made (before, only the first array level was copied). Mostly this won't affect
you at all because (1) you are using object arrays only if you are using voids() in some
phase in your program, (2) if you are, then you are probably using only single-level
object array. The old behaviour was simply stupid. Object arrays are a crude but working
mechanism for using heterogeneous combined types in Tela; the only relevant function
(in the present Tela version) is voids(), which acts as a constructor for such things.
Thanks to Ch. Spiel for suggesting this change (object.C).
- quit() and exit() now accept input argument (the exit value) (std.ct)
- sort() function now accepts second input argument (user-defined comparison function) (std.ct)
(old function still available as sort_old in case of problems).
- slight change in semantics of --shared option for telakka (telakka.in)
The above were contributed by Christoph Spiel <cspiel@hammersmith-consulting.com>
- added incomplete gamma and beta functions (specfun.t)
(specfun.t not autoloaded, but after source("specfun.t") functions are available).
- added function polymul and added polyadd,polymul to autoload (poly.t,telainit.t)
- added function applyfilter (numerics.ct)
- added functionwise profiling option (tela -p) (tela.C,prg.C)
BUG FIXES
- doing dot product (**) of two zero-length integer vectors produced a LAPACK error message
and Tela quit (la.ct)
- tree.C:DeleteObjects() accessed memory after it being freed, which however did not cause
any problems in practice (unless using malloc debug libraries), but is anyway now fixed
INTERNAL CHANGES
- Some modernizations in configure script (e.g., now tries to link with
libatlas by default instead of libblas if available) (configure.in)
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). Tela uses HDF format as
native save/load format. It can also read/write Matlab binary files
and some ASCII files.
Tela is generally 2-4 times faster than Matlab, the extremeties
encountered so far are 0.9-11. 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.