From a34749614e051862d65a4811cd40b8733edea406 Mon Sep 17 00:00:00 2001
From: scalinon <sylvain.calinon@idiap.ch>
Date: Wed, 1 Jan 2020 10:15:27 +0100
Subject: [PATCH] Headers refined

---
 src/demo_GMR01.cpp                       | 20 ++++++++--------
 src/demo_GPR01.cpp                       | 20 ++++++++--------
 src/demo_HSMM_batchLQR01.cpp             | 16 +++++++++++--
 src/demo_LWR_batch01.cpp                 | 14 ++++++++++-
 src/demo_LWR_iterative01.cpp             | 12 ++++++++++
 src/demo_MPC_batch01.cpp                 | 14 ++++++++++-
 src/demo_MPC_iterative01.cpp             | 14 ++++++++++-
 src/demo_MPC_semitied01.cpp              | 14 ++++++++++-
 src/demo_MPC_velocity01.cpp              | 14 ++++++++++-
 src/demo_Riemannian_S2_GMM01.cpp         | 12 ++++++++--
 src/demo_Riemannian_S2_TPGMM01.cpp       | 14 ++++++++---
 src/demo_Riemannian_S2_infHorLQR01.cpp   | 13 ++++++++--
 src/demo_Riemannian_S2_product01.cpp     | 14 ++++++++---
 src/demo_Riemannian_S3_TPGMM01.cpp       | 12 ++++++++--
 src/demo_Riemannian_S3_infHorLQR01.cpp   | 16 +++++++++----
 src/demo_Riemannian_SPD_GMR01.cpp        |  5 ++--
 src/demo_Riemannian_SPD_GMR_Mandel01.cpp |  5 ++--
 src/demo_Riemannian_SPD_interp02.cpp     | 14 +++++++++--
 src/demo_Riemannian_pose_GMM01.cpp       | 14 ++++++++---
 src/demo_Riemannian_pose_TPGMM01.cpp     | 14 ++++++++---
 src/demo_Riemannian_pose_batchLQR01.cpp  | 14 ++++++++---
 src/demo_Riemannian_pose_infHorLQR01.cpp | 12 ++++++++--
 src/demo_TPGMMProduct01.cpp              |  3 ++-
 src/demo_TPGMR01.cpp                     |  3 ++-
 src/demo_TPMPC01.cpp                     |  3 ++-
 src/demo_ergodicControl_2D01.cpp         | 17 +++++++++++---
 src/demo_ergodicControl_nD01.cpp         | 17 +++++++++++---
 src/demo_online_GMM01.cpp                | 16 +++++++++++--
 src/demo_online_HSMM01.cpp               | 16 +++++++++++--
 src/demo_proMP01.cpp                     | 30 +++++++++++++-----------
 30 files changed, 315 insertions(+), 87 deletions(-)

diff --git a/src/demo_GMR01.cpp b/src/demo_GMR01.cpp
index 4bd52fe..ba86b61 100644
--- a/src/demo_GMR01.cpp
+++ b/src/demo_GMR01.cpp
@@ -4,16 +4,16 @@
  * Gaussian mixture model (GMM) with time-based Gaussian mixture regression
  * (GMR) used for reproduction.
  *
