There are some areas (e.g. science, engineering, education) where the development of ideas, concepts, models and methods is more time-consuming than the accompanying computations. In such areas
tools like Mathematica
(http://www.wolfram.com), MATLAB (http://www.mathworks.com) and Maple
(http://www.maplesoft.com) are widely used.
Advantages of tools for doing symbolic and/or numeric calculations:
1. Abundance of built-in methods and features
2. Flexibility with a variety of supporting techniques
3. Scripting and programming abilities for further enhancement
1. Necessity to learn a lot of features
2. Restriction of flexibility by predefined approaches
3. Necessity to learn tool-specific programming methods or
4. use third party add-ins
The alternative approach is to use high-level programming languages. Note that, in such areas programming is usually only a tool. This approach has its advantages and disadvantages as well.
1. Relatively small number of language elements
2. Flexibility is (almost) unlimited
3. Potential high efficiency
1. Necessity to write programs from scratch
2. Relatively low productivity (for non-professional programmers)
Numerous libraries and packages help to overcome the disadvantages of the programming approach.
This is an attempt to develop yet another package. I have been using it for several years.
Why not? Object Pascal is a well developed Object-oriented language with an elegant object model. Its basic subset is very compact and easy to learn. It can be mastered gradually. It is less error-prone than some other languages.
Description by directories is here.
Basic real float, integer, Boolean and complex types, pointer array types (see details here).
Dynamic array objects (see the description here). Description by units is here.
Display routines for vectors, matrices and plots (see the description here). Description by units is here.
The collection of special functions and random number routines. Description by units is here.
Some routines for the 1D optimization and the Levenberg-Marquardt fit. Description by units is here.
The Fourier transform and simple filtering routines. Description by units is here. See also a small tutorial/demo.
As of January 2003, the development of this project is closed. Some support is still available.
The corrections and extensions are welcome.
Currently I use (and still develop) the library based on the simplified light-weight objects. It will be published here along with a conversion tool.
The Object Algebra units are available in the Download section
Up (Programming tools)
Please e-mail me at firstname.lastname@example.org
©Nikolai V. Shokhirev, 2002-2003