Solv95 C/C++ & Windows based Delay Differential Equation Solver
This page contains downloadable C files for a graphical user
interface windows 9*/NT delay differential equation solver, based on an
adaptively stepped embedded RK2(3) scheme with cubic hermite
interpolation of lagged variables.
The program can be used to integrate systems of ordinary or delay
differential equations (and you can also specify discontinuous changes in
There are now a couple of very good ports/extensions:
Mac port (with much improved front end) by Ashley Buckner.
Python port (nicely portable) by Ben Cairns.
To use the program you will need to produce a model definition file in C,
which is best done by editing a standard template file. You then compile
and link your template file along with the other source files supplied in
the package. To do this you need a C or C++ compiler: gcc
ported to Windows works fine and can be obtained for free (see below).
I've also used Borland and Microsoft compilers without problems.
The code is provided under the following conditions:
If you do not accept these conditions then do not download the code.
- It comes with absolutely no warranty of any sort.
- You may pass on the code or any part of it modified or unmodified
only if you do so (i) without profit (ii) under the conditions listed here
and (iii) with full acknowledgment of authorship.
You will need a 486 or higher PC running some flavour of Windows
95/7/8+ or NT and a C/C++ Compiler capable of
producing 32-bit GUI executables for Windows 9*/NT. I used Borland C/C++
5.01, and have tried out microsoft Visual C++ 5 as well. If you don't have
a compiler then I can recommend this (free) port of
and a site devoted to
The following zipped file contains the source code for Solv95, 3
example template files (with compiled versions) and documentation as a
latex file and postscript file:
Having downloaded and unzipped the programs, print out or view the
documentation (manual.tex or manual.ps). This explains how to use the
package and describes the models coded in the three examples. If you want
to know what the program does before investing the effort in learning how
to use it, start by running one or all of the three pre-compiled example
models. (I have yet to have a virus problem, but in any case all files
were virus checked with an up to date checker before posting. As usual
this doesn't constitute a guarantee.)
Put the zipped file into the directory you want to work in and unzip it
using pkunzip or the unzip program given below.
- unzip from info-ZIP,
will unzip solv95.zip. Here it is as a self-extracting .exe file:
- Please let me know if you have any problems installing or using
solv95: it's intended to work, so I'd like to know if it doesn't! My
email is: firstname.lastname@example.org
- 14/12/99 There was a bug in solv95.c in which insufficient memory was
allocated for a character string, because I had failed to make allowance
for the null terminating character. Very rarely this caused difficult to
trace memory errors. solv95.c and the three example .exe files have been
- 14/12/99 Borland C/C++ compilers appear to suffer from a failure to
underflow gracefully when performing certain floating point operations.
For example, sqrt(1e-310) returns the result 1e-310, this answer is out by
a factor of 1e155, which can cause difficulties. I have not had a problem
with solv95 as a result of this, but it is something to be aware of.
Microsoft C/C++ and gcc don't suffer from this problem.
Simon N. Wood email@example.com 14/12/99