diff --git a/src/demo_GMR01.cpp b/src/demo_GMR01.cpp
index 4bd52fe7085bfd1e1a841513d0e43dd0c979db3e..ba86b6101bea713864848f014ce64b1d4f856e3f 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 c7857ab85f367adabd44eb01b92da6805fa4a04b..1800807ce695b2e76bdfb0f15cb19c50765d9dd8 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 a1f453ab73c2058195f3146d12c56228bcd278e0..5ab63b56658e823034a2bd0a7039944b7409d964 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 747abe31a92ab1b5a77dd7e6a06fbf54011c9521..395edf9f1ed46415745615372769553cf1883d65 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 22ad3c263c7052c0ec10558a61c63a35101b2932..165d1356b9998721456a37a8c9e3dc0c073280f2 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 008ad829db1a774bd5d2687066b747e560c5a8b1..f7b579232bd6991e5c243ea5a28384f94fd4a1c9 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 fe9ee4b20d5ddbae19d738d1a7a5efbde4bf2b63..7c1f11d48366b7b7a422add5f0f2284b5f19b37a 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 b58fa560e3406ba1c56d2efb28fbb27b60137605..db7b90397e2fda9476fe6a70972b12fbdba2efd3 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 dd9de26688feb7583ada4f50cff88b9c25ac722b..a888d7e8eca505501e23bb757f28c92a983fd00b 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 a8372d12c40d730b93aebd5d98e684aab2d20bac..472ef337fca92655b99474b5096761226e2c7951 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 aff34dd23105a3750b15055401ead084a3c1a82d..6cde8dfa3e338bcc061227a7f5f8c350139f1f84 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 efaa5ccf2559034507ad54eb3c965af3210b9ba4..d02d758665c6ce35461fd4f1c545c88c3b91f154 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 09e1f97d3d049b0623be386eb4968536d66273c4..31e80ff61b7bc45877fcb887133a73c5101fa2fb 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 56ef0f5542a4be6bfccc790b4b693e8b9bc47b52..349eebd7c8e98564cdeffebc766d48d63f168599 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 b22c066595cf96ef2d2bb60d79ec5158144a5bd3..607ff0c10294defeefb47aed365570b798de0d60 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 addd7988fa96acc55425d6446508c988b9499d54..3f155c0c49c845582b6f552f292f0352bf22cc9b 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 9ea3bf7715921b884406cda19e9ed6a5594dea28..0e809611c9ae710c258c37e77981535624eecb2a 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 877e9ed703b4709db7feb21ef2d9faf5a32f2cf5..9f0511d35348cd84a5cc7cc65b2b7479e4eaaf35 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 5e9b3a491bece2be66516b4ef957bbf375abde7c..a76985d79c6ef43b70be81e4a0506917cdd411eb 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 45f47c5e1d3c0193194c9ab87848ca03e1896a42..672df6c6379a9ff84a36d19d051d5a67333bc3de 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 27eda595597d49682dd5c5037cee0d7ab5e2ae3e..4d4a4654bcba3be555a52f083c23b15180e82492 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 3e01b73e4c5a18a7045eb16945c72c3f9318c3e5..cc1156e6d3a4ffcae9ba0f8ff653aea24497acec 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 8aca48f0bd6e8e9d841d3186365393a2f5ece70c..4ec35de3dffdc9e4df465c3443660e83f447daa4 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 4dac2a44e28d6c86aa7a445651dac03d7966d1c5..294d7c74d0a70be9ec90486c0f63c9e4d1edc0f7 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 6ca1547b0f838009d4a432ff022d19b99083511c..4917f47527c95900d83ac7997560c5b5ad2f1c9e 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 508c3755ab368ceba7d9ed72cc8caac403b77b2c..f45de151592c80ecb8380bd716145217d9ccc9e7 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 3cde622e9265141247d2ec9c3eeda35ebb58c16c..58f62f45c10a7a8490c83eb86df4dff86730d9b3 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 233ebf5be82b18fccfbc342137d4e64fd44e4772..157dcf30b2e215b5fc8627f5604a397b5a917212 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 99f16f7f5f543ff05405fc31b9a010395127f532..81a86a618c78b488387f7b1ba10e04d06f06fc00 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 82a5b459a783ed1bded99ff714a5ba449b0ba5dd..4f6d68117420a969655d67ac401785da49ce98fb 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