Uniform expansivity in the quadratic map family

This page contains links to software and results of the computations referred to in the paper Uniform expansivity outside the critical neighbourhood in the quadratic family by Ali Golmakani, Stefano Luzzatto and Paweł Pilarczyk. The 3D figure referred to in the paper, as well as some additional technical descriptions and hints are also provided here.

A preprint of this paper can be downloaded here: [ PDF ]

The 3D Figure

An animation of the data referred to in the paper is available for on-line viewing below. The animation uses Datacratic's Data Projector script, based on Three.js. The data was split into clusters with a k-means algorithm, using a program from the mlpack software package (version 1.0.6).

  • DATA 3D – the 3D animation; please, be patient, there are over 2MB to download in total; note that it may take a while before the dots in the animation appear

The following file is available here for download:

  • quadratic-3d.zip – the 3D animation for off-line viewing (includes all the necessary 3rd party files)

Software and Data

The algorithms described in the paper are implemented in C++. The software is published here under the terms of the GNU GPL Version 3+.

The following files are available for download:

Compilation. The GNU C++ compiler should be used. The Boost C++ libraries should be present in the system. The CAPD and CHomP C++ libraries must be first downloaded and compiled. Please, edit the file makefile to make sure that the paths to those libraries are correct and adjust them if necessary. Then run the command make.

Note that in Linux the GNU C++ compiler and the GNU make should be present in the system by default. In other systems one should install them manually. For example, in MacOSX one can use MacPorts, in Windows one can download and install the Minimalist GNU for Windows development environment. (Note that these are not the only options.)

Computation. The computation for all the N parameter subintervals can be either done by a single process or in a distributed way (at a multi-core computer or at a computer cluster, for example). For the former, a command like the following may be issued:

  • ./quadratic --flush -part derivative -e 3 -a 1.4 -a 2.0 -n 60000 --verbose 27 -d 0.001 -k 5000 --margin 0 -f coord60000.dat -l exp60000.bin --log coord60000.log --debug
Please, see the description of the program (shown when called without arguments) for the explanation of these and other command-line arguments.

In order to benefit from the distributed computation, the following command-line option should be added to the above:

  • -c 7100
where -c instructs the program to work as a coordinator listening at the given TCP port number (7100 in this example). Then several additional processes (workers) that will do the actual computations should be started, either at the same machine, or at other computers connected by the network; these should be run with a command like the following:
  • ./quadratic -w server.com:7100 --log worker.log --debug
where -w instructs the program to act as a worker, and to connect to the coordinator at the given address and at the given TCP port. The communication between the coordinator and workers is conducted using the sockets interface.

Data files. There are 3 data files provided for each computation that has been conducted (please, replace N with its actual value):

  • coordN.dat - a text listing of (approximate) results of computations: the parameter range, the delta, the lambda computed for that small delta for k=1000 (repeated 3 times), the delta (again), the lambda computed for the target value of k, and the computation time (in seconds); the reason for the repetition of the data is the expected compatibility with more advanced computations that are planned in the near future;
  • coordN.log - the text output of the coordinator process saved to a file; the first line contains the actual command line, which may be helpful if one wishes to repeat the computations with precisely the same parameters;
  • expN.bin - a binary file with the exact values of the computed delta and lambda (please, see the source code of the program for the information on how to read this file).

Acknowledgment. The research whose results are described here has received funding from Abdus Salam International Centre for Theoretical Physics (ICTP); from the Portuguese research project FCOMP-01-0124-FEDER-010645 (ref. FCT PTDC/MAT/098871/2008); and also from the People Programme (Marie Curie Actions) of the European Union's Seventh Framework Programme (FP7/2007-2013) under REA grant agreement no. 622033.