From 9d0c7136c9c1b7b045cbede6ba42999e6cf6cb45 Mon Sep 17 00:00:00 2001
From: PRUVOST Florent <florent.pruvost@inria.fr>
Date: Wed, 17 Oct 2018 15:49:04 +0200
Subject: [PATCH] Fix pages and improve the users doc

---
 .gitlab-ci.yml                          |    4 +-
 doc/orgmode/CMakeLists.txt              |    9 +
 doc/orgmode/chapters/installing.org     |  168 ++--
 doc/orgmode/chapters/introduction.org   |  228 ++---
 doc/orgmode/chapters/using.org          |    5 +-
 doc/orgmode/css/VisuGen.css             |  208 +++++
 doc/orgmode/css/VisuRubriqueEncadre.css |   70 ++
 doc/orgmode/css/worg.css                | 1038 +++++++++++++++++++++++
 doc/orgmode/morse.css                   |   72 --
 doc/orgmode/users_guide.org.in          |    6 +-
 doc/orgmode/version.org.in              |    5 +-
 11 files changed, 1541 insertions(+), 272 deletions(-)
 create mode 100644 doc/orgmode/css/VisuGen.css
 create mode 100644 doc/orgmode/css/VisuRubriqueEncadre.css
 create mode 100644 doc/orgmode/css/worg.css
 delete mode 100644 doc/orgmode/morse.css

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 954140227..b1dfbfe87 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -312,7 +312,7 @@ pages:
     - cd build
     - cmake .. -DCHAMELEON_ENABLE_DOC=ON
     - make doc -j5
-    - mv doc/doxygen ../public/
-    - mv doc/orgmode ../public/
+    - mv doc/doxygen/out-dev/html/ ../public/
+    - cp -r doc/orgmode/* ../public/
   only:
     - master@solverstack/chameleon
diff --git a/doc/orgmode/CMakeLists.txt b/doc/orgmode/CMakeLists.txt
index 0d92f218a..aad5ddff9 100644
--- a/doc/orgmode/CMakeLists.txt
+++ b/doc/orgmode/CMakeLists.txt
@@ -61,6 +61,14 @@ FIND_PROGRAM(EMACS_COMPILER emacs)
 FIND_PROGRAM(TEX_COMPILER tex)
 
 if(EMACS_COMPILER)
+
+    # css direcory is required for the html output
+    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/css
+                       COMMAND ${CMAKE_COMMAND} -E copy_directory
+                               ${CMAKE_CURRENT_SOURCE_DIR}/css
+                               ${CMAKE_CURRENT_BINARY_DIR}/css
+                       DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/css)
+
     # Add target
     # ----------
     add_custom_command(OUTPUT  users_guide.html
@@ -72,6 +80,7 @@ if(EMACS_COMPILER)
                                --kill
                        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/users_guide.org
                                ${CMAKE_CURRENT_BINARY_DIR}/version.org
+                               ${CMAKE_CURRENT_BINARY_DIR}/css
                       )
     add_custom_command(OUTPUT  users_guide.pdf
                        COMMAND ${EMACS_COMPILER}
diff --git a/doc/orgmode/chapters/installing.org b/doc/orgmode/chapters/installing.org
index 92e55e8ec..8df8a55cc 100644
--- a/doc/orgmode/chapters/installing.org
+++ b/doc/orgmode/chapters/installing.org
@@ -6,12 +6,12 @@ Chameleon is written in C and depends on a couple of external
 libraries that must be installed on the system.
 # , it provides an interface to be called from Fortran
 
-Chameleon can be built and installed by the standard means of [[http://www.cmake.org/][CMake]].
-General information about CMake, as well as installation binaries and
-CMake source code are available from [[http://www.cmake.org/cmake/resources/software.html][here]].
+Chameleon can be built and installed on UNIX systems (Linux) by the standard
+means of [[http://www.cmake.org/][CMake]].  General information about CMake, as well as
+installation binaries and CMake source code are available from [[http://www.cmake.org/cmake/resources/software.html][here]].
 
 To get support to install a full distribution Chameleon + dependencies
-we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
+we encourage users to use [[sec:spack][Spack]].
 
 
 ** Getting Chameleon
@@ -34,26 +34,19 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
    - python: to generate files in the different precisions
    - external libraries: this depends on the configuration, by default
      the required libraries are
-     - [[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]]
-     - CBLAS, LAPACKE: these are interfaces and there exist several
-       providers that can be used with Chameleon
-       - Intel MKL, Netlib, OpenBlas
-     - BLAS, LAPACK, TMGLIB: there exist several providers that can be
-       used with Chameleon
-       - Eigen, Intel MKL, Netlib, OpenBlas
-     - pthread (libpthread)
-     - math (libm)
+     - runtimes:  [[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]] or [[http://icl.utk.edu/parsec/][PaRSEC]] or [[http://icl.cs.utk.edu/quark/][QUARK]]
+     - kernels : CBLAS, LAPACKE. These are C interfaces to Fortran
+       kernels BLAS and LAPACK. There exist several providers that can
+       be used with Chameleon (Intel MKL, Netlib, OpenBlas)
 
    Optional libraries:
-   - [[http://icl.cs.utk.edu/quark/][quark]]
-   - [[https://developer.nvidia.com/cuda-downloads][cuda]]
-   - [[http://docs.nvidia.com/cuda/cublas/][cublas]]: comes with cuda
-   - mpi: [[http://www.open-mpi.org/][openmpi]]
+   - cuda: [[https://developer.nvidia.com/cuda-downloads][cuda]], [[http://docs.nvidia.com/cuda/cublas/][cublas]] (comes with cuda)
+   - mpi: [[http://www.open-mpi.org/][openmpi]], [[https://www.mpich.org/][mpich]], [[https://software.intel.com/en-us/mpi-library][intelmpi]]
 
    These packages must be installed on the system before trying to
    configure/build chameleon.  Please look at the distrib/ directory
-   which gives some hints for the installation of dependencies for Unix
-   systems.
+   which gives some hints for the installation of dependencies for
+   Unix systems.
 
    We give here some examples for a Debian system:
    #+begin_src
@@ -76,27 +69,35 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
    # Install StarPU (with MPI and FxT enabled)
    mkdir -p $HOME/install
    cd $HOME/install
-   wget http://starpu.gforge.inria.fr/files/starpu-1.2.2/starpu-1.2.2.tar.gz
-   tar xvzf starpu-1.2.2.tar.gz
-   cd starpu-1.2.2/
-   ./configure --prefix=$HOME/install/starpu --disable-opencl --disable-cuda --with-fxt=/usr/lib/x86_64-linux-gnu/
-   make
-   make install
+   wget http://starpu.gforge.inria.fr/files/starpu-1.2.6/starpu-1.2.6.tar.gz
+   tar xvzf starpu-1.2.6.tar.gz
+   cd starpu-1.2.6/
+   ./configure --prefix=/usr/local --with-fxt=/usr/lib/x86_64-linux-gnu/
+   make -j5
+   sudo make install
+
+   # Install PaRSEC: to be used in place of StarPU
+   mkdir -p $HOME/install
    cd $HOME/install
-   rm starpu-1.2.2/ starpu-1.2.2.tar.gz -rf
+   git clone https://bitbucket.org/mfaverge/parsec.git
+   cd parsec
+   git checkout mymaster
+   git submodule update
+   mkdir -p build
+   cd build
+   cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON
+   make -j5
+   sudo make install
 
    # Install QUARK: to be used in place of StarPU
    mkdir -p $HOME/install
    cd $HOME/install
-   wget http://icl.cs.utk.edu/projectsfiles/quark/pubs/quark-0.9.0.tgz
-   tar xvzf quark-0.9.0.tgz
-   cd quark-0.9.0/
-   sed -i -e "s#prefix=\.\/install#prefix=$HOME/install/quark#g" make.inc
-   sed -i -e "s#CFLAGS=-O2#CFLAGS=-O2 -fPIC#g" make.inc
+   git clone https://github.com/ecrc/quark
+   cd quark/
+   sed -i -e "s#prefix=.*#prefix=/usr/local#g" make.inc
+   sed -i -e "s#CFLAGS=.*#CFLAGS= -O2 -DADD_ -fPIC#g" make.inc
    make
-   make install
-   cd $HOME/install
-   rm quark-0.9.0/ quark-0.9.0.tgz -rf
+   sudo make install
 
    #+end_src
 
@@ -161,20 +162,6 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
      *Caution about the compatibility:* Chameleon has been mainly tested
      with the reference TMGLIB from NETLIB, OpenBLAS and Intel MKL.
 
-**** QUARK
-     [[http://icl.cs.utk.edu/quark/][QUARK]] (QUeuing And Runtime for Kernels) provides a library that
-     enables the dynamic execution of tasks with data dependencies in
-     a multi-core, multi-socket, shared-memory environment.  One of
-     QUARK or StarPU Runtime systems has to be enabled in order to
-     schedule tasks on the architecture.  If QUARK is enabled then
-     StarPU is disabled and conversely.  Note StarPU is enabled by
-     default.  When Chameleon is linked with QUARK, it is not possible
-     to exploit neither CUDA (for GPUs) nor MPI (distributed-memory
-     environment).  You can use StarPU to do so.
-
-     *Caution about the compatibility:* Chameleon has been mainly tested
-     with the QUARK library 0.9.
-
 **** StarPU
      [[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]] is a task programming library for hybrid architectures.
      StarPU handles run-time concerns such as:
@@ -185,14 +172,31 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
      * Optimized cluster communications
 
      StarPU can be used to benefit from GPUs and distributed-memory
-     environment.  One of QUARK or StarPU runtime system has to be
-     enabled in order to schedule tasks on the architecture.  If
-     StarPU is enabled then QUARK is disabled and conversely.  Note
-     StarPU is enabled by default.
+     environment. Note StarPU is enabled by default.
 
      *Caution about the compatibility:* Chameleon has been mainly tested
      with StarPU-1.1 and 1.2 releases.
 
+**** PaRSEC
+     [[http://icl.utk.edu/parsec/][PaRSEC]] is a generic framework for architecture aware scheduling
+     and management of micro-tasks on distributed many-core
+     heterogeneous architectures. It can be used with MPI and Cuda.
+
+     *Caution about the compatibility:* Chameleon is compatible with
+     this version
+     https://bitbucket.org/mfaverge/parsec/branch/mymaster.
+
+**** QUARK
+     [[http://icl.cs.utk.edu/quark/][QUARK]] (QUeuing And Runtime for Kernels) provides a library that
+     enables the dynamic execution of tasks with data dependencies in
+     a multi-core, multi-socket, shared-memory environment. When
+     Chameleon is linked with QUARK, it is not possible to exploit
+     neither CUDA (for GPUs) nor MPI (distributed-memory environment).
+     You can use PaRSEC or StarPU to do so.
+
+     *Caution about the compatibility:* Chameleon has been mainly tested
+     with the QUARK library coming from https://github.com/ecrc/quark.
+
 **** FxT
      [[http://download.savannah.gnu.org/releases/fkt/][FxT]] stands for both FKT (Fast Kernel Tracing) and FUT (Fast User
      Tracing).  This library provides efficient support for recording
@@ -209,16 +213,14 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
      [[http://www.open-mpi.org/projects/hwloc/][hwloc]] (Portable Hardware Locality) is a software package for
      accessing the topology of a multicore system including components
      like: cores, sockets, caches and NUMA nodes. The topology
-     discovery library, ~hwloc~, is not mandatory to use StarPU but
-     strongly recommended.  It allows to increase performance, and to
-     perform some topology aware scheduling. ~hwloc~ is available in
-     major distributions and for most OSes and can be downloaded from
-     http://www.open-mpi.org/software/hwloc.
-
-**** pthread
-     POSIX threads library is required to run Chameleon on Unix-like systems.
-     It is a standard component of any such system.
-
+     discovery library, ~hwloc~, is strongly recommended to be used
+     through the runtime system. It allows to increase performance,
+     and to perform some topology aware scheduling. ~hwloc~ is available
+     in major distributions and for most OSes and can be downloaded
+     from http://www.open-mpi.org/software/hwloc.
+
+     *Caution about the compatibility:* hwlov should be compatible with
+     the runtime system used.
 **** OpenMPI
      [[http://www.open-mpi.org/][OpenMPI]] is an open source Message Passing Interface
      implementation for execution on multiple nodes with
@@ -249,16 +251,16 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
    <<sec:spack>>
 
    To get support to install a full distribution (Chameleon +
-   dependencies) we encourage users to use the morse branch of *Spack*.
-
-   Please read these documentations:
-   * [[http://morse.gforge.inria.fr/spack/spack.html][Spack Cham]]
-   * [[http://morse.gforge.inria.fr/spack/spack.html#orgd5b1afe][Section Chameleon]]
+   dependencies) we encourage users to use *Spack*. Please refer to our
+   [[https://gitlab.inria.fr/solverstack/spack-repo/blob/master/README.org][Spack Repository]].
 
 *** Usage example for a simple distribution of Chameleon
     #+begin_src sh
-    git clone https://github.com/solverstack/spack.git
-    . ./spack/share/spack/setup-env.sh
+    git clone https://github.com/llnl/spack.git
+    export SPACK_ROOT=$PWD/spack
+    . $SPACK_ROOT/share/spack/setup-env.sh
+    git clone https://gitlab.inria.fr/solverstack/spack-repo.git
+    spack repo add spack-repo
     spack install -v chameleon
     # chameleon is installed here:
     `spack location -i chameleon`
@@ -267,7 +269,7 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
 ** Build and install Chameleon with CMake
    Compilation of Chameleon libraries and executables are done with
    CMake (http://www.cmake.org/). This version has been tested with
-   CMake 3.5.1 but any version superior to 2.8 should be fine.
+   CMake 3.10.2 but any version superior to 2.8 should be fine.
 
    Here the steps to configure, build, test and install
    1. configure:
@@ -343,8 +345,8 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
        [[sec:depdet][Dependencies detection]]
      * *STARPU_LIBDIR=path/to/root/starpu/install/libs*, see
        [[sec:depdet][Dependencies detection]]
-     * List of packages that can searched just like STARPU (with _DIR,
-       _INCDIR and _LIBDIR):
+     * List of packages that can be searched just like STARPU (with
+       _DIR, _INCDIR and _LIBDIR):
        * *BLAS*, *CBLAS*, *EZTRACE*, *FXT*, *HWLOC*, *LAPACK*, *LAPACKE*, *QUARK*,
          *SIMGRID*, *TMG*
 
@@ -359,15 +361,18 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
 **** Chameleon specific options
      * *CHAMELEON_SCHED_STARPU=ON|OFF* (default ON): to link with
        StarPU library (runtime system)
+     * *CHAMELEON_SCHED_PARSEC=ON|OFF* (default OFF): to link with
+       PARSEC library (runtime system)
      * *CHAMELEON_SCHED_QUARK=ON|OFF* (default OFF): to link with QUARK
        library (runtime system)
      * *CHAMELEON_USE_MPI=ON|OFF* (default OFF): to link with MPI
        library (message passing implementation for use of multiple
        nodes with distributed memory), can only be used with StarPU
+       and PaRSEC
      * *CHAMELEON_USE_CUDA=ON|OFF* (default OFF): to link with CUDA
        runtime (implementation paradigm for accelerated codes on GPUs)
        and cuBLAS library (optimized BLAS kernels on GPUs), can only
-       be used with StarPU
+       be used with StarPU and PaRSEC
      * *CHAMELEON_ENABLE_DOC=ON|OFF* (default OFF): to control build of
        the documentation contained in doc/ sub-directory
      * *CHAMELEON_ENABLE_EXAMPLE=ON|OFF* (default ON): to control build
@@ -403,8 +408,8 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
     configure. Different cases:
 
     1) detection of dependencies through environment variables:
-       - LD_LIBRARY_PATH should contain the list of paths where to find
-         the libraries:
+       - LD_LIBRARY_PATH (DYLD_LIBRARY_PATH on Mac OSX) should contain
+         the list of paths where to find the libraries:
          #+begin_src
          export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:install/path/to/your/lib
          #+end_src
@@ -414,9 +419,11 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
          export INCLUDE=$INCLUDE:install/path/to/your/headers
          #+end_src
     2) detection with user's given paths:
-       - you can specify the path at cmake configure by invoking ~cmake
-         path/to/your/CMakeLists.txt -DLIB_DIR=path/to/your/lib~ where
-         LIB stands for the name of the lib to look for
+       - you can specify the path at cmake configure by invoking
+         #+begin_example
+         cmake path/to/your/CMakeLists.txt -DLIB_DIR=path/to/your/lib
+         #+end_example
+         where LIB stands for the name of the lib to look for, /e.g./
          #+begin_src
          cmake path/to/your/CMakeLists.txt -DSTARPU_DIR=path/to/starpudir \
                                            -DCBLAS_DIR= ...
@@ -424,8 +431,9 @@ we encourage users to use the /morse/ branch of [[sec:spack][Spack]].
          it is also possible to specify headers and library directories
          separately
          #+begin_src
-         cmake path/to/your/CMakeLists.txt -DSTARPU_INCDIR=path/to/libstarpu/include/starpu/1.1 \
-                                           -DSTARPU_LIBDIR=path/to/libstarpu/lib
+         cmake path/to/your/CMakeLists.txt \
+               -DSTARPU_INCDIR=path/to/libstarpu/include/starpu/1.1 \
+               -DSTARPU_LIBDIR=path/to/libstarpu/lib
          #+end_src
        - note: BLAS and LAPACK detection can be tedious so that we
          provide a verbose mode you can set *-DBLAS_VERBOSE=ON* or
diff --git a/doc/orgmode/chapters/introduction.org b/doc/orgmode/chapters/introduction.org
index 0341d5f23..ba95de2cd 100644
--- a/doc/orgmode/chapters/introduction.org
+++ b/doc/orgmode/chapters/introduction.org
@@ -1,16 +1,16 @@
 # This file is part of the Chameleon User's Guide.
-# Copyright (C) 2017 Inria
+# Copyright (C) 2018 Inria
 # See the file ../users_guide.org for copying conditions.
-** CHAMELEON project
+** MORSE project
    #+NAME: fig:chameleon_header
    #+ATTR_HTML: :align center
    [[file:chameleon_header.png]]
 
    Chameleon is a linear algebra software created jointly by several
-   research teams as part of the CHAMELEON associate team: [[http://www.icl.utk.edu/][ICL]], [[https://www.inria.fr/en/][Inria]],
+   research teams as part of the MORSE associate team: [[http://www.icl.utk.edu/][ICL]], [[https://www.inria.fr/en/][Inria]],
    [[https://www.kaust.edu.sa/en][KAUST]], [[http://www.ucdenver.edu/pages/ucdwelcomepage.aspx][The University of Colorado Denver]].
 
-*** CHAMELEON Objectives
+*** MORSE Objectives
     When processor clock speeds flatlined in 2004, after more than
     fifteen years of exponential increases, the era of near automatic
     performance improvements that the HPC application community had
@@ -30,19 +30,19 @@
     5) new levels of self-adaptivity will be required to enable
        software to modulate process speed in order to satisfy limited
        energy budgets.
-    The CHAMELEON associate team will tackle the first three challenges in
+    The MORSE associate team will tackle the first three challenges in
     a orchestrating work between research groups respectively
     specialized in sparse linear algebra, dense linear algebra and
-    runtime systems.  The overall objective is to develop robust linear
-    algebra libraries relying on innovative runtime systems that can
-    fully benefit from the potential of those future large-scale
-    complex machines.  Challenges 4) and 5) will also be investigated
-    by the different teams in the context of other partnerships, but
-    they will not be the main focus of the associate team as they are
-    much more prospective.
+    runtime systems.  The overall objective is to develop robust
+    linear algebra libraries relying on innovative runtime systems
+    that can fully benefit from the potential of those future
+    large-scale complex machines.  Challenges 4) and 5) will also be
+    investigated by the different teams in the context of other
+    partnerships, but they will not be the main focus of the associate
+    team as they are much more prospective.
 
 *** Research fields
-    The overall goal of the CHAMELEON associate team is to enable advanced
+    The overall goal of the MORSE associate team is to enable advanced
     numerical algorithms to be executed on a scalable unified runtime
     system for exploiting the full potential of future exascale
     machines.  We expect advances in three directions based first on
@@ -62,14 +62,15 @@
      productivity and expressivity.  As mentioned in the next section,
      a widely used approach consists in abstracting the application as
      a DAG that the runtime system is in charge of scheduling.
-     Scheduling such a DAG over a set of heterogeneous processing units
-     introduces a lot of new challenges, such as predicting accurately
-     the execution time of each type of task over each kind of unit,
-     minimizing data transfers between memory banks, performing data
-     prefetching, etc.  Expected advances: In a nutshell, a new runtime
-     system API will be designed to allow applications to provide
-     scheduling hints to the runtime system and to get real-time
-     feedback about the consequences of scheduling decisions.
+     Scheduling such a DAG over a set of heterogeneous processing
+     units introduces a lot of new challenges, such as predicting
+     accurately the execution time of each type of task over each kind
+     of unit, minimizing data transfers between memory banks,
+     performing data prefetching, etc.  Expected advances: In a
+     nutshell, a new runtime system API will be designed to allow
+     applications to provide scheduling hints to the runtime system
+     and to get real-time feedback about the consequences of
+     scheduling decisions.
 
 **** Runtime systems
      A runtime environment is an intermediate layer between the system
@@ -80,14 +81,14 @@
      the scalability of runtime environment. To achieve scalability it
      is required to avoid all centralization.  Here, the main problem
      is the scheduling of the tasks.  In many task-based runtime
-     environments the scheduler is centralized and becomes a bottleneck
-     as soon as too many cores are involved.  It is therefore required
-     to distribute the scheduling decision or to compute a data
-     distribution that impose the mapping of task using, for instance
-     the so-called ``owner-compute'' rule.  Expected advances: We will
-     design runtime systems that enable an efficient and scalable use
-     of thousands of distributed multicore nodes enhanced with
-     accelerators.
+     environments the scheduler is centralized and becomes a
+     bottleneck as soon as too many cores are involved.  It is
+     therefore required to distribute the scheduling decision or to
+     compute a data distribution that impose the mapping of task
+     using, for instance the so-called ``owner-compute'' rule.
+     Expected advances: We will design runtime systems that enable an
+     efficient and scalable use of thousands of distributed multicore
+     nodes enhanced with accelerators.
 
 **** Linear algebra
      Because of its central position in HPC and of the well understood
@@ -111,36 +112,38 @@
      promising approach.
 
 *** Research papers
-    Research papers about CHAMELEON can be found [[http://icl.cs.utk.edu/projectsdev/morse/pubs/index.html][here]].
+    Research papers about MORSE can be found [[http://icl.cs.utk.edu/projectsdev/morse/pubs/index.html][here]].
 
 ** Chameleon
 *** Chameleon software
     The main purpose is to address the performance shortcomings of the
     [[http://www.netlib.org/lapack/][LAPACK]] and [[http://www.netlib.org/scalapack/][ScaLAPACK]] libraries on multicore processors and
-    multi-socket systems of multicore processors and their inability to
-    efficiently utilize accelerators such as Graphics Processing Units
-    (GPUs).
+    multi-socket systems of multicore processors and their inability
+    to efficiently utilize accelerators such as Graphics Processing
+    Units (GPUs).
 
     Chameleon is a framework written in C which provides routines to
-    solve dense general systems of linear equations, symmetric positive
-    definite systems of linear equations and linear least squares
-    problems, using LU, Cholesky, QR and LQ factorizations.  Real
-    arithmetic and complex arithmetic are supported in both single
-    precision and double precision.  It supports Linux and Mac OS/X
-    machines (only tested on Intel x86-64 architecture).
+    solve dense general systems of linear equations, symmetric
+    positive definite systems of linear equations and linear least
+    squares problems, using LU, Cholesky, QR and LQ factorizations.
+    Real arithmetic and complex arithmetic are supported in both
+    single precision and double precision.  It supports Linux and Mac
+    OS/X machines (mainly tested on Intel x86-64 and IBM Power
+    architectures).
 
-    Chameleon is based on [[http://icl.cs.utk.edu/plasma/][PLASMA]] source code but is not limited to
-    shared-memory environment and can exploit multiple GPUs.  Chameleon
-    is interfaced in a generic way with both [[http://icl.cs.utk.edu/quark/][QUARK]] and [[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]] runtime
-    systems.  This feature allows to analyze in a unified framework how
-    sequential task-based algorithms behave regarding different runtime
-    systems implementations.  Using Chameleon with [[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]] runtime
-    system allows to exploit GPUs through kernels provided by [[https://developer.nvidia.com/cublas][cuBLAS]]
-    and clusters of interconnected nodes with distributed memory (using
-    [[http://www.open-mpi.org/][MPI]]).  Computation of very large systems with dense matrices on a
-    cluster of nodes is still being experimented and stabilized.  It is
-    not expected to get stable performances with the current version
-    using MPI.
+    Chameleon is based on the [[http://icl.cs.utk.edu/plasma/][PLASMA]] source code but is not limited to
+    shared-memory environment and can exploit multiple GPUs.
+    Chameleon is interfaced in a generic way with [[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]], [[http://icl.utk.edu/parsec/][PaRSEC]],
+    [[http://icl.cs.utk.edu/quark/][QUARK]] runtime systems.  This feature allows to analyze in a
+    unified framework how sequential task-based algorithms behave
+    regarding different runtime systems implementations.  Using
+    Chameleon with *StarPU* or *PaRSEC* runtime systems allows to exploit
+    GPUs through kernels provided by [[https://developer.nvidia.com/cublas][cuBLAS]] and clusters of
+    interconnected nodes with distributed memory (using [[http://www.open-mpi.org/][MPI]]).
+    Computation of very large systems with dense matrices on a cluster
+    of nodes is still being experimented and stabilized.  It is not
+    expected to get stable performances with the current version using
+    MPI.
 
 *** PLASMA's design principles
     Chameleon is originally based on [[http://icl.cs.utk.edu/plasma/][PLASMA]] so that design principles
@@ -163,18 +166,18 @@
      factorization, translating the classic algorithm to the tile
      algorithm is trivial.  In the case of matrix multiplication, the
      tile algorithm is simply a product of applying the technique of
-     *loop tiling* to the canonical definition of three nested loops.  It
-     is very similar for the Cholesky factorization.  The *left-looking*
-     definition of Cholesky factorization from LAPACK is a loop with a
-     sequence of calls to four routines: xSYRK (symmetric *rank-k*
-     update), xPOTRF (Cholesky factorization of a small block on the
-     diagonal), xGEMM (matrix multiplication) and xTRSM (triangular
-     solve).  If the xSYRK, xGEMM and xTRSM operations are expressed
-     with the canonical definition of three nested loops and the
-     technique of loop tiling is applied, the tile algorithm results.
-     Since the algorithm is produced by simple reordering of
-     operations, neither the number of operations nor numerical
-     stability of the algorithm are affected.
+     *loop tiling* to the canonical definition of three nested loops.
+     It is very similar for the Cholesky factorization.  The
+     *left-looking* definition of Cholesky factorization from LAPACK is
+     a loop with a sequence of calls to four routines: xSYRK
+     (symmetric *rank-k* update), xPOTRF (Cholesky factorization of a
+     small block on the diagonal), xGEMM (matrix multiplication) and
+     xTRSM (triangular solve).  If the xSYRK, xGEMM and xTRSM
+     operations are expressed with the canonical definition of three
+     nested loops and the technique of loop tiling is applied, the
+     tile algorithm results.  Since the algorithm is produced by
+     simple reordering of operations, neither the number of operations
+     nor numerical stability of the algorithm are affected.
 
      The situation becomes slightly more complicated for LU and QR
      factorizations, where the classic algorithms factorize an entire
@@ -184,17 +187,17 @@
      places and a tile algorithm can be fought of as one that zeroes
      one tile of the matrix at a time.  This process is referred to as
      updating of a factorization or *incremental factorization*.  The
-     process is equivalent to factorizing the top tile of a panel, then
-     placing the upper triangle of the result on top of the tile blow
-     and factorizing again, then moving to the next tile and so on.
-     Here, the tile LU and QR algorithms perform slightly more floating
-     point operations and require slightly more memory for auxiliary
-     data.  Also, the tile LU factorization applies a different
-     pivoting pattern and, as a result, is less numerically stable than
-     classic LU with full pivoting.  Numerical stability is not an
-     issue in case of the tile QR, which relies on orthogonal
-     transformations (Householder reflections), which are numerically
-     stable.
+     process is equivalent to factorizing the top tile of a panel,
+     then placing the upper triangle of the result on top of the tile
+     blow and factorizing again, then moving to the next tile and so
+     on.  Here, the tile LU and QR algorithms perform slightly more
+     floating point operations and require slightly more memory for
+     auxiliary data.  Also, the tile LU factorization applies a
+     different pivoting pattern and, as a result, is less numerically
+     stable than classic LU with full pivoting.  Numerical stability
+     is not an issue in case of the tile QR, which relies on
+     orthogonal transformations (Householder reflections), which are
+     numerically stable.
 
      #+CAPTION: Schematic illustration of the tile LU factorization (kernel names for real arithmetics in double precision), courtesey of the [[http://icl.cs.utk.edu/plasma/][PLASMA]] team.
      #+NAME: fig:tile_lu
@@ -212,11 +215,11 @@
      the three types of cache misses, *compulsory*, *capacity* and
      *conflict*, the use of tile layout minimizes the number of conflict
      misses, since a continuous region of memory will completely fill
-     out a /set-associative/ cache memory before an eviction can
-     happen.  Also, from the standpoint of multithreaded execution, the
-     probability of *false sharing* is minimized.  It can only
-     affect the cache lines containing the beginning and the ending of
-     a tile.
+     out a /set-associative/ cache memory before an eviction can happen.
+     Also, from the standpoint of multithreaded execution, the
+     probability of *false sharing* is minimized.  It can only affect
+     the cache lines containing the beginning and the ending of a
+     tile.
 
      In standard *cache-based* architecture, tiles continously laid out
      in memory maximize the profit from automatic prefetching.  Tile
@@ -236,17 +239,16 @@
 
      Another property of the layout utilized in PLASMA is that it is
      ``flat'', meaning that it does not involve a level of
-     indirection. Each tile stores a small square submatrix of the main
-     matrix in a *column-major* layout. In turn, the main matrix is an
-     arrangement of tiles immediately following one another in a
+     indirection. Each tile stores a small square submatrix of the
+     main matrix in a *column-major* layout. In turn, the main matrix is
+     an arrangement of tiles immediately following one another in a
      *column-major* layout.  The offset of each tile can be calculated
      through address arithmetics and does not involve pointer
      indirection.  Alternatively, a matrix could be represented as an
      array of pointers to tiles, located anywhere in memory. Such
      layout would be a radical and unjustifiable departure from LAPACK
      and ScaLAPACK.  Flat tile layout is a natural progression from
-     LAPACK's *column-major* layout and ScaLAPACK's
-     /block-cyclic/ layout.
+     LAPACK's *column-major* layout and ScaLAPACK's /block-cyclic/ layout.
 
      Another related property of PLASMA's tile layout is that it
      includes provisions for padding of tiles, i.e., the actual region
@@ -256,9 +258,9 @@
      described in the previous paragraph.  The motivation is that, at
      the price of small memory overhead, alignment of tile boundaries
      may prove benefivial in multiple scenarios involving memory
-     systems of standard multicore processors, as well as accelerators.
-     The issues that come into play are, again, the use of TLBs and
-     memory banks or partitions.
+     systems of standard multicore processors, as well as
+     accelerators.  The issues that come into play are, again, the use
+     of TLBs and memory banks or partitions.
 
      #+CAPTION: Schematic illustration of the tile layout with *column-major* order of tiles, *column-major* order of elements within tiles and (optional) padding for enforcing a certain alighment of tile bondaries, courtesey of the [[http://icl.cs.utk.edu/plasma/][PLASMA]] team.
      #+NAME: fig:tile_layout
@@ -267,26 +269,26 @@
 
 **** Dynamic Task Scheduling
 
-     Dynamic scheduling is the idea of assigning work to cores based on
-     the availability of data for processing at any given point in time
-     and is also referred to as *data-driven* scheduling.  The concept is
-     related closely to the idea of expressing computation through a
-     task graph, often referred to as the DAG (*Direct Acyclic Graph*),
-     and the flexibility exploring the DAG at runtime.  Thus, to a
-     large extent, dynamic scheduling is synonymous with *runtime
-     scheduling*.  An important concept here is the one of the *critical
-     path*, which defines the upper bound on the achievable parallelism,
-     and needs to be pursued at the maximum speed.  This is in direct
-     opposition to the *fork-and-join* or *data-parallel* programming
-     models, where artificial synchronization points expose serial
-     sections of the code, where multiple cores are idle, while
-     sequential processing takes place.  The use of dynamic scheduling
-     introduces a *trade-off*, though.  The more dynamic (flexible)
-     scheduling is, the more centralized (and less scalable) the
-     scheduling mechanism is.  For that reason, currently PLASMA uses
-     two scheduling mechanisms, one which is fully dynamic and one
-     where work is assigned statically and dependency checks are done
-     at runtime.
+     Dynamic scheduling is the idea of assigning work to cores based
+     on the availability of data for processing at any given point in
+     time and is also referred to as *data-driven* scheduling.  The
+     concept is related closely to the idea of expressing computation
+     through a task graph, often referred to as the DAG (*Direct
+     Acyclic Graph*), and the flexibility exploring the DAG at runtime.
+     Thus, to a large extent, dynamic scheduling is synonymous with
+     *runtime scheduling*.  An important concept here is the one of
+     the *critical path*, which defines the upper bound on the
+     achievable parallelism, and needs to be pursued at the maximum
+     speed.  This is in direct opposition to the *fork-and-join* or
+     *data-parallel* programming models, where artificial
+     synchronization points expose serial sections of the code, where
+     multiple cores are idle, while sequential processing takes place.
+     The use of dynamic scheduling introduces a *trade-off*, though.
+     The more dynamic (flexible) scheduling is, the more centralized
+     (and less scalable) the scheduling mechanism is.  For that
+     reason, currently PLASMA uses two scheduling mechanisms, one
+     which is fully dynamic and one where work is assigned statically
+     and dependency checks are done at runtime.
 
      The first scheduling mechanism relies on unfolding a *sliding
      window* of the task graph at runtime and scheduling work by
@@ -294,13 +296,13 @@
      (WAR)* and *Write After Write (WAW)*, a technique analogous to
      instruction scheduling in superscalar processors.  It also relies
      on *work-stealing* for balanding the load among all multiple cores.
-     The second scheduling mechanism relies on statically designating a
-     path through the execution space of the algorithm to each core and
-     following a cycle: transition to a task, wait for its
+     The second scheduling mechanism relies on statically designating
+     a path through the execution space of the algorithm to each core
+     and following a cycle: transition to a task, wait for its
      dependencies, execute it, update the overall progress.  Task are
-     identified by tuples and task transitions are done through locally
-     evaluated formulas.  Progress information can be centralized,
-     replicated or distributed (currently centralized).
+     identified by tuples and task transitions are done through
+     locally evaluated formulas.  Progress information can be
+     centralized, replicated or distributed (currently centralized).
 
      #+CAPTION: A trace of the tile QR factorization executing on eight cores without any global synchronization points (kernel names for real arithmetics in single precision), courtesey of the [[http://icl.cs.utk.edu/plasma/][PLASMA]] team.
      #+NAME: fig:trace_qr
diff --git a/doc/orgmode/chapters/using.org b/doc/orgmode/chapters/using.org
index a65fd0597..eb4c9cdc6 100644
--- a/doc/orgmode/chapters/using.org
+++ b/doc/orgmode/chapters/using.org
@@ -362,7 +362,7 @@
     exist default values for options.
 
     For all steps, the program solves a linear system $Ax=B$ The
-    matrix values are randomly generated but ensure that matrix \$A\$ is
+    matrix values are randomly generated but ensure that matrix $A$ is
     symmetric positive definite so that $A$ can be factorized in a
     $LL^T$ form using the Cholesky factorization.
 
@@ -746,7 +746,8 @@
      The new function to understand is *CHAMELEON_dbuild_Tile*, e.g.
      #+begin_example
      struct data_pl data_A={(double)N, 51, N};
-     CHAMELEON_dbuild_Tile(ChamUpperLower, descA, (void*)&data_A, Cham_build_callback_plgsy);
+     CHAMELEON_dbuild_Tile(ChamUpperLower, descA, (void*)&data_A,
+                           Cham_build_callback_plgsy);
      #+end_example
 
      The idea here is to let Chameleon fill the matrix data in a
diff --git a/doc/orgmode/css/VisuGen.css b/doc/orgmode/css/VisuGen.css
new file mode 100644
index 000000000..e446f1f54
--- /dev/null
+++ b/doc/orgmode/css/VisuGen.css
@@ -0,0 +1,208 @@
+HTML, BODY, A, TABLE, TR, TD, FORM, INPUT, SELECT, TEXTAREA, DIV, P, SPAN, H1, H2, H3, H4, H5, B, UL, LI, DD, DL, DT {
+
+	font-family: sans-serif, Times, "Times New Roman";
+
+}
+
+BODY {
+	margin: auto;
+	border: 0px;
+	padding: 0px;
+	background-color: rgb(250, 250, 250);
+	color: black;
+	font-size: 14px;
+}
+
+/* classe css de la page*/
+#res_script{
+	border:0px solid black;
+	width:99%;
+	font-size:1.2em;
+	text-align:left;
+	color:black;
+	background-color:white;
+}
+
+/* Titre avec le résumé de la requete, le nb de publis, ...*/
+div.ZoneTitreResultat
+{
+	padding-left:10px;
+	width:95%;
+}
+.TitreResultats{
+	color:#363842;
+	font-size: 1.4em;
+	font-weight: bold;
+}
+.SousTitreResultats {
+	margin: 0px 0px 40px;
+	font-size: 1.1em;
+	color:#363842;
+    }
+/* Zone pour afficher un message d'erreur*/
+div.ZoneTitreErreur
+{
+	padding-left:10px;
+	width:95%;
+}
+ /*Libelle du nombre de publications affichées*/
+.LibelleNbPubli {
+	margin: 0px 0px 40px;
+	font-size: 1.1em;
+	color:#363842;
+	font-weight: bold;
+}
+ /*valeur du nombre de publications affichées*/
+.ValeurNbPubli {
+	margin: 0px 0px 40px;
+	font-size: 1.1em;
+	color:#363842;
+ }
+
+/* classes pour les rubriques pour certains type de classement (type de publi, année de publi) */
+.Rubrique{
+	border: 0;
+	color:#58529f;
+	margin-left:0.2em;
+	margin-bottom:0.2em;
+  font-weight:bold;
+	font-size:1.4em;
+}
+.SousRubrique{
+	color:#58529f;
+  font-weight:bold;
+	margin-left:0.4em;
+	font-size:1.2em;
+}
+
+/* Classe le dl qui contient chaque publication */
+.NoticeRes {
+	border: 0;
+	padding-bottom: 0.5em;
+	margin:0 0 1em;
+}
+.NoticeResAvecVignette {
+	border: 0;
+	padding-bottom: 0.5em;
+	min-height:100px;
+}
+
+/*classe dt qui permmettent d'afficher les noms des champs */
+.ChampRes {
+	clear:both;
+	float:left;
+	text-align:left;
+	font-size:0.9em;
+	font-weight:bold;
+	width: 23%;
+	margin-left:1em;
+	margin-bottom: 0em;
+	margin-top: 0em;
+	padding: 0em;
+}
+.ChampResAvecVignette {
+	display:none;
+width: 15%;
+	text-align:left;
+	font-size:0.9em;
+	color:#58529F;
+	font-weight:bold;
+	margin-bottom: 0em;
+	margin-top: 0em;
+	padding: 0em;
+	margin-left:120px;
+}
+
+
+/* classes dd pour l'affichage de la valeur des champs
+/* Nom du champ : titre, auteur, detail, acces au texte integral...
+ - pratique pour connaitre le nom du champ et la classe css associée
+ - ne fonctionne pas si on affiche les vignettes */
+
+/* Classe commune à  tous les champs affichés */
+.ValeurRes {
+	margin-left:25%;
+	margin-bottom: 0em;
+	margin-top: 0em;
+	padding: 0em;
+	text-align:left;
+	font-size: 0.9em;
+	font-size: 1em;
+}
+.ValeurRes a{
+	color:black;
+	text-decoration:underline;
+	font-size: 1em;
+}
+/* quand il y a affichage de vignette */
+.ValeurResAvecVignette {
+	margin-left:120px;
+	margin-bottom: 0em;
+	margin-top: 0em;
+	padding: 0em;
+	text-align:left;
+	font-size: 0.9em;
+	font-size: 1em;
+}
+.ValeurResAvecVignette a{
+	color:black;
+	text-decoration:underline;
+	font-size: 1em;
+}
+
+
+/* classe pour les auteurs */
+.Auteurs {
+}
+/* classe pour les titres */
+.Titre {
+   font-weight:bold;
+}
+/* classe pour les identifiants */
+.Identifiant {
+}
+/* classe des détails de publication : une classe par type */
+.detail_revue,.detail_conf,.detail_cours,.detail_ouv,.detail_hdr,.detail_these,.detail_autre,.detail_brevet,.detail_rapport,.detail_sans_ref{
+}
+/* classe pour les doi */
+.DOI{
+}
+/* classe pour les résumés */
+.Debut_du_resume{
+}
+/* classe pour le type de document */
+.Type_de_document{
+}
+/* classe pour l'audience */
+.Audience{
+}
+/* affichage des vignettes*/
+.Vignette {
+  float: left;
+  clear:left;
+  padding-right:0em;
+  margin-left:0.5em;
+  }
+.VignetteImg {
+	width: auto;
+	height: auto;
+}
+
+/*affichage des fichiers joints*/
+.Fichier_joint a{
+    text-decoration:none;
+}
+
+/*lien vers le bibtex*/
+.LienBibtex{
+}
+.LienBibtexACoteFulltext{
+margin-left:1em;
+}
+/*mois de la conférence*/
+.MoisConf{
+}
+
+.ref_biblio_hal a{
+	text-decoration:none;
+}
diff --git a/doc/orgmode/css/VisuRubriqueEncadre.css b/doc/orgmode/css/VisuRubriqueEncadre.css
new file mode 100644
index 000000000..022ce8d7f
--- /dev/null
+++ b/doc/orgmode/css/VisuRubriqueEncadre.css
@@ -0,0 +1,70 @@
+
+/* classe css de la page*/
+#res_script{
+	border:0;
+	background-color:white;
+	color:black;
+}
+
+/*Titre*/
+div.ZoneTitreResultat
+{
+	display:none;
+}
+/* classe pour les rubriques pour certains type de classement (type de publi, année de publi) */ 
+.Rubrique{
+/*	position: relative;*/
+	font-size:x-large;
+	color:#446;
+	letter-spacing:2px;
+	font-weight:bold;
+	background:#CCC;
+	text-align:left;
+	border: solid 1px #558;
+	padding: 3px 0px 2px 10px;
+	margin-top: 5px;
+	margin-bottom: 12px;
+}
+.SousRubrique{
+  font-weight:bold;
+	margin-left:10px;
+	font-size:1.3em;
+}
+
+
+/*nom du champ*/
+.ChampRes {
+	display:none;
+}
+
+/* classe commune à tous les champs affichés */ 
+.ValeurRes {
+	color:black;
+  margin-left:1em;
+}
+/* classe pour les auteurs */ 
+.Auteurs {
+}
+/* classe pour les titres */ 
+.Titre, .Titre a {
+   font-weight:bold;
+	color:#58529F;
+}
+/* classe pour les identifiants */ 
+.Identifiant {
+}
+/* classe des détails de publication : une classe par type */ 
+.detail_revue,.detail_conf,.detail_cours,.detail_ouv,.detail_hdr,.detail_these,.detail_autre,.detail_brevet,.detail_rapport,.detail_sans_ref{
+}
+/* classe pour les doi */ 
+.DOI{
+}
+/* classe pour les résumés */ 
+.Debut_du_resume{
+}
+/* classe pour le type de document */ 
+.Type_de_document{
+}
+/* classe pour l'audience */ 
+.Audience{
+}
diff --git a/doc/orgmode/css/worg.css b/doc/orgmode/css/worg.css
new file mode 100644
index 000000000..034fb09f5
--- /dev/null
+++ b/doc/orgmode/css/worg.css
@@ -0,0 +1,1038 @@
+@media all
+{
+  body {
+    font-family: "Helvetica Neue", "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, sans-serif !important;
+    font-size: 14px;
+    line-height: 21px;
+    color: #333;
+
+    max-width: 800px;
+    margin: auto;
+    /* background-image: url(http://orgmode.org/worg-unicorn.png); */
+    /* background-position: 25px 5px; */
+    /* background-repeat: no-repeat; */
+    }
+    body #content {
+      padding-top: 70px;
+    }
+    body .title {
+      margin-left: 120px;
+    }
+
+  #org-div-home-and-up{
+      position: fixed;
+      right: 0;
+      top: 4em;
+  }
+
+  #site-map {
+    font-size: 10pt;
+    position: fixed;
+    left: 0em;
+    top: 0em;
+    background: white;
+    -webkit-box-shadow: 0 0 1em #777777;
+    -moz-box-shadow: 0 0 1em #777777;
+    -webkit-border-bottom-right-radius: 5px;
+    -moz-border-radius-bottomright: 5px;
+    text-align: right;
+    /* ensure doesn't flow off the screen when expanded */
+    max-height: 80%;
+    overflow: auto; }
+    #site-map h2 {
+	font-size: 10pt;
+      max-width: 9em;
+      font-weight: normal;
+      padding-left: 0.5em;
+      padding-left: 0.5em;
+      padding-top: 0.05em;
+      padding-bottom: 0.05em; }
+    #site-map #text-site-map {
+      text-align: left;
+      display: block;
+      padding: 0.5em;
+      margin-top: -1.5em; }
+    /* #site-map #text-site-map { */
+    /*   display: none; */
+    /*   text-align: left; } */
+    /* #site-map:hover #text-site-map { */
+    /*   display: block; */
+    /*   padding: 0.5em; */
+    /*   margin-top: -1.5em; } */
+
+  #blog-site-map {
+    font-size: 10pt;
+    position: fixed;
+    left: 0em;
+    top: 0em;
+    background: white;
+    -webkit-box-shadow: 0 0 1em #777777;
+    -moz-box-shadow: 0 0 1em #777777;
+    -webkit-border-bottom-right-radius: 5px;
+    -moz-border-radius-bottomright: 5px;
+    text-align: right;
+    /* ensure doesn't flow off the screen when expanded */
+    max-height: 80%;
+    overflow: auto; }
+    #blog-site-map h2 {
+      font-size: 10pt;
+      max-width: 9em;
+      font-weight: normal;
+      padding-left: 0.5em;
+      padding-left: 0.5em;
+      padding-top: 0.05em;
+      padding-bottom: 0.05em; }
+    #blog-site-map #text-blog-site-map {
+      text-align: left;
+      padding: 0.5em;
+      display: none;  }
+    #blog-site-map:hover #text-blog-site-map {
+      text-align: left;
+      display: block;
+      padding: 0.5em;
+      margin-top: -1.5em;
+    }
+    /* #site-map #text-site-map { */
+    /*   display: none; */
+    /*   text-align: left; } */
+    /* #site-map:hover #text-site-map { */
+    /*   display: block; */
+    /*   padding: 0.5em; */
+    /*   margin-top: -1.5em; } */
+
+  /* TOC inspired by http://jashkenas.github.com/coffee-script */
+  #table-of-contents {
+    font-size: 10pt;
+    position: fixed;
+    right: 1em;
+    top: 1em;
+    background: white;
+    -webkit-box-shadow: 0 0 1em #777777;
+    -moz-box-shadow: 0 0 1em #777777;
+    -webkit-border-bottom-left-radius: 5px;
+    -moz-border-radius-bottomleft: 5px;
+    text-align: right;
+    /* ensure doesn't flow off the screen when expanded */
+    max-height: 80%;
+    overflow: auto;
+    padding: 0.5em;
+}
+    #table-of-contents h2 {
+      font-size: 10pt;
+      max-width: 9em;
+      font-weight: normal;
+      padding-left: 0.5em;
+      padding-left: 0.5em;
+      padding-top: 0.05em;
+      padding-bottom: 0.05em; }
+    #table-of-contents #text-table-of-contents {
+      display: none;
+      text-align: left; }
+    #table-of-contents:hover #text-table-of-contents {
+      display: block;
+      padding: 0.5em;
+      margin-top: -1.5em; }
+
+  /* #license { */
+  /*   padding: .3em; */
+  /*   border: 1px solid gray; */
+  /*   background-color: #eeeeee; */
+  /* } */
+
+  h1 {
+/*
+    font-family:Sans;
+    font-weight:bold; */
+    /*font-size:2.5em;*/ /*LUKA*/
+    padding:0 0 30px 0;
+    margin-top: 10px;
+    margin-bottom: 10px;
+    margin-right: 7%;
+    margin-left: 0.6em; /*LUKA*/
+    /*color: #6C5D4F;*/
+    color: #58529f; /*LUKA*/
+  }
+
+  .outline-text-1 { /*LUKA*/
+    margin-left: 0.6em;
+    font-size:1em;
+  }
+
+/*
+  h2:before {
+    content: "* "
+  }
+
+
+  h3:before {
+    content: "** "
+  }
+
+  h4:before {
+    content: "*** "
+  }
+*/
+
+  h2 {
+    font-family:Arial,sans-serif;
+    /*font-size:2.1em;*/ /*LUKA*/
+    line-height:16px;
+    padding:7px 0 0 0;
+    color: #D40000; /*LUKA*/
+    margin-left: 0.4em; /*LUKA*/
+  }
+
+  .outline-text-2 {
+    margin-left: 0.6em; /*LUKA*/
+    /*font-size:1.2em;*/ /*LUKA*/
+  }
+
+  .title {
+
+  }
+
+  h3 {
+    font-family:Arial,sans-serif;
+    /*font-size:1.3em;*/
+    color: #D40000; /*LUKA*/
+    margin-left: 0.6em;
+  }
+
+  .outline-text-3 {
+    margin-left: 0.9em;
+  }
+
+  h4 {
+    font-family:Arial,sans-serif;
+    /*font-size:1.2em;*/
+    margin-left: 1.2em;
+    color: #A5573E;
+  }
+
+  .outline-text-4 {
+    margin-left: 1.45em;
+  }
+
+    /*LUKA*/
+  a {text-decoration: none;  color: #58529f} /*color: #537d7b}*/
+
+  /* a:visited {text-decoration: none; color: #224444} */ /* Taken out because color too similar to text. */
+  a:visited {text-decoration: none; color: #800000}/*color: #98855b}  /* this is now the color of the Unicorns horn */
+  a:hover {text-decoration: underline; color: #a34d32}
+
+  .todo {
+    color: #CA0000;
+  }
+
+  .done {
+    color: #006666;
+  }
+
+  .timestamp-kwd {
+    color: #444;
+  }
+
+  .tag {
+
+  }
+
+  li {
+    margin: .4em;
+  }
+
+  table {
+    border: none;
+  }
+
+  td {
+    border: none;
+  }
+
+  th {
+    border: none;
+  }
+
+  code {
+    font-size: 100%;
+    color: black;
+    border: 1px solid #DEDEDE;
+    padding: 0px 0.2em;
+  }
+
+  img {
+    border: none;
+  }
+
+  .share img {
+    opacity: .4;
+    -moz-opacity: .4;
+    filter: alpha(opacity=40);
+  }
+
+  .share img:hover {
+    opacity: 1;
+    -moz-opacity: 1;
+    filter: alpha(opacity=100);
+  }
+
+  /* pre {border: 1px solid #555; */
+  /*      background: #EEE; */
+  /*      font-size: 9pt; */
+  /*      padding: 1em; */
+  /*     } */
+
+  /* pre { */
+  /*     color: #e5e5e5; */
+  /*     background-color: #000000; */
+  /*     padding: 1.4em; */
+  /*     border: 2px solid gray; */
+  /* } */
+
+  /* pre { */
+  /*     background-color: #2b2b2b; */
+  /*     border: 4px solid gray; */
+  /*     color: #EEE; */
+  /*     overflow: auto; */
+  /*     padding: 1em; */
+  /*  } */
+
+  pre {
+    font-family: Monaco, Consolas, "Lucida Console", monospace;
+    color: black;
+    background-color: #efefef;
+    padding: 1.2em;
+    border: 1px solid #dddddd;
+    overflow: auto;
+
+    -webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.23);
+    -moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.23);
+    box-shadow: 0px 0px 4px rgba(0,0,0,0.23);
+  }
+
+  .org-info-box {
+    clear:both;
+    margin-left:auto;
+    margin-right:auto;
+    padding:0.7em;
+    /* border:1px solid #CCC; */
+    /* border-radius:10px; */
+    /* -moz-border-radius:10px; */
+  }
+  .org-info-box img {
+    float:left;
+    margin:0em 0.5em 0em 0em;
+  }
+  .org-info-box p {
+    margin:0em;
+    padding:0em;
+  }
+
+
+  .builtin {
+    /* font-lock-builtin-face */
+    color: #f4a460;
+  }
+  .comment {
+    /* font-lock-comment-face */
+    color: #737373;
+  }
+  .comment-delimiter {
+    /* font-lock-comment-delimiter-face */
+    color: #666666;
+  }
+  .constant {
+    /* font-lock-constant-face */
+    color: #db7093;
+  }
+  .doc {
+    /* font-lock-doc-face */
+    color: #b3b3b3;
+  }
+  .function-name {
+    /* font-lock-function-name-face */
+    color: #5f9ea0;
+  }
+  .headline {
+    /* headline-face */
+    color: #ffffff;
+    background-color: #000000;
+    font-weight: bold;
+  }
+  .keyword {
+    /* font-lock-keyword-face */
+    color: #4682b4;
+  }
+  .negation-char {
+  }
+  .regexp-grouping-backslash {
+  }
+  .regexp-grouping-construct {
+  }
+  .string {
+    /* font-lock-string-face */
+    color: #ccc79a;
+  }
+  .todo-comment {
+    /* todo-comment-face */
+    color: #ffffff;
+    background-color: #000000;
+    font-weight: bold;
+  }
+  .variable-name {
+    /* font-lock-variable-name-face */
+    color: #ff6a6a;
+  }
+  .warning {
+    /* font-lock-warning-face */
+    color: #ffffff;
+    background-color: #cd5c5c;
+    font-weight: bold;
+  }
+  pre.a {
+    color: inherit;
+    background-color: inherit;
+    font: inherit;
+    text-decoration: inherit;
+  }
+  pre.a:hover {
+    text-decoration: underline;
+  }
+
+  /* Styles for org-info.js */
+
+  .org-info-js_info-navigation
+  {
+    border-style:none;
+  }
+
+  #org-info-js_console-label
+  {
+    font-size:10px;
+    font-weight:bold;
+    white-space:nowrap;
+  }
+
+  .org-info-js_search-highlight
+  {
+    background-color:#ffff00;
+    color:#000000;
+    font-weight:bold;
+  }
+
+  #org-info-js-window
+  {
+    border-bottom:1px solid black;
+    padding-bottom:10px;
+    margin-bottom:10px;
+  }
+
+
+
+  .org-info-search-highlight
+  {
+    background-color:#adefef; /* same color as emacs default */
+    color:#000000;
+    font-weight:bold;
+  }
+
+  .org-bbdb-company {
+    /* bbdb-company */
+    font-style: italic;
+  }
+  .org-bbdb-field-name {
+  }
+  .org-bbdb-field-value {
+  }
+  .org-bbdb-name {
+    /* bbdb-name */
+    text-decoration: underline;
+  }
+  .org-bold {
+    /* bold */
+    font-weight: bold;
+  }
+  .org-bold-italic {
+    /* bold-italic */
+    font-weight: bold;
+    font-style: italic;
+  }
+  .org-border {
+    /* border */
+    background-color: #000000;
+  }
+  .org-buffer-menu-buffer {
+    /* buffer-menu-buffer */
+    font-weight: bold;
+  }
+  .org-builtin {
+    /* font-lock-builtin-face */
+    color: #da70d6;
+  }
+  .org-button {
+    /* button */
+    text-decoration: underline;
+  }
+  .org-c-nonbreakable-space {
+    /* c-nonbreakable-space-face */
+    background-color: #ff0000;
+    font-weight: bold;
+  }
+  .org-calendar-today {
+    /* calendar-today */
+    text-decoration: underline;
+  }
+  .org-comment {
+    /* font-lock-comment-face */
+    color: #b22222;
+  }
+  .org-comment-delimiter {
+    /* font-lock-comment-delimiter-face */
+    color: #b22222;
+  }
+  .org-constant {
+    /* font-lock-constant-face */
+    color: #5f9ea0;
+  }
+  .org-cursor {
+    /* cursor */
+    background-color: #000000;
+  }
+  .org-default {
+    /* default */
+    color: #000000;
+    background-color: #ffffff;
+  }
+  .org-diary {
+    /* diary */
+    color: #ff0000;
+  }
+  .org-doc {
+    /* font-lock-doc-face */
+    color: #bc8f8f;
+  }
+  .org-escape-glyph {
+    /* escape-glyph */
+    color: #a52a2a;
+  }
+  .org-file-name-shadow {
+    /* file-name-shadow */
+    color: #7f7f7f;
+  }
+  .org-fixed-pitch {
+  }
+  .org-fringe {
+    /* fringe */
+    background-color: #f2f2f2;
+  }
+  .org-function-name {
+    /* font-lock-function-name-face */
+    color: #0000ff;
+  }
+  .org-header-line {
+    /* header-line */
+    color: #333333;
+    background-color: #e5e5e5;
+  }
+  .org-help-argument-name {
+    /* help-argument-name */
+    font-style: italic;
+  }
+  .org-highlight {
+    /* highlight */
+    background-color: #b4eeb4;
+  }
+  .org-holiday {
+    /* holiday */
+    background-color: #ffc0cb;
+  }
+  .org-info-header-node {
+    /* info-header-node */
+    color: #a52a2a;
+    font-weight: bold;
+    font-style: italic;
+  }
+  .org-info-header-xref {
+    /* info-header-xref */
+    color: #ff6600; /*LUKA*/
+    /*color: #0000ff;*/
+    text-decoration: underline;
+  }
+  .org-info-menu-header {
+    /* info-menu-header */
+    font-weight: bold;
+  }
+  .org-info-menu-star {
+    /* info-menu-star */
+    color: #ff0000;
+  }
+  .org-info-node {
+    /* info-node */
+    color: #a52a2a;
+    font-weight: bold;
+    font-style: italic;
+  }
+  .org-info-title-1 {
+    /* info-title-1 */
+    font-size: 172%;
+    font-weight: bold;
+  }
+  .org-info-title-2 {
+    /* info-title-2 */
+    font-size: 144%;
+    font-weight: bold;
+  }
+  .org-info-title-3 {
+    /* info-title-3 */
+    font-size: 120%;
+    font-weight: bold;
+  }
+  .org-info-title-4 {
+    /* info-title-4 */
+    font-weight: bold;
+  }
+  .org-info-xref {
+    /* info-xref */
+    color: #ff6600; /*LUKA*/
+/*    color: #0000ff;*/
+    text-decoration: underline;
+  }
+  .org-isearch {
+    /* isearch */
+    color: #b0e2ff;
+    background-color: #cd00cd;
+  }
+  .org-italic {
+    /* italic */
+    font-style: italic;
+  }
+  .org-keyword {
+    /* font-lock-keyword-face */
+    color: #a020f0;
+  }
+  .org-lazy-highlight {
+    /* lazy-highlight */
+    background-color: #afeeee;
+  }
+  .org-link {
+    /* link */
+    /*color: #0000ff;*/
+    color: #ff6600; /*LUKA*/
+    text-decoration: underline;
+  }
+  .org-link-visited {
+    /* link-visited */
+    color: #ff0000; /*LUKA*/
+    /*color: #8b008b;*/
+    text-decoration: underline;
+  }
+  .org-match {
+    /* match */
+    background-color: #ffff00;
+  }
+  .org-menu {
+  }
+  .org-message-cited-text {
+    /* message-cited-text */
+    color: #ff0000;
+  }
+  .org-message-header-cc {
+    /* message-header-cc */
+    color: #191970;
+  }
+  .org-message-header-name {
+    /* message-header-name */
+    color: #6495ed;
+  }
+  .org-message-header-newsgroups {
+    /* message-header-newsgroups */
+    color: #00008b;
+    font-weight: bold;
+    font-style: italic;
+  }
+  .org-message-header-other {
+    /* message-header-other */
+    color: #4682b4;
+  }
+  .org-message-header-subject {
+    /* message-header-subject */
+    color: #000080;
+    font-weight: bold;
+  }
+  .org-message-header-to {
+    /* message-header-to */
+    color: #191970;
+    font-weight: bold;
+  }
+  .org-message-header-xheader {
+    /* message-header-xheader */
+    color: #0000ff;
+  }
+  .org-message-mml {
+    /* message-mml */
+    color: #228b22;
+  }
+  .org-message-separator {
+    /* message-separator */
+    color: #a52a2a;
+  }
+  .org-minibuffer-prompt {
+    /* minibuffer-prompt */
+    color: #0000cd;
+  }
+  .org-mm-uu-extract {
+    /* mm-uu-extract */
+    color: #006400;
+    background-color: #ffffe0;
+  }
+  .org-mode-line {
+    /* mode-line */
+    color: #000000;
+    background-color: #bfbfbf;
+  }
+  .org-mode-line-buffer-id {
+    /* mode-line-buffer-id */
+    font-weight: bold;
+  }
+  .org-mode-line-highlight {
+  }
+  .org-mode-line-inactive {
+    /* mode-line-inactive */
+    color: #333333;
+    background-color: #e5e5e5;
+  }
+  .org-mouse {
+    /* mouse */
+    background-color: #000000;
+  }
+  .org-negation-char {
+  }
+  .org-next-error {
+    /* next-error */
+    background-color: #eedc82;
+  }
+  .org-nobreak-space {
+    /* nobreak-space */
+    color: #a52a2a;
+    text-decoration: underline;
+  }
+  .org-org-agenda-date {
+    /* org-agenda-date */
+    color: #0000ff;
+  }
+  .org-org-agenda-date-weekend {
+    /* org-agenda-date-weekend */
+    color: #0000ff;
+    font-weight: bold;
+  }
+  .org-org-agenda-restriction-lock {
+    /* org-agenda-restriction-lock */
+    background-color: #ffff00;
+  }
+  .org-org-agenda-structure {
+    /* org-agenda-structure */
+    color: #0000ff;
+  }
+  .org-org-archived {
+    /* org-archived */
+    color: #7f7f7f;
+  }
+  .org-org-code {
+    /* org-code */
+    color: #7f7f7f;
+  }
+  .org-org-column {
+    /* org-column */
+    background-color: #e5e5e5;
+  }
+  .org-org-column-title {
+    /* org-column-title */
+    background-color: #e5e5e5;
+    font-weight: bold;
+    text-decoration: underline;
+  }
+  .org-org-date {
+    /* org-date */
+    color: #a020f0;
+    text-decoration: underline;
+  }
+  .org-org-done {
+    /* org-done */
+    color: #228b22;
+    font-weight: bold;
+  }
+  .org-org-drawer {
+    /* org-drawer */
+    color: #0000ff;
+  }
+  .org-org-ellipsis {
+    /* org-ellipsis */
+    color: #b8860b;
+    text-decoration: underline;
+  }
+  .org-org-formula {
+    /* org-formula */
+    color: #b22222;
+  }
+  .org-org-headline-done {
+    /* org-headline-done */
+    color: #bc8f8f;
+  }
+  .org-org-hide {
+    /* org-hide */
+    color: #e5e5e5;
+  }
+  .org-org-latex-and-export-specials {
+    /* org-latex-and-export-specials */
+    color: #8b4513;
+  }
+  .org-org-level-1 {
+    /* org-level-1 */
+    color: #0000ff;
+  }
+  .org-org-level-2 {
+    /* org-level-2 */
+    color: #b8860b;
+  }
+  .org-org-level-3 {
+    /* org-level-3 */
+    color: #a020f0;
+  }
+  .org-org-level-4 {
+    /* org-level-4 */
+    color: #b22222;
+  }
+  .org-org-level-5 {
+    /* org-level-5 */
+    color: #228b22;
+  }
+  .org-org-level-6 {
+    /* org-level-6 */
+    color: #5f9ea0;
+  }
+  .org-org-level-7 {
+    /* org-level-7 */
+    color: #da70d6;
+  }
+  .org-org-level-8 {
+    /* org-level-8 */
+    color: #bc8f8f;
+  }
+  .org-org-link {
+    /* org-link */
+    color: #ff6600; /*LUKA*/
+    /*color: #a020f0;*/
+    text-decoration: underline;
+  }
+  .org-org-property-value {
+  }
+  .org-org-scheduled-previously {
+    /* org-scheduled-previously */
+    color: #b22222;
+  }
+  .org-org-scheduled-today {
+    /* org-scheduled-today */
+    color: #006400;
+  }
+  .org-org-sexp-date {
+    /* org-sexp-date */
+    color: #a020f0;
+  }
+  .org-org-special-keyword {
+    /* org-special-keyword */
+    color: #bc8f8f;
+  }
+  .org-org-table {
+    /* org-table */
+    color: #0000ff;
+  }
+  .org-org-tag {
+    /* org-tag */
+    font-weight: bold;
+  }
+  .org-org-target {
+    /* org-target */
+    text-decoration: underline;
+  }
+  .org-org-time-grid {
+    /* org-time-grid */
+    color: #b8860b;
+  }
+  .org-org-todo {
+    /* org-todo */
+    color: #ff0000;
+  }
+  .org-org-upcoming-deadline {
+    /* org-upcoming-deadline */
+    color: #b22222;
+  }
+  .org-org-verbatim {
+    /* org-verbatim */
+    color: #7f7f7f;
+    text-decoration: underline;
+  }
+  .org-org-warning {
+    /* org-warning */
+    color: #ff0000;
+    font-weight: bold;
+  }
+  .org-outline-1 {
+    /* outline-1 */
+    color: #0000ff;
+  }
+  .org-outline-2 {
+    /* outline-2 */
+    color: #b8860b;
+  }
+  .org-outline-3 {
+    /* outline-3 */
+    color: #a020f0;
+  }
+  .org-outline-4 {
+    /* outline-4 */
+    color: #b22222;
+  }
+  .org-outline-5 {
+    /* outline-5 */
+    color: #228b22;
+  }
+  .org-outline-6 {
+    /* outline-6 */
+    color: #5f9ea0;
+  }
+  .org-outline-7 {
+    /* outline-7 */
+    color: #da70d6;
+  }
+  .org-outline-8 {
+    /* outline-8 */
+    color: #bc8f8f;
+  }
+  .outline-text-1, .outline-text-2, .outline-text-3, .outline-text-4, .outline-text-5, .outline-text-6 {
+    /* Add more spacing between section. Padding, so that folding with org-info.js works as expected. */
+
+  }
+
+  .org-preprocessor {
+    /* font-lock-preprocessor-face */
+    color: #da70d6;
+  }
+  .org-query-replace {
+    /* query-replace */
+    color: #b0e2ff;
+    background-color: #cd00cd;
+  }
+  .org-regexp-grouping-backslash {
+    /* font-lock-regexp-grouping-backslash */
+    font-weight: bold;
+  }
+  .org-regexp-grouping-construct {
+    /* font-lock-regexp-grouping-construct */
+    font-weight: bold;
+  }
+  .org-region {
+    /* region */
+    background-color: #eedc82;
+  }
+  .org-rmail-highlight {
+  }
+  .org-scroll-bar {
+    /* scroll-bar */
+    background-color: #bfbfbf;
+  }
+  .org-secondary-selection {
+    /* secondary-selection */
+    background-color: #ffff00;
+  }
+  .org-shadow {
+    /* shadow */
+    color: #7f7f7f;
+  }
+  .org-show-paren-match {
+    /* show-paren-match */
+    background-color: #40e0d0;
+  }
+  .org-show-paren-mismatch {
+    /* show-paren-mismatch */
+    color: #ffffff;
+    background-color: #a020f0;
+  }
+  .org-string {
+    /* font-lock-string-face */
+    color: #bc8f8f;
+  }
+  .org-texinfo-heading {
+    /* texinfo-heading */
+    color: #0000ff;
+  }
+  .org-tool-bar {
+    /* tool-bar */
+    color: #000000;
+    background-color: #bfbfbf;
+  }
+  .org-tooltip {
+    /* tooltip */
+    color: #000000;
+    background-color: #ffffe0;
+  }
+  .org-trailing-whitespace {
+    /* trailing-whitespace */
+    background-color: #ff0000;
+  }
+  .org-type {
+    /* font-lock-type-face */
+    color: #228b22;
+  }
+  .org-underline {
+    /* underline */
+    text-decoration: underline;
+  }
+  .org-variable-name {
+    /* font-lock-variable-name-face */
+    color: #b8860b;
+  }
+  .org-variable-pitch {
+  }
+  .org-vertical-border {
+  }
+  .org-warning {
+    /* font-lock-warning-face */
+    color: #ff0000;
+    font-weight: bold;
+  }
+  .rss_box {}
+  .rss_title, rss_title a {}
+  .rss_items {}
+  .rss_item a:link, .rss_item a:visited, .rss_item a:active {}
+  .rss_item a:hover {}
+  .rss_date {}
+
+  #postamble {
+    padding: .3em;
+    border: 1px solid gray;
+    background-color: #eeeeee;
+  }
+
+
+} /* END OF @media all */
+
+
+
+@media screen
+{
+  #table-of-contents {
+    float: right;
+    border: 1px solid #CCC;
+    max-width: 50%;
+    overflow: auto;
+    z-index: 99999;
+  }
+} /* END OF @media screen */
+
+.left{float:left; margin:0 15px 4px 0;}
+.right{float:right; margin:0 0 4px 15px;}
+.photo{
+border:1px solid #bababa;
+padding:2px;
+background-color:#ffffff;
+margin:6px 18px 2px 5px;
+}
diff --git a/doc/orgmode/morse.css b/doc/orgmode/morse.css
deleted file mode 100644
index 41adb2007..000000000
--- a/doc/orgmode/morse.css
+++ /dev/null
@@ -1,72 +0,0 @@
-body {
-  padding: 2em 1em 2em 70px;
-  margin: 0;
-  font-family: sans-serif;
-  color: black;
-  background: white;
-  background-position: top left;
-  background-attachment: fixed;
-  background-repeat: no-repeat;
-}
-:link { color: #00C; background: transparent }
-:visited { color: #609; background: transparent }
-a:active { color: #C00; background: transparent }
-
-a:link img, a:visited img { border-style: none }
-
-a img { color: white; }
-@media all {
-  a img { color: inherit; }
-}
-
-th, td {
-  font-family: sans-serif;
-}
-
-h1, h2, h3, h4, h5, h6 { text-align: left }
-h1, h2, h3 { color: #005A9C; background: white }
-h1 { font: 170% sans-serif }
-h2 { font: 140% sans-serif }
-h3 { font: 120% sans-serif }
-h4 { font: bold 100% sans-serif }
-h5 { font: italic 100% sans-serif }
-h6 { font: small-caps 100% sans-serif }
-
-.hide { display: none }
-
-div.head { margin-bottom: 1em }
-div.head h1 { margin-top: 2em; clear: both }
-div.head table { margin-left: 2em; margin-top: 2em }
-
-p.copyright { font-size: small }
-p.copyright small { font-size: small }
-
-@media screen {
-a[href]:hover { background: #ffa }
-}
-
-pre { margin-left: 2em }
-
-dt, dd { margin-top: 0; margin-bottom: 0 }
-dt { font-weight: bold }
-
-pre, code { font-family: monospace }
-
-ul.toc, ol.toc {
-  list-style: disc;
-  list-style: none;
-}
-
-@media aural {  
-  h1, h2, h3 { stress: 20; richness: 90 }
-  .hide { speak: none }
-  p.copyright { volume: x-soft; speech-rate: x-fast }
-  dt { pause-before: 20% }
-  pre { speak-punctuation: code } 
-}
-
-/*
-body {
-  background-image: url();
-}
-*/
diff --git a/doc/orgmode/users_guide.org.in b/doc/orgmode/users_guide.org.in
index 2b0a3327a..4e5f3c2ea 100644
--- a/doc/orgmode/users_guide.org.in
+++ b/doc/orgmode/users_guide.org.in
@@ -3,6 +3,10 @@
 #+LANGUAGE:  en
 #+OPTIONS: H:3 num:t \n:nil @:t ::t |:t _:nil ^:nil -:t f:t *:t <:t
 #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil pri:nil tags:not-in-toc html-style:nil
+#+BEAMER_THEME: Rochester
+#+HTML_HEAD:   <link rel="stylesheet" title="Standard" href="css/worg.css" type="text/css" />
+#+HTML_HEAD:   <link rel="stylesheet" type="text/css" href="css/VisuGen.css" />
+#+HTML_HEAD:   <link rel="stylesheet" type="text/css" href="css/VisuRubriqueEncadre.css" />
 #+INCLUDE: "./version.org"
 #+AUTHOR: version {{{VERSION}}}
 * Version
@@ -15,7 +19,7 @@
   * King Abdullah University of Science and Technology
 * Copying
 
-  * Copyright \copy 2017 Inria
+  * Copyright \copy {{{UPDATED-YEAR}}} Inria
   * Copyright \copy 2014 The University of Tennessee
   * Copyright \copy 2014 King Abdullah University of Science and Technology
 
diff --git a/doc/orgmode/version.org.in b/doc/orgmode/version.org.in
index 4481ea26c..8bc0a7dbe 100644
--- a/doc/orgmode/version.org.in
+++ b/doc/orgmode/version.org.in
@@ -1,4 +1,5 @@
-#+MACRO: UPDATED 25 August 2017
-#+MACRO: UPDATED-MONTH August 2017
+#+MACRO: UPDATED {{{time(%Y-%m-%d)}}}
+#+MACRO: UPDATED-MONTH {{{time(%m-%d)}}}
+#+MACRO: UPDATED-YEAR {{{time(%Y)}}}
 #+MACRO: EDITION @CHAMELEON_VERSION_MAJOR@.@CHAMELEON_VERSION_MINOR@.@CHAMELEON_VERSION_MICRO@
 #+MACRO: VERSION @CHAMELEON_VERSION_MAJOR@.@CHAMELEON_VERSION_MINOR@.@CHAMELEON_VERSION_MICRO@
-- 
GitLab