- * @article{Calinon16JIST,
- *	 author="Calinon, S.",
- *	 title="A Tutorial on Task-Parameterized Movement Learning and Retrieval",
- *	 journal="Intelligent Service Robotics",
- *	 publisher="Springer Berlin Heidelberg",
- *	 doi="10.1007/s11370-015-0187-9",
- *	 year="2016",
- *	 volume="9",
- *	 number="1",
- *	 pages="1--29"
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19MM,
+ * 	author="Calinon, S.",
+ * 	title="Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series",
+ * 	booktitle="Mixture Models and Applications",
+ * 	publisher="Springer",
+ * 	editor="Bouguila, N. and Fan, W.", 
+ * 	year="2019",
+ * 	pages="39--57",
+ * 	doi="10.1007/978-3-030-23876-6_3"
  * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
diff --git a/src/demo_GPR01.cpp b/src/demo_GPR01.cpp
index c7857ab..1800807 100644
--- a/src/demo_GPR01.cpp
+++ b/src/demo_GPR01.cpp
@@ -3,16 +3,16 @@
  *
  * Gaussian process regression (GPR) with RBF kernel
  *
- * @article{Calinon16JIST,
- *	 author="Calinon, S.",
- *	 title="A Tutorial on Task-Parameterized Movement Learning and Retrieval",
- *	 journal="Intelligent Service Robotics",
- *	 publisher="Springer Berlin Heidelberg",
- *	 doi="10.1007/s11370-015-0187-9",
- *	 year="2016",
- *	 volume="9",
- *	 number="1",
- *	 pages="1--29"
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
  * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
diff --git a/src/demo_HSMM_batchLQR01.cpp b/src/demo_HSMM_batchLQR01.cpp
index a1f453a..5ab63b5 100644
--- a/src/demo_HSMM_batchLQR01.cpp
+++ b/src/demo_HSMM_batchLQR01.cpp
@@ -1,7 +1,19 @@
 /*
- * demo_HSMM_batch01.cpp
+ * demo_HSMM_batchLQR01.cpp
  *
- * Online hsmm learning.
+ * HSMM combined with batch LQR.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
  */
diff --git a/src/demo_LWR_batch01.cpp b/src/demo_LWR_batch01.cpp
index 747abe3..395edf9 100644
--- a/src/demo_LWR_batch01.cpp
+++ b/src/demo_LWR_batch01.cpp
@@ -2,7 +2,19 @@
  * demo_LWR_batch01.cpp
  *
  * Locally weighted regression (LWR) with radial basis functions (RBF), using batch
- * computation
+ * computation.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19MM,
+ * 	author="Calinon, S.",
+ * 	title="Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series",
+ * 	booktitle="Mixture Models and Applications",
+ * 	publisher="Springer",
+ * 	editor="Bouguila, N. and Fan, W.", 
+ * 	year="2019",
+ * 	pages="39--57",
+ * 	doi="10.1007/978-3-030-23876-6_3"
+ * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
  */
diff --git a/src/demo_LWR_iterative01.cpp b/src/demo_LWR_iterative01.cpp
index 22ad3c2..165d135 100644
--- a/src/demo_LWR_iterative01.cpp
+++ b/src/demo_LWR_iterative01.cpp
@@ -4,6 +4,18 @@
  * Locally weighted regression (LWR) with radial basis functions (RBF), using iterative
  * computation 
  *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19MM,
+ * 	author="Calinon, S.",
+ * 	title="Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series",
+ * 	booktitle="Mixture Models and Applications",
+ * 	publisher="Springer",
+ * 	editor="Bouguila, N. and Fan, W.", 
+ * 	year="2019",
+ * 	pages="39--57",
+ * 	doi="10.1007/978-3-030-23876-6_3"
+ * }
+ *
  * Authors: Sylvain Calinon, Philip Abbet
  */
 
diff --git a/src/demo_MPC_batch01.cpp b/src/demo_MPC_batch01.cpp
index 008ad82..f7b5792 100644
--- a/src/demo_MPC_batch01.cpp
+++ b/src/demo_MPC_batch01.cpp
@@ -1,7 +1,19 @@
 /*
  * demo_MPC_batch01.cpp
  *
- * Interactive MPC demo, with batch LQR and repulsive field test
+ * Interactive MPC demo, with batch LQR.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
  *
  * Fabien Crépon, Philip Abbet, Sylvain Calinon, 2017
  */
diff --git a/src/demo_MPC_iterative01.cpp b/src/demo_MPC_iterative01.cpp
index fe9ee4b..7c1f11d 100644
--- a/src/demo_MPC_iterative01.cpp
+++ b/src/demo_MPC_iterative01.cpp
@@ -1,7 +1,19 @@
 /*
  * demo_MPC_iterative01.cpp
  *
- * Interactive MPC demo, with iterative LQR
+ * Interactive MPC demo, with iterative LQR.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
  *
  * Fabien Crépon, Philip Abbet, Sylvain Calinon, 2017
  */
diff --git a/src/demo_MPC_semitied01.cpp b/src/demo_MPC_semitied01.cpp
index b58fa56..db7b903 100644
--- a/src/demo_MPC_semitied01.cpp
+++ b/src/demo_MPC_semitied01.cpp
@@ -1,7 +1,19 @@
 /*
  * demo_MPC_semitied01.cpp
  *
- * Interactive MPC demo, demonstrates a GUI to edit semi-tied covariances (2d)
+ * Interactive MPC demo, demonstrates a GUI to edit semi-tied covariances.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
  *
  * Fabien Crépon, Philip Abbet, Sylvain Calinon, 2017
  */
diff --git a/src/demo_MPC_velocity01.cpp b/src/demo_MPC_velocity01.cpp
index dd9de26..a888d7e 100644
--- a/src/demo_MPC_velocity01.cpp
+++ b/src/demo_MPC_velocity01.cpp
@@ -1,7 +1,19 @@
 /*
  * demo_MPC_velocity01.cpp
  *
- * Interactive MPC demo, with batch LQT and repulsive field test
+ * Interactive MPC demo, with batch LQT.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
  *
  * Fabien Crépon, Philip Abbet, Sylvain Calinon, 2017
  */
diff --git a/src/demo_Riemannian_S2_GMM01.cpp b/src/demo_Riemannian_S2_GMM01.cpp
index a8372d1..472ef33 100644
--- a/src/demo_Riemannian_S2_GMM01.cpp
+++ b/src/demo_Riemannian_S2_GMM01.cpp
@@ -1,9 +1,17 @@
 /*
- * demo_Riemannian_sphere_gmm.cpp
+ * demo_Riemannian_S2_GMM01.cpp
  *
  * GMM on sphere.
  *
- * Created on: Oct 13, 2017
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
  * Author: Andras Kupcsik
  */
 
diff --git a/src/demo_Riemannian_S2_TPGMM01.cpp b/src/demo_Riemannian_S2_TPGMM01.cpp
index aff34dd..6cde8df 100644
--- a/src/demo_Riemannian_S2_TPGMM01.cpp
+++ b/src/demo_Riemannian_S2_TPGMM01.cpp
@@ -1,10 +1,18 @@
 /*
- * demo_Riemannian_sphere_tpgmm.cpp
+ * demo_Riemannian_S2_TPGMM01.cpp
  *
  * TPGMM on sphere with two frames.
  *
- *  Created on: Oct 25, 2017
- *      Author: kupcsik
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
+ * Author: kupcsik
  */
 
 #include <stdio.h>
diff --git a/src/demo_Riemannian_S2_infHorLQR01.cpp b/src/demo_Riemannian_S2_infHorLQR01.cpp
index efaa5cc..d02d758 100644
--- a/src/demo_Riemannian_S2_infHorLQR01.cpp
+++ b/src/demo_Riemannian_S2_infHorLQR01.cpp
@@ -1,8 +1,17 @@
 /*
- * demo_Riemannian_sphere_infHorLQR.cpp
+ * demo_Riemannian_S2_infHorLQR01.cpp
  *
  * Linear quadratic regulation on a sphere by relying on Riemannian manifold and
- * infinite-horizon LQR
+ * infinite-horizon LQR.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
  *
  * Authors: Sylvain Calinon, Fabien Crépon, Philip Abbet
  */
diff --git a/src/demo_Riemannian_S2_product01.cpp b/src/demo_Riemannian_S2_product01.cpp
index 09e1f97..31e80ff 100644
--- a/src/demo_Riemannian_S2_product01.cpp
+++ b/src/demo_Riemannian_S2_product01.cpp
@@ -1,5 +1,5 @@
 /*
- * demo_Riemannian_sphere_product.cpp
+ * demo_Riemannian_S2_product01.cpp
  *
  * Gaussian product on sphere.
  * 3 Gaussians are displayed:
@@ -8,8 +8,16 @@
  * - Black is the product of Red and Blue
  * By right clicking on the sphere the user can rotate it.
  *
- *  Created on: Oct 13, 2017
- *      Author: Andras Kupcsik
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
+ * Author: Andras Kupcsik
  */
 
 #include <stdio.h>
diff --git a/src/demo_Riemannian_S3_TPGMM01.cpp b/src/demo_Riemannian_S3_TPGMM01.cpp
index 56ef0f5..349eebd 100644
--- a/src/demo_Riemannian_S3_TPGMM01.cpp
+++ b/src/demo_Riemannian_S3_TPGMM01.cpp
@@ -1,9 +1,17 @@
 /*
- * demo_Riemannian_quat_tpgmm.cpp
+ * demo_Riemannian_S3_TPGMM01.cpp
  *
  * TPGMM on S3 (unit quaternion) with two frames.
  *
- * Created on: Oct 31, 2017
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
  * Author: Andras Kupcsik
  */
 
diff --git a/src/demo_Riemannian_S3_infHorLQR01.cpp b/src/demo_Riemannian_S3_infHorLQR01.cpp
index b22c066..607ff0c 100644
--- a/src/demo_Riemannian_S3_infHorLQR01.cpp
+++ b/src/demo_Riemannian_S3_infHorLQR01.cpp
@@ -1,11 +1,19 @@
 /*
- * demo_Riemannian_quat_infHorLQR.cpp
+ * demo_Riemannian_S3_infHorLQR01.cpp
  *
  * Linear quadratic regulation of unit quaternions by relying on Riemannian manifold and infinite-horizon LQR
- * Change display by setting REFERENTIALS to 1 (referentials in sphere) or 0 (LQR for quaternions)
+ * Change display by setting REFERENTIALS to 1 (referentials in sphere) or 0 (LQR for quaternions).
  *
- * Inspired by boing.c in the glfw library (available on git)
- * Fabien Crépon
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
+ * Author: Fabien Crépon
  */
 
 
diff --git a/src/demo_Riemannian_SPD_GMR01.cpp b/src/demo_Riemannian_SPD_GMR01.cpp
index addd798..3f155c0 100644
--- a/src/demo_Riemannian_SPD_GMR01.cpp
+++ b/src/demo_Riemannian_SPD_GMR01.cpp
@@ -1,8 +1,9 @@
 /*
- * demo_Riemannian_cov_GMR01.cpp
+ * demo_Riemannian_SPD_GMR01.cpp
  *
- * GMR with time as input and covariance data as output by relying on Riemannian manifold
+ * GMR with time as input and covariance data as output by relying on Riemannian manifold.
  *
+ * If this code is useful for your research, please cite the related publication:
  * @article{Jaquier17IROS,
  *   author="Jaquier, N. and Calinon, S.",
  *   title="Gaussian Mixture Regression on Symmetric Positive Definite Matrices Manifolds:
diff --git a/src/demo_Riemannian_SPD_GMR_Mandel01.cpp b/src/demo_Riemannian_SPD_GMR_Mandel01.cpp
index 9ea3bf7..0e80961 100644
--- a/src/demo_Riemannian_SPD_GMR_Mandel01.cpp
+++ b/src/demo_Riemannian_SPD_GMR_Mandel01.cpp
@@ -1,8 +1,9 @@
 /*
- * demo_Riemannian_cov_GMR_Mandel01.cpp
+ * demo_Riemannian_SPD_GMR_Mandel01.cpp
  *
- * GMR with time as input and covariance data as output by relying on Riemannian manifold
+ * GMR with time as input and covariance data as output by relying on Riemannian manifold.
  *
+ * If this code is useful for your research, please cite the related publication:
  * @article{Jaquier17IROS,
  *	 author="Jaquier, N. and Calinon, S.",
  *	 title="Gaussian Mixture Regression on Symmetric Positive Definite Matrices Manifolds:
diff --git a/src/demo_Riemannian_SPD_interp02.cpp b/src/demo_Riemannian_SPD_interp02.cpp
index 877e9ed..9f0511d 100644
--- a/src/demo_Riemannian_SPD_interp02.cpp
+++ b/src/demo_Riemannian_SPD_interp02.cpp
@@ -1,9 +1,19 @@
 /*
- * demo_Riemannian_cov_interp02.cpp
+ * demo_Riemannian_SPD_interp02.cpp
  *
  * Covariance interpolation on Riemannian manifold from a GMM with augmented
  * covariances (Implementation based on Pennec, Fillard and Ayache (2006)
- * "A Riemannian Framework For Tensor Computing")
+ * "A Riemannian Framework For Tensor Computing").
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Jaquier17IROS,
+ *	 author="Jaquier, N. and Calinon, S.",
+ *	 title="Gaussian Mixture Regression on Symmetric Positive Definite Matrices Manifolds:
+ *	 Application to Wrist Motion Estimation with s{EMG}",
+ *	 year="2017, submitted for publication",
+ *	 booktitle = "{IEEE/RSJ} Intl. Conf. on Intelligent Robots and Systems ({IROS})",
+ *	 address = "Vancouver, Canada"
+ * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
  */
diff --git a/src/demo_Riemannian_pose_GMM01.cpp b/src/demo_Riemannian_pose_GMM01.cpp
index 5e9b3a4..a76985d 100644
--- a/src/demo_Riemannian_pose_GMM01.cpp
+++ b/src/demo_Riemannian_pose_GMM01.cpp
@@ -1,10 +1,18 @@
 /*
- * demo_Riemannian_pose_gmm.cpp
+ * demo_Riemannian_pose_GMM01.cpp
  *
  * GMM on R3 x S3.
  *
- *  Created on: Nov 24, 2017
- *      Author: Andras Kupcsik
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
+ * Author: Andras Kupcsik
  */
 
 #ifdef _WIN32
diff --git a/src/demo_Riemannian_pose_TPGMM01.cpp b/src/demo_Riemannian_pose_TPGMM01.cpp
index 45f47c5..672df6c 100644
--- a/src/demo_Riemannian_pose_TPGMM01.cpp
+++ b/src/demo_Riemannian_pose_TPGMM01.cpp
@@ -1,10 +1,18 @@
 /*
- * demo_Riemannian_pose_tpgmm.cpp
+ * demo_Riemannian_pose_TPGMM01.cpp
  *
  * TP-GMM on R3 x S3 with two frames.
  *
- *  Created on: Nov 7, 2017
- *      Author: Andras Kupcsik
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
+ * Author: Andras Kupcsik
  */
 
 #ifdef _WIN32
diff --git a/src/demo_Riemannian_pose_batchLQR01.cpp b/src/demo_Riemannian_pose_batchLQR01.cpp
index 27eda59..4d4a465 100644
--- a/src/demo_Riemannian_pose_batchLQR01.cpp
+++ b/src/demo_Riemannian_pose_batchLQR01.cpp
@@ -1,9 +1,17 @@
 /*
- * demo_Riemannian_pose_batchLQR.cpp
+ * demo_Riemannian_pose_batchLQR01.cpp
  *
- *	Batch LQR for R3 x S3 pose data.
+ * Batch LQR for R3 x S3 pose data.
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
  *
- * Created on: Nov 3, 2017
  * Author: Andras Kupcsik
  */
 
diff --git a/src/demo_Riemannian_pose_infHorLQR01.cpp b/src/demo_Riemannian_pose_infHorLQR01.cpp
index 3e01b73..cc1156e 100644
--- a/src/demo_Riemannian_pose_infHorLQR01.cpp
+++ b/src/demo_Riemannian_pose_infHorLQR01.cpp
@@ -1,9 +1,17 @@
 /*
- * demo_Riemannian_pose_infHorLQR.cpp
+ * demo_Riemannian_pose_infHorLQR01.cpp
  *
  * Infinite horizon LQR for R3 x S3 pose.
  *
- * Created on: Nov 2, 2017
+ * If this code is useful for your research, please cite the related publication:
+ * @article{Calinon19,
+ * 	author="Calinon, S. and Jaquier, N.",
+ * 	title="Gaussians on {R}iemannian Manifolds for Robot Learning and Adaptive Control",
+ * 	journal="arXiv:1909.05946",
+ * 	year="2019",
+ * 	pages="1--10"
+ * }
+ *
  * Author: Andras Kupcsik
  */
 
diff --git a/src/demo_TPGMMProduct01.cpp b/src/demo_TPGMMProduct01.cpp
index 8aca48f..4ec35de 100644
--- a/src/demo_TPGMMProduct01.cpp
+++ b/src/demo_TPGMMProduct01.cpp
@@ -1,8 +1,9 @@
 /*
  * demo_TPGMMProduct01.cpp
  *
- * Product of Gaussians for a Task-Parametrized GMM
+ * Product of Gaussians for a Task-Parametrized GMM.
  *
+ * If this code is useful for your research, please cite the related publication:
  * @article{Calinon16JIST,
  *   author="Calinon, S.",
  *   title="A Tutorial on Task-Parameterized Movement Learning and Retrieval",
diff --git a/src/demo_TPGMR01.cpp b/src/demo_TPGMR01.cpp
index 4dac2a4..294d7c7 100644
--- a/src/demo_TPGMR01.cpp
+++ b/src/demo_TPGMR01.cpp
@@ -1,8 +1,9 @@
 /*
  * demo_TPGMR01.cpp
  *
- * TP-GMM with GMR (conditioning on the phase of the demonstration)
+ * TP-GMM with GMR (conditioning on the phase of the demonstration).
  *
+ * If this code is useful for your research, please cite the related publication:
  * @article{Calinon16JIST,
  *   author="Calinon, S.",
  *   title="A Tutorial on Task-Parameterized Movement Learning and Retrieval",
diff --git a/src/demo_TPMPC01.cpp b/src/demo_TPMPC01.cpp
index 6ca1547..4917f47 100644
--- a/src/demo_TPMPC01.cpp
+++ b/src/demo_TPMPC01.cpp
@@ -1,10 +1,11 @@
 /*
- * demo_TPbatchLQR01.cpp
+ * demo_TPMPC01.cpp
  *
  * Linear quadratic control (unconstrained linear MPC) acting in multiple frames,
  * which is equivalent to a product of Gaussian controllers through a TP-GMM
  * representation.
  *
+ * If this code is useful for your research, please cite the related publication:
  * @article{Calinon16JIST,
  *   author="Calinon, S.",
  *   title="A Tutorial on Task-Parameterized Movement Learning and Retrieval",
diff --git a/src/demo_ergodicControl_2D01.cpp b/src/demo_ergodicControl_2D01.cpp
index 508c375..f45de15 100644
--- a/src/demo_ergodicControl_2D01.cpp
+++ b/src/demo_ergodicControl_2D01.cpp
@@ -1,9 +1,20 @@
 /*
  * demo_ergodicControl_2D01.cpp
  *
- * 2D ergodic control with spectral multiscale coverage (SMC) algorithm, based on 
- * "Spectral Multiscale Coverage: A Uniform Coverage Algorithm for Mobile Sensor Networks" 
- * by George Mathew and Igor Mezic (http://www.geoggy.net/resources/SMC_CDC09.pdf)
+ * 2D ergodic control, inspired by G. Mathew and I. Mezic, "Spectral Multiscale  
+ * Coverage: A Uniform Coverage Algorithm for Mobile Sensor Networks", CDC'2009 
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19MM,
+ * 	author="Calinon, S.",
+ * 	title="Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series",
+ * 	booktitle="Mixture Models and Applications",
+ * 	publisher="Springer",
+ * 	editor="Bouguila, N. and Fan, W.", 
+ * 	year="2019",
+ * 	pages="39--57",
+ * 	doi="10.1007/978-3-030-23876-6_3"
+ * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
  */
diff --git a/src/demo_ergodicControl_nD01.cpp b/src/demo_ergodicControl_nD01.cpp
index 3cde622..58f62f4 100644
--- a/src/demo_ergodicControl_nD01.cpp
+++ b/src/demo_ergodicControl_nD01.cpp
@@ -1,9 +1,20 @@
 /*
  * demo_ergodicControl_nD01.cpp
  *
- * nD ergodic control with spectral multiscale coverage (SMC) algorithm, based on 
- * "Spectral Multiscale Coverage: A Uniform Coverage Algorithm for Mobile Sensor Networks" 
- * by George Mathew and Igor Mezic (http://www.geoggy.net/resources/SMC_CDC09.pdf)
+ * nD ergodic control, inspired by G. Mathew and I. Mezic, "Spectral Multiscale  
+ * Coverage: A Uniform Coverage Algorithm for Mobile Sensor Networks", CDC'2009 
+ *
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19MM,
+ * 	author="Calinon, S.",
+ * 	title="Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series",
+ * 	booktitle="Mixture Models and Applications",
+ * 	publisher="Springer",
+ * 	editor="Bouguila, N. and Fan, W.", 
+ * 	year="2019",
+ * 	pages="39--57",
+ * 	doi="10.1007/978-3-030-23876-6_3"
+ * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
  */
diff --git a/src/demo_online_GMM01.cpp b/src/demo_online_GMM01.cpp
index 233ebf5..157dcf3 100644
--- a/src/demo_online_GMM01.cpp
+++ b/src/demo_online_GMM01.cpp
@@ -1,9 +1,21 @@
 /*
  * demo_online_gmm01.cpp
  *
- *	Online gmm learning.
+ * Online GMM learning.
  *
- *	   Author: Sylvain Calinon
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
+ *
+ * Author: Sylvain Calinon
  */
 
 #include <stdio.h>
diff --git a/src/demo_online_HSMM01.cpp b/src/demo_online_HSMM01.cpp
index 99f16f7..81a86a6 100644
--- a/src/demo_online_HSMM01.cpp
+++ b/src/demo_online_HSMM01.cpp
@@ -1,9 +1,21 @@
 /*
  * demo_online_hsmm01.cpp
  *
- *	Online hsmm learning.
+ * Online HSMM learning.
  *
- *     Authors: Sylvain Calinon, Ioannis Havoutis
+ * If this code is useful for your research, please cite the related publication:
+ * @incollection{Calinon19chapter,
+ * 	author="Calinon, S. and Lee, D.",
+ * 	title="Learning Control",
+ * 	booktitle="Humanoid Robotics: a Reference",
+ * 	publisher="Springer",
+ * 	editor="Vadakkepat, P. and Goswami, A.", 
+ * 	year="2019",
+ * 	doi="10.1007/978-94-007-7194-9_68-1",
+ * 	pages="1--52"
+ * }
+ *
+ * Authors: Sylvain Calinon, Ioannis Havoutis
  */
 
 #include <stdio.h>
diff --git a/src/demo_proMP01.cpp b/src/demo_proMP01.cpp
index 82a5b45..4f6d681 100644
--- a/src/demo_proMP01.cpp
+++ b/src/demo_proMP01.cpp
@@ -1,23 +1,25 @@
 /*
  * demo_proMP01.cpp
  *
- * Conditioning on trajectory distributions with ProMP
+ * Trajectory distributions with ProMP.
  *
  * @incollection{Paraschos13,
- *   title = {Probabilistic Movement Primitives},
- *   author = {Paraschos, A. and Daniel, C. and Peters, J. and Neumann, G.},
- *   booktitle = NIPS,
- *   pages = {2616--2624},
- *   year = {2013},
- *   publisher = {Curran Associates, Inc.}
+ *  title = {Probabilistic Movement Primitives},
+ *  author = {Paraschos, A. and Daniel, C. and Peters, J. and Neumann, G.},
+ *  booktitle = NIPS,
+ *  pages = {2616--2624},
+ *  year = {2013},
+ *  publisher = {Curran Associates, Inc.}
  * }
- * @inproceedings{Rueckert15,
- *   author = "Rueckert, E. and	 Mundo, J. and	Paraschos, A. and  Peters, J. and  Neumann, G.",
- *   title = "Extracting Low-Dimensional Control Variables for Movement Primitives",
- *   booktitle =	ICRA,
- *   year = "2015",
- *   pages = "1511--1518",
- *   address = "Seattle, WA, USA"
+ * @incollection{Calinon19MM,
+ * 	author="Calinon, S.",
+ * 	title="Mixture Models for the Analysis, Edition, and Synthesis of Continuous Time Series",
+ * 	booktitle="Mixture Models and Applications",
+ * 	publisher="Springer",
+ * 	editor="Bouguila, N. and Fan, W.", 
+ * 	year="2019",
+ * 	pages="39--57",
+ * 	doi="10.1007/978-3-030-23876-6_3"
  * }
  *
  * Authors: Sylvain Calinon, Philip Abbet
-- 
GitLab