Computer Programming

The question of whether a computer can think is no more interesting than
the question of whether a submarine can swim.
- E. W. Dijkstra

As far as the program sources are concerned, please note the following:
! ! ! Anything free comes without guarantee ! ! !
The languages employed for writing my programs are the following:

  FORTRAN 77       BASIC       FORTH       PASCAL   /   DELPHI       JAVA

If your thinking is structured, then your program may be structured,
regardless of the programming language. The reverse is not true (HdB)


SUNA

SUNA is abbreviation for: "Series on Unified Numerical Approximations". The Series was published in the sci.math.num-analysis newsgroup (1993 - 1994) on the Internet. Here is the contents of the Series. There are a few Basic and Fortran programs associated with it. I've been in the process of translating some of these into Turbo Pascal as well. A future development could have been to create a Web version for some of these applications.

BETON

Once upon a time, I developed a couple of Fortran programs for a person who wanted to calculate the distribution of the electrical potential in a piece of corroding re-enforced concrete. A standard 2-D finite element method has been implemented for this purpose. Perhaps the code and accompanying documents can be useful as kind of a blueprint for developing FEA programs of your own. The program has been rewritten in Turbo Pascal and Delphi.

BASBOEK

A number of Basic programs is associated with the (Dutch) chapter 7 in my book, known (to me at last) as Labrujère's Problem. Check out here for the relevant parts. Programs have been rewritten in Turbo Pascal and Delphi.

ZONWIND

Another Solar Wind project. Done in close collaboration with an astronomer.

TEMPLATES

For an excellent description of Iterative Methods for Large Sparse Systems of Equations
unzip and print the Templates PS document (mirrorred from netlib or GAMS).


Computational Geometry

There's a wealth of computer programs available via Internet, which cover precisely this area of interest. One can find quite interesting links in the Directory of Computational Geometry Software, which in turn can be accessed via netlib. The latter is an indispensable resource of mathematical programs of all sorts!

In order to understand subsequent work, you should familiarize yourself with Delaunay triangulations and Voronoi regions. Maybe a good start is to download bits of software. For 2-D as well as for 3-D there exists some excellent public domain stuff.

There exist two articles in SUNA, the Series on Unified Numerical Approximations, which are not truly Numerical in nature. I think they rather belong to the area of Computational Geometry:

The Fortran programs in these two chapters have been zipped into one (16 KB) file for convenience.

The following is perhaps more closely related to the area of Computer Graphics.
Here is a (Turbo Pascal stefan.pas) program for rendering an arbitrary (wire-framed, alas!) cylinder, which is rotated in space with help of Quaternions.
(Note: this program will not work anymore anyway, without the Borland BGI stuff, which must then be placed in the C:\TP\BGI directory)
And how about a program which actually does the automatic coloring of BitMapPed Country Maps, with a minimal number of colors? Such a program does exist now! One of the problems associated with the (in)famous Four Colour Problem is solved herewith.

As part of a larger project (? I think) comes a tiny Delphi (visual Pascal) program and its executable
which does (say) the ultimate anti-aliasing of straight lines, according to some theory in my (Dutch) book.
Another program and its executable does the anti-aliasing of black and white bit maps (B/W BMP files),
by convolution with a Gaussian distribution.


Sorting and Searching

Quite a number of indispensible algorithms, by Donald Knuth


LogiKwiz

It will be explained here, in Dutch, how so called "LogiKwiz" puzzles are solved by computer programming. Better skip this section if you prefer to solve them by hand!


Back to my HomePage.