An installation instruction of the program realising the proof of the existence of invariant tori in forced pendulum and the Michelson system as described in the paper

D. Wilczak, R. Barrio, Systematic Computer-Assisted Proof of branches of stable elliptic periodic orbits and surrounding invariant tori.


The program requires a compiler that supports C++-11 standard, for instance gcc-4.8 or newer. Earlier versions of gcc are not supported.

Installation instruction under linux on PC

  1. please unzip the archive and enter directory
    tar xvfz invtori.tgz
    cd invtori

  2. call 'make' program in the main directory.
    make CAPD=PATH
    where PATH is absolute or relative path to the installation directory of the CAPD library on your computer. For example:
    make CAPD=/home/daniel/capd-build/bin/
    The latest command generates four executables in the current directory: pendulum, msystem, hhsystem1 and hhsystem2.

Start computation

In order to start computation we must provide three obligatory parameters (in the given order)
  1. numberOfThreads - we specify how many cores can be used by the program. It is strongly recommended to run the program on a multicore remote computer.
  2. minSize - minimal step size in parameter range and minimal set size for the interval Newton method. These are parameters hmin and smin defined in Section 3 of the article.
  3. degree - number of coefficients in the normal form to be computed. It is recommended to use value 1 and after several subdivisions switch to 2.
The fourth parameter is optional. It can be used to restart computation with different parameters from a completed earlier computation.
  1. inputDataFile - an file with output data from previous computation
Primary computation with 64 CPUs, minimal size set to 1e-5 and 1 coefficients in the normal form
./pendulum 64 1e-5 1
Restart computation with different minimal size
./pendulum 64 1e-6 1 bounds-pendulum-1e-5
Restart computation with two coefficients in the normal form and different minimal size
./pendulum 64 1e-7 2 bounds-pendulum-1e-6

OUTPUT of the programs:

Each program creates three output files. The names of these files contain two parts dependent on the program and one of its parameters: The three files created are:
  1. 'gamma-$1-$2': contains a rigorous bound for the coefficients gamma1 and/or gamma2
  2. 'log-$1-$2': log file from the computation. Can be used to observe progress in computation.
  3. 'bounds-$1-$2': contains detailed data on subdivisions of the parameter range and computed coefficients in normal form.
Comments: Example: the command
./pendulum 64 1e-5 1

creates three files
  1. 'gamma-pendulum-1e-05'
  2. 'log-pendulum-1e-05'
  3. 'bounds-pendulum-1e-05'


More informations about libraries can be found on the web page of CAPD group: