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:

  1. 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.
  2. 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.
  3. 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.
  4. Create an empty directory, e.g. "finresdyn", and unzip the contents of finresdyn.zip to that directory.
  5. 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.
  6. 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).
  7. 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.
  8. 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.