Finite Resolution Dynamics
Software and Examples
This page contains the software and examples referred to
in the paper Finite resolution dynamics
by Stefano Luzzatto and
Paweł Pilarczyk.
A preprint of this paper can be downloaded
here: [ PDF ]
[ PS ]
1. Software
The software for computations described in the paper
is written in the C++ programming language for optimal
effectiveness and flexibility. This software uses two
additional sofware libraries that are publically available:
Boost and
CHomP.
The Boost library is often installed by default
on many systems, so separate installation may not be necessary.
The situation with the CHomP library is different;
even worse, since it is under continuous development,
the interface may change in future versions,
so a compatible copy is provided below for download.
Detailed documentation of the source code
of the software was generated using the
Doxygen system.
In order to make this documentation as comprehensive
as possible, the source code was included to the documentation,
and every class and function was covered.
The main program in this software package, runhenon,
computes an open cover of the Henon attractor, and verifies
whether the combinatorial map on this cover is mixing.
This program can plot an image of the cover in a BMP file.
It can also save the constructed cover to a text file
for further analysis.
Run runhenon --help for additional command-line options.
2. Files for download
The following files are available here for download:
- finresdyn.zip – the source code
of the main program and associated header files (see below
for compilation instructions)
- finresdox.zip – the documentation
of the source code compressed in one file (for convenient
off-line browsing)
- chomp-fin.zip – a selection
of the CHomP library files necessary to compile the program;
it is also possible to use the full
CHomP library,
but it may be necessary to decrease DimBits
to 3 in the file include/chomp/cubes/pointbas.h
in order to allow for the construction of large covers.
3. Sample computations
Sample computations discussed in the paper are briefly described
below and the actual data and high-resolution pictures are also provided.
These computations were carried out on a computer equipped with
the Intel® Xeon® 5030 2.66 GHz processor and 8GB RAM.
The rectangular area in the plane that corresponds to the numerical
approximation of R = (-1.4,1.4) x (-0.5,0.5) was covered by open boxes
of almost equal size that were taken to be relatively close to squares.
The overlapping margin between the boxes was taken to be
as small as possible, based on the numerical accuracy of the numbers.
All the calculations were conducted using open interval arithmetic
on the standard double precision floating point numbers.
The actual covers of the attractor computed in each case
were saved to text files so that they can be retrieved
for further analysis if necessary.
Since writing double precision floating-point numbers
by means of their text representation results in loss of precision,
in addition to these approximate values of the numbers,
the exact values have also been saved as hexadecimal
representations of the subsequent bytes in the numbers
using the big endian order of bytes.
Note that only those files whose size is relatively small
are available for download at this website.
Selected parameters for some sample computations are gathered
in the table below: The subdivision numbers of the area R,
an upper bound on the computed outer resolution of the constructed map,
approximate area of the constructed cover A of the attractor,
and the time of running the entire computations (without plotting
the image and saving the results to a file).
A link to a compressed file with the results is provided.
Image |
Subdivision of R |
Resolution of F |
Vertices + edges |
Approximate area of A |
Computation time |
Memory usage |
Results |
|
446 x 159 |
<0.0479 |
4,063 + 19,283 |
0.16042530 |
0.08 sec |
(negligible) |
log file
cover (59kB) |
|
2,133 x 762 |
<0.01 |
25,702 + 124,713 |
0.0442771 |
0.53 sec |
(negligible) |
log file
cover (470kB) |
|
21,325 x 7,616 |
<0.001 |
467,868 + 2,253,637 |
0.00806613 |
10.8 sec |
ca. 24 MB |
log file
cover (9MB) |
|
213,242 x 76,158 |
<0.0001 |
8,376,287 + 42,511,737 |
0.00150625 |
226 sec (3.8 min) |
511 MB |
log file |
|
2,132,419 x 761,578 |
<0.00001 |
161,448,094 + 789,923,794 |
0.000278358 |
5,158 sec (1.4 hours) |
9,348 MB |
log file |
4. Compilation instructions
Step-by-step instructions on how to make the program work
are given below:
- Make sure that the GNU C++ compiler is available
and that its version is at least 3.4.x by typing
"g++ --version" in a console window.
Note that in Windows no C++ compiler is available by default,
so it may be necessary to install some port of the GNU C++ compiler
(wxDev-C++, for example).
Moreover, in Windows the GNU C++ compiler
must be installed in a directory whose full path does not contain spaces.
In a typical Linux/Unix system or on a Mac,
it may be necessary to install an additional pack
called "Software Development Package" or similarly.
- Create a subdirectory "chomp" in your home directory,
download the source code of the
CHomP library
(or at least the selection gathered in
chomp-fin.zip),
uncompress this package into the "chomp" directory,
and run "make" (in Windows: "make terget=wxdev")
from the console level in that directory
("cmd" in Windows).
Note that it may be necessary to edit some configuration files,
mainly those in the "make/config" subdirectory,
in order to provide a correct path to the compiler
or to set some compiler's options.
- Install the Boost library,
unless it is already available in the system.
Note that in Windows the Boost library must be installed
in a directory whose full path does not contain spaces.
- Create an empty directory, e.g. "finresdyn", and unzip
the contents of finresdyn.zip
to that directory.
- In the case of Windows, open the file "makefile" with a text editor
and adjust the paths to the CHomP and Boost libraries.
The default paths should be fine in the case of Unix/Linux/Mac.
- Run a console terminal window ("cmd" in Windows),
enter the "finresdyn" directory, and type "make".
Watch any error or warning
messages. If the compilation goes through then the main executable program
is saved to the file named "runhenon" (or "runhenon.exe" in Windows).
- Type "./runhenon" (use a console window "cmd"
and omit "./" in the command line in the case of Windows)
to run sample computations. If everything was compiled correctly
then you should see some text messages describing the computations
and the results obtained.
- Type "./runhenon --help"
to get some basic information on how to adjust the parameters
of the computations, and how to save an image of the computed
cover of the Henon attractor